
axiom으로 구동되는 projectdiscovery 기반 공격 표면 모니터링 봇
Proteus - axiom 데이터베이스 및 API https://github.com/pry0cc/axiom.
원래 ProjectDiscovery 도구를 사용하여 ASM 플랫폼 구성하기를 위해 작성되었습니다.
먼저 저장소를 클론합니다.
git clone https://github.com/pry0cc/proteus ~/.proteus
cd ~/.proteus
다음으로, Slack 웹훅을 포함하도록 config/notify.yaml을 수정하세요.
bin 디렉토리로 이동하여 docker-compose.yml의 volumes가 로컬 axiom 설정에 매핑되도록 수정하세요. /home/op/를 현재 $HOME 디렉토리로 변경해야 합니다.
services:
redis:
image: redis
mongo:
image: mongo
worker:
image: proteus/worker
build:
context: bin/worker/
volumes:
- /home/op/.axiom/accounts/personal.json:/root/.axiom/accounts/default.json # map your account here
- /home/op/.axiom/modules:/root/.axiom/modules # map modules
- /home/op/.ssh:/root/.ssh # map SSH
- /home/op/.proteus:/app # map proteus folder to the app (for persistence of data like rawdata & scans), not 100% necessary but nice to have.
cd bin/
sudo docker compose build
sudo docker compose up
그게 다입니다!
대상을 로컬 scope 폴더( ~/.proteus/scope/ )에 저장하세요.
모든 fleet은 각 대상에 고유하므로 데이터가 서로 섞이지 않습니다. 인스턴스를 생성한 다음 스캔을 시작할 수도 있으며, 이 경우 인스턴스는 이후에도 유지됩니다. 또는 스캔만 시작할 수도 있습니다. 인스턴스 없이 스캔을 시작하면 기본적으로 5개의 인스턴스가 생성되며, 완료되면 자동으로 제거됩니다.
curl -s http://127.0.0.1:80/api/<target>/launch_scan
curl -s http://127.0.0.1:80/api/<target>/launch_scan?spinup=8
curl -s http://127.0.0.1:80/api/<target>/launch_scan?spinup=8&module=asm
curl -s http://127.0.0.1:80/api/<target>/spinup?instances=15 # spin up instances for a target
curl -s http://127.0.0.1:80/api/<target>/scans
curl -s http://127.0.0.1:80/api/<target>/<datatype>
curl -s http://127.0.0.1:80/api/<target>/dnsx
curl -s http://127.0.0.1:80/api/<target>/http
curl -s http://127.0.0.1:80/api/<target>/subs
curl -s http://127.0.0.1:80/api/<target>/nuclei
curl -s http://127.0.0.1:80/api/<target>/<datatype>?scan_id=<scan_id>
클라이언트는 데이터를 표로 정리합니다. todo: JSON 또는 텍스트 출력 추가.
pip3 install -r bin/client/requirements.txt
bin/client/client.py --target <target> --type http
bin/client/client.py --target <target> --type dns
bin/client/client.py --target <target> --type host
bin/client/client.py --target <target> --type scans
bin/client/client.py --target <target> --type scans --scanid <scan_id>