共享服務面臨三大風險:匿名枚舉洩露資產、弱口令暴力破解、權限過度擴散。本文基於組策略構建「身份認證→訪問控制→審計追蹤」纵深防禦體系。
路徑:計算機配置 → Windows 設置 → 安全設置 → 本地策略 → 安全選項
項目:網絡訪問:不允許 SAM 賬號和共享的匿名枚舉 → 已啟用
效果:阻斷 `net view \\IP`、`enum4linux`、RPC 空會話枚舉用戶/共享列表
項目:網絡訪問:允許匿名 SID/名稱轉換 → 已停用
注意:可能導致 Win9x/NT4 客戶端訪問異常,純 XP+ 環境安全啟用
項目:網絡訪問:可匿名訪問的共享/命名管道/注冊表路徑
操作:清空默認值 → 僅添加業務必需共享 (如公共模板庫)
前置條件:目標共享已配置 NTFS 最小權限 (僅 READ/列出目錄)
路徑:本地策略 → 用戶權利指派
「從網絡訪問此計算機」:移除 Everyone/Guest/匿名登錄 → 僅保留 ServiceAccount/BackupOperators
「拒絕從網絡訪問此計算機」:顯式添加 Guest/匿名/非授權組
原則:顯式拒絕 > 顯式允許 > 隱式拒絕
項目:網絡訪問:本地賬戶的共享和安全模式 → 經典 - 本地用戶以用戶身份驗證
配套:強制所有本地賬戶設置複雜密碼 (組策略 → 密碼策略 → 複雜性/長度/歷史)
項目:網絡訪問:讓每個人權限應用於匿名用戶 → 已停用
補充:審計所有共享 ACL,移除 Everyone 完全控制/修改權限
項目:賬戶:使用空白密碼的本地賬戶只允許進行控制台登錄 → 已啟用
配套密碼策略:最小長度 12 + 複雜性 + 最大壽命 90 天 + 歷史 24 次
路徑:本地策略 → 審核策略
審核對象訪問:成功/失敗 全選
審核登錄事件:失敗 (監控暴力破解)
審核進程跟蹤:成功 (記錄命令執行)
日志保留:安全日志 最大 1GB / 覆蓋事件按天數 (90天)
# 導入安全模板
secedit /import /db c:\windows\security\local.sdb /cfg \\domain\sysvol\baseline.inf
secedit /configure /db c:\windows\security\local.sdb
# 驗證關鍵設置
$policies = @(
"RestrictAnonymous=1",
"RestrictAnonymousSAM=1",
"ForceGuest=0",
"EnableSecurityAudit=1"
)
foreach ($p in $policies) {
$key = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa"
$val = $p.Split('=')[0]
if ((Get-ItemProperty $key).$val -ne $p.Split('=')[1]) {
Write-Warning "策略不合規: $p"
}
}
| 誤區 | 風險 | 正確姿勢 |
|---|---|---|
| 共享權限給 Everyone 完全控制 | 繞過 NTFS 權限,匿名寫入惡意腳本 | 共享權限:授權組 Change/Read;NTFS 精確到文件級 |
| 為圖方便開啟 Guest 賬號 | 單一失陷點,無法審計歸責 | 建立專用服務賬號,密碼定期輪換,MFA 保護 |
| 忽略命名管道/注冊表匿名訪問 | 利用 `lsarpc`、`samr`、 `atsvc` 等管道洩露敏感信息 | 同步精簡三類匿名訪問對象 |
| 從不審計日志 | 入侵發生後無證據、無時間線 | 部署 SIEM (Wazuh/ELK) 聚合分析,設置告警規則 |
組策略不是配置一次就萬事大吉,需納入基線管理→合規掃描→漏洞修復→版本迭代的持續生命周期。建議季度執行一次內網滲透測試驗證防禦有效性。