This post is also available in: English (英語)
概要
セキュリティ専門家は、不審なアクティビティのパケット キャプチャ (pcap) を確認するさい、詳細な検査をするため、pcap からオブジェクトをエクスポートしたい場合があります。本チュートリアルは、pcap からマルウェアや、そのほかの種類のオブジェクトをエクスポートする方法のヒントを提供します。
本稿は Wireshark のチュートリアル シリーズの連載第 4 回です。本シリーズでは、セキュリティ専門家が Wireshark をより効果的に使用するうえで役立つヒントを提供しています。本シリーズは 2019 年 7 月の初めて公開され、2024 年でも有効な内容となるよう、更新を続けています。
パロアルトネットワークスのお客さまは、Cortex XDR と XSIAM により、本稿で取り上げたマルウェア サンプルからより適切に保護されています。また弊社のお客様は、Advanced WildFire、DNS Security、Advanced Threat Prevention、Advanced URL Filtering などのクラウド配信型セキュリティサービスを有効にした次世代ファイアウォール (NGFW) により、本稿で取り上げた脅威からの保護を受けています。
侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、こちらの問い合わせフォームからご連絡いただくか、infojapan@paloaltonetworks.com まで電子メールにてお問い合わせください (ご相談は弊社製品のお客様には限定されません)。
関連する Unit 42 のトピック | pcap, Wireshark, Wireshark Tutorial |
要件および補足資料
本稿は、pcap ファイルから明らかにされる情報を理解できるよう、ある程度ネットワーク トラフィックの基本知識をお持ちの Wireshark ユーザーを読者として想定しています。本稿をお読みになる前に、Wireshark のパケット一覧で列表示をカスタマイズする方法と表示フィルター式の使いかたについて取り上げた前回までのチュートリアルの内容を理解しておいてください。
また、Wireshark の比較的最近のバージョン (最低でもバージョン 3.6.2 かそれ以降) を準備しておいてください。本稿では、Wireshark バージョン 4.2.2 を使い、以前のチュートリアルで使ったカスタマイズ済みの列表示を使います。お使いのオペレーティング システム (OS) 用の Wireshark の最新バージョンを使うことを強くお勧めします。
本チュートリアルの pcap のなかには、Microsoft Windows を標的とするマルウェアや悪意のあるコードが含まれていることがあります。このため、本チュートリアルの pcap 確認には Windows 以外の環境で Wireshark を使うことをお勧めします。Windows を標的とする悪意のあるトラフィックを Wireshark で確認するには、BSD や Linux、macOS などのオペレーティング システム環境を使うのが望ましいでしょう。
本チュートリアルで使う pcap ファイルは、こちらの GitHub リポジトリーにホストしたパスワード付き ZIP アーカイブに格納してあります。ここから Wireshark-tutorial-extracting-objects-5-pcaps.zip という名前の ZIP ファイルをダウンロードしてください。ZIP ファイル展開用のパスワードは「infected」です (図 1)。
ZIP を展開すると以下の 5 つの pcap が含まれています。
- Wireshark-tutorial-extracting-objects-from-a-pcap-1-of-5.pcap
- Wireshark-tutorial-extracting-objects-from-a-pcap-2-of-5.pcap
- Wireshark-tutorial-extracting-objects-from-a-pcap-3-of-5.pcap
- Wireshark-tutorial-extracting-objects-from-a-pcap-4-of-5.pcap
- Wireshark-tutorial-extracting-objects-from-a-pcap-5-of-5.pcap
ネットワーク パケット アナライザーである Wireshark は、複数の IP パケットとそれに関連する TCP フレームからのデータを組み合わせて pcap の内容を明らかにします。Wireshark によって明らかにされたこれらのオブジェクトの一部は抽出可能です。次のセクションでは、HTTP トラフィックからファイルをエクスポートする方法について説明します。
HTTP トラフィックからのファイルのエクスポート
Windows ベースの感染のなかには、暗号化されていない HTTP トラフィック経由で送信されるマルウェア バイナリーや悪意のあるコードを含むものがあります。pcap からは、そうしたオブジェクトを抽出することができます。最初の pcap (Wireshark-tutorial-extracting-objects-from-a-pcap-1-of-5.pcap) はそうしたサンプルのひとつです。このファイルを Wireshark で開き、図 2 のように表示フィルタに「http.request」と入力してフィルタリングしてください。
http.request でフィルタリングした後、smart-fax[.]com に対する 2 つの GET リクエストを見つけてください。最初のリクエストは .doc で終わっています。これは最初のリクエストが Microsoft Word ドキュメントを返した可能性があることを示しています。2 つめのリクエストは .exe で終わっています。これは 2 つめのリクエストが Windows の実行可能ファイルを返した可能性があることを示しています。HTTP GET リクエストを以下に示します。
- smart-fax[.]com - GET /Documents/Invoice&MSO-Request.doc
- smart-fax[.]com - GET /knr.exe
Wireshark の以下のメニューをたどると HTTP のオブジェクト リストからこれらのオブジェクトをエクスポートできます。
- File (ファイル) → Export Objects (オブジェクトをエクスポート) → HTTP...
図 3 は、Wireshark でのメニュー パス (メニューをクリックする順序) を示しています。
このメニュー パスをたどると、図 4 および 図 5 に示すように、「Wireshark Export HTTP object list (Wireshark・エクスポート・HTTP オブジェクト一覧)」というタイトルのウィンドウが表示されます。「Invoice&MSO-Request.doc」というファイル名がある最初の行を選択して、図 4 に示すように保存します。knr.exe というファイル名をもつ 2 行目を選択し、図 5 に示すように保存します。
なお、HTTP オブジェクト一覧の [Content Type (コンテントタイプ)] ドロップダウンに含まれているのは、ファイルをホストしているサーバー側が HTTP レスポンス ヘッダー内で指定したファイル種類であるという点に注意してください。場合によっては、検出回避を狙って、マルウェアをホストするサーバーが意図的に Windows 実行可能ファイルを別の種類のファイルだとラベリングしていることがあります。さいわい、本チュートリアル最初の pcap は非常に単純な例です。
これらのファイルを pcap から抽出したら、ファイルの種類を確認する必要があります。MacBook または Linux 環境では、ターミナル ウィンドウまたはコマンド ライン インターフェイス (CLI) から次のコマンドを使用すれば確認できます。
- file [ファイル名]
- shasum -a 256 [ファイル名]
file コマンドはファイルの種類を識別します。shasum コマンドはファイル ハッシュを返します。ここでは SHA256 のファイル ハッシュを返しています。図 6 は、Xubuntu ベースの Linux ホストの CLI でこれらのコマンドを使用したようすを示しています。
図 6 のコマンドとその結果を以下に示します。
1 2 3 4 5 6 7 8 |
コマンド: file Invoice\&MSO-Request.doc 結果: Invoice&MSO-Request.doc: Composite Document File V2 Document, Little Endian, Os: Windows, Version 6.3, Code page: 1252, Template: Normal.dotm, Last Saved By: Administrator, Revision Number: 2, Name of Creating Application: Microsoft Office Word, Create Time/Date: Thu Jun 27 18:24:00 2019, Last Saved Time/Date: Thu Jun 27 18:24:00 2019, Number of Pages: 1, Number of Words: 0, Number of Characters: 1, Security: 0 コマンド: file knr.exe 結果: knr.exe: PE32 executable (GUI) Intel 80386, for MS Windows コマンド: shasum -a 256 Invoice\&MSO-Request.doc 結果: f808229aa516ba134889f81cd699b8d246d46d796b55e13bee87435889a054fb Invoice&MSO-Request.doc コマンド: shasum -a 256 knr.exe 結果: 749e161661290e8a2d190b1a66469744127bc25bf46e5d0c6f2e835f4b92db18 knr.exe |
上記の情報により、この不審な Word 文書は実際に Microsoft Word 文書であることが確認されます。また、不審な Windows 実行可能ファイルは実際に Windows 実行可能ファイルであることも確認されます。VirusTotal でこれらの SHA256 ハッシュを確認し、これらのファイルがマルウェアとして検出されているかどうかを確認できます。また、これらの SHA256 ハッシュでインターネット検索を実行し、追加の情報を見つけることもできます。
これらの Windows 実行可能ファイルそのほかのマルウェア ファイルに加え、暗号化されていない HTTP トラフィックからは Web ページも抽出できます。
Wireshark を使ってチュートリアルの 2 つめの pcap、Wireshark-tutorial-extracting-objects-from-a-pcap-2-of-5.pcap を開いてください。
[翻訳注: チュートリアル 2 つめの pcap からの HTTP トラフィック抽出処理は、隔離された検証環境で行ってください。隔離環境ではない場合は、HTML ファイルの抽出まで行った後、ファイルを Web ブラウザー等で開かないようにしてください]この pcap には、何者かが偽の PayPal ログイン ページにログイン資格情報を入力しているトラフィックが含まれています。
フィッシング サイトから得たネットワーク トラフィックを確認する場合、フィッシング Web ページが実際にどのように見えるかを知りたい場合があります。図 7 に示す [HTTP オブジェクトのエクスポート] メニューを使えば、HTML ページ、画像、そのほかの Web コンテンツを抽出できます。この場合、最初の HTML ページだけを抽出・表示可能です。最初の HTML ページを抽出して Web ブラウザーで表示すると、以下の図 8 に示すページが表示されるはずです。
この方法は注意して使ってください。pcap から悪意のある HTML コードを抽出して Web ブラウザで表示すると、その HTML が悪意のあるドメインを呼び出す可能性があります。このため、隔離された検証環境での実行をお勧めします。
SMB トラフィックからのファイルのエクスポート
マルウェアのなかには、Microsoft のサーバー メッセージ ブロック (SMB) プロトコルを使って Active Directory (AD) ベースのネットワーク全体に拡散するものがあります。Trickbot として知られるバンキング型トロイの木馬は、早くも 2017 年 7 月には、EternalBlue をベースとしたエクスプロイトを使い、SMB を介してネットワーク全体に拡散するワーム モジュールを追加しました。Trickbot はすでにアクティブなマルウェア ファミリーではないのですが、このセクションでのチュートリアルにはもってこいなので、ここでは 2019 年 6 月に発生した Trickbot 感染を使います。
Wireshark を使ってチュートリアルの 3 つめの pcap、Wireshark-tutorial-extracting-objects-from-a-pcap-3-of-5.pcap を開いてください。この pcap には、感染クライアントから SMB トラフィックを介してマルウェアがドメイン コントローラーに送信される、2019 年 6 月の Trickbot 感染が含まれています。
この pcap は、次の AD 環境で取得されたものです。
- ドメイン: cliffstone[.]net
- ネットワーク セグメント: 10.6.26[.]0 〜 10.6.26[.]255 (10.6.26[.]0/24)
- ドメイン コントローラーの IP アドレス: 10.6.26[.]6
- ドメイン コントローラーのホスト名: CLIFFSTONE-DC
- セグメント ゲートウェイ: 10.6.26[.]1
- ブロードキャスト アドレス: 10.6.26[.]255
- Windows クライアント: QUINN-OFFICE-PC (10.6.26[.]110)
この pcap では、Trickbot 感染が SMB 経由で 10.6.26[.]110 にある感染クライアントから 10.6.26[.]6 にあるドメイン コントローラーへと拡散しています。これと関連するマルウェアを確認するには、図 9 に示すメニュー パスを使います。
- File (ファイル) → Export Objects (オブジェクトをエクスポート) → SMB...
これにより、[Export SMB object list (エクスポート SMB オブジェクト一覧)] が表示され、pcap からエクスポートできる SMB オブジェクトが一覧表示されます (図 10)。
リストの中央付近にある 2 つのエントリーに「\\10.6.26[.]6\C$」というホスト名のものがあります。それぞれの [Filename (ファイル名)] のフィールドを詳しく調べると、これらが 2 つの Windows 実行可能ファイルであることがわかります。詳細を以下の表 1 で確認してください。
パケット番号 | ホスト名 | コンテント タイプ | サイズ | ファイル名 |
7058 | \\10.6.26[.]6\C$ | FILE (712704/712704) W [100.0%] | 712 kB | \WINDOWS\d0p2nc6ka3f_fixhohlycj4ovqfcy_smchzo_ub83urjpphrwahjwhv_o5c0fvf6.exe |
7936 | \\10.6.26[.]6\C$ | FILE (115712/115712) W [100.0%] | 115 kB | \WINDOWS\oiku9bu68cxqenfmcsos2aek6t07_guuisgxhllixv8dx2eemqddnhyh46l8n_di.exe |
表 1. 2 つの Windows 実行可能ファイルの [Wireshark Export SBM object list (Wireshark・エクスポート・SMB オブジェクト一覧)] データ。
これらのファイルの正確なコピーをエクスポートするには、[コンテントタイプ] 列が「[100.00%]」になっている必要があります。ここが 100% 未満の数値になっている場合、ネットワーク トラフィックでデータが失われてファイルのコピーが破損している、ないし不完全であることを意味します。pcap から得られるこれら Trickbot 関連ファイルは、表 2 に示した SHA256 ファイル ハッシュを持っています。
SHA256 ハッシュ値 | ファイル サイズ |
59896ae5f3edcb999243c7bfdc0b17eb7fe28f3a66259d797386ea470c010040 | 712 kB |
cf99990bee6c378cbf56239b3cc88276eec348d82740f84e9d5c343751f82560 | 115 kB |
表 2. 3 つめの pcap の SMB トラフィックから見つかった Windows 実行可能ファイルの SHA256 ファイル ハッシュ
SMTP トラフィックからの電子メールのエクスポート
特定の種類のマルウェアは、感染した Windows ホストをスパムボットに変えるように設計されています。これらのスパムボット ホストは、毎分数百通ものスパム メッセージや悪意のある電子メールを送信します。これらのメッセージのいずれかが暗号化されていない SMTP を使用して送信された場合、これらのメッセージを pcap のトラフィックからエクスポートできます。
次に使う pcap (Wireshark-tutorial-extracting-objects-from-a-pcap-4-of-5.pcap) はそうしたサンプルのひとつです。この pcap では、感染した Windows クライアントが セクストーション スパム メッセージを送信します。この pcap には、感染した単一 Windows ホストからの 5 秒間のスパムボット トラフィックが含まれています。
このファイルを Wireshark で開き、図 11 のように表示フィルタに「smtp.data.fragment」と入力してフィルタリングしてください。これにより、Wireshark のパケット一覧部の [Info] 列に 50 件の件名のサンプルが表示されるはずです。
図 12 に示すように、次のメニュー パスを使用してこれらのメッセージをエクスポートできます。
- File (ファイル) → Export Objects (オブジェクトをエクスポート) → IMF...
IMF は「Internet Message Format」を表し、.eml というファイル拡張子をもつ名前で保存されます。
図 13 に示すように、これらのセクストーション スパム メッセージはすべて、.eml というファイル拡張子つきで IMF オブジェクトの一覧に表示されています。
図 14 に示すように、エクスポートされた .eml ファイルはテキスト エディターか Thunderbird のような電子メール クライアントを使って確認できます。
FTP トラフィックからのファイルのエクスポート
一部のマルウェア ファミリーは、感染時に FTP を使用します。次の pcap には、FTP サーバーから取得されたマルウェア実行可能ファイルが入っています。そのほか、感染 Windows ホストから同じ FTP サーバーに送られた、窃取された情報も入っています。
Wireshark を使って本チュートリアルの最後の pcap、Wireshark-tutorial-extracting-objects-from-a-pcap-5-of-5.pcap を開いてください。Wireshark でこの pcap を開いたら、以下のように入力してフィルタリングします。
- ftp.request.command or (ftp-data and tcp.seq eq 1)
結果を以下の図 15 に示します。ここでは、ユーザー名 (USER コマンド) と、パスワード (PASS コマンド) を確認できるはずです。この後 RETR というコマンドが続いていますが、これはファイル取得のリクエストです。フィルタリングされた結果からは次のファイルを取得する RETR コマンドが明らかになります。
- RETR q.exe
- RETR w.exe
- RETR e.exe
- RETR r.exe
- RETR t.exe
図 15 では、この Wireshark フィルターが FTP データ チャネル経由で送信されたファイルの先頭部分も表示しています。これにより、パケット一覧部には、.exeファイルを要求している RETR コマンドの後ろには、リクエストの保存を表す STOR コマンドが続いていて、これらのコマンドは同じ FTP サーバーに対して約 18 秒ごとに HTML ベースのログ ファイルを送信するように要求していることがわかります。
Wireshark バージョン 4.0.0 以降では、図 16 に示すように、次のメニュー パスを使用して FTP データ チャネルからファイルをエクスポートできます。
- File (ファイル) → Export Objects (オブジェクトをエクスポート) → FTP-DATA...
これにより、[Export FTP-DATA object list (エクスポート FTP-DATA オブジェクト一覧)] というウィンドウが表示され、pcap からエクスポートできる FTP オブジェクトが一覧表示されます (図 17)。ここには、感染 Windows ホストから窃取された情報を含む、FTP サーバーに送信されたすべての HTML ファイルが一覧表示されます。
以下の図 18 に示すように、エクスポートされたファイルはテキスト エディターやブラウザーで表示できます。これらのファイルには、感染ホストの電子メール クライアントと Web ブラウザーから得たログイン認証情報が含まれています。
この FTP-DATA のエクスポート機能は .html ファイルについては有効に機能しますが、FTP サーバーから取得された .exe ファイルについてはどれについても表示してくれません。そこでこれらはべつの方法でエクスポートする必要があります。
その方法の場合、FTP サーバーから返された各 .exe ファイルの FTP データ ストリームの開始位置を見つけねばなりません。それらの TCP フレームを検索するには、次の Wireshark フィルタを使用します。
- ftp-data.command contains ".exe" and tcp.seq eq 1
結果を以下の図 19 に示します。この図から、.exeファイルごとの FTP データ ストリームを確認できるようになります。
図 19 の Wireshark のパケット一覧部に示されている各フレームの TCP ストリームを追跡すればこれらのファイルを TCP ストリーム ウィンドウからエクスポートできます。まず、[Info] 列に「(SIZE q.exe)」と表示されている 1 つめのフレームを選んでください。次に、このフレームを右クリックし、コンテキスト メニューを [Follow (追跡)]、[TCP Stream (TCPストリーム)] の順にクリックしてください。TCP ストリームが追跡されます (図 20)。
TCP ストリーム ウィンドウには、これが Windows 実行可能ファイルまたは DLL ファイルであることを示すヒントが表示されています。つまり、最初の 2 バイトが ASCII 文字で MZ です。TCP ストリームには「This program cannot be run in DOS mode (このプログラムは DOS モードでは実行できません)」という文字列があることもわかります。
ただし、これがほんとうに Windows 実行可能ファイルないし DLL ファイルなのかを確認するには TCP ストリームからエクスポートしてやる必要があります。そうするには、[Show data as (としてデータを表示)] ドロップダウンから [Raw (Raw (無加工) 形式)] を選びます。これを行う方法については、図 21 を参照してください。
これで TCP ストリームの情報は 16 進数文字列として表示されて、[Save as... (...として保存)] ボタンを使ってこの Raw データをファイルとしてエクスポートできるようになります (図 22)。これは、q.exe 用の FTP データ ストリームなので、ファイルを保存時に手でその名前を入力してやる必要があります。
Linux ないし同等の CLI 環境で q.exe ファイルを保存しているのであれば、以下に示すコマンドを使用すると、これが Windows 実行可能ファイルであることを確認して、その SHA256 ハッシュを取得できます。
1 2 3 4 |
コマンド: file q.exe 結果: q.exe: PE32 executable (GUI) Intel 80386, for MS Windows コマンド: shasum -a 256 q.exe 結果: ca34b0926cdc3242bbfad1c4a0b42cc2750d90db9a272d92cfb6cb7034d2a3bd q.exe |
この SHA256 ハッシュは、VirusTotal でマルウェアとして高い検出率を持つものです。同じやりかたで、pcap 内にあるほかの.exe ファイルもエクスポートします。
これにより、以下の表 3 に示すようなファイルが得られるはずです。
SHA256 ハッシュ値 | ファイル名 |
ca34b0926cdc3242bbfad1c4a0b42cc2750d90db9a272d92cfb6cb7034d2a3bd | q.exe |
08eb941447078ef2c6ad8d91bb2f52256c09657ecd3d5344023edccf7291e9fc | w.exe |
32e1b3732cd779af1bf7730d0ec8a7a87a084319f6a0870dc7362a15ddbd3199 | e.exe |
4ebd58007ee933a0a8348aee2922904a7110b7fb6a316b1c7fb2c6677e613884 | r.exe |
10ce4b79180a2ddd924fdc95951d968191af2ee3b7dfc96dd6a5714dbeae613a | t.exe |
表 3. pcap 内の FTP データ トラフィックから得られた実行可能ファイル
この 5 つの .exeファイルはすべて Windows 実行可能ファイルで、どれも VirusTotal でマルウェアとして高い検出率を持っています。
結論
Wireshark を使えば、複数の IP パケットとそれに付随する TCP フレームからのデータを組み合わせて、平文のネットワーク トラフィック上で送信されたオブジェクトを容易に表示させられるのでたいへん便利です。本 Wireshark チュートリアルで解説した方法を使えば、pcap からこれらのオブジェクトを抽出することもできます。不審なアクティビティを調査していてオブジェクトを検査せねばならないとき、この方法は非常に役立ちます。
本シリーズの次回のチュートリアルでは pcap の HTTP トラフィックを復号する方法を取り上げます。
パロアルトネットワークスのお客さまは、Cortex XDR と XSIAM により、本稿で取り上げたマルウェア サンプルからより適切に保護されています。また弊社のお客様は、Advanced WildFire、DNS Security、Advanced Threat Prevention、Advanced URL Filtering などのクラウド配信型セキュリティサービスを有効にした次世代ファイアウォール (NGFW) により、本稿で取り上げた脅威からの保護を受けています。
侵害の懸念があり弊社にインシデントレスポンスに関するご相談をなさりたい場合は、こちらの問い合わせフォームからご連絡いただくか、infojapan@paloaltonetworks.com まで電子メールにてご連絡いただくか、下記の電話番号までお問い合わせください(ご相談は弊社製品のお客様には限定されません)。
- 北米フリーダイヤル: 866.486.4842 (866.4.UNIT42)
- EMEA: +31.20.299.3130
- APAC: +65.6983.8730
- 日本: (+81) 50-1790-0200
IoC (侵害指標)
本チュートリアルで言及したマルウェアをホストしている URL:
- hxxp://smart-fax[.]com/Documents/Invoice&MSO-Request.doc
- hxxp://smart-fax[.]com/knr.exe
本チュートリアルで言及したマルウェアの SHA256 ハッシュ:
- 08eb941447078ef2c6ad8d91bb2f52256c09657ecd3d5344023edccf7291e9fc
- 10ce4b79180a2ddd924fdc95951d968191af2ee3b7dfc96dd6a5714dbeae613a
- 32e1b3732cd779af1bf7730d0ec8a7a87a084319f6a0870dc7362a15ddbd3199
- 4ebd58007ee933a0a8348aee2922904a7110b7fb6a316b1c7fb2c6677e613884
- 59896ae5f3edcb999243c7bfdc0b17eb7fe28f3a66259d797386ea470c010040
- 749e161661290e8a2d190b1a66469744127bc25bf46e5d0c6f2e835f4b92db18
- cf99990bee6c378cbf56239b3cc88276eec348d82740f84e9d5c343751f82560
- ca34b0926cdc3242bbfad1c4a0b42cc2750d90db9a272d92cfb6cb7034d2a3bd
- f808229aa516ba134889f81cd699b8d246d46d796b55e13bee87435889a054fb
追加リソース
- Wireshark によるパケット解析講座 1: Wiresharkの表示列をカスタマイズする – パロアルトネットワークス Unit 42
- Wireshark によるパケット解析講座 2: 脅威インテリジェンス調査に役立つフィルタリング設定 – パロアルトネットワークス Unit 42
- Wireshark によるパケット解析講座 3: ホストとユーザーを特定する – パロアルトネットワークス Unit 42
- Wireshark によるパケット解析講座 8:HTTPSトラフィックの復号 – パロアルトネットワークス Unit 42
- Wireshark によるパケット解析講座: Wireshark ワークショップビデオシリーズを公開 – パロアルトネットワークス Unit 42
- Wireshark によるパケット解析講座および WireShark クイズの全リスト – パロアルトネットワークス Unit 42