管理共享访问与横向投送执行链分析

管理共享访问与横向投送执行链分析

0x02电子取证/系统共享检查 解决的是“系统开了哪些共享、怎么枚举共享、怎么查共享配置”。到了 0x03取证分析,真正重要的问题不是“有没有共享”,而是:

  • 某次对 ADMIN$C$IPC$ 的访问到底意味着什么
  • 这是正常运维,还是攻击者正在做文件投送
  • 共享访问之后有没有形成远程执行
  • 仅有共享访问时,该写成“横向成立”还是“横向尝试”

在内网事件里,管理共享本身并不稀奇,难点在于如何把共享访问结果翻译成横向链结论


0x01 这篇对应 0x02 里的什么内容

这篇主要承接 系统共享检查 取回来的这些证据:

  • net share
  • wmic share
  • Win32_Share
  • net view
  • Windows 默认共享与自定义共享配置
  • Linux NFS / Samba / TFTP 暴露结果

但本文的重点会放在最常用于横向的 Windows 管理共享:

  • ADMIN$
  • C$
  • IPC$

以及它们和事件日志、服务创建、任务投送之间的关系。


0x02 先分清共享在分析里的三种语义

1. 配置暴露

这类问题是:

  • 某台主机默认共享存在
  • 某自定义共享权限过宽
  • 某 NFS/Samba 导出范围不合理

它说明的是风险面和可达性,不等于攻击已经使用。

2. 访问尝试

这类问题是:

  • 目标共享被枚举
  • IPC$ 被连接
  • ADMIN$ / C$ 有认证尝试

这说明攻击者已经把共享当成横向入口,但还不能直接写成“已成功投送并执行”。

3. 投送执行链

这类问题才是强结论:

  • 管理共享访问成功
  • 随后出现文件写入、服务创建、计划任务、进程执行
  • 或看到典型的 PSEXESVC / 异常服务名

这时共享就不再只是“被访问”,而是横向链的一部分。


0x03 管理共享访问结果如何解释

1. 5140 命中 ADMIN$C$IPC$,只能先判定为高风险共享访问

如果你在目标主机上看到:

Event ID: 5140
Share Name: \\*\ADMIN$
Account Name: domain\admin
Source Address: 10.10.20.15

更合理的分析结论是:

  • 某账号从 10.10.20.15 访问了目标主机的管理共享
  • 这已经具备横向投送或远程管理前置条件
  • 但仅凭这一条,还不能直接写“横向执行成功”

CyberDefenders 的横向移动检测资料也强调,4624 Type 3 + 5140/5145 + 7045 才更接近完整的 PsExec/SMB 横向闭环。

2. IPC$ 命中更偏“探路”和远程控制通道建立”,不是天然等于文件投送

如果结果类似:

Share Name: \\*\IPC$

更适合的解释是:

  • 这更像远程管理、命名管道通信或服务控制相关前置动作
  • 比起直接说明“文件被复制”,它更偏向证明攻击者正在建立远程控制链路

因此单独出现 IPC$ 访问时,更好的写法通常是:

  • 存在高风险管理共享/命名管道访问

而不是直接写:

  • 已向目标主机投放恶意文件

3. C$ADMIN$ 命中后紧接文件写入,更像横向投送而不是单纯浏览

如果时间线上出现:

5140 -> Share Name: \\*\ADMIN$
5145 -> Relative Target Name: Temp\run.bat
4663 -> Object access to C:\Windows\Temp\run.bat

那么结论就可以明显增强:

  • 共享访问已经从“建立连接”推进到“具体文件操作”
  • Temp\run.batPSEXESVC.exe、随机 EXE/DLL 这类对象,攻击语义很强
  • 这时更接近“通过共享完成投送”

0x04 5145 的真正价值在于“你到底动了共享里的什么”

1. 只看到 5140,你知道访问了共享;看到 5145,你才开始知道访问了哪个对象

如果 5145 结果类似:

Share Name: \\*\ADMIN$
Relative Target Name: System32\PSEXESVC.exe
Accesses: WriteData (or AddFile)

更合理的分析结论是:

  • 不只是访问了管理共享
  • 而是已经向共享路径写入了执行组件
  • 如果对象名是 PSEXESVC.exe 或临时批处理、随机服务文件,几乎可以直接进入 PsExec/服务型横向分析

WithSecure 的公开实验也明确指出,PsExec 常先把 PSEXESVC 上传到 ADMIN$,再通过服务控制管理器启动它,因此 5145 + 7045 的组合极具定性价值。

2. Access Mask 是读还是写,决定你在报告里该写“探测”还是“投送”

如果 5145 主要是:

  • 读取
  • 查询属性
  • 枚举

那么更适合写成:

  • 存在共享探测或验证行为

如果出现:

  • WriteData
  • AppendData
  • CreateFile
  • AddFile

则更适合写成:

  • 存在通过共享写入文件的行为
  • 已从共享访问上升为投送动作

