pcap分析のすすめ

このブログは、進学してかぷかぷ笑っている株式会社Armorisのアルバイトkuramubon_8810が書いています。 あるもりすぶろぐの内容は個人の意見です。

はじめに

今回はmalware-traffic-analysisのエクササイズ問題をお借りしてpcap分析への取り組み方やヒントを解説していきます。

ブログ内で使用するもの

問題

pcapとアラートに基づいて、インシデントレポートを書いてください。
インシデントレポートには、以下3つのセクションが必要です。
- 要約
    - 簡潔かつ、具体的に何が起こったのか(いつ、誰が、何が)
- 詳細
    - 被害者の詳細(ホスト名、IPアドレス、MACアドレス、Windowsのユーザー名
- IoC
    - 攻撃の詳細(IPアドレス、ドメインやURL、マルウェアのバイナリを抽出できる場合はSHA256のハッシュ値)

取り組みの流れ

今回は以下のような流れで取り組んでいきます。

Wiresharkの見方

詳しい見方はこちらの記事を参考にしてください。
自分は、こちらの記事を参考に表示列をカスタマイズしています。

Filter

条件を指定してパケットを絞り込むことができます

Packet List

パケット単位で一覧が表示されます

Pakcet Details

選択したパケットの詳細が表示されます

Packet Bytes

選択したパケットの実際のデータが表示されます

pcap分析

問題のサイトからASSOCIATED FILESをダウンロードし、Wiresharkで開きます。

被害者の特定

まずは、被害者を特定していきます。
基本的に通信をする以上、DHCPサーバへの問い合わせは避けられないであろうため、Filterを「dhcp」とし、DHCPプロトコルでのパケットのみに絞り込みます。 DHCPリクエストパケットの詳細をPacket Detailsで確認してみると、MACアドレスIPアドレス・ホスト名がわかるはずです。

次にWindowsのユーザー名を調べるためにKerberos認証のパケットを確認します。
Filterを「kerberos.CNameString」とし、パケットを絞り込みます。 そして、絞り込んだパケットの中からレスポンスのパケットを選択し、Packet DetailsからCNameStringを見つけて、列として適用します。 その後、もう一度パケットを全体を確認するとユーザー名が表示されているはずです。

被害の詳細

次は被害の詳細を調べていきます。
基本的に被害者側からなにかしない限りは被害を受けるとは考えづらいため、クライアント側からのパケットに絞り込みます。
Filterを「http.request or ssl.handshake.type eq 1」とすることで、httpリクエストか、sslハンドシェイクのClient Helloのみに絞り込むことができます。 すると、なにか怪しいファイルをポストしていることがわかると思います。

そのパケットについて追跡を行ってみると、拡張子に対して少し大きなファイルが返ってきていることが確認できます。 自称jpegファイルのバイナリデータ先頭2バイトを確認すると「MZ」となっており、jpegファイルを名乗ったEXEファイル、もしくはDLLファイルであることがわかります。

マルウェアの特定

ここまでの情報をもとに、今度はマルウェアの詳細を特定していきます。
ここからの作業は危険が伴います。
ウイルス感染の危険だけでなく、法律上問題がある場合もあるため、注意してください。
間違っても、「IP アドレスへのアクセスを試みる」こと、「ダウンロードしたファイルを開いたり、実行したりする」ことなどは絶対にしないようにしてください。

怪しいファイルをやり取りしていた相手のIPアドレスで調べてみると、有名なものの場合などは共有されている場合があります。
※必ずダブルクォーテーションなどで囲って、アクセスを行わないようにしてください。
今回のマルウェアを調べてみると、Malware Bazaarなどで共有されており、詳細を確認できるかと思います。

オブジェクトのエクスポート

やり取りされたデータをエクスポートし、ハッシュ値を求めた後に、virustotalなどで検索することで詳細を確認できます。 fileコマンドで1.jpgのファイル形式を確認してみると、やはりjpgファイルでないことがわかります

しかし、ハッシュ値を計算してvirustotalで検索すると、これは正規ファイルの可能性があることが確認できます。 これら自体はマルウェアではなさそうですが、マルウェアの活動によって取得されているものである可能性が高く、IOCとしてマークしておくべきものです。

インシデントレポートをまとめる

ここまでのパケット分析によって得られた情報は、インシデントレポートとしてまとめることができます。 情報を整理し、まとめることで分析結果の再確認も行えるため、問題文を参考に是非やってみてください。

おわりに

前回ブログを書いた際にも同じことを言っていましたが、pcap分析は謎解きやパズルのようで楽しいです。
あーでもないこーでもないといろいろ試しているうちに、様々な知識を得ることもできて一石二鳥です。

Wiresharkの使い方には少しずつなれてきた一方で、ネットワークやマルウェアについての知識がまだまだ足りていないなと感じています。
これからも様々なpcapファイルを分析して知見を深めていきたいです。

この記事を読んでpcap分析を少しでも面白そうと感じていただければ幸いです。
ぜひ一度挑戦してみてください。