管理共享访问与横向投送执行链分析
管理共享访问与横向投送执行链分析
0x02电子取证/系统共享检查 解决的是“系统开了哪些共享、怎么枚举共享、怎么查共享配置”。到了 0x03取证分析,真正重要的问题不是“有没有共享”,而是:
- 某次对
ADMIN$、C$、IPC$的访问到底意味着什么 - 这是正常运维,还是攻击者正在做文件投送
- 共享访问之后有没有形成远程执行
- 仅有共享访问时,该写成“横向成立”还是“横向尝试”
在内网事件里,管理共享本身并不稀奇,难点在于如何把共享访问结果翻译成横向链结论。
0x01 这篇对应 0x02 里的什么内容
这篇主要承接 系统共享检查 取回来的这些证据:
net sharewmic shareWin32_Sharenet 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$,只能先判定为高风险共享访问
如果你在目标主机上看到:
更合理的分析结论是:
- 某账号从
10.10.20.15访问了目标主机的管理共享 - 这已经具备横向投送或远程管理前置条件
- 但仅凭这一条,还不能直接写“横向执行成功”
CyberDefenders 的横向移动检测资料也强调,4624 Type 3 + 5140/5145 + 7045 才更接近完整的 PsExec/SMB 横向闭环。
2. IPC$ 命中更偏“探路”和远程控制通道建立”,不是天然等于文件投送
如果结果类似:
更适合的解释是:
- 这更像远程管理、命名管道通信或服务控制相关前置动作
- 比起直接说明“文件被复制”,它更偏向证明攻击者正在建立远程控制链路
因此单独出现 IPC$ 访问时,更好的写法通常是:
- 存在高风险管理共享/命名管道访问
而不是直接写:
- 已向目标主机投放恶意文件
3. C$ 或 ADMIN$ 命中后紧接文件写入,更像横向投送而不是单纯浏览
如果时间线上出现:
那么结论就可以明显增强:
- 共享访问已经从“建立连接”推进到“具体文件操作”
Temp\run.bat、PSEXESVC.exe、随机 EXE/DLL 这类对象,攻击语义很强- 这时更接近“通过共享完成投送”
0x04 5145 的真正价值在于“你到底动了共享里的什么”
1. 只看到 5140,你知道访问了共享;看到 5145,你才开始知道访问了哪个对象
如果 5145 结果类似:
更合理的分析结论是:
- 不只是访问了管理共享
- 而是已经向共享路径写入了执行组件
- 如果对象名是
PSEXESVC.exe或临时批处理、随机服务文件,几乎可以直接进入 PsExec/服务型横向分析
WithSecure 的公开实验也明确指出,PsExec 常先把 PSEXESVC 上传到 ADMIN$,再通过服务控制管理器启动它,因此 5145 + 7045 的组合极具定性价值。
2. Access Mask 是读还是写,决定你在报告里该写“探测”还是“投送”
如果 5145 主要是:
- 读取
- 查询属性
- 枚举
那么更适合写成:
- 存在共享探测或验证行为
如果出现:
WriteDataAppendDataCreateFileAddFile
则更适合写成:
- 存在通过共享写入文件的行为
- 已从共享访问上升为投送动作
这就是 5145 最核心的价值:它帮你把“看过共享”与“把东西塞进共享”区分开。
0x05 共享访问之后,什么结果才能把结论升级为“横向执行成立”
1. 7045 新服务创建,是最典型的升级点
如果在目标主机上紧接着看到:
那么更合适的结论是:
- 已不只是共享访问
- 已形成“共享投送 -> 服务创建 -> 远程执行”的完整链条
- 若前序还有
4624 Type 3、5140、5145,则可较强支撑 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 3514051457045
区分的关键不在事件号本身,而在:
- 时间窗口
- 源主机角色
- 账号职责
- 对象名
- 后续是否继续扇出
0x08 如何把共享结果串进攻击链
场景一:典型 PsExec 链
- 目标主机出现
4624 Type 3 5140访问ADMIN$5145写入PSEXESVC.exe7045创建PSEXESVC- 目标主机出现后续命令执行
场景二:自定义共享投送链
- 自定义共享或
C$被访问 - 投送
run.bat、payload.exe、beacon.dll - 通过任务/WMI/服务拉起
- 目标主机出现出网或继续扇出
场景三:仅探测未落地
- 看到
IPC$/ADMIN$访问 - 未见写入对象
- 未见服务/任务/进程执行
这类更适合定性为:
- 横向前置探测或访问尝试
0x09 和其他分析篇怎样联动
这篇最适合和以下文章联动:
- 内网横向痕迹与跳板机行为分析.md:共享是横向链的一环,不是全部
- Recent与Prefetch和Amcache执行痕迹交叉分析.md:投送后要看目标主机是否真的执行
- 可疑进程树与父子进程异常取证分析.md:服务/任务投送后常会落到进程树
- 日志清理与反取证痕迹识别.md:共享/服务事件缺失时要考虑清痕
0x0A 公开资料与分析借鉴
下面这些资料适合继续深挖:
- Lateral Movement Detection Guide for SOC Analysts
- How to prove there was a lateral movement using PsExec via EventLogs?
- Attack Detection Fundamentals: Discovery and Lateral Movement - Lab #4
- SMB/Windows Admin Shares
这些公开资料最值得借鉴的一点是完全一致的:共享访问本身不是结论,关键在于它有没有进一步落成文件投送和远程执行。
0x0B 建议的交付结构
管理共享分析结果建议整理为如下表格:
| 时间 | 证据 | 对象 | 解释 | 结论强度 |
|---|---|---|---|---|
| 01:11:03 | 4624 Type 3 | domain\admin from 10.10.20.15 | 网络登录成立 | 中 |
| 01:11:07 | 5140 | \\*\ADMIN$ | 管理共享访问 | 中 |
| 01:11:09 | 5145 | System32\PSEXESVC.exe | 共享写入执行组件 | 强 |
| 01:11:13 | 7045 | PSEXESVC | 服务创建并准备执行 | 强 |
| 01:11:20 | 进程/网络 | 后续命令或回连 | 远程执行落地 | 强 |
0x0C 总结
系统共享分析的关键,不是简单列出 ADMIN$、IPC$、C$ 是否存在,而是要回答:
- 共享是暴露面、探测点,还是投送通道
- 共享访问是只读探测,还是文件写入
- 后续有没有服务、任务、进程把投送转成执行
- 当前结论该写成“尝试”“投送”还是“横向执行成立”
当你把共享配置、5140/5145、服务创建和目标主机执行结果串起来时,0x02 里的“系统共享检查”才真正升级成 0x03 的“横向投送执行链分析”。