系统共享检查结果与横向投送及权限暴露判断分析
系统共享检查结果与横向投送及权限暴露判断分析
0x02电子取证/系统共享检查 给出了 Windows 下 net share、wmic share、get-wmiobject 和 Linux 下 NFS、Samba、TFTP 服务配置的基础取证入口。到了 0x03取证分析,真正要解决的不是"怎么列出共享",而是:
- 哪些共享配置存在横向投送风险
- 共享权限是否暴露了敏感数据或执行通道
- 共享配置是否被攻击者利用或篡改
- 如何从共享检查结果中读出攻击者的横向移动路径
系统共享是攻击者横向移动的核心通道之一。当你在 net share 输出中看到 ADMIN$、C$、IPC$ 时,这些默认共享本身就是高风险的攻击面。但更多时候,攻击者的利用更加隐蔽:通过自定义共享投放载荷、利用 NFS no_root_squash 提权、通过 Samba guest ok=yes 匿名访问敏感目录。
0x01 Windows 侧共享检查结果分析
1. 默认共享的风险语义
Windows 系统默认创建以下隐藏共享:
| 共享名 | 路径 | 风险 |
|---|---|---|
ADMIN$ | C:\Windows | 高 — 系统目录,可直接投放 DLL/EXE |
C$ | C:\ | 高 — 整个系统盘,可读写任意文件 |
IPC$ | (命名管道) | 中 — 用于进程间通信,可建立空会话 |
PRINT$ | C:\Windows\System32\spool\drivers | 中 — 打印机驱动目录 |
FAX$ | 传真缓存 | 低 — 通常无敏感内容 |
这些默认共享只对管理员组开放,但攻击者一旦获得管理员凭据,就可以通过 SMB 协议直接访问这些共享,实现横向移动和载荷投放。
2. 自定义共享的风险判断
当 net share 输出中出现非默认共享时,需要判断:
- 共享路径是否指向敏感目录(如
C:\Users、C:\inetpub、数据库目录) - 共享权限是否过于宽松(如
Everyone完全控制) - 共享是否被攻击者创建用于载荷投放
例如:
分析要点:
DataShare指向数据目录,如果权限宽松,可能导致数据泄露TempShare指向临时目录,可能是攻击者创建的载荷投放点- 需要检查共享权限:
net share TempShare查看访问控制列表
3. 共享权限的取证价值
通过 wmic share 可以获取更详细的共享信息:
通过注册表可以查看共享的 ACL:
通过 PowerShell 可以查询共享权限:
权限异常判断:
Everyone或Authenticated Users拥有完全控制权限- 共享路径指向系统目录或敏感数据目录
- 共享名称伪装为系统服务(如
UpdateShare、SyncFolder)
4. IPC$ 空连接的风险
IPC$ 共享用于进程间通信,默认允许匿名用户建立空连接(null session)。攻击者可以通过空连接枚举用户、共享、服务等信息。
检测方法:
如果上述命令成功,说明 IPC$ 空连接未被限制,存在信息泄露风险。
修复方法:
0x02 Linux 侧共享检查结果分析
1. NFS 共享的风险语义
NFS(Network File System)是 Linux 环境中最常见的文件共享协议。0x02 中给出的检查命令:
典型 /etc/exports 配置:
风险判断:
*通配符表示允许任意主机访问,属于高危配置no_root_squash表示客户端 root 用户在服务端也以 root 身份访问,可直接提权rw表示可读写,如果指向敏感目录,可能导致数据篡改
2. NFS no_root_squash 的提权风险
no_root_squash 是 NFS 最危险的配置选项之一。攻击者可以通过以下步骤实现提权:
- 在攻击机上以 root 身份创建 SUID 二进制文件
- 将文件复制到 NFS 共享目录
- 在目标机上执行该文件,获得 root 权限
检测方法:
如果发现 no_root_squash 配置,需要立即修复为 root_squash(默认值)。
3. Samba 共享的风险语义
Samba 是 Linux 环境中的 SMB 实现。0x02 中给出的检查命令:
典型 smb.conf 配置:
风险判断:
public = yes或guest ok = yes表示允许匿名访问writable = yes表示允许写入,可能导致载荷投放path指向敏感目录(如/home、/etc、/var/www)
4. TFTP 服务的风险语义
TFTP(Trivial File Transfer Protocol)是简单的文件传输协议,无认证机制。0x02 中给出的检查命令:
典型配置:
风险判断:
- TFTP 无认证,任何人可以上传/下载文件
- 如果目录指向系统路径,可能导致任意文件读写
- 攻击者可以通过 TFTP 投放恶意固件或配置文件
5. df 命令的局限性
0x02 中提到 df 命令无法查询 NFS/Samba/TFTP 共享。实际上,df -h 可以查看已挂载的网络文件系统:
但 df 只能看到已挂载的共享,无法看到服务端导出的共享列表。
0x03 共享检查与横向投送链的关联
1. 共享作为横向投送通道
攻击者利用共享进行横向投送的典型流程:
- 侦察阶段:枚举目标主机的共享(
net view、showmount -e) - 访问阶段:通过 SMB/NFS 连接到目标共享
- 投放阶段:将恶意文件复制到共享目录(
copy payload \\target\ADMIN$) - 执行阶段:通过 PsExec、WMI、计划任务等方式远程执行
2. 共享访问的日志证据
Windows 侧可以通过事件日志追踪共享访问:
- 事件 ID 5140:网络共享被访问
- 事件 ID 5145:共享对象的权限检查
- 事件 ID 5156:网络连接建立
Linux 侧可以通过 auditd 追踪 NFS/Samba 访问:
3. 共享配置篡改的检测
攻击者可能修改共享配置以建立持久化通道:
Windows 侧:
检查是否有新增的共享键值,特别是:
- 共享名称包含
$(隐藏共享) - 共享路径指向临时目录或用户目录
- 共享权限过于宽松
Linux 侧:
检查是否有新增的导出目录或共享配置,特别是:
no_root_squash配置public = yes或guest ok = yes- 共享路径指向敏感目录
0x04 三个最容易误判的边界
1. 默认共享存在不等于被攻击
ADMIN$、C$、IPC$ 是 Windows 默认共享,正常环境中也会存在。不能仅因默认共享存在就判断被攻击。需要结合访问日志、权限配置、异常行为综合判断。
2. NFS no_root_squash 不等于已被利用
no_root_squash 是高危配置,但不代表攻击者已经利用。需要检查是否有异常文件被创建、是否有 SUID 二进制文件、是否有异常登录记录。
3. 自定义共享不等于恶意
很多业务场景需要自定义共享(如文件服务器、数据库备份目录)。不能仅因存在自定义共享就判断为恶意。需要结合共享用途、权限配置、访问来源综合判断。
0x05 公开资料与分析借鉴
1. Red Canary: SMB/Windows Admin Shares
Red Canary 的威胁检测报告详细说明了 SMB/Windows Admin Shares 的攻击模式:
- 攻击者通过
ADMIN$、C$、IPC$进行横向移动 - Cobalt Strike 通过 Service Control Manager 将二进制文件复制到
ADMIN$共享 - Impacket 的
secretsdump通过 SMB 远程提取ntds.dit - 检测方法:监控
ADMIN$、C$、IPC$的文件创建事件
最值得借鉴的一点是:大多数 C2 框架都内置了利用 SMB/Windows Admin Shares 进行横向移动的功能,监控这些共享的文件创建事件是检测横向移动的关键。
公开来源:
- Red Canary: SMB/Windows Admin Shares
2. MITRE ATT&CK: T1021.002 SMB/Windows Admin Shares
MITRE ATT&CK 将 SMB/Windows Admin Shares 编为 T1021.002 子技术:
- 攻击者通过有效账户使用 SMB 与远程网络共享交互
- 示例共享包括
C$、ADMIN$、IPC$ - 依赖 SMB/RPC 认证会话的执行技术包括计划任务、服务执行、WMI
- 攻击者可以使用 NTLM 哈希通过 Pass the Hash 访问管理员共享
最值得借鉴的一点是:SMB/Windows Admin Shares 是横向移动的核心通道,几乎所有 APT 组织都使用过该技术。
公开来源:
- MITRE ATT&CK: T1021.002 SMB/Windows Admin Shares
3. Hacking Articles: Linux Privilege Escalation using Misconfigured NFS
Hacking Articles 的 NFS 提权文章详细说明了 no_root_squash 的利用方法:
- 攻击者通过
showmount -e枚举 NFS 共享 - 发现
no_root_squash配置后,在攻击机上创建 SUID 二进制文件 - 将文件复制到 NFS 共享目录
- 在目标机上执行该文件,获得 root 权限
最值得借鉴的一点是:no_root_squash 配置可以让客户端 root 用户在服务端也以 root 身份访问,这是 NFS 最危险的配置选项。
公开来源:
- Hacking Articles: Linux Privilege Escalation using Misconfigured NFS
4. Sophos: Identifying Group Policy Attacks
Sophos 的事件响应文章说明了组策略攻击的检测方法:
- 攻击者通过 GPO 分发勒索软件
- 攻击者通过 GPO 禁用安全软件
- 检测方法:监控 GPO 修改事件、检查计划任务创建、监控文件执行
最值得借鉴的一点是:组策略攻击通常表现为同步或重复的证据,如在多台机器上看到相同的计划任务或文件执行。
公开来源:
- Sophos: Identifying Group Policy Attacks
0x06 建议的交付结构
系统共享检查结果建议整理为如下表格:
| 检查项 | 检查结果 | 异常判断 | 结论强度 | 建议 |
|---|---|---|---|---|
net share | 发现 TempShare 指向 C:\Temp | 可疑共享 | 中 | 检查创建时间和权限 |
wmic share | ADMIN$、C$、IPC$ 存在 | 默认共享 | 低 | 检查访问日志 |
| 共享权限 | TempShare 允许 Everyone 完全控制 | 权限过于宽松 | 强 | 立即修复权限 |
| 访问日志 | 事件 ID 5140 显示 TempShare 被访问 | 共享被使用 | 中 | 检查访问来源 IP |
/etc/exports | 发现 no_root_squash 配置 | 高危配置 | 强 | 立即修复为 root_squash |
smb.conf | 发现 public = yes 配置 | 匿名访问 | 中 | 检查共享路径和权限 |
| TFTP 配置 | 目录指向 /srv/tftp | 正常配置 | 低 | 检查是否有异常文件 |
0x07 和其他分析篇怎样联动
本文最适合和以下专题联动:
异常端口检查结果与进程关联及外联目标判断分析:提供网络层的行为分析系统进程检查结果与伪装及LOLBin执行链分析:提供进程层面的异常判定自启动项计划任务与服务持久化分析:提供持久化检测,共享可作为持久化通道
本文的定位是聚焦 0x02 系统共享检查中"横向投送风险"和"权限暴露面"这两个维度,而不是覆盖整个文件共享领域。
0x08 总结
系统共享分析的关键,不是"列出所有共享",而是:
- 判断共享配置是否存在横向投送风险
- 识别
no_root_squash、public = yes等高危配置 - 通过访问日志追踪共享的使用情况
- 从共享配置篡改中读出攻击者的持久化意图
当你能从 net share、wmic share、/etc/exports、smb.conf 的输出中读出横向投送信号时,0x02 里的"系统共享检查"才真正升级为 0x03 的"系统共享检查结果与横向投送及权限暴露判断分析"。