
Author: 2022年 - 現在, Rezilion
Description: 脆弱性の検証
Development: 2022年1月 - 現在
Documentation: ウェブサイト、READMEを参照
' Am I Exploitable?' は、システムが特定の脆弱性に対して悪用可能かどうかを検証するニーズに応えるために作られたPythonオープンソースプロジェクトです。 このプロジェクトは、特定の脆弱性に対して悪用可能かどうかを理解するのに役立ち、システム内のどのコンポーネントが脆弱であるか、または脆弱ではないかを説明します。 このプロジェクトは、実行する脆弱性チェックに応じた検証フローを表すグラフを作成できます。 MI-Xは機械可読な出力をサポートしています。結果はjson、csv、textの3つの異なるファイル形式にエクスポートできます。 ツールを実行すると、検証フローが表示されます。ホスト/コンテナ上で実行されたチェックと、その後に続く是正および緩和策の推奨事項が出力されます。 私たちは、新たな脆弱性や重大・有名な脆弱性に対する脆弱性チェックを追加できる研究者やプログラマのコミュニティを作りたいと考えています。新しい脆弱性が発生するたびに、人々が自分が悪用可能かどうかを検証するのに役立つこのサービスを提供できます。 さらに、これまでに作成した脆弱性チェックは、見落としている可能性のあるチェックを追加して拡張できます。
CVE-2021-4034(別名PwnKit)の検証フローグラフの例:
' Am I Exploitable?' は、AGPL-3.0ライセンスの条件の下で誰でも自由に使用できます(LICENSE ファイルを参照)。
am_i_exploitable.py - ユーザー入力とCVE呼び出しを処理するメインファイル。cves - 現在サポートされている各脆弱性に対応するPythonファイルを含むPythonパッケージ。modules - モジュールを含むPythonパッケージ。
モジュールは、さまざまなCVEファイルで使用されるコード実装です。このツールは以下のLinuxディストリビューションをサポートしています。
Ubuntu, Debian, Red Hat, CentOS, Fedora, SUSE, SLES, Amazon
Alpineは一部サポート
Windowsは一部サポート
MI-Xをインストールする前に、お使いのマシンに以下のものがインストールされていることを確認してください:
openjdk10より低い場合)要件をインストールするには:
OSディストリビューションを確認します。以下のコマンドを使用できます:
cat /etc/os-release
OSディストリビューションが使用しているパッケージマネージャーを確認します:
apt - Ubuntu, Debian
yum - Red Hat, CentOS, Fedora, SUSE, SLES, Amazon
apk - Alpine
OSディストリビューションのパッケージマネージャーを使用して関連パッケージをインストールします
MI-Xを正しく実行するには、pipを使用してgraphvizとpackaging Pythonモジュールの要件をインストールする必要があります:
pip install -r requirements.txt
最新の開発版はgitから取得できます。
git clone https://github.com/Rezilion/mi-x.git
cd mi-x && python3 am_i_exploitable.py
スキャンコマンドのテンプレート
python3 am_i_exploitable.py -v cve_yyyy_xxxx -c True -g True -f json
コンテナを実行しているマシンをlog4shellについてスキャンします。
python3 am_i_exploitable.py -v log4shell -c True -f json

チェックされる脆弱性を指定します(デフォルトでは設定されていません)。
構文:
引数が設定されていない場合、現在サポートされている脆弱性を表示するメニューメッセージが表示されます。
ホスト上のすべての実行中コンテナをスキャンします(デフォルトではFalse)。
スペースで区切られた実行中コンテナの名前を入力して、ホスト上の特定のコンテナをスキャンします(デフォルトでは設定されていません)。
結果を3つの出力形式(json、csv、text)のいずれかにエクスポートします。
脆弱性の説明を表示するかどうかを指定します(デフォルトではTrue)。
検証フローチャートを表示するかどうかを指定します(デフォルトではFalse)。
コードの実行方法を理解するためのヘルプ
問題を見つけた場合や、素晴らしいアイデアがある場合は、ぜひお知らせください:
コントリビューションは歓迎されており、GitHub経由で行えます。
提出方法の詳細については、CONTRIBUTING.mdを参照してください。
' Am I Exploitable?' はWindowsと最も一般的なLinuxオペレーティングシステムでテストされています。ドキュメント(README)とデバッグ 情報(デバッグパラメータを'True'に設定)で、ほとんどの質問と問題をカバーできるはずです。
バグはGitHub、または上記の電子メールアドレスに電子メールを送信して報告できます。
オープンソースソフトウェアを使用し、サポートしてくださるコミュニティに感謝します。
多くのコメント、バグ/パッチ、質問が、このようなツールを開発し続けるための成功と継続的なモチベーションの鍵となります。