COMMAND VAULT // REASONING ATTACHEDEvery command must answer “why”.
Syntax, purpose, expected output, next decision và common mistake — trong cùng một record.
IDENTITY // WINDOWS
Convert-NameToSid
$sid = Convert-NameToSid wleyChuyển principal name thành SID để lọc ACE.
WHYACE gắn quyền với trustee SID, không dựa vào tên hiển thị.
EXPECTEDSID dạng S-1-5-21-…
NEXTDùng $sid trong Get-DomainObjectACL filter.
COMMON FAILURENhầm local SID với domain SID hoặc không đối chiếu identity context.
ACL // WINDOWS
Get-DomainObjectACL
Get-DomainObjectACL -Identity * -ResolveGUIDs | ? { $_.SecurityIdentifier -eq $sid }Tìm object mà SID hiện tại có direct control.
WHYDirectory ACL lưu ACE theo trustee SID và target object.
EXPECTEDObjectDN, right, ObjectAceType, trustee và inheritance.
NEXTTriage right và đặt câu hỏi 'so what?'.
COMMON FAILUREQuên -ResolveGUIDs hoặc chỉ query một target đã đoán trước.
GROUPS // WINDOWS
Get-DomainGroup
Get-DomainGroup -Identity 'Help Desk Level 1' | select memberofTìm parent groups để mở rộng transitive control.
WHYNested membership có thể nối quyền qua nhiều tầng.
EXPECTEDDanh sách parent group DN.
NEXTPhân tích outbound control của từng parent.
COMMON FAILUREDừng ở một tầng hoặc không kiểm soát vòng lặp.
ACL LAB // WINDOWS
Set-DomainObject
Set-DomainObject -Identity adunn -Set @{serviceprincipalname='nonexistent/acl-lab'}Minh họa GenericWrite/GenericAll → fake SPN trong lab.
WHYQuyền ghi trên user có thể cho phép sửa servicePrincipalName.
EXPECTEDSPN lab trên target và Event 5136 tương ứng.
NEXTThực hiện lab evidence rồi xóa SPN trước khi mất quyền.
COMMON FAILUREChạy ngoài scope hoặc quên cleanup order.
CLEANUP // WINDOWS
Set-DomainObject
Set-DomainObject -Identity adunn -Clear serviceprincipalnameXóa SPN giả khi vẫn còn quyền ghi.
WHYRời group trước có thể làm mất khả năng rollback.
EXPECTEDSPN trở về baseline.
NEXTRời group, rollback password và re-enumerate.
COMMON FAILURECleanup sai thứ tự gây deadlock.
DETECTION // WINDOWS
Get-WinEvent
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=5136}Tìm sự kiện thay đổi directory object.
WHY5136 ghi actor, object và attribute khi auditing phù hợp được bật.
EXPECTEDDirectory Service Change events.
NEXTTrích SDDL và đối chiếu change log.
COMMON FAILUREKhông bật audit policy hoặc nhầm timestamp/timezone.
DETECTION // WINDOWS
ConvertFrom-SddlString
ConvertFrom-SddlString '<SDDL_STRING>'Dịch SDDL thành cấu trúc quyền dễ đọc.
WHYSDDL tối ưu cho máy, không cho analyst đọc trực tiếp.
EXPECTEDOwner/group/DACL/ACE đã phân tích.
NEXTXác định ai thay đổi quyền gì và ghi vào report.
COMMON FAILUREDiễn giải SDDL thiếu object context.