系统共享检查结果与横向投送及权限暴露判断分析

系统共享检查结果与横向投送及权限暴露判断分析

0x02电子取证/系统共享检查 给出了 Windows 下 net sharewmic shareget-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:\UsersC:\inetpub、数据库目录)
  • 共享权限是否过于宽松(如 Everyone 完全控制)
  • 共享是否被攻击者创建用于载荷投放

例如:

net share
Share name   Resource                        Remark
-------------------------------------------------------------------------------
ADMIN$       C:\Windows                      Remote Admin
C$           C:\                             Default share
IPC$                                         Remote IPC
DataShare    D:\Data                         (自定义共享)
TempShare    C:\Temp                         (可疑共享)

分析要点:

  • DataShare 指向数据目录,如果权限宽松,可能导致数据泄露
  • TempShare 指向临时目录,可能是攻击者创建的载荷投放点
  • 需要检查共享权限:net share TempShare 查看访问控制列表

3. 共享权限的取证价值

通过 wmic share 可以获取更详细的共享信息:

wmic share get name,path,status

通过注册表可以查看共享的 ACL:

reg query "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares" /s

通过 PowerShell 可以查询共享权限:

Get-SmbShare | Get-SmbShareAccess

权限异常判断:

  • EveryoneAuthenticated Users 拥有完全控制权限
  • 共享路径指向系统目录或敏感数据目录
  • 共享名称伪装为系统服务(如 UpdateShareSyncFolder

4. IPC$ 空连接的风险

IPC$ 共享用于进程间通信,默认允许匿名用户建立空连接(null session)。攻击者可以通过空连接枚举用户、共享、服务等信息。

检测方法:

net use \\target\IPC$ "" /u:""
net view \\target

如果上述命令成功,说明 IPC$ 空连接未被限制,存在信息泄露风险。

修复方法:

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Lsa" /v restrictanonymous /t REG_DWORD /d 0x01 /f

0x02 Linux 侧共享检查结果分析

1. NFS 共享的风险语义

NFS(Network File System)是 Linux 环境中最常见的文件共享协议。0x02 中给出的检查命令:

showmount -e
cat /etc/exports

典型 /etc/exports 配置:

/home/shared    192.168.1.0/24(rw,sync,no_subtree_check)
/data           *(rw,no_root_squash)

风险判断:

  • * 通配符表示允许任意主机访问,属于高危配置
  • no_root_squash 表示客户端 root 用户在服务端也以 root 身份访问,可直接提权
  • rw 表示可读写,如果指向敏感目录,可能导致数据篡改

2. NFS no_root_squash 的提权风险

no_root_squash 是 NFS 最危险的配置选项之一。攻击者可以通过以下步骤实现提权:

  1. 在攻击机上以 root 身份创建 SUID 二进制文件
  2. 将文件复制到 NFS 共享目录
  3. 在目标机上执行该文件,获得 root 权限

检测方法:

grep "no_root_squash" /etc/exports

如果发现 no_root_squash 配置,需要立即修复为 root_squash(默认值)。

3. Samba 共享的风险语义

Samba 是 Linux 环境中的 SMB 实现。0x02 中给出的检查命令:

cat /etc/samba/smb.conf

典型 smb.conf 配置:

[global]
   workgroup = WORKGROUP
   security = user

[public]
   path = /srv/samba/public
   public = yes
   writable = yes
   browseable = yes

风险判断:

  • public = yesguest ok = yes 表示允许匿名访问
  • writable = yes 表示允许写入,可能导致载荷投放
  • path 指向敏感目录(如 /home/etc/var/www

4. TFTP 服务的风险语义

TFTP(Trivial File Transfer Protocol)是简单的文件传输协议,无认证机制。0x02 中给出的检查命令:

cat /etc/default/tftpd-hpa
cat /etc/xinetd.d/tftp

典型配置:

TFTP_DIRECTORY="/srv/tftp"
TFTP_OPTIONS="--secure"

风险判断:

  • TFTP 无认证,任何人可以上传/下载文件
  • 如果目录指向系统路径,可能导致任意文件读写
  • 攻击者可以通过 TFTP 投放恶意固件或配置文件

5. df 命令的局限性

0x02 中提到 df 命令无法查询 NFS/Samba/TFTP 共享。实际上,df -h 可以查看已挂载的网络文件系统:

df -hT | grep nfs
df -hT | grep cifs

df 只能看到已挂载的共享,无法看到服务端导出的共享列表。


0x03 共享检查与横向投送链的关联

1. 共享作为横向投送通道

攻击者利用共享进行横向投送的典型流程:

  1. 侦察阶段:枚举目标主机的共享(net viewshowmount -e
  2. 访问阶段:通过 SMB/NFS 连接到目标共享
  3. 投放阶段:将恶意文件复制到共享目录(copy payload \\target\ADMIN$
  4. 执行阶段:通过 PsExec、WMI、计划任务等方式远程执行

2. 共享访问的日志证据

Windows 侧可以通过事件日志追踪共享访问:

  • 事件 ID 5140:网络共享被访问
  • 事件 ID 5145:共享对象的权限检查
  • 事件 ID 5156:网络连接建立
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=5140; StartTime=(Get-Date).AddDays(-7)} |
  Select-Object TimeCreated,
    @{N='ShareName';E={$_.Properties[3].Value}},
    @{N='SourceIP';E={$_.Properties[6].Value}},
    @{N='Account';E={$_.Properties[1].Value}}

Linux 侧可以通过 auditd 追踪 NFS/Samba 访问:

grep "type=PATH" /var/log/audit/audit.log | grep "nfs\|smb"

3. 共享配置篡改的检测

攻击者可能修改共享配置以建立持久化通道:

Windows 侧

reg query "HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Shares" /s

检查是否有新增的共享键值,特别是:

  • 共享名称包含 $(隐藏共享)
  • 共享路径指向临时目录或用户目录
  • 共享权限过于宽松

Linux 侧

cat /etc/exports
cat /etc/samba/smb.conf

检查是否有新增的导出目录或共享配置,特别是:

  • no_root_squash 配置
  • public = yesguest 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 进行横向移动的功能,监控这些共享的文件创建事件是检测横向移动的关键。

公开来源:

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 组织都使用过该技术。

公开来源:

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 最危险的配置选项。

公开来源:

4. Sophos: Identifying Group Policy Attacks

Sophos 的事件响应文章说明了组策略攻击的检测方法:

  • 攻击者通过 GPO 分发勒索软件
  • 攻击者通过 GPO 禁用安全软件
  • 检测方法:监控 GPO 修改事件、检查计划任务创建、监控文件执行

最值得借鉴的一点是:组策略攻击通常表现为同步或重复的证据,如在多台机器上看到相同的计划任务或文件执行。

公开来源:


0x06 建议的交付结构

系统共享检查结果建议整理为如下表格:

检查项检查结果异常判断结论强度建议
net share发现 TempShare 指向 C:\Temp可疑共享检查创建时间和权限
wmic shareADMIN$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_squashpublic = yes 等高危配置
  • 通过访问日志追踪共享的使用情况
  • 从共享配置篡改中读出攻击者的持久化意图

当你能从 net sharewmic share/etc/exportssmb.conf 的输出中读出横向投送信号时,0x02 里的"系统共享检查"才真正升级为 0x03 的"系统共享检查结果与横向投送及权限暴露判断分析"。