このブログは、進学してかぷかぷ笑っている株式会社Armorisのアルバイトkuramubon_8810が書いています。 あるもりすぶろぐの内容は個人の意見です。
はじめに
今回はmalware-traffic-analysisのエクササイズ問題をお借りしてpcap分析への取り組み方やヒントを解説していきます。
ブログ内で使用するもの
- Wireshark v4.0.3
問題
- このネットワーク上でアクティブなホスト名 / ユーザーアカウント名はなにか? - どのような種類のマルウェアに感染しているか?
取り組みの流れ
今回は以下のような流れで取り組んでいきます。
- 被害者の特定
- 被害の詳細
- マルウェアの特定
Wiresharkの見方
詳しい見方はこちらの記事を参考にしてください。
自分は、こちらの記事を参考に表示列をカスタマイズしています。
Filter
条件を指定してパケットを絞り込むことができます
Packet List
パケット単位で一覧が表示されます
Pakcet Details
選択したパケットの詳細が表示されます
Packet Bytes
選択したパケットの実際のデータが表示されます
pcap分析
問題のサイトからASSOCIATED FILESをダウンロードし、Wiresharkで開きます。
被害者の特定
まずは、被害者を特定していきます。
DHCPサーバへの問い合わせを確認したいため、Filterを「dhcp」とし、DHCPプロトコルでのパケットのみに絞り込みます。
DHCPリクエストパケットの詳細をPacket Detailsで確認してみると、MACアドレス・IPアドレス・ホスト名がわかるはずです。
さらに、今回は登場人物が3人いることがわかりました。
次にWindowsのユーザー名を調べるためにKerberos認証のパケットを確認します。
Filterを「kerberos.CNameString」とし、パケットを絞り込みます。
そして、絞り込んだパケットの中からレスポンスのパケットを選択し、Packet DetailsからCNameStringを見つけて、列として適用します。
その後、もう一度パケットを全体を確認するとユーザー名が表示されているはずです。
それぞれのIPアドレスとユーザー名をメモし、関連付けておくと今後の作業で情報の整理がしやすくなります。
被害の詳細
次は被害の詳細を調べていきます。
まず、被害者が危険なサイトなどを開いたことによる感染などを疑い、Webトラフィックに絞り込みます。
Filterを「http.request or ssl.handshake.type eq 1」とすることで、httpリクエストか、sslハンドシェイクのClient Helloのみに絞り込むことができます。
さらに、「(http.request or ssl.handshake.type eq 1) and !(ssdp)」とすることで1900/udpを経由したhttpトラフィックであるssdpプロトコルでのパケットを除外することができます。
すると、不審なWebサイトに対してGETリクエストが送られていることが確認できます。
172.16.0[.]149からのwww.ajaxmatters[.]comへのパケットを追跡してみます。
レスポンスのfilenameを確認すると "2mIaAtxprmXlTLZeFjkIqbexiFXkZkJ.dll" とあり、なにかしらの実行可能ファイルを受け取っていることが確認できます。
バイナリデータ先頭2バイトも「MZ」となっており、dllファイルで間違いなさそうです。
172.16.0[.]131から156.96.154[.]210へのパケットもファイルの拡張子通りのデータが入っているとは限らないため追跡してみます。
一見すると問題なさそうですが、このデータの終わりを確認すると「ZM」となっており、これもやはりjpgファイルを名乗った、エンディアン変換されたEXEファイル、もしくはDLLファイルである可能性があります。
その後のパケットを確認してみると、様々なホストに対してGETリクエストを送っていることが確認できます。
Filterを「(http.request or ssl.handshake.type eq 1 or http.response) and !(ssdp)」とし、レスポンスの確認も合わせてしてみます。
すると、そのほとんどで403や302、301などが帰ってきてしまっていることがわかります。
これは稼働しているC2サーバーを探しているものだと考えられます。
この挙動はマルウェア感染時によく見られるものです。
マルウェアの特定
ここまでの情報をもとに、今度はマルウェアの詳細を特定していきます。
ここからの作業は危険が伴います。
あらゆるファイルにマルウェアの可能性があり、感染する危険があるため注意し、本PCAPを分析する際は安全な環境で行ってください。
「IP アドレスへのアクセスを試みる」ことや、「ダウンロードしたファイルを開いたり、実行したりする」ことなどはしないようにしてください。
怪しいファイルをやり取りしていた相手のIPアドレスで調べてみると、有名なものの場合などは共有されている場合があります。
※必ずダブルクォーテーションで囲う、.を[]で囲う、など対策を行いアクセスを行わないようにしてください。
今回出てきたwww.ajaxmatters[.]comなども調べてみると、Emotetを配布しているサイトであることがわかると思います
オブジェクトのエクスポート
やり取りされたデータをエクスポートし、virustotalなどで検索することで詳細を確認できます。
実際に先程のファイルをvirustotalで確認してみると、どちらも危険なファイルであることがわかります。
更に今回は暗号化されていないSMTPでのメールを確認することができます。
※Excelファイルが添付されていますが、決して開いたり実行したりはしないようにしてください。
インシデントレポートをまとめる
ここまでのパケット分析によって得られた情報は、インシデントレポートとしてまとめることができます。
今回のパケット分析では複数台不審な端末があるものの、それぞれの感染の関連性は見えませんでした。
そういった情報を整理し、まとめることで分析結果の再確認も行えるため、問題文も参考に是非やってみてください。
おわりに
今回の問題は登場人物も多く、マルウェアも2つ、3つと動いており、情報を整理するのが難しくなっています。
更に前回と違い、より危険なファイルに触れる機会も増えています。
ファイルの取り扱いには十分注意した上で、問題に取り組んでみてください。
この記事を読んでpcap分析を少しでも面白そうと感じていただければ幸いです。
ぜひ一度挑戦してみてください。