必须禁用network trace服务权限、封锁抓包工具路径并收紧ndis驱动访问:在组策略中移除users组对“network trace”服务的启停权限;通过软件限制策略或applocker禁止windump.exe等工具运行;用icacls命令拒绝users组读取netbt.sys、ndis.sys、wfplwf.sys驱动。

Win10中普通用户通过cmd或PowerShell执行netsh trace start、windump、tshark等命令抓取网络数据包,会泄露敏感通信内容;必须从权限源头阻断其调用底层网络驱动和访问原始套接字的能力。
禁用普通用户对网络跟踪服务的控制权
Windows网络抓包依赖“Network Trace”服务(NetTrace)提供内核级数据采集接口。该服务默认允许Authenticated Users组启动/停止,需立即收回权限。
打开组策略编辑器(gpedit.msc)→ 计算机配置 → Windows设置 → 安全设置 → 系统服务 → 双击“Network Trace”服务 → 勾选“定义此策略设置” → 点击“编辑安全性” → 在权限窗口中,移除Users组和Authenticated Users组的“启动”“停止”“暂停”“继续”全部权限。
【必须保留Administrators和SYSTEM的完全控制权限,否则管理员自身将无法使用netsh trace】
点击“确定”保存后,普通用户执行netsh trace start时会直接报错:拒绝访问(Error: 0x80070005)。
封锁关键抓包工具的可执行路径
即使服务被锁,用户仍可能通过第三方工具绕过。需在系统层禁止常见抓包程序运行:
方法一:用“不运行指定的Windows应用程序”策略
用户配置 → 管理模板 → 系统 → 不运行指定的Windows应用程序 → 启用 → 点击“显示” → 在值中逐行添加:windump.exe、tshark.exe、dumpcap.exe、rawshark.exe、Wireshark.exe
方法二:用AppLocker创建更严格的可执行规则(仅限专业版/企业版)
计算机配置 → 应用程序控制策略 → AppLocker → 可执行规则 → 新建规则 → 操作选“拒绝” → 用户或组选“Domain Users”或“Users” → 条件选“路径”,填入C:\Program Files\Wireshark\* → 完成
注意:AppLocker规则优先级高于传统软件限制策略,且能拦截子进程派生行为。
收紧原始套接字与NDIS驱动访问权限
抓包工具最终需调用SOCK_RAW或NDISAPI接口。这些能力由系统安全描述符控制,不能靠界面策略关闭。
第一步:以管理员身份运行命令提示符
第二步:执行以下三条icacls命令,递归拒绝Users组读取关键驱动模块
icacls "%SystemRoot%\System32\drivers\netbt.sys" /deny Users:(RX)
icacls "%SystemRoot%\System32\drivers\ndis.sys" /deny Users:(RX)
icacls "%SystemRoot%\System32\drivers\wfplwf.sys" /deny Users:(RX)
这三者分别是NetBIOS传输、NDIS中间层、Windows Filtering Platform轻量级筛选器驱动——缺少任一模块,tshark/windump均无法初始化捕获句柄。











