
Un bot de monitoreo de superficie de ataque impulsado por projectdiscovery y potenciado por axiom.
Proteus: la base de datos y API de axiom https://github.com/pry0cc/axiom.
Originalmente, escrito para Creando una plataforma ASM con las herramientas de ProjectDiscovery.
Primero, clona el repositorio
git clone https://github.com/pry0cc/proteus ~/.proteus
cd ~/.proteus
A continuación, modifica config/notify.yaml para incluir tu webhook de Slack.
Navega al directorio bin y modifica los volúmenes de docker-compose.yml para que apunten a tu configuración local de axiom. Tendrás que cambiar /home/op/ por tu directorio $HOME actual.
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
¡Eso es todo!
Guarda tu(s) objetivo(s) en la carpeta local de scope ( ~/.proteus/scope/ )
Todas las flotas son únicas para cada objetivo, por lo que no hay cruce de datos. Puedes levantar instancias y luego lanzar escaneos; en ese caso, las instancias permanecerán después, o simplemente puedes lanzar escaneos. Si lanzas un escaneo sin instancias presentes, levantará 5 instancias por defecto y las eliminará automáticamente cuando termine.
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>
El cliente tabulará los datos. TODO: añadir salida JSON o de texto.
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>