这就是 5145 最核心的价值:它帮你把“看过共享”与“把东西塞进共享”区分开。


0x05 共享访问之后,什么结果才能把结论升级为“横向执行成立”

1. 7045 新服务创建,是最典型的升级点

如果在目标主机上紧接着看到:

Event ID: 7045
Service Name: PSEXESVC
ImagePath: C:\Windows\PSEXESVC.exe

那么更合适的结论是:

  • 已不只是共享访问
  • 已形成“共享投送 -> 服务创建 -> 远程执行”的完整链条
  • 若前序还有 4624 Type 351405145,则可较强支撑 PsExec/服务型横向成立

Hejely Lab 关于 PsExec 的取证文章就把这组事件当作核心证明链。

2. 没有 7045 但有任务创建、远程进程、WMI 结果,也可成立

共享只是“运东西”的通道,执行方式未必一定是服务。若后续出现:

  • 4698 计划任务创建
  • WMI 远程进程创建
  • Sysmon 进程链异常

同样可以把共享访问上升为横向投送执行链的一部分。

3. 只有共享访问,没有后续执行结果时,结论必须克制

更推荐的写法是:

  • 已发现高风险管理共享访问
  • 存在横向投送或执行尝试
  • 当前尚未以服务、任务、进程或文件执行结果确认远程执行成立

这比直接写“横向成功”更稳。


0x06 Linux 共享结果在分析里怎么用

0x02 里的共享检查还包括:

  • NFS
  • Samba
  • TFTP

0x03 里,这些更偏向以下几类判断:

1. NFS / Samba 暴露的是横向可达面和数据接触面

如果:

  • 导出目录权限宽
  • no_root_squash
  • Samba 可写目录开放过大

更适合先写成:

  • 存在可被复用的共享暴露面

只有在再看到:

  • 文件被写入
  • 脚本被投送
  • SSH/服务/计划任务跟进

时,才更适合上升为横向链。

2. TFTP 更像轻量投送通道

如果目标主机有:

  • 小工具下载
  • 批处理、配置、脚本获取

TFTP 更像极简投送方式,而不是长期共享工作流。


0x07 三个最容易误判的边界

1. 默认共享存在,不等于被攻击者利用

ADMIN$C$IPC$ 在 Windows 环境里常默认存在。它们说明风险面和管理能力,不自动说明攻击成立。

2. 共享访问成功,不等于远程执行成功

必须继续看:

  • 文件是否被写入
  • 服务/任务是否创建
  • 目标主机是否出现执行结果

3. 正常运维也会命中这些事件

很多 IT 管理操作本身就会产生:

  • 4624 Type 3
  • 5140
  • 5145
  • 7045

区分的关键不在事件号本身,而在:

  • 时间窗口
  • 源主机角色
  • 账号职责
  • 对象名
  • 后续是否继续扇出

0x08 如何把共享结果串进攻击链

场景一:典型 PsExec 链

  1. 目标主机出现 4624 Type 3
  2. 5140 访问 ADMIN$
  3. 5145 写入 PSEXESVC.exe
  4. 7045 创建 PSEXESVC
  5. 目标主机出现后续命令执行

场景二:自定义共享投送链

  1. 自定义共享或 C$ 被访问
  2. 投送 run.batpayload.exebeacon.dll
  3. 通过任务/WMI/服务拉起
  4. 目标主机出现出网或继续扇出

场景三:仅探测未落地

  1. 看到 IPC$ / ADMIN$ 访问
  2. 未见写入对象
  3. 未见服务/任务/进程执行

这类更适合定性为:

  • 横向前置探测或访问尝试

0x09 和其他分析篇怎样联动

这篇最适合和以下文章联动:


0x0A 公开资料与分析借鉴

下面这些资料适合继续深挖:

这些公开资料最值得借鉴的一点是完全一致的:共享访问本身不是结论,关键在于它有没有进一步落成文件投送和远程执行。


0x0B 建议的交付结构

管理共享分析结果建议整理为如下表格:

时间证据对象解释结论强度
01:11:034624 Type 3domain\admin from 10.10.20.15网络登录成立
01:11:075140\\*\ADMIN$管理共享访问
01:11:095145System32\PSEXESVC.exe共享写入执行组件
01:11:137045PSEXESVC服务创建并准备执行
01:11:20进程/网络后续命令或回连远程执行落地

0x0C 总结

系统共享分析的关键,不是简单列出 ADMIN$IPC$C$ 是否存在,而是要回答:

  • 共享是暴露面、探测点,还是投送通道
  • 共享访问是只读探测,还是文件写入
  • 后续有没有服务、任务、进程把投送转成执行
  • 当前结论该写成“尝试”“投送”还是“横向执行成立”

当你把共享配置、5140/5145、服务创建和目标主机执行结果串起来时,0x02 里的“系统共享检查”才真正升级成 0x03 的“横向投送执行链分析”。