Kali Linux2022.1 でハッキングラボをつくってみる8 Wiresharkでパケットキャプチャ2 xplicoを利用してみた

# はじめに

Wiresharkでは通信の流れやビット列などを分析するには向いているが、画像やメールなどを解析するのは不向き。
XplicoはGUI（Webインターフェース）で操作できるキャプチャ解析、パケット解析ツール。

「ハッキング・ラボのつくりかた」のP.435-439を参考にした記事です。

:::note alert
注意事項
記事で紹介されている行為を他人や団体、インフラなどの許可を得ずに行った場合、犯罪となる可能性が有ります。
あくまでも、記事の内容は情報セキュリティの学習です。読者様の所有・管理の機器、システムでのみ実行してください。
また、読者さまのシステムにトラブルが起きたとしても、私は責任を負いかねます。
:::
# 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]

:::note warn
実は、この方法（Xplicoが入っているLubuntuの仮想マシンのサーバを新規に作る）でも解析はうまく行きませんでした。ただ、自分の環境やネットワーク設定の不備などの原因でうまく行かなかったのか、xplicoが原因がうまく行かなかったのか、よくわかりません。
一応、自分がやれた範囲内の結果を公開しておきます。もし、うまくいった方や私の方法の不備を指摘してくださる方は、コメント欄にご投稿をお願いします。
:::
## ダウンロードと作成
- ダウンロード

[ソースフォージにあるxplicoのダウンロードページ]("https://sourceforge.net/projects/xplico/files/") 
ダウンロードされるファイルは7z圧縮ファイルです。7zに対応している書庫ソフトで解凍してください。vdiファイルが出力されます。

- 作成

VirtualBoxの「新規」をクリック。適当な設定をしたあと、「すでにある仮想ハードディスクファイルを使用する」に解凍したvdiファイルを指定します。

## ネットワーク設定
「ネットワーク」の「アダプタ−１」には、ブリッジアダプターを指定する。また、KaliLinuxにもブリッジアダプターを指定する。

**ネットワーク構成**
- xplicoOS（XplicoがインストールされたLubuntu）
    - アダプタ1：ブリッジアダプター 192.168.1.101(静的IPアドレス) （必須)

:::note
アダプタは、ホストオンリアダプタでもよい。
:::

- KaliLinux
    - アダプタ1 : ホストオンリーアダプター 192.168.56.2(任意)
    - アダプタ2 : NAT 10.0.3.15(任意)
    - アダプタ3 : ブリッジアダプター 192.168.1.100(必須・パケット解析用)

:::note
アダプタは、xplicoOSと同じもの合わせること
:::

xplicoを起動して、xplicoユーザーでログインします。
お好みで、`sudo loadkeys jp`で日本語配列キーボードで入力しやすいようにします。
"/etc/network/interfaces"に以下の内容を追記する。
```conf:/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
```

:::note
インターフェース名が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"です。
![VirtualBox_kali-linux-2022.1-xplico_login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/5dff1de0-3846-46e7-6746-c05333c1638b.png)
username:"admin",password:"xplico"でログインします。
最終更新は2017年か・・・

「Menu」の「Users」を選択する。xplicoというユーザーを確認する。
adminアカウントからログアウトして、xplicoアカウントでログインし直す。
username:"xplico",password:"xplico"
![VirtualBox_kali-linux-2022.1-xplico_users.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/be060b0e-ef70-1e7c-d201-c66a05143403.png)


# キャプチャを解析する
## CaseとSessionの作成
CaseとSessionを作成して、キャプチャファイルやリアルタイムにキャプチャして解析する。
Caseの作成には、「New Case」をクリックします。
![VirtualBox_kali-linux-2022.1-new_cases.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/4b20abc8-2282-4895-6971-0346023f0e9f.png)
横赤線：Uploading PCAP capture file/s
キャプチャファイルを解析します。
横青線：Live acquisition
リアルタイムでキャプチャして解析します。

「Case name」を任意のものに設定、「External reference」は空でも構いません。
「Create」をクリックします。
作成したケースをケース一覧からクリックして選択します。
![VirtualBox_kali-linux-2022.1-xplico_case.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/6098e3cf-a8c9-4121-3fad-40b2dd902609.png)

メニューの「New Session」をクリックして、新しいセッションを作成します。（セッションの名前は任意）
![VirtualBox_kali-linux-2022.1-xplico_newsession.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/06eb085f-242b-fbb9-8337-9d91edfc8690.png)
![VirtualBox_kali-linux-2022.1-new_session2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/79f87afd-6953-cfb3-8c8b-6cc2d82d424d.png)
設定は次のとおりにした

| Case | test |
| ---- | ----- |
| External reference | 空 |
| Session | test |

:::note warn
xplicoが日本語となってしまっていますが、英語に読み替えてください。
次に行う解析は、インターフェースを英語にしておかないとうまく動作しませんでした。
:::

## 解析失敗？
セッションを作成した後、作成したセッションをクリックすると、分析ページが開く。
![VirtualBox_kali-linux-2022.1-xplico_starting_analysize.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/b8ca9476-9f3f-9bca-f3d8-8d792e6c2d33.png)
日本語の画面のままだと、Uploadがうまく行かなかったので、ログアウトして英語のページに切り替える。１時間位、KaliLinuxでネットサーフィンして聴取したパケットキャプチャをアップロードして解析しようとしました。
![VirtualBox_kali-linux-2022.1-xplico_analyze.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535888/cb6e220f-b729-f353-16ef-c93fe745c168.png)
しばらく、"File uploaded, wait start decoding..."と表示される。
「Status」に"DECODING COMPLETED"とあるので、すでに解析は完了しているっぽい・・・。

しかし、解析できたのは、「Dns - Arp - Icmpv6」だけだった・・・。比較的画像の多いサイトや動画サイトを周遊していたので、画像や動画が一つは出てきてもおかしくないはずですが・・・。

# おわりに
結局、思ったような解析はできなかった。
Live acquisitionでも、同様のことを行ったが、KaliLinuxのパケットをキャプチャさせることはできなかった。
Xplicoになにか問題があるのか、自分が設定したネットワーク環境に問題があるのかもわからなかった。

参考にしたもの
「ハッキング・ラボのつくりかた」(IPUSIRON著）

http://s-akademeia.sakura.ne.jp/main/books/lab/faq.html

https://www.xplico.org