(本文最后更新于2021.10.26 22:02
)
一:简述
- 运行环境:kali linux && 靶机VMware-Breach1.0靶场
- 目标:从启动虚机到获取目标操作系统的root权限和查看flag
- 靶机Breach1.0下载链接:https://download.vulnhub.com/breach/Breach-1.0.zip
二:靶机说明
Breach1.0是一个难度为初级到中级的BooT2Root/CTF挑战。
VM虚机配置有静态IP地址 192.168.110.140,建议设置为NAT模式
三:实施
1:安装靶机
靶机需在VM里面安装,网卡设置为NAT,方便连接kali,因为内置了静态ip 192.168.110.140,所以需主动设置kali和其在同一网段。
我这里是都选择NAT模式(VM-8)。
设置同一网段:
在VM的左上方选择 编辑->虚拟网络编辑器
选择VM-8,点击更改设置

将子网IP修改为192.168.110.0/24网段,然后点击DHCP配置:

修改为下图即可:

然后启动靶机和kali
2:开始渗透
Kali连接靶场后用arp扫描ip:
arp-scan -l

分析得知是192.168.110.140
先用masscan快速扫描开放的端口:
masscan --rate=100000 -p 1-65535 192.168.110.140

发现全部端口都开放了,应该是有IDS防御
先测试80端口: 浏览器访问:192.168.110.140
F12检测:

发现一个加密的数字,猜测是Base64加密,用工具一直解密:



发现类似用户名密码的字符串:
pgibbons:damnitfeel$goodtobeagang$ta
点击中心图片进入这个界面:


发现是基于impress cms框架的,可以进入https://www.exploit-db.com/ 搜索impress cms的漏洞,这里没有进行搜索
输入刚刚解密出来的用户名密码进入主页:
发现有3封邮件

第1封邮件,主要内容:让你的团队只能向管理门户发布任何敏感的内容。我的密码非常安全,发自ImpressCMS Admin Bill,如下:

第2封邮件,主要内容:Michael采购了IDS/IPS。

第3封邮件,主要内容:有一个peter的SSL证书被保存在192.168.110.140/.keystore

输入提示的ssl链接:192.168.110.140/.keystore 发现是一个文件,进行下载
下载完毕后点击View Account菜单进入界面,再依次点击页面的Content,会弹出一行链接Content SSL implementation test capture,点击链接


发现提示是红队攻击的复制文件,并且给了一个链接,还提示了用户名密码是tomcat,这里也暗示了后台可能为tomcat
进入提示的链接:
发现是一个.pcap文件,下载下来


打开查看:发现不能读取文件,SSL对文件进行了加密
由此推测:
a.这是一个流量包文件,不能读取很可能因为某些流量有SSL加密(前面的邮件中提供了一个keystore,这里提供了密码;
b.系统中可能存在tomcat。
对keystore进行解密:

从密钥库导出.p12证书:

现在一共有这两个文件:

将.p12证书导入wireshark
在Wireshark中打开_SSL_test_phase1.pcap流量包文件,选择菜单:编辑–首选项–Protocols–SSL,点击右边的Edit
//最新版wireshark已经 把ssl 改为 tls,其实ssl/tls都已统称通信加密协议,所以就放一块了:

其中8443是tomcat打开SSL的文本服务的默认端口,默认配置文件里用的端口就是8443。
默认的https端口号是443,因此tomcat为了区别使用了8443这个端口。 输入后我们就看到了加密后的http流量

发现了大量攻击者(192.168.110.129)对192.168.110.140的流量包
追踪http流,发现攻击者(192.168.110.129)对192.168.110.140/_M@nag3Me/html的访问

尝试访问:

发现无法连接
开启BP代理:我这里使用的是火狐插件FoxyProxy 标准版



发现需要输入用户名和密码
回头继续看其它的http流量,发现其中暴露了一个basic认证过程

采用http basic认证,认证数据包为:Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC
并且wireshark已经进行解密了
如果没有解密:

得到后台登录用户名:tomcat,密码:Tt\5D8F(#!*u=G)4m7zB
在kali里面登录tomcat后台:


发现是果然是tomcat的后台,应该有部署模块:
我们上传一个反弹shell(为什么不上传一句话?因为测试过,上传上去很快就被杀掉了,应该有检测手段):

这里先生成一个反弹shell,使用kali里面的msfconsole模块:


这里的.128是kali的ip,输入exploit启动

这里就等待上钩了,
我们去靶机的网站上传刚刚生成的反弹shell,在哪打开的shell控制台就在哪生成,我是桌面所以就生成在桌面:


我们去访问https://192.168.110.140:8443/shell
让他执行我们的shell


这里就成功了
生成shell环境和带交互式界面的shell环境,输入 :
shell
python -c 'import pty;pty.spawn("/bin/bash")'

第一步当然要查看下系统用户文件,毕竟最终是获得root权限:
cat /etc/passwd

发现两个1000以后的用户(普通用户),并且可以登录系统
我们继续查看网站路径下的内容:
发现一个奇怪的5446文件,查看一下:


发现了数据库的用户名root 且密码为空
尝试登录:


查看mysql数据库 show tables; :

发现用户user表,查看下表结构:

搜索我们需要的用户名密码:
select User,Password from user;
发现了系统用户milton的密码,只不过是加密的

尝试md5解密:

切换为这个解密出来的用户登录Breach靶场:


查看隐藏文件 ls -la :

发现一个.bash_history 历史记录文件
查看一下:

发现有切换操作
这里应该需要blumbergh的密码
到目前为止发现有6张图片,并且milton家目录下有一张(到这一步我也很迷,这也扯得太远了)

通过观察文件路径推测有个/images 存放图片文件的路径

尝试从图片中收集可能的信息,使用strings打印各图片其中的可打印字符,保存在文件中

这里面应该有用户blumbergh的密码,尝试用hydra暴力破解密码,字典就是刚刚生成的images.txt

但是发现目标主机没有开22端口
尝试用milton用户开启:

但是没有权限(最后用root开发现也不行,原来是没有装sshd,我是SB)
网上得知,密码是(我是真的不知道如何在几千行像密码的文件中找到真的那一个):

切换为用户blumbergh:

进行相同操作,发现也有个历史文件:


发现他查看了一个脚本,查看这个脚本文件:

这段脚本的意思是切换到/var/lib/tomcat6/webapps目录下,然后寻找swingline目录下的文件,并清除。xargs 可以将管道或标准输入(stdin)数据转换成命令行参数(最后查看crontab任务计划可以得知,会每3分钟执行一次这个清除脚本,所以以前上传的一句话会被删除)
查看blumbergh能够使用的sudo命令:
发现可以通过sudo执行root权限的tee命令和tidyuo脚本
(tee命令 用于读取标准输入的数据,并将其内容输出成文件。)

查看tidyuo.sh的权限:

发现是root的文件,并且只能由root写入
tidyup.sh文件只有root可写,而能够以root权限运行tee命令,那么就可以用tee命令重写tidyup.sh,变成连接我们反弹shell的脚本文件:
先将反弹shell命令写入shell.txt文件(nc反弹命令)
kali提前开始监听5555端口

用nc命令在靶机上生成一个反弹shell

用tee命令去重写那个清除脚本,变成我们的反弹脚本:

等待反弹(会多等一下):

反弹成功,查看id 发现是root,拿到了root权限(个人理解是用可以以root身份执行的命令去执行一个脚本文件时经过反弹shell会得到一个root权限的shell)


实验到此结束

Comments | 1 条评论
就是说,过于深奥了