本章目录(6)On this page (6)
  1. 一台机器不算什么
  2. 难在哪
  3. 网络上长什么样
  4. 一个现实的比例
  5. 报告里怎么写
  6. 参考
文章Articles

C2 与横向

为什么拿到一台机器只是开始,以及这类流量在网络上长什么样。

更新Updated 2026.10.25securitypentestc2

一台机器不算什么

Web 入口拿到的权限通常在 DMZ,或者在一个和核心业务隔离的网段。真正的资产在内网:域控、数据库、文件服务器、OA。

从「有权限的机器」到「有权限的人」,中间隔着横向移动。这一段是红队项目的主体,也是多数常规渗透测试的边界之外。

所以这篇只写两件事:为什么难,和怎么被发现。

难在哪

没有直接通路。DMZ 的机器连不到内网 10 段,需要搭隧道:端口转发、SOCKS 代理、DNS 隧道、ICMP 隧道。每条路都有自己的特征,也都有自己的稳定性问题。

凭据不等于权限。拿到一个本地管理员哈希,不代表能登其他机器——域环境里,本地管理员密码每台都不一样(LAPS 之后更是如此),能复用的是域账号和服务账号。

动静大。RDP 登录会挤掉当前用户,管理员立刻知道。批量扫描会让内网 IDS 报警。这条路越往后走,越需要「慢」。

网络上长什么样

这是防守方更该关心的部分。

心跳。C2 的木马要定期回连取指令。这个周期是固定的,加上随机抖动(jitter)来规避检测——但抖动本身也是一种特征:间隔分布不服从正常用户行为。

正常的出网流量,间隔是随机的、长尾的。心跳流量的间隔集中在某个值附近,画个直方图就能看出来。

域名特征。DGA 生成的域名、新注册域名、没有历史解析记录的域名、和业务无关的 TLD。这些在 DNS 日志里都能筛。

TLS 指纹。木马用的 TLS 库和浏览器不一样,JA3/JA3S 指纹不同。这是目前比较有效的一层,因为改起来麻烦。

数据外带。大量上传、非工作时间的出网流量、往云存储的批量上传。

一个现实的比例

多数企业的检测能力分布是这样的:

  • 边界防火墙:有,但只看端口和 IP。
  • 出网流量:有日志,没人看。
  • DNS 日志:有,没接进任何分析。
  • 终端:装了 EDR,规则是默认的。

这个状态下,一个用了正常 HTTPS 端口、域名看起来像正常服务、心跳间隔带抖动的 C2,能活很久。

所以建检测的时候,顺序应该是:先接 DNS 日志(成本最低、信息量最大),再做流量基线(找出「这台机器平时不连这些地方」),最后才谈高级规则。

报告里怎么写

如果项目里做到了横向,报告的重点不是「我们拿到了域控」,是「我们从 DMZ 到域控用了 4 小时,中间经过 3 台机器,你们的日志里只记录了 1 台」。

这个差距才是客户要修的东西。

参考

  • 《cobalt strike 内网渗透(专栏)》,CSDN 存档
  • 检测体系参考:安全监控