パケットキャプチャソフトと言えば Wireshark と言ってもいいくらい、パケット解析に使われている Wireshark ですが、Xplico というパケットキャプチャソフトをご存知でしょうか?
私は「ハッキングラボのつくりかた」で初めて知りました。
今回はこのXplicoを使ってパケット解析を行ってみたいと思います。
Xplico は Wireshark より何がいいのか?
とは言っても、Wireshark でパケット解析するから別のソフトなんて使わなくても良いと思うかもしれません。
それほど Wireshark は素晴らしいソフトなのでそう思うのも仕方ありませんが、Wiresharkでは通信の流れやテキストレベルでの解析には向いている一方、画像を分析するのは不向きと言えます。
以下のように、HTTPで画像を取得した場合どんな画像が表示されたかはわかりません。

ところが、Xplico ならばどんな画像がやり取りされたかといったことまで可視化できるとのことです。
実際に使ってみないとイメージが湧かないので、早速インストールしてみます。
Xplicoのインストール
以下コマンドを実行するとXplicoをインストールできます。
root@kali:~# apt install xplico -y
インストールが完了していれば、以下のように Xplico が見つかるかと思います。

Xplicoの起動
Xplico を起動します。するとブラウザが起動し以下画面が表示されます。
※WEBページが表示されない場合は「service apache2 restart」で Apach2 を再起動してください。

メッセージにある通り、Xplico が起動していません。
以下のコマンドを実行して Xplico を起動します。
root@kali:~# /etc/init.d/xplico start
Starting xplico (via systemctl): xplico.service.
もう一度 Xplico を起動すると、以下のログイン画面が表示されます。

以下の通り入力してログインします。
Language | English |
Username | admin |
Password | xplico |
ログインすると、以下の画面が表示されます。

パケットキャプチャを解析する
アカウント切り替え
Xplico では、パケットキャプチャを Session という単位で管理します。そして Session は Case 上で管理します。
したがってパケットキャプチャの解析を行うにはまず Case を作成する必要があるのですが、admin ユーザでは Case の作成ができません。
そのため、admin 以外のユーザを以下ページで確認します。

すると、ユーザ名「xplico」、パスワード「xplico」のアカウントがありました。このアカウントでログインし直します。
ログイン後のページに、以下のように「New Case」というボタンがあれば Case の作成が可能です。

Case の作成
New Case から Case を作成します。
するとページが遷移し、「Uploading PCAP capture file/s」 「Live acquisition」 の2つの選択肢が現れます。
既存のpcapファイルを解析する場合は 「Uploading PCAP capture file/s」 を、パケットキャプチャをこれから取得する場合は 「Live acquisition」 を選択します。
今回は、「Live acquisition」 を選択します。

Case name で任意の名前を入力し、Create をクリックします。
すると以下のようにCaseが作成されます。

Sessionの作成
先ほど作成したCase上でSessionを作成します。
作成した Case 名をクリックすると以下ページに遷移するので、「New Session」をクリックします。

Session name に任意の名前を入力し、Create をクリックします。

すると以下のように Session が作成されます。

パケットキャプチャの取得
Session 名をクリックすると以下ページに遷移するので、右上の「Interface:」からインターフェース名を選択して Start をクリックします。
今回はインターネットに接続する通信をキャプチャするので、インターネットと接続する「eth1」を選択しています。

Start をクリックすると、以下のようにパケットキャプチャを開始します。通信を発生後 Stop をクリックしてパケットキャプチャを停止します。

取得したパケットキャプチャを確認
停止後の画面が以下です。
HTTP通信を発生させましたが、HTTPの欄には0と表示されており、Undecoded に欄にパケットがカウントされています。

左ペインから Undecoded をクリックすると、以下ページに遷移します。通信自体は発生していることが確認できますが、「info」列の xml ファイルをクリックしても反応がなく、レスポンスの内容は確認できません。

Undecoded の Dig をクリックすると、HTTPで取得した画像データを確認することができました。
ただこちらも「info」列はクリックしても反応がありません。

「ハッキングラボのつくりかた」には WEB の箇所で HTTP のやり取りが確認できる旨の記載がありましたが、上述の通り WEB 欄にはパケットがカウントされておらずデータの確認はできません。
Undecoded 欄に含まれていることからも Decode に失敗していると思われます。
サンプルのパケットキャプチャファイルを解析する
切り分けのために、自分で取得したパケットキャプチャファイルではなく、Xplico の wiki に掲載されているサンプルファイルで解析を行ってみます。
Caseを新規作成します。
今回は既存のパケットキャプチャファイルを解析するため、以下画面では「Uploading PCAP capture file/s」 を選択します。

Session を作成すると以下の画面に移ります。
画面右上の Browse からサンプルファイルをアップロードします。

すると以下のような状態となります。(数回アップロードしているためサンプルファイルの数より多くなっています)
HTTP欄にパケットがカウントされているため、左ペインの WEB から内容を確認します。

すると以下の内容が表示されます。数個のGETリクエストが確認できるのみで、その他のパケットは含まれていませんでした。

Images を見ても、以下の通り何も表示されていません。

Undecoded 欄には多数のパケットがカウントされているため確認すると、自分で取得した際と同様に画像ファイルが確認できました。
クリックすると画像が表示されます。


ただ、自分でパケットキャプチャを取得した際とは異なり、「info」列をクリックするとHTTPレスポンスの内容が表示されました。

パケットの内容は確認できましたが、Undecoded 欄にまとめられていて、正直可読性は低いです。。
なぜ Undecoded 欄に?
現時点では原因は不明です。
検索したところ同じ事象が発生している方もいましたが、解決には至っていないようでした。
WEB 欄を表示した際に「プロキシの設定をしてくれ」といったメッセージが表示され、Wikiを参考にプロキシの設定を行いましたが事象は解決しませんでした。
「ハッキングラボのつくりかた」では問題なくHTTP欄にパケットが含まれているようなので、バージョン差異で問題が発生しているのかもしれません。
Xplico の記事も少なく、解決には至りませんでしたが、同様の事象が発生している方がもしいらっしゃれば Twitter にご連絡頂けますと幸いです。
今回は以上です。
くどり
この記事は「ハッキング・ラボのつくりかた 第6章 」をベースに作成しています。購入リンクは以下です。
※Amazonアソシエイトを使用しています。
コメント