LoginSignup
0
0

TryHackMe Writeup:The Return of the Yeti

Posted at

はじめに

本記事はTryHackMeのWriteupです。

RoomはThe Return of the Yeti、Difficulty(難易度)はHardです。また、このRoomはAdvent of Cyber '23 Side Questシリーズの一部として作成されています。

このRoomでは、無線LANのパケットをハッキングする方法について学ぶことができます。

What's the name of the WiFi network in the PCAP?

ダウンロードしたタスクファイル(VanSpy.pcapng)をWiresharkで開くと、SSIDが確認できます。

スクリーンショット 2024-01-17 0.25.36.png

What's the password to access the WiFi network?

キャプチャされた無線LANのパケットは、暗号化されています。そのため、そのままではパケットの中身を参照することはできません。aircrack-ngを用いることでパスワードを入手し、暗号化されたパケットを復号化します。

なお、aircrack-ngでパスワードを解読するためには、PcapNg形式1VanSpy.pcapngファイルを標準のPcap形式に変更する必要があります。

WiresharkでVanSpy.pcapngファイルをVanSpy.pcapファイルに保存し直したら、以下のコマンドを実行します。

$ aircrack-ng VanSpy.pcap -w /usr/share/wordlists/rockyou.txt

スクリーンショット 2024-01-18 0.26.47.png

しばらくすると、WPAのパスワードが検出できました。

What suspicious tool is used by the attacker to extract a juicy file from the server?

airdecap-ngは、適切なWEP/WPAキーを使用して、WEP/WPAで暗号化されたpcapファイルを復号します。

WPAの解析したパスワードを使用してトラフィックを復号化するためには、以下のコマンドを実行します。

$ airdecap-ng VanSpy.pcap -e <SSID> -p <Password>

Total number of stations seen            4
Total number of packets read         45243
Total number of WEP data packets         0
Total number of WPA data packets     20635
Number of plaintext data packets         0
Number of decrypted WEP  packets         0
Number of corrupted WEP  packets         0
Number of decrypted WPA  packets     20629
Number of bad TKIP (WPA) packets         0
Number of bad CCMP (WPA) packets         0

コマンド実行後VanSpy-dec.pcapというファイルが生成されるため、再度WiresharkからVanSpy-dec.pcapファイルを開きます。

Wiresharkの「統計」から「対話」を選択してTCPのポートを調査すると、3389や4444ポートが使用されていることが分かります。

スクリーンショット 2024-01-21 0.46.51.png

Lengthなどパケットサイズを手がかりにして、特徴がないか調査します。パケットサイズが大きい怪しいパケットを発見したため、Wiresharkの「統計」から「TCPストリームグラフ」を開くと、GitHubからツールをダウンロードしているのが確認できました。

スクリーンショット 2024-01-21 1.02.45.png

What is the case number assigned by the CyberPolice to the issues reported by McSkidy?

VanSpy-dec.pcapファイルの中身を分析すると、証明書ファイルの一種である.pfxファイル2を読み取り、Base64に変換しているパケットが確認できます。従って.pfxファイルから秘密鍵を取得する為には、逆の操作を行います。

PowerShellを起動して、Base64エンコードされた文字列からファイルを生成します。

PS> $Base64String = "<BASE64_STRING>"
PS> $Bytes = [Convert]::FromBase64String($Base64String)
PS> [IO.File]::WriteAllBytes("/tmp/cert.pfx", $Bytes)

上記コマンド実行後/tmp/配下にcert.pfxファイルが生成されます。

-rw-r--r-- kali             kali               2024/01/21 15:05           2493 cert.pfx

引き続き秘密鍵を抽出する為には、opensslを使用して生成された.pfxファイルをPEM形式に変換して、以下のコマンドを実行します。

PS> openssl pkcs12 -in /tmp/cert.pfx -nocerts -out priavte_key.pem -nodes

パスワードが聞かれるため、パスワードを入力します。※パスワードはタスクの回答であるツールの名称を入力

Enter Import Password:

パスワードを入力後priavte_key.pemファイルが生成されます。

-rw------- kali             kali               2024/01/21 15:08           1932 priavte_key.pem

再度opensslを使用してpriavte_key.pemファイルから秘密鍵を出力します。

PS> openssl rsa -in /tmp/priavte_key.pem -out private.key

writing RSA key

private.keyファイルが生成されます。

-rw------- kali             kali               2024/01/21 15:09           1704 private.key

WiresharkでRDPトラフィックを復号するには「編集」から「設定」画面を開きます。また、「RSA鍵」から秘密鍵を読み込むためには「RSA鍵」の「新秘密鍵ファイルを追加...」を追加して「OK」を押します。

スクリーンショット 2024-01-21 15.44.14.png

なお、以下の様に「Protocols」のTLSから設定することもできます。ProtocolsのTLSから設定する場合は「RSA keys list」の「編集」を押します。

スクリーンショット 2024-01-21 19.10.44.png

以下の情報を入力します。

スクリーンショット 2024-01-21 19.10.22.png

ファイルから「PDUをファイルにエクスポート...」を押します。

スクリーンショット 2024-01-21 15.46.30.png

「OSI layer7」を選択して「OK」を押します。

スクリーンショット 2024-01-21 15.46.56.png

これで復号化されたRDPトラフィックが参照できます。通常、RDPはトランスポートプロトコルとしてTPKTを使用します。TPKTはTCP上で実行されるので、フィルタツールバーに(tpkt) && (ip.src == 10.1.1.1)を入力して絞り込みを行います。

スクリーンショット 2024-01-21 20.10.24.png

絞り込んだパケットを確認すると、質問の回答が見つかります。

スクリーンショット 2024-01-21 15.58.57.png

What is the content of the yetikey1.txt file?

引き続き最後の質問の回答を見つけます。

スクリーンショット 2024-01-21 16.00.27.png

おわりに

aircrack-ngやairdecap-ngなど各種ツール及びWiresharkでRDPトラフィックを復号化する方法について学ぶことができました。

参考

  1. PcapNg

  2. PKCS 12

0
0
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
0
0