Windows 權限系統是一個多層次、多維度的訪問控制矩陣。許多管理員只知道「管理員組最高權限」,卻不懂 DACL、SACL、Owner、Integrity Level、Privilege、Capability、AppContainer 如何協同工作。本文為您繪製完整權限全景圖。
每個可安全保護對象(文件、註冊表鍵、進程、線程、服務、管道、Socket 等)均附帶一個 SECURITY_DESCRIPTOR 結構:
typedef struct _SECURITY_DESCRIPTOR {
BYTE Revision;
BYTE Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
PSID Owner; // 擁有者 SID
PSID Group; // 主群組 SID
PACL Sacl; // 系統審計 ACL (SACL)
PACL Dacl; // 自主訪問控制 ACL (DACL)
} SECURITY_DESCRIPTOR;
Type (Allow/Deny)、Flags (繼承)、Mask (權限位)、SID (信任主體)| 級別 | SID 後綴 | 典型進程 | 訪問規則 |
|---|---|---|---|
| System | S-1-16-16384 | Services.exe、Lsass.exe、內核模式驅動 | 可寫入所有較低級別對象 |
| High | S-1-16-12288 | 管理員提權進程 (UAC 彈窗後) | 可寫入 Medium/Low,不可寫 System |
| Medium | S-1-16-8192 | 標準用戶進程、IE 受保護模式 (Low) | 可寫入 Low,不可寫 High/System |
| Low | S-1-16-4096 | IE Protected Mode、Chrome Sandbox、Outlook 附件預覽 | 僅可寫入 Low 標記對象 (如 %LocalAppData%\Low) |
| Untrusted | S-1-16-0 | 匿名登入、未受信任進程 | 幾乎無寫入權限 |
規則:No Write Up(不可向更高完整性級別寫入),No Read Up(可選,針對機密數據)。MIC 獨立於 DACL,即使 DACL 允許,MIC 也能阻止寫入。
SeDebugPrivilege (調試進程)、SeTakeOwnershipPrivilege (取得擁有權)、SeBackup/RestorePrivilege (備份/還原繞過 ACL)AdjustTokenPrivileges 啟用CreateProcessAsUser + AppContainer 模式運行(如 IE Enhanced Protected Mode)icacls 文件/目錄 查看 DACL、完整性標籤whoami /all 查看當前 Token:用戶/組 SID、特權、完整性級別、能力accesschk.exe -s -d 文件/註冊表/進程 (Sysinternals) 顯示完整有效訪問權限Get-Acl / Set-Acl 程式化管理 ACLWindows 權限模型看似複雜,實則邏輯自洽。搞清 Owner → DACL → SACL → MIC → Privilege → Capability 六層關係,配合工具鏈驗證,即可駕馭最棘手的訪問控制難題。