
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를 입력하기만 하면 됩니다.
두 가지 유형의 파일이 있습니다:
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]
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을 가져오거나(pull) 빌드합니다. -s를 사용하면 PATH에서 발견된 도구에 대해서는 Dockerfile을 빌드하지 않습니다.
사용법은 모듈, 보고서 및 웹 앱으로 나뉩니다.
모듈은 도구를 실행하고, 출력을 수집하여 데이터베이스에 기록합니다. 사용 가능한 모듈 목록을 보려면 다음을 입력하세요:
armory -lm
모듈 옵션 목록을 보려면 다음을 입력하세요:
armory -m <module> -M
보고서는 모듈과 유사하지만, 데이터베이스에서 데이터를 가져와 사용 가능한 형식으로 표시하는 용도입니다. 사용 가능한 모든 보고서를 보려면:
armory -lr
보고서 옵션을 보려면:
armory -r <report> -R
Armory에는 웹 앱 엔진이 있으며, 몇 가지 제공되는 웹 앱이 포함되어 있습니다. 다음 명령으로 실행할 수 있습니다:
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.