
Armoryは、多くのツールから大量の外部データおよび発見データを取り込み、データベースに追加し、関連するすべての情報を関連付けることを目的としたツールです。
_
dM.
,MMb
d'YM. ___ __ ___ __ __ _____ ___ __ ____ ___
,P Mb MM 6MM MM 6MMb 6MMb 6MMMMMb MM 6MM MM( )M' d' YM. MM69 " MM69 MM69 Mb 6M' Mb MM69 " Mb d' ___,P____Mb___MM______MM____MM____MM_MM_____MM_MM_______YM.__,P___ d' YM. MM MM MM MM MM MM MM MM M \ __,MMMMMMMMb__MM______MM____MM____MM_MM_____MM_MM________Mbd'_____
d' YM. MM MM MM MM YM. ,M9 MM YMP
dM dMM_MM MM MM MM YMMMMM9 MM M
d'
(8),P
YMM
これは現在ある程度安定していますが、まだ進化しています。元の「master」ブランチは現在 armory1 です
Armory は、多くの外部ツールや発見ツールから大量のデータを取り込み、データベースに追加し、関連するすべての情報を関連付けるためのツールです。特定のツールを置き換えることを目的としていません。さまざまなツールの出力を受け取り、それを他のツールに渡すために使用することを目的としています。
さらに、簡単に拡張できるように設計されています。お気に入りのツール用のモジュールが見つかりませんか? 自分で書いてみましょう! レポートに最適な形式でデータをエクスポートしたいですか? 新しいレポートを作成しましょう!
Armory は Docker なしでも問題なく動作しますが、モジュールが使用するすべてのツールをホストにインストールしたくない場合は、Docker が必要になります。
pipx を使用すると簡単にインストールできます。
pipx install depth-armory
初回実行時、設定ファイルは ~/.armory/ に作成されます。生成するには、armory と入力するだけです。
ファイルは2種類あります:
settings.py: これには Armory 自体の基本設定が含まれています。プロジェクトパス、カスタムモジュールパスなどが含まれます。toolname.ini: これらのファイルは、さまざまなモジュールの設定をハードコードするためのものです。ツールが利用可能なすべてのオプションを含めて自動生成されます。デフォルトの設定では、データベースとデータは ~/armory_project に保存されます。
必要に応じて、settings.py を編集し、base_path オプションを変更してください。これは、現在のプロジェクト で使用しているルートパスを指定する必要があります。プロジェクトごとにこれを変更することをお勧めします。そうすることで、常にクリーンなデータベースを使用できます。新しいプロジェクトごとに base_path を変更したくない場合は、base_path から db.sqlite3 ファイルを削除または名前変更するだけでも構いません。モジュールによって生成されたすべてのファイルは、ここに作成されます。sqlite3 データベースも同様です。デフォルトでは、カレントディレクトリ内 (. の位置) になります。 setings.py の詳細については、こちらのドキュメント を参照してください。
最後に、armory-init を実行してデータベースを作成します。
Armory のほとんどのモジュール用の Docker イメージをインストールできます。そのためには、armory-docker コマンドを使用します:
-> % armory-docker -h
usage: manage build_docker [-h] [-s] [-a ACTION] [-m MODULES] [-r] [--version] [-v {0,1,2,3}]
[--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color]
[--force-color] [--skip-checks]
Build docker images
options:
-h, --help show this help message and exit
-s, --smart Smart build. If a binary is installed, the docker image won't be built.
-a, --action ACTION Action to perform. `build` to build reports, `pull` to pull from Dockerhub, and
`both` (Default: both)
-m, --modules MODULES
Module to build the docker image for, or 'all' for every image. (default: all)
-r, --rebuild Rebuild docker image without cache
デフォルトでは、このコマンドは発見されたすべてのモジュールの Dockerfile をプル/ビルドします。-s を使用すると、PATH 内で発見されたツールの Dockerfile はビルドされなくなります。
使用方法は、モジュール、レポート、Web アプリ に分かれています。
モジュールはツールを実行し、出力を取り込み、データベースに書き込みます。利用可能なモジュールの一覧を表示するには、次のように入力します:
armory -lm
モジュールオプションの一覧を表示するには、次のように入力します:
armory -m <module> -M
レポートはモジュールと似ていますが、データベースからデータを取得し、使いやすい形式で表示することを目的としています。利用可能なレポートをすべて表示するには:
armory -lr
利用可能なレポートオプションを表示するには:
armory -r <report> -R
Armory には Web アプリエンジンが搭載されており、いくつかの Web アプリが用意されています。これは次のように起動できます:
armory-web で起動すると http://127.0.0.1:8099 で待ち受けます。バインド IP アドレスやポートを変更したい場合は、armory-manage runserver 0.0.0.0:8099 を使用してください。
IPython をベースにしたインタラクティブシェルもあり、コマンドの実行やデータベース値の変更が可能です。次のように起動できます: armory-shell。
デフォルトでは、次の変数が利用可能です: Domain, BaseDomain, IPAddress, CIDR, User, Cred, Vulnerability, Port, Url。