セキュリティ専門家は、不審なアクティビティのパケット キャプチャ(pcap)をレビューする際、より詳しく調べるために、オブジェクトをpcapからエクスポートしなければならない場合があります。
本チュートリアルでは、pcapからさまざまな種類のオブジェクトをエクスポートするに当たってのヒントを解説します。ネットワーク トラフィックの基礎について、読者が理解していることが前提となります。ネットワーク トラフィックのこれら(バックアップ)のpcapを使って、Wiresharkによるオブジェクトの抽出を練習します。このチュートリアルで以前解説した通り、Wiresharkの列表示が既にカスタマイズされていることも前提となります。
警告: これらのpcapのほとんどにはWindowsマルウェアが含まれ、本チュートリアルではこれらの悪意あるファイルを調べることになります。これらのファイルはWindowsマルウェアであることから、本チュートリアルはMacBookやLinuxホストのような非Windows環境で行うことが推奨されます。Linuxを実行する仮想マシン(VM)も使用できます。
本チュートリアルは、以下の内容を扱います。
- HTTPトラフィックからのオブジェクトのエクスポート
- SMBトラフィックからのオブジェクトのエクスポート
- SMTPトラフィックからの電子メールのエクスポート
- FTPトラフィックからのファイルのエクスポート
HTTPトラフィックからのオブジェクトのエクスポート
本チュートリアルで用いる最初のpcap「extracting-objects-from-pcap-example-01.pcap」は、こちら(バックアップ)から入手できます。Wiresharkでpcapを開き、図1の通り、http.requestでフィルタリングします。
- smart-fax[.]com – GET /Documents/Invoice&MSO-Request.doc
- smart-fax[.]com – GET /knr.exe
これらのオブジェクトは、次のメニュー パスを使うことで、HTTPオブジェクト リストからエクスポートできます: 「File (ファイル)」–>「Export Objects (オブジェクトのエクスポート)」–>「HTTP… 」下図に、Wiresharkでのメニュー パスを示します。
このメニュー パスから、下図の「Export HTTP object list (エクスポートするHTTPオブジェクトのリスト)」ウィンドウが表示されます。ホスト名にsmart-fax[.]comが含まれている最初の行を選択し、下図の手順で保存します。
ホスト名にsmart-fax[.]comが含まれている2つめの行を選択し、下図の手順で保存します。
- file [ファイル名]
- shasum -a 256 [ファイル名]
fileコマンドは、ファイルの種類を返します。shasumコマンドは、ファイルのハッシュ(この場合はSHA256)を返します。下図に、DebianベースのLinuxホスト上のCLIでこれらのコマンドを使った場合の画面を示します。
上記の情報により、不審なWordドキュメントが実際にMicrosoft Wordドキュメントであることが確認できます。また、不審なWindows実行ファイルも、実際にWindows実行ファイルであることが確認できます。SHA256ハッシュをVirusTotalでチェックすれば、これらのファイルがマルウェアとして検出されるかが判明します。またSHA256ハッシュをGoogleで検索すれば、さらなる情報を見つけられる可能性もあります。
Windows実行ファイルや他のマルウェア ファイルのほか、Webページも抽出できます。本チュートリアルで用いる2つめのpcap「extracting-objects-from-pcap-example-02.pcap」(こちらから入手可能。バックアップ)には、偽のPayPalログイン ページにログイン認証情報を入力しようとしている誰かのトラフィックが含まれます。
フィッシング サイトからのネットワーク トラフィックをレビューするときには、フィッシングWebページの見た目を確認したい場合もあるでしょう。下図のエクスポートするHTTPオブジェクトのメニューを介して、元のHTMLページを抽出できます。
次に、下図の通り、分離された環境のWebブラウザを使って表示させることができます。
SMBトラフィックからのオブジェクトのエクスポート
マイクロソフトのServer Message Block (SMB)プロトコルを使用し、Active Directory (AD)ベースのネットワーク全体に広がろうとするマルウェアも存在します。「Trickbot」として知られるバンキング トロジャンは、早いものでは2017年7月に、ワーム モジュールを追加しました。EternalBlueをベースとしたエクスプロイトを使うことで、SMBのネットワーク全体に広がりました。今日でも、このTrickbotワーム モジュールの兆候を見つける取り組みは続いています。
次のpcapとして、SMBを使って感染済みクライアント(10.6.26.110)からドメイン コントローラ(10.6.26.6)に広がろうとしたTrickbot感染を取り上げます。このpcap「extracting-objects-from-pcap-example-03.pcap」は、こちら(バックアップ)から入手できます。pcapをWiresharkで開きます。下図の通り、「File (ファイル)」–>「Export Objects (オブジェクトのエクスポート)」–>「SMB…」のメニュー パスを利用します。
以上により、エクスポートするSMBオブジェクトのリストが表示されます。下記の下図の通り、このリストには、pcapからエクスポート可能なSMBオブジェクトが列挙されています。
リストの真ん中あたりに、ホスト名が「\\10.6.26.6\C$」のエントリが2つあるのが見えます。それぞれのファイル名のフィールドをよく見てみると、これらはいずれもWindows実行ファイルであることがわかります。詳しくは下表をご覧ください。
パケット数 | ホスト名 | コンテンツ タイプ | サイズ | ファイル名 |
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 |
これらのファイルの適切なコピーをエクスポートするには、「Content Type (コンテンツ タイプ)」の数字が[100.00%]でなければいけません。数字が100%を下回っている場合は、ネットワーク トラフィックにおいて何らかのデータ損失が発生し、結果的にファイルが破損したり、不完全なコピーになったりしていることを意味します。これらのpcapからのTrickbot関連ファイルは、下表の通り、SHA256ハッシュです。
SHA256ハッシュ | ファイル サイズ |
59896ae5f3edcb999243c7bfdc0b17eb7fe28f3a66259d797386ea470c010040 | 712 kB |
cf99990bee6c378cbf56239b3cc88276eec348d82740f84e9d5c343751f82560 | 115 kB |
SMTPトラフィックからの電子メールのエクスポート
感染したWindowsホストをスパムボットに変えるように設計されているマルウェアも存在します。これらのスパムボットは、毎分数百件ものスパム メッセージや悪意ある電子メールを送信します。暗号化されていないSMTPを使って送られるメッセージもあり、これらのメッセージは感染トラフィックのpcapからエクスポートできます。
この一例が、次のpcap、extracting-objects-from-pcap-example-04.pcapからのものです(こちらから入手可能。バックアップ)。このpcapでは、感染したWindowsクライアントがセクストーション(性的脅迫)スパムを送信しています。Wiresharkでpcapを開き、smtp.data.fragmentでフィルター処理すると、下図に示すように、50個の件名の例が表示されます。これは、単一の感染したWindowsホストからの5秒間のネットワーク トラフィックで発生しました。
下図に示す通り、これらのメッセージはメニューパス「File (ファイル)」–>「Export Objects (オブジェクトのエクスポート)」–>「IMF…」を使用してエクスポートすることができます。IMFはInternet Message Formatの略で、.emlファイル拡張子が付加された名前で保存されます。
下図に示すように、セクストーション スパム メッセージはすべて、IMFオブジェクト リストに.emlファイル拡張子が付加されて一覧されます。
それらをエクスポートした後、これらの.emlファイルはThunderbirdなどの電子メール クライアントで表示して確認したり、下図に示すように、テキスト エディターで調べたりすることができます。
FTPトラフィックからのファイルのエクスポート
一部のマルウェア ファミリーはマルウェアの感染にFTPを使用します。次のpcapには、FTPサーバーから取得されたマルウェア実行可能ファイルと、それに続いて、同じFTPサーバーに返送された感染したWindowsホストからの情報が含まれています。
次のpcapはextracting-objects-from-pcap-example-05.pcapで、こちら(バックアップ)から入手可能です。Wiresharkでpcapを開き、ftp.request.commandでフィルター処理すると、下図に示すように、FTPコマンドを確認できます。ユーザー名(USER)とパスワード(PASS)、さらに、次の5つのWindows実行可能ファイルを取得するためのリクエスト(RETR)が続いていることがわかります: q.exe、w.exe、e.exe、r.exe、t.exe。さらに、約18秒ごとに、同じFTPサーバーにhtmlベースのログ ファイルを保存するためのリクエスト(STOR)が続きます。
現在、取得され送信されたファイルについて概念がわかっているため、下図に示すように、ftp-dataでフィルター処理することで、FTPデータ チャネルからトラフィックを確認することができます。
Wiresharkの「Export Objects (オブジェクトのエクスポート)」機能を使用して、これらのオブジェクトをエクスポートすることはできません。ただし、それぞれについて、データ チャネルからTCPストリームをたどる(フォローする)ことはできます。末尾が(SIZE q.exe)の任意の行を左クリックして、TCPセグメントの1つを選択します。その後、右クリックして、メニューを展開し、下図に示すように、メニューパス「Follow (フォロー)」–>「TCP stream (TCPストリーム)」を選択します。
これによって、FTPデータ チャネルを経由するq.exeのTCPストリームが表示されます。ウィンドウの下部近くには、「Show and save data as (データを表示して、次の形式で保存)」とラベル付けされたボタン型のメニューがあります。下図に示すように、デフォルトはASCII形式です。
下図に示すように、メニューをクリックし、「Raw (ロー)」を選択します。
これで、下図に示すように、ウィンドウにはASCIIの代わりに16進数文字が表示されます。また、下図に示すように、ウィンドウ下部近くの「Save as…(名前を付けて保存)」ボタンを使用して、これをロー バイナリとして保存できます。
ファイルをq.exeとして保存します。Linuxまたは類似のCLI環境では、以下に示すように、これがWindows実行可能ファイルであり、SHA256ハッシュを取得していることを確認してください。
$ 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ファイルについても同じプロセスに従います。
- ftp-dataでフィルター処理する
- 「Info (情報)」列に使用中のファイル名があるTCPセグメントのTCPストリームをフォローする
- 「Show and save data as (データを表示して、次の形式で保存)」を「Raw (ロー)」に変更する
- 「Save as…(名前を付けて保存)」ボタンを使用してファイルを保存する
- 保存されたファイルが実際にWindows実行可能ファイルであることを確認する
これによって、表3に示すような、以下のファイルが取得されます。
SHA256ハッシュ | ファイル名 |
32e1b3732cd779af1bf7730d0ec8a7a87a084319f6a0870dc7362a15ddbd3199 | e.exe |
ca34b0926cdc3242bbfad1c4a0b42cc2750d90db9a272d92cfb6cb7034d2a3bd | q.exe |
4ebd58007ee933a0a8348aee2922904a7110b7fb6a316b1c7fb2c6677e613884 | r.exe |
10ce4b79180a2ddd924fdc95951d968191af2ee3b7dfc96dd6a5714dbeae613a | t.exe |
08eb941447078ef2c6ad8d91bb2f52256c09657ecd3d5344023edccf7291e9fc | w.exe |
感染したWindowsホストからFTPサーバーに返送されたHTMLファイルをエクスポートする場合は、より正確に検索する必要があります。なぜでしょうか?毎回、同じファイル名が使用されるからです。ftp.request.commandでフィルター処理して、終わりまでスクロールします。下図に示すように、窃取したデータをFTPサーバーにHTMLファイルとして保存(STOR)するために、同じファイル名が使用されたことがわかります。
FTPデータ チャネル経由で送信された関連付けられたファイルを確認するには、下図に示すように、「ftp-data.command contains .html (.htmlを含むftp-data.command)」フィルターを使用します。
上図では、ファイルがFTPサーバーに保存(STOR)されるたびに、宛先ポートが変わっています。1回目はTCPポート52202、2回目はTCPポート57791、さらに3回目はTCPポート55045です。4回目は57203で、5回目は61099です。
以前と同じプロセスを使用します。ここでは、ファイル名に着目する代わりに、TCPポートに注目します。ポート52202を使用しているいずれかのTCPセグメントのTCPストリームをフォローします。TCPストリーム ウィンドウで、「Show and save data as (データを表示して、次の形式で保存)」を「Raw (ロー)」に変更します。その後、ファイルを保存します。TCPポート57791経由のHTMLファイルに対して同じことを実行します。
5つすべてのHTMLファイルに対してこれを実行すると、それらがまったく同じファイルであることがわかります。これらのテキストベースのHTMLファイルには、マルウェアによって検出されたパスワードを含め、感染したWindowsホストに関するデータが含まれています。