はじめに
Wiresharkでは通信の流れやビット列などを分析するには向いているが、画像やメールなどを解析するのは不向き。
XplicoはGUI(Webインターフェース)で操作できるキャプチャ解析、パケット解析ツール。
「ハッキング・ラボのつくりかた」のP.435-439を参考にした記事です。
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
xplicoの導入
前置き
Xplicoは長期間更新されていないらしく、現行のKaliLinux2022.1ですべてのパッケージを更新している場合には、phpのモジュール"libapach2-mod-php"のバージョンが8.0以降となることで、Xplicoでエラーが発生している状況です。Xplicoはphpのモジュールのバージョンが7.3にしか対応していないことが原因のようです。(正直な話、ココらへんの詳細は、あまりよくわかりません。)
もしかすると、少し古めのKaliLinuxや現行のKaliLinux2022.1でもパッケージを更新していない状態だとうまくいくかもしれません。しかし、少し古め(2020年辺り)でも、内部エラーが報告されています。どのみち、KaliLinuxにxplicoをインストールして使用することは難しいです。
対策として、Xplicoが入っているLubuntuの仮想マシンのサーバを新規に作ることにします。
[追記:2022/09/16]
実は、この方法(Xplicoが入っているLubuntuの仮想マシンのサーバを新規に作る)でも解析はうまく行きませんでした。ただ、自分の環境やネットワーク設定の不備などの原因でうまく行かなかったのか、xplicoが原因がうまく行かなかったのか、よくわかりません。
一応、自分がやれた範囲内の結果を公開しておきます。もし、うまくいった方や私の方法の不備を指摘してくださる方は、コメント欄にご投稿をお願いします。
ダウンロードと作成
- ダウンロード
ソースフォージにあるxplicoのダウンロードページ
ダウンロードされるファイルは7z圧縮ファイルです。7zに対応している書庫ソフトで解凍してください。vdiファイルが出力されます。
- 作成
VirtualBoxの「新規」をクリック。適当な設定をしたあと、「すでにある仮想ハードディスクファイルを使用する」に解凍したvdiファイルを指定します。
ネットワーク設定
「ネットワーク」の「アダプタ−1」には、ブリッジアダプターを指定する。また、KaliLinuxにもブリッジアダプターを指定する。
ネットワーク構成
- xplicoOS(XplicoがインストールされたLubuntu)
- アダプタ1:ブリッジアダプター 192.168.1.101(静的IPアドレス) (必須)
アダプタは、ホストオンリアダプタでもよい。
- KaliLinux
- アダプタ1 : ホストオンリーアダプター 192.168.56.2(任意)
- アダプタ2 : NAT 10.0.3.15(任意)
- アダプタ3 : ブリッジアダプター 192.168.1.100(必須・パケット解析用)
アダプタは、xplicoOSと同じもの合わせること
xplicoを起動して、xplicoユーザーでログインします。
お好みで、sudo loadkeys jp
で日本語配列キーボードで入力しやすいようにします。
"/etc/network/interfaces"に以下の内容を追記する。
#enp0s3
allow-hotplug enp0s3
iface enp0s3 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
インターフェース名がenp0s3となっている。環境によって違うかもしれませんので、適宜読み替えてください
追記した後、次のコマンドを実行してインターフェースを再起動する。
実行後に、xplicoOSに静的IPアドレスが割り当てられる。
sudo ifdown enp0s3
sudo ifup enp0s3
sudo <command>
を実行すると、
sudo: unable to resolve host XplicoVM: Connection refused
というメッセージが出るが、特に不具合なくコマンドは実行できている。
xplicoの起動
sudo systemctl start xplico
念の為、次のコマンドで起動しているかどうかステータスを確認します。
sudo systemctl status xplico
私の環境では、以上のとおりでうまく行きました。うまく行かない場合は、次のコマンドを試してみると良いかもしれません。
sudo /opt/xplico/script/sqlite_demo.sh
xplicoにログインする
xplicoOSを動作させたまま、KaliLinuxに戻ります。
Firefoxを立ち上げて、"http://xplicoOSのIPアドレス:9876"にアクセスします。
この場合、"http://192.168.1.101:9876"です。
username:"admin",password:"xplico"でログインします。
最終更新は2017年か・・・
「Menu」の「Users」を選択する。xplicoというユーザーを確認する。
adminアカウントからログアウトして、xplicoアカウントでログインし直す。
username:"xplico",password:"xplico"
キャプチャを解析する
CaseとSessionの作成
CaseとSessionを作成して、キャプチャファイルやリアルタイムにキャプチャして解析する。
Caseの作成には、「New Case」をクリックします。
横赤線:Uploading PCAP capture file/s
キャプチャファイルを解析します。
横青線:Live acquisition
リアルタイムでキャプチャして解析します。
「Case name」を任意のものに設定、「External reference」は空でも構いません。
「Create」をクリックします。
作成したケースをケース一覧からクリックして選択します。
メニューの「New Session」をクリックして、新しいセッションを作成します。(セッションの名前は任意)
設定は次のとおりにした
Case | test |
---|---|
External reference | 空 |
Session | test |
xplicoが日本語となってしまっていますが、英語に読み替えてください。
次に行う解析は、インターフェースを英語にしておかないとうまく動作しませんでした。
解析失敗?
セッションを作成した後、作成したセッションをクリックすると、分析ページが開く。
日本語の画面のままだと、Uploadがうまく行かなかったので、ログアウトして英語のページに切り替える。1時間位、KaliLinuxでネットサーフィンして聴取したパケットキャプチャをアップロードして解析しようとしました。
しばらく、"File uploaded, wait start decoding..."と表示される。
「Status」に"DECODING COMPLETED"とあるので、すでに解析は完了しているっぽい・・・。
しかし、解析できたのは、「Dns - Arp - Icmpv6」だけだった・・・。比較的画像の多いサイトや動画サイトを周遊していたので、画像や動画が一つは出てきてもおかしくないはずですが・・・。
おわりに
結局、思ったような解析はできなかった。
Live acquisitionでも、同様のことを行ったが、KaliLinuxのパケットをキャプチャさせることはできなかった。
Xplicoになにか問題があるのか、自分が設定したネットワーク環境に問題があるのかもわからなかった。
参考にしたもの
「ハッキング・ラボのつくりかた」(IPUSIRON著)