
Armory est un outil conçu pour collecter une grande quantité de données externes et de découverte provenant de nombreux outils, les ajouter à une base de données et corréler toutes les informations connexes.
_
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
C'est désormais relativement stable, mais encore en évolution. La branche originale 'master' est maintenant armory1
Armory est un outil conçu pour collecter une grande quantité de données externes et de découverte provenant de nombreux outils, les ajouter à une base de données et corréler toutes les informations connexes. Il n'a pas vocation à remplacer un outil spécifique. Il vise à prendre la sortie de différents outils et à l'utiliser pour alimenter d'autres outils.
De plus, il est conçu pour être facilement extensible. Vous ne voyez pas de module pour votre outil préféré ? Écrivez-en un ! Vous voulez exporter des données dans le format exact pour vos rapports ? Créez un nouveau rapport !
Bien qu'Armory puisse fonctionner sans Docker, vous en aurez besoin si vous ne voulez pas installer tous les outils utilisés par les modules sur l'hôte.
L'installation est simple avec pipx.
pipx install depth-armory
Lors du premier lancement, les fichiers de configuration seront créés dans ~/.armory/. Pour les générer, tapez simplement armory.
Il existe deux types de fichiers :
settings.py : Ce fichier contient les paramètres de base pour Armory lui-même. Il comprend les chemins de projet, les chemins de modules personnalisés, etc.toolname.ini : Ces fichiers permettent de coder en dur les paramètres pour différents modules. Ils sont générés automatiquement avec toutes les options disponibles des outils.La configuration par défaut stockera votre base de données et vos données dans ~/armory_project.
En option, modifiez settings.py et changez l'option base_path. Celle-ci doit pointer vers le chemin racine que vous utilisez pour votre projet en cours. Vous devriez probablement la changer à chaque projet, pour toujours utiliser une base de données propre. Si vous ne voulez pas modifier base_path à chaque nouveau projet, vous pouvez aussi simplement supprimer ou renommer le fichier db.sqlite3 de votre base_path. Tous les fichiers générés par les modules seront créés ici, ainsi que la base de données sqlite3. Par défaut, elle se trouvera dans le répertoire courant -. Pour plus d'informations sur settings.py, voir la documentation ici.
Enfin, exécutez armory-init pour créer la base de données.
Vous pouvez installer des images Docker pour la plupart des modules d'Armory. Pour ce faire, utilisez la commande 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
Par défaut, la commande va tirer/construire les dockerfiles pour tous les modules découverts. L'utilisation de -s évitera de construire des dockerfiles pour les outils déjà présents dans le PATH.
L'utilisation se divise en modules, rapports et applications web.
Les modules exécutent des outils, ingèrent les sorties et les écrivent dans la base de données. Pour voir la liste des modules disponibles, tapez :
armory -lm
Pour voir la liste des options d'un module, tapez :
armory -m <module> -M
Les rapports sont similaires aux modules, sauf qu'ils sont destinés à extraire des données de la base de données et à les afficher dans un format utilisable. Pour voir tous les rapports disponibles :
armory -lr
Pour voir les options disponibles d'un rapport :
armory -r <rapport> -R
Armory dispose d'un moteur d'application web, avec quelques applications web fournies. On peut le lancer avec :
armory-web qui écoutera sur http://127.0.0.1:8099, ou armory-manage runserver 0.0.0.0:8099 si vous souhaitez modifier l'adresse IP de liaison et/ou le port.
Il existe également un shell interactif basé sur IPython qui vous permettra d'exécuter des commandes ou de modifier les valeurs de la base de données. Il peut être lancé avec : armory-shell.
Par défaut, les éléments suivants seront disponibles : Domain, BaseDomain, IPAddress, CIDR, User, Cred, Vulnerability, Port, Url.