_
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。
配置文件有两种类型:
settings.py:包含 Armory 本身的基本设置。包括项目路径、自定义模块路径等。toolname.ini:这些文件用于硬编码各种模块的设置。它们会自动生成,并包含工具可用的所有选项。默认配置会将数据库和数据存储在 ~/armory_project 中。
可选地,编辑 settings.py 并修改 base_path 选项。该路径应指向你为当前项目使用的根路径。你可能需要在每个新项目中都更改此路径,以便始终使用干净的数据库。如果你不想每次都更改 base_path,也可以直接从你的 base_path 中删除或重命名 db.sqlite3 文件。模块生成的所有文件(包括 sqlite3 数据库)都将在此路径下创建。默认情况下,它位于当前目录 - 中。有关 settings.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]
构建 Docker 镜像
options:
-h, --help 显示此帮助信息并退出
-s, --smart 智能构建。如果已安装二进制文件,则不构建 Docker 镜像。
-a, --action ACTION 要执行的操作。`build` 用于构建报告,`pull` 用于从 Dockerhub 拉取,`both`(默认:both)
-m, --modules MODULES 要构建 Docker 镜像的模块,或 'all' 表示所有镜像。(默认:all)
-r, --rebuild 不使用缓存重建 Docker 镜像
默认情况下,该命令将为所有发现的模块拉取/构建 Docker 文件。使用 -s 可以避免为已在 PATH 中发现的工具构建 Docker 文件。
用法分为模块、报告和Web 应用。
模块运行工具、接收输出并将其写入数据库。要查看可用模块列表,请键入:
armory -lm
要查看模块选项列表,请键入:
armory -m <模块> -M
报告类似于模块,但它的目的是从数据库中提取数据,并以可用格式显示。要查看所有可用的报告:
armory -lr
要查看可用的报告选项:
armory -r <报告> -R
Armory 拥有一个 Web 应用引擎,并附带几个预置的 Web 应用。可以通过以下命令启动:
armory-web 将在 http://127.0.0.1:8099 上监听,或者如果你想修改绑定 IP 地址和/或端口,请使用 armory-manage runserver 0.0.0.0:8099。
还有一个基于 IPython 的交互式 Shell,它允许你运行命令或修改数据库值。可以通过 armory-shell 启动。
默认情况下,以下对象可用:Domain, BaseDomain, IPAddress, CIDR, User, Cred, Vulnerability, Port, Url。