WiFiBeat:疑わしい無線トラフィックを検出


この記事では、802.11フレームをElasticsearchに送信できるエージェントであるWiFiBeatについて説明します。Elasticsearchでは、それらを分析し、グラフを作成し、攻撃を検出できます。 このシステム全体は、完全にフリーソフトウェア上に構築されています。

はじめに


ユーティリティ公式サイト
GitHub

WiFiBeatを使用すると、モニターモードでWi-Fiアダプターを操作し、JSONフレームからオブジェクトを作成して、 Elasticsearch分析エンジンのデータベースに送信できます。 さらに、WiFiBeatはPCAPファイルからフレームを読み取ることができます。

収集された情報の分析は、Elasticの別の無料製品であるKibanaビジュアライザーで行われます。



WiFiBeatは公式にUbuntu 16.04で安定して動作しますが、もちろん、他のディストリビューションでも実行できますが、ユーティリティが作成されたライブラリバージョンの依存関係と不一致に問題がある可能性があります。 WiFiBeatを起動するには、 TP-LINK TL-WN722N USB Wi-Fiアダプターがモニターモードで接続されている64ビットUbuntu 16.04を使用します。
ElasticsearchとKibanaは64ビットDebian 9にデプロイされます。

WiFiBeatをインストールする


インストールプロセスの詳細は、 GitHubで説明されています

libtinsをインストールする

wget https://github.com/mfontanini/libtins/archive/v3.5.tar.gz tar -zxf v3.5.tar.gz cd libtins-3.5 apt-get install libpcap-dev libssl-dev build-essential libboost-all-dev mkdir build cd build cmake ../ -DLIBTINS_ENABLE_CXX11=1 make make install ldconfig 

不足しているパッケージをシステムにインストールします

 apt-get install libyaml-cpp-dev libpoco-dev rapidjson-dev libtsan0 libboost-all-dev libb64-dev libwireshark-data build-essential libnl-3-dev libnl-genl-3-dev libnl-idiag-3-dev 

CodeliteをインストールしてWiFiBeatをビルドします

 apt-get install codelite codelite-plugins 

codeliteを実行し、新しいワークスペースを作成します



タイプC ++



ディレクトリを覚えておいてください



ワークスペースが作成されたら、ディレクトリに移動し、GitHubからWiFiBeatとライブラリをダウンロードします。

 cd /root/WiFiBeat git clone https://github.com/WiFiBeat/WiFiBeat git clone https://github.com/WiFiBeat/elasticbeat-cpp git clone https://github.com/WiFiBeat/simplejson-cpp 

codeliteで3つのプロジェクトすべてをワークスペースに追加します





結果は次のようになります



プロジェクトのリストでwifibeatをダブルクリックすると、目立つはずです



wifibeatを右クリックし、ビルドを選択します



コンパイラが選択されていない場合は選択し、再度ビルドします



すべての依存関係がシステムにインストールされ、その前にすべてを正しく行った場合、コンパイルプロセスの最後にエラーがないことを示すメッセージが表示されます。

 ====0 errors, 2 warnings, total time: 00:01:13 seconds==== 

カスタマイズ


ElasticsearchとKibanaのインストールプロセスについては、この記事では取り上げません。 このテーマに関する十分な資料がネット上にあります。 マシン192.168.1.30で動作し、マシン192.168.1.31でWiFiBeatで動作すると仮定します。 ElasticsearchはHTTPポート9200でリッスンし、認証を必要としません。

Wi-Fiアダプターをマシン192.168.1.31に接続し、モニターモードにしました。
システムでは、mon0として表示されます。

WiFiBeatのあるディレクトリから、設定ファイルをetcにコピーして編集します

 cp wifibeat.yml /etc vi /etc/wifibeat.yml 

このファイルはよく文書化されており、主なオプションを簡単に説明します。

2.4 GHz帯域の5番目のチャネルで動作する1つのネットワークのトラフィックを分析します。
したがって、インターフェイス設定には1つのエントリを残します。 一度に複数のチャンネルを分析し、それぞれのリスニング時間を設定することが可能です。

 wifibeat.interfaces.devices: mon0: [5] 

セクション出力ファイルからすべてを削除します
PCAPフィルターのセクションでは、以下を設定します

 wifibeat.interfaces.filters: mon0: type mgt 

ここでは、 Wiresharkと同様にフィルターが示されています。この場合、802.11管理フレームのみに関心があることを示しています。 これらには以下が含まれます。


「ローカルファイル」セクションと「復号化」セクションでは、すべてコメントアウトしました。この例では暗号化キーは必要ありません。また、PCAPファイルからも読み取りません。

[キュー]セクションでは何も変更せず、[出力]セクションでElasticsearchのアドレスとポートを設定します。

 output.elasticsearch: enabled: true protocol: "http" # Array of hosts to connect to. hosts: [ "192.168.1.30:9200" ] 

保存して、WiFiBeatのあるディレクトリとDebugサブディレクトリに移動します。 これには、コンパイルされたwifibeat実行可能ファイルが含まれている必要があります。

打ち上げ


192.168.1.30マシンでElasticsearchとKibanaを起動します。 ポート9200(Elasticsearch)およびKibana(5601)がリッスンしていることを確認します。

マシン192.168.1.31で、構成にエラーがなかったことを確認します

 ./wifibeat -d 

設定ファイルの解析が表示されます。 エラーがある場合、wifibeatは問題を報告します。 すべてが順調であれば、実行

 ./wifibeat -f 

-fスイッチを使用すると、wifibeatを非デーモンモードで実行できます。 これまでのところ、私たちにとってはより便利です。

Kibanaを開いてインデックスを確認すると、新しいwifibeat *インデックスが表示されていることがわかります。



Kibanaをセットアップします。 管理、インデックスパターンに移動



新しいテンプレートを作成します。





メインとしてマークする



WiFiBeatに付属のダッシュボードとビジュアライゼーションをインポートします





WiFiBeat / kibanaディレクトリからkibana.jsonファイルを選択します

インポートが成功した場合は、[ダッシュボード]タブに移動し、そこでWLANを見つけることができます



wifibeat.ymlでフィルターを使用しない場合、次のようになります。



フィルター(この場合)では、コントロールフレームとデータフレームにデータは表示されません。

ダッシュボードに加えて、新しい視覚化があります。





結論として


次に、Elasitcパッケージの別のコンポーネントであるX-Packを使用して、認証解除フレームのバーストを検出したときのアクションを設定できます。これは、DoS攻撃またはブルートフォースのハンドシェイクを取得しようとする可能性があります。 このようにして、ワイヤレス攻撃検出システムを構築できます。

Source: https://habr.com/ru/post/J335134/


All Articles