
Armory ist ein Tool, das viele externe und Erkennungsdaten von vielen Tools aufnehmen, in einer Datenbank speichern und alle zugehörigen Informationen miteinander verknüpfen soll.
_
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
Dies ist inzwischen einigermaßen stabil, entwickelt sich aber noch weiter. Der ursprüngliche 'master'-Branch heißt jetzt armory1.
Armory ist ein Werkzeug, das eine große Menge externer und Erkennungsdaten aus vielen Tools aufnehmen, in einer Datenbank speichern und alle zusammenhängenden Informationen korrelieren soll. Es ist nicht dazu gedacht, ein bestimmtes Tool zu ersetzen. Es soll die Ausgaben verschiedener Tools aufnehmen und damit andere Tools füttern.
Zusätzlich ist es darauf ausgelegt, einfach erweiterbar zu sein. Siehst du kein Modul für dein Lieblingswerkzeug? Schreib eines! Möchtest du Daten genau im richtigen Format für deine Berichterstellung exportieren? Erstelle einen neuen Bericht!
Armory kann auch ohne Docker gut funktionieren, aber du wirst es brauchen, wenn du nicht alle Tools, die die Module verwenden, auf dem Host installieren möchtest.
Die Installation ist mit pipx einfach.
pipx install depth-armory
Beim ersten Start werden Konfigurationsdateien in ~/.armory/ erstellt. Um sie zu generieren, gib einfach armory ein.
Es gibt zwei Arten von Dateien:
settings.py: Diese Datei enthält die grundlegenden Einstellungen für Armory selbst. Sie enthält Projektpfade, benutzerdefinierte Modulpfade usw.toolname.ini: Diese Dateien dienen zum Festlegen von Einstellungen für verschiedene Module. Sie werden automatisch mit allen verfügbaren Optionen der Tools generiert.Die Standardkonfiguration speichert deine Datenbank und Daten in ~/armory_project.
Optional kannst du settings.py bearbeiten und die Option base_path ändern. Diese sollte auf den Root-Pfad zeigen, den du für dein aktuelles Projekt verwendest. Du solltest dies wahrscheinlich bei jedem Projekt ändern, damit du immer eine saubere Datenbank verwendest. Wenn du den base_path nicht bei jedem neuen Projekt ändern möchtest, kannst du auch einfach die Datei db.sqlite3 aus deinem base_path löschen oder umbenennen. Alle von Modulen generierten Dateien werden hier sowie die sqlite3-Datenbank erstellt. Standardmäßig befindet sie sich im aktuellen Verzeichnis – . Weitere Informationen zu settings.py findest du in der Dokumentation hier.
Führe abschließend armory-init aus, um die Datenbank zu erstellen.
Du kannst Docker-Images für die meisten Module in Armory installieren. Verwende dazu den Befehl 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
Standardmäßig werden Dockerfiles für alle gefundenen Module gezogen/gebaut. Mit -s wird das Erstellen von Dockerfiles für Tools vermieden, die im PATH gefunden wurden.
Die Verwendung unterteilt sich in Module, Berichte und Web-Apps.
Module führen Tools aus, nehmen deren Ausgaben auf und schreiben sie in die Datenbank. Um eine Liste der verfügbaren Module zu sehen, gib Folgendes ein:
armory -lm
Um eine Liste der Moduloptionen zu sehen, gib Folgendes ein:
armory -m <Modul> -M
Berichte ähneln den Modulen, nur dass sie Daten aus der Datenbank abrufen und in einem brauchbaren Format anzeigen. Um alle verfügbaren Berichte anzuzeigen:
armory -lr
Um die verfügbaren Berichtsoptionen anzuzeigen:
armory -r <Bericht> -R
Armory verfügt über eine Web-App-Engine mit einigen bereitgestellten Web-Apps. Diese kann gestartet werden mit:
armory-web, was auf http://127.0.0.1:8099 lauscht, oder armory-manage runserver 0.0.0.0:8099, falls du die Bind-IP-Adresse und/oder den Port ändern möchtest.
Es gibt auch eine interaktive Shell, die auf IPython basiert und es dir ermöglicht, Befehle auszuführen oder Datenbankwerte zu ändern. Sie kann gestartet werden mit: armory-shell.
Standardmäßig sind die folgenden Objekte verfügbar: Domain, BaseDomain, IPAddress, CIDR, User, Cred, Vulnerability, Port, Url.