内网横向痕迹与跳板机行为分析
内网横向痕迹与跳板机行为分析
在很多应急事件中,最危险的并不是攻击者进来,而是他进来之后开始在内网移动。一旦一台主机被拿下并被当作跳板机使用,事件就会迅速从单点失陷升级为域内扩散、业务联动失控甚至大范围数据泄露。
在 0x02电子取证 里,系统用户审查、异常端口查询、系统共享检查、服务信息检查 已经给了很多基础排查点。但这些点在现场通常是离散的:用户是用户、共享是共享、端口是端口。到了 0x03取证分析,真正要做的是把这些证据拼成一条横向移动链,回答:
- 这台主机是否只是受害者,还是已经变成跳板?
- 攻击者是通过哪种协议横向?
- 使用了谁的身份?
- 后续又控制了哪些主机?
0x01 横向移动分析的目标
横向分析建议围绕四个问题展开:
- 谁在移动? 哪个账号、哪个会话、哪类身份被用于横向。
- 从哪里移动到哪里? 源主机、目标主机、连接方向与时间顺序。
- 通过什么方式移动? SMB、RDP、SSH、WMI、WinRM、计划任务、远程服务、数据库连接。
- 是否形成了稳定跳板? 被控主机是否持续对内连接、转发、代理或继续拉起其他工具。
如果只能回答“这台主机有异常连接”,那还停留在采集层;能把“身份、方向、方式、结果”串起来,才算进入分析层。
0x02 先识别一台主机是否已经具备跳板特征
一台主机被当作跳板机使用时,通常会出现以下信号:
- 同时存在外来连接和对内新建连接
- 异常账号在该主机上登录后,短时间访问多台内网主机
- 主机对内发起大量
445、3389、22、5985、135等连接 - 出现共享访问、远程命令、服务创建、任务创建等链式动作
1. Windows 跳板主机常见特征
重点关注:
4624中的网络登录、远程交互登录5140/5145共享访问7045新服务创建- RDP、SMB、WinRM 相关连接
- 管理员或高权限账户被频繁复用
2. Linux 跳板主机常见特征
重点关注:
- SSH 成功登录后立即对内发起新 SSH 连接
~/.ssh/known_hosts快速新增- bash 历史中出现
ssh,scp,rsync,socat,proxychains - 对内端口探测和批量连接
这类主机的本质是:它已经不只是一个被控节点,而是攻击者的“二级操作台”。
0x03 横向移动最常见的四种路径
1. SMB / 共享横向
这是 Windows 内网最经典的横向方式之一。
常见表现:
- 访问
ADMIN$,C$,IPC$ - 文件复制到远程主机
- 远程创建服务或投放载荷
与 0x02 中的 系统共享检查 对应时,分析重点应从“共享开没开”升级为:
- 哪个账号访问了共享
- 从哪台主机访问过来
- 是否访问了管理共享而非业务共享
- 紧随其后是否出现服务创建或进程执行
2. RDP / 远程桌面横向
常见特征:
- 某个账户突然在多台主机上出现远程交互登录
- 会话时间短、切换频繁
- 登录后伴随工具投放、压缩、复制和新建账号
RDP 的危险点在于,它常常意味着攻击者已经拿到了可稳定复用的高权限身份。
3. SSH 横向
Linux 与混合环境中极常见。
重点判断:
- 同一个账户是否在多台服务器上短时间连续成功登录
- 某台 Web/应用服务器是否突然开始主动连接其他业务主机
- 是否通过私钥、公钥写入、跳板转发实现进一步控制
这一步可以直接承接前面已经补过的 Linux日志时间线分析与SSH入侵溯源。
4. 远程命令型横向
典型方式包括:
- PsExec
- WMI
- WinRM
- 计划任务投递
- 远程服务创建
它们的共性是:不一定需要图形界面,但会在目标主机上留下服务、任务、进程或日志痕迹。
0x04 身份分析:横向移动靠的往往不是“新账号”
攻击者横向移动时,最常用的未必是新增账号,而是复用已有高权限身份。
1. 重点关注的账号类型
- 域管理员
- 本地管理员
- 远程桌面用户
- 数据库服务账号
- 备份 / 运维 / 发布账号
- SSH 私钥拥有者
2. 与 系统用户审查 的衔接
到了分析阶段,用户审查要回答的不只是“有没有异常用户”,更要回答:
- 哪些账号被用来进行横向?
- 它原本应不应该有远程登录能力?
- 它是否在异常时间段出现在异常主机?
- 它是否突然加入了高权限组或获得了管理能力?
也就是说,身份分析的关键不是“多了谁”,而是“谁在不该出现的地方出现了”。
0x05 端口与连接如何还原横向方向
异常端口查询 在 0x02 阶段更多是看“有没有异常连接”。到了 0x03,要进一步回答连接的语义。
1. 哪些连接更像横向而不是普通业务
以下目标端口值得重点关注:
445:SMB / ADMIN$3389:RDP22:SSH5985/5986:WinRM135:RPC139:NetBIOS
如果一台原本只提供 Web 服务的服务器,突然开始主动连接多台内网主机的这些端口,就非常可疑。
2. 判断“源”和“目标”的方法
不要只看连接存在与否,而要看:
- 连接是入站还是出站
- 谁先发起
- 连接建立前后有哪些账号登录
- 连接之后是否出现服务创建、文件投放或进程执行
例如:
- 主机 A 上某高权限账号登录成功
- 几分钟后 A 对主机 B 的
445建立连接 - 紧接着 B 上出现新服务
这就已经接近完整的横向链。
0x06 跳板机的三个关键判断点
1. 是否存在“外来控制 -> 对内发起”的转换
这是判断跳板行为最重要的一点。
如果一台主机在:
- 被外部登录
- 或存在 WebShell / 木马控制
之后,又开始对内扫描、SSH、RDP 或访问共享,那么它很可能已经从“受害机”变成“跳板机”。
2. 是否存在多目标、短间隔、重复连接
攻击者横向移动通常表现为:
- 同账号短时间访问多台主机
- 连接目标集中于高价值主机
- 时间间隔短且节奏稳定
这和正常运维虽然表面相似,但频率、目标分布和上下文通常完全不同。
3. 是否存在后续工具与代理痕迹
跳板机上常见工具或痕迹包括:
frp,nps,socat,lcx,chiselproxychains- SSH 本地 / 远程 / 动态转发
- 临时 socks 代理
这类工具一旦出现,说明攻击者已经从“横向一跳”升级为“长期中继控制”。
0x07 两条典型分析路径
场景一:Windows 办公网向服务器区扩散
典型链条:
- 办公网终端被控
- 获取域管或本地管理员身份
- 使用 SMB / PsExec / RDP 向服务器区扩散
- 服务器开始访问更多内网节点
关键证据:
4624,5140,7045net share/ 管理共享访问tasklist /svc与服务安装- 端口连接方向
场景二:Linux Web 服务器变成 SSH 跳板
典型链条:
- Web 服务器被打入
- 攻击者获取主机权限
- 从配置、密钥或历史中拿到内网 SSH 凭据
- 使用该主机对数据库、堡垒机、应用节点继续横向
关键证据:
- SSH 登录日志
known_hosts- bash 历史
- 内网
22端口连接
0x08 如何避免误判为正常运维
横向分析最容易踩的坑,就是把正常运维误判成攻击。
建议至少从四个维度交叉验证:
1. 身份是否合理
这个账号平时是否本来就负责跨主机运维?
2. 时间是否合理
是变更窗口、备份窗口,还是凌晨 / 节假日异常时间?
3. 目标是否合理
是否访问了与该角色职责无关的主机?
4. 动作是否合理
正常运维通常是:
- 明确工单
- 规则化脚本
- 固定目标范围
而攻击者更常表现为:
- 快速枚举
- 试探式连接
- 访问面逐步扩大
- 配合清痕、下载、提权和持久化
0x09 建议的交付结构
横向移动分析最好整理成“源 -> 目标 -> 方式 -> 身份 -> 结果”的表:
| 时间 | 源主机 | 目标主机 | 身份 | 方式 | 结果 |
|---|---|---|---|---|---|
| 02:11:20 | WS-01 | APP-02 | domain\admin | SMB | 建立共享访问 |
| 02:12:04 | WS-01 | APP-02 | domain\admin | 服务创建 | 远程执行成功 |
| 02:14:31 | APP-02 | DB-01 | root | SSH | 二次横向 |
| 02:18:19 | APP-02 | FILE-01 | svc_backup | SMB | 疑似导出数据 |
这样能很直观地展示:
- 横向从哪里开始
- 中间哪台主机变成了跳板
- 影响面扩散到哪些资产
0x0A 总结
横向移动分析的关键,不是证明“这台主机有几个可疑连接”,而是要证明:
- 哪个身份在驱动这些连接
- 连接具有怎样的方向和目的
- 是否伴随共享访问、服务创建、远程执行或工具代理
- 哪台主机已经被转化为跳板机
当你把 系统用户审查、异常端口查询、系统共享检查、服务信息检查 这些分散证据拼成一条“身份 -> 协议 -> 主机 -> 结果”的链路时,内网横向分析才真正从 0x02 的排查动作,升级为 0x03 的攻击路径重建能力。