CobaltStrike实战指南:从Beacon控制到内网横向移动

发布时间:2026/6/19 21:04:33
CobaltStrike实战指南:从Beacon控制到内网横向移动 1. CobaltStrike与Beacon基础解析第一次接触CobaltStrike时我被它强大的协同作战能力震撼到了。简单来说它就像渗透测试团队的作战指挥中心而Beacon则是潜伏在目标主机上的特工。当你在内网拿到第一个Beacon会话时真正的战斗才刚刚开始。Beacon的工作机制很有意思。它不像传统木马那样频繁通信而是采用心跳间隔机制。默认每60秒才与C2服务器通信一次这种低频率让它更难被检测。但实战中我常会调整这个值比如用sleep 5改成5秒间隔平衡隐蔽性和操作流畅度。启动Beacon后你会发现它支持多种通信方式HTTP/HTTPS最常用的方式伪装成正常网页流量DNS通过DNS查询传输数据适合严格管控的环境SMB通过命名管道通信适合横向移动场景提示选择通信协议时要考虑目标网络环境。我遇到过防火墙只放行DNS流量的情况这时DNS Beacon就成了唯一选择。2. 内网信息收集实战技巧拿到Beacon后的第一步不是急着横向移动而是充分了解当前环境。这里分享几个我常用的信息收集命令组合# 获取基础系统信息 shell systeminfo | findstr /B /C:OS Name /C:OS Version # 查看网络配置 shell ipconfig /all # 列出本地用户 shell net user # 检查域环境 shell net config workstation更高级的收集可以用powershell-import导入PowerShell脚本。比如用PowerView收集域信息powershell-import PowerView.ps1 powershell Get-NetDomain最近一次渗透中我发现目标内网存在多个网段。这时net view /domain命令帮了大忙它列出了所有可信域为后续横向移动指明了方向。3. 凭证获取与权限提升在内网中凭证就是通行证。我最常用的三种获取凭证方式3.1 Mimikatz实战应用# 获取明文密码 logonpasswords # 专抓hash hashdump # 票据操作 kerberos_ticket_use3.2 本地hash破解技巧拿到hash后我会先用hashid识别类型然后用hashcat破解。比如针对NTLM hashhashcat -m 1000 hashes.txt rockyou.txt3.3 权限提升实战遇到普通用户权限时我常用的提权流程先用getprivs检查当前权限尝试bypassuac绕过UAC使用elevate尝试提权最后用getsystem获取SYSTEM权限最近一个项目里目标系统打了所有常见补丁。最后是通过加载ElevateKit中的CVE-2019-1458漏洞才提权成功这提醒我们漏洞库要及时更新。4. 横向移动的三种高效方式4.1 PSExec的妙用psexec \\目标IP -u 用户名 -p 密码这个命令背后其实是创建服务执行payload。我常配合spawnto指定注入的进程比如伪装成svchost.exe。4.2 WMI的隐蔽渗透wmi 目标IP getsystemWMI执行不会在目标主机创建服务隐蔽性更好。但要注意防火墙可能拦截135端口。4.3 计划任务利用schtasks /create /s 目标IP /tn 任务名 /tr payload /sc once /st 时间这种方法适合有域管凭证的情况执行后记得清理痕迹。5. 内网穿透与代理配置5.1 Socks代理实战socks 1080这个简单的命令就能开启Socks4代理。我习惯用Proxifier管理代理流量配合Chrome的SwitchyOmega插件可以无缝切换不同目标的代理设置。5.2 端口转发技巧rportfwd 8080 内网IP 80将内网Web服务的80端口转发到本地的8080端口这样就能直接访问内网应用了。记得用rportfwd stop关闭转发。5.3 DNS隧道搭建在严格网络环境下DNS隧道是最后的逃生通道mode dns配置时要注意设置合理的查询间隔太频繁容易被发现。6. 痕迹清理与持久化完成任务后清理痕迹同样重要。我常用的清理命令# 清除事件日志 shell wevtutil cl system shell wevtutil cl security # 删除计划任务 schtasks /delete /tn 任务名 /f # 清除服务 shell sc delete 服务名持久化方面我偏好使用注册表启动项reg setval -k HKLM\Software\Microsoft\Windows\CurrentVersion\Run -v Updater -d payload.exe7. 防御规避实战经验现在的EDR产品越来越智能这里分享几个绕过技巧参数欺骗使用argue命令伪造进程参数父进程欺骗ppid指定合法进程作为父进程内存注入shinject将shellcode注入合法进程时间混淆sleep设置随机间隔模拟正常流量有次遇到某顶级EDR常规方法全部失效。最后是通过execute-assembly在内存中运行自定义C#程序才成功绕过这提醒我们要灵活运用各种技术。8. 团队协作与日志管理CobaltStrike的团队协作功能是其最大优势。我习惯这样管理团队使用note为每个目标添加备注通过Event Log查看队友操作记录定期导出Reporting生成渗透报告用Targets视图分类管理不同网段主机在大型内网渗透中我曾同时管理30个Beacon会话。这时合理使用标签和备注就尤为重要否则很容易混淆目标。