HackTheBox: Fluffy
偵察 — ポートスキャン・SMB 列挙・AD 情報収集
ポートスキャン
DNS (53), Kerberos (88), LDAP (389/636), WinRM (5985) が全て開いている → Windows ドメインコントローラ。SMB (445) が外部公開されており、匿名アクセスで共有情報を列挙できる。
SMB 共有列挙
IT 共有が匿名ユーザーに対して READ / WRITE 権限で公開されている。内部に ZIP ファイル等が置かれており、誰でも書き込みが可能な状態。
IT 共有の内容確認
IT 部門が使う ZIP ファイルが置かれた書き込み可能な共有。CVE-2025-24071 を使い、悪意ある .library-ms ファイルを含む ZIP を置くことで、Windows Explorer が自動的に UNC パスを解決して NTLM ハッシュを漏洩させる。
LDAP で BloodHound 向け AD 情報収集
p.agila → Service Account Managers (メンバー) → Service Account Managers が Service Accounts グループに GenericAll → Service Accounts が winrm_svc と ca_svc に GenericWrite
この権限チェーンを利用して Shadow Credentials 攻撃が可能。
CVE-2025-24071 — .library-ms NTLM リーク → p.agila パスワードクラック
CVE-2025-24071 概要
CVE-2025-24071 は Windows File Explorer の脆弱性。ZIP ファイルを展開する際に .library-ms ファイルが自動的に処理され、内部の simpleLocation URL に指定された UNC パス (\\attacker\share) へ SMB 接続が試みられる。これにより ユーザーがファイルを開かなくても NTLM 認証が発生し、NTLMv2 ハッシュが漏洩する。
悪意ある ZIP の作成
simpleLocation/url に攻撃者のマシン IP を指定した UNC パスを埋め込む。ZIP 展開時に Explorer が自動的にこの URL へ接続を試みる。
Responder 起動と exploit.zip アップロード
NTLMv2 ハッシュキャプチャ
IT 担当者 (p.agila) が Windows Explorer で IT 共有を開くと、Explorer が exploit.zip の .library-ms を自動処理し、UNC パスへの SMB 接続が発生。Responder がハッシュをキャプチャする。
🎣 キャプチャ済み NTLMv2 ハッシュ
p.agila::FLUFFY:<NTLMv2 hash>
hashcat でパスワードクラック
💎 取得認証情報
p.agila : prometheusx-303
AD 権限昇格 — bloodyAD + Shadow Credentials → user.txt
ACL 権限チェーンの活用
(Member)
(GenericAll)
(GenericWrite)
p.agila は Service Account Managers グループのメンバー。このグループは Service Accounts グループに対して GenericAll を持つため、p.agila 自身を Service Accounts に追加できる。Service Accounts グループは winrm_svc と ca_svc に GenericWrite を持つ → Shadow Credentials 攻撃が可能。
bloodyAD で Service Accounts グループに参加
--host には DC の FQDN (dc01.fluffy.htb)、--dc-ip には IP アドレスを分けて指定する必要がある。IP のみでは LDAP 接続が “Connection closed!” エラーになる。
HTB マシンはグループメンバーシップを定期的にリセットするため、追加後すぐに次のステップを実行することが重要。
certipy shadow auto — winrm_svc の NT hash 取得
VirtualBox Guest Additions がシステムクロックをホストの時刻 (UTC-7h 相当) に定期的にリセットする。DC との時差が 5 分を超えると KRB_AP_ERR_SKEW エラーが発生する。
対策: nmap smb2-time スクリプトで DC の UTC 時刻を取得し、TZ=UTC faketime -f "+Xs" で certipy だけ正しい時刻で動作させる。
🔑 winrm_svc NT hash
33bd09dcd697600edf6b3a7af4875767
WinRM で user.txt 取得
🚩 user.txt
13455f8ca72b8e53cf43554d3d658c05
ADCS ESC16 — ca_svc UPN 偽装 → Administrator 証明書 → NT hash
ESC16 概要
ESC16 (szOID_NTDS_CA_SECURITY_EXT 無効): ADCS で szOID_NTDS_CA_SECURITY_EXT 拡張が CA の証明書テンプレートに含まれていない場合、発行された証明書のアイデンティティは UPN (userPrincipalName) だけで決まる。
攻撃者が ca_svc の Shadow Credentials を取得し、その GenericWrite を使って ca_svc の UPN を administrator に書き換える → User テンプレートで証明書を要求 → 発行された PFX は “administrator” アイデンティティを持つ → certipy auth で Administrator の NT hash を取得できる。
ca_svc の Shadow Credentials → NT hash
🔑 ca_svc NT hash
ca0f4f9e9eb8a092addf53bb03fc98c8
ESC16: ca_svc の UPN を administrator に変更
ca_svc として User テンプレートで証明書を要求
-target には DC の FQDN (dc01.fluffy.htb) ではなく IP アドレス を指定すること。FQDN では NETBIOS 接続タイムアウトが発生する。
証明書発行後は速やかに ca_svc の UPN を元の値 (ca_svc@fluffy.htb) に戻す。
ca_svc UPN を元に戻す
certipy auth — Administrator NT hash 取得
👑 Administrator NT hash
aad3b435b51404eeaad3b435b51404ee:8da83a3fa618b6e3a00e93f676c92a6e
WinRM as Administrator → root.txt 取得
Administrator として WinRM 接続
🚩 root.txt
9cf92c2ec6ee3cadf24cf6976b1d55dc
取得フラグ一覧
🏆 Fluffy 攻略完了
user.txt : 13455f8ca72b8e53cf43554d3d658c05root.txt : 9cf92c2ec6ee3cadf24cf6976b1d55dc
全体まとめ・取得認証情報・防御側の学び
攻撃チェーン全体像
| # | 段階 | 使った脆弱性 / 手法 | 取得したもの |
|---|---|---|---|
| 1 | 初期偵察 | SMB 匿名列挙・LDAP ACL 収集 | IT 共有 (R/W)、ACL チェーン発見 |
| 2 | NTLM リーク | CVE-2025-24071 .library-ms in ZIP + Responder | p.agila:prometheusx-303 |
| 3 | Shadow Credentials | bloodyAD GenericAll + certipy shadow auto (winrm_svc) | winrm_svc NT hash → user.txt |
| 4 | ADCS ESC16 | certipy shadow auto (ca_svc) + UPN 偽装 + certipy req/auth | Administrator NT hash |
| 5 | Domain Admin | WinRM Pass-the-Hash as Administrator | root.txt |
取得認証情報一覧
| アカウント | 種別 | 値 |
|---|---|---|
| j.fleischman | 平文パスワード (提供済み) | J0elTHEM4n1990! |
| p.agila | NTLMv2 クラック | prometheusx-303 |
| winrm_svc | NT hash (Shadow Creds) | 33bd09dcd697600edf6b3a7af4875767 |
| ca_svc | NT hash (Shadow Creds) | ca0f4f9e9eb8a092addf53bb03fc98c8 |
| Administrator | NT hash (PKINIT ESC16) | 8da83a3fa618b6e3a00e93f676c92a6e |
防御側の学び
- SMB 共有の権限最小化: IT 共有への匿名・一般ユーザーの書き込み権限を禁止する。特に Windows Explorer が自動処理するファイル形式 (.library-ms, .lnk, .scf 等) のアップロードは危険。
- CVE-2025-24071 パッチ適用: Windows Update で 2025 年 1 月のセキュリティ更新プログラムを適用。.library-ms ファイルの自動処理を無効化する。
- NTLM 認証の制限:
Network security: Restrict NTLMポリシーで NTLM を制限・監視する。NTLM ハッシュのキャプチャ・クラックを防ぐ。 - AD ACL の最小権限化: GenericAll / GenericWrite を持つグループへの過剰な委任を排除する。BloodHound で定期的に権限チェーンを確認する。
- ADCS の証明書拡張設定:
szOID_NTDS_CA_SECURITY_EXTを有効化し、UPN 偽装による ESC16 を防ぐ。証明書テンプレートの適用範囲を最小化する。 - Shadow Credentials (msDS-KeyCredentialLink) の監視: AD の
msDS-KeyCredentialLink属性の変更を SIEM で監視・アラート化する。

