
Armory é uma ferramenta projetada para receber muitos dados externos e de descoberta de várias ferramentas, adicioná-los a um banco de dados e correlacionar todas as informações relacionadas.
_
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
Isto está relativamente estável agora, mas ainda está em evolução. O branch 'master' original agora é armory1
Armory é uma ferramenta criada para receber muitos dados externos e de descoberta de várias ferramentas, adicioná-los a um banco de dados e correlacionar todas as informações relacionadas. Não tem a intenção de substituir nenhuma ferramenta específica. A ideia é pegar a saída de várias ferramentas e usá-la para alimentar outras ferramentas.
Além disso, é feito para ser facilmente extensível. Não vê um módulo para sua ferramenta favorita? Escreva um! Quer exportar dados no formato exato para seus relatórios? Crie um novo relatório!
Embora o Armory possa funcionar bem sem Docker, você precisará dele se não quiser instalar todas as ferramentas que os módulos utilizam no host.
A instalação é fácil usando pipx.
pipx install depth-armory
Na primeira execução, os arquivos de configuração serão criados em ~/.armory/. Para gerá-los, basta digitar armory.
Existem dois tipos de arquivos:
settings.py: Contém as configurações básicas do próprio Armory. Inclui caminhos de projeto, caminhos de módulos personalizados, etc.toolname.ini: Esses arquivos são para codificar configurações para vários módulos. São gerados automaticamente com todas as opções que as ferramentas possuem disponíveis.A configuração padrão armazenará seu banco de dados e dados em ~/armory_project.
Opcionalmente, edite settings.py e modifique a opção base_path. Isso deve apontar para o caminho raiz que você está usando para seu projeto atual. Você provavelmente deve alterar isso a cada projeto, para estar sempre usando um banco de dados limpo. Se você não quiser alterar o base_path a cada novo projeto, também pode simplesmente excluir ou renomear o arquivo db.sqlite3 do seu base_path. Todos os arquivos gerados pelos módulos serão criados aqui, assim como o banco de dados sqlite3. Por padrão, estará no diretório atual - . Para mais informações sobre setings.py, veja documentação aqui.
Por fim, execute armory-init para criar o banco de dados.
Você pode instalar imagens Docker para a maioria dos módulos no Armory. Para isso, use o comando 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
Por padrão, o comando irá baixar/construir dockerfiles para todos os módulos descobertos. Usar -s evitará a construção de dockerfiles para ferramentas que são encontradas no PATH.
O uso é dividido em módulos, relatórios e aplicações web.
Os módulos executam ferramentas, ingerem a saída e a escrevem no banco de dados. Para ver uma lista dos módulos disponíveis, digite:
armory -lm
Para ver uma lista de opções de módulo, digite:
armory -m <module> -M
Os relatórios são semelhantes aos módulos, exceto que têm o objetivo de extrair dados do banco de dados e exibi-los em um formato utilizável. Para ver todos os relatórios disponíveis:
armory -lr
Para ver as opções de relatório disponíveis:
armory -r <report> -R
O Armory possui um mecanismo de aplicação web, com algumas aplicações web fornecidas. Isso pode ser iniciado com:
armory-web que ouvirá em http://127.0.0.1:8099, ou armory-manage runserver 0.0.0.0:8099 se você desejar modificar o endereço IP de vinculação e/ou porta.
Há também um shell interativo que usa IPython como base e permitirá que você execute comandos ou altere valores do banco de dados. Ele pode ser iniciado com: armory-shell.
Por padrão, estarão disponíveis: Domain, BaseDomain, IPAddress, CIDR, User, Cred, Vulnerability, Port, Url.