CS 上线不出网机器用到的什么类型的 Beacon
SMB Beacon
SMB Beacon 是 CS 中专门用于内网横向移动和命令控制的类型。它的工作原理是利用 命名管道(Named Pipe),通过 SMB 协议 与目标机器上的 Beacon 进行通信
工作流程:
- 初始上线:首先,您需要在内网中找到一台可以出网的机器,通常是已经通过常规方式(如 HTTP/S Beacon)上线的机器,我们称之为 “中继机器”
- 创建 SMB Beacon:在中继机器上,您可以使用 CS 的
psexec
、psexec_psh
或wmi
等模块,通过 派生(Spawn) 的方式,将 SMB Beacon 部署到不出网的目标机器上 - 管道通信:一旦目标机器上的 SMB Beacon 启动,它会创建一个命名管道。中继机器上的 Beacon 会通过这个管道与目标机器上的 SMB Beacon 进行通信
- 命令传递:中继机器上的 Beacon 接收到来自您 Cobalt Strike 客户端的命令后,会通过 SMB 管道将其传递给目标机器上的 SMB Beacon。反之亦然,目标机器的执行结果也会通过管道返回给中继机器,最终传回您的客户端
优点:
- 隐蔽性强:SMB 协议在内网中非常常见,不易引起安全设备的警觉
- 无需出网:这是它最大的优势,能够完美解决内网不出网机器的上线问题
- 横向移动:它是 CS 进行内网横向渗透的核心组件之一
HTTP/S Beacon with Domain Fronting (域前置)
虽然严格来说,域前置 并不是一种 Beacon 类型,但它是一种非常有效的技术,可以帮助 HTTP/S Beacon 伪装流量,从而绕过一些网络限制,间接实现不出网机器的上线
工作原理:
域前置利用了内容分发网络 CDN 的特性。CDN 允许一个请求的 主机头(Host Header) 和实际连接的 IP 地址不一致
工作流程:
- 正常流量:攻击者在 CS 中将 Beacon 的 C2 地址设置为 CDN 的域名(如
cdn.microsoft.com
),而实际上 Beacon 会向 CDN 的 IP 地址发送请求 - CDN 代理:当 CDN 收到请求后,它会根据 HTTP 请求中的
Host
字段,将请求转发到攻击者在 CDN 上配置的真实 C2 服务器 - 绕过限制:对于不出网的机器,如果它的网络策略允许访问 CDN 节点的 IP,那么它就可以成功将流量发送出去,因为在它的网络视角中,它只是在访问一个合法的 CDN 资源,而不会被认为是恶意流量
优点:
- 伪装性强:流量看起来像是访问合法的大型云服务商或 CDN,难以被检测
- 绕过防火墙:可以绕过一些基于域名的白名单或黑名单策略