
Ein von projectdiscovery gesteuerter Bot zur Überwachung der Angriffsfläche, angetrieben von axiom.
Proteus - Die axiom-Datenbank und -API https://github.com/pry0cc/axiom.
Ursprünglich geschrieben für Zusammenbau einer ASM-Plattform mit ProjectDiscovery-Tools.
Zuerst das Repository klonen
git clone https://github.com/pry0cc/proteus ~/.proteus
cd ~/.proteus
Als Nächstes ändere config/notify.yaml, um deinen Slack-Webhook einzufügen.
Wechsle in das bin-Verzeichnis und ändere die Volumes in der docker-compose.yml, sodass sie auf dein lokales axiom-Setup verweisen. Du musst /home/op/ durch dein aktuelles $HOME-Verzeichnis ersetzen.
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
Das war's!
Speichere dein(e) Ziel(e) im lokalen Scope-Ordner ( ~/.proteus/scope/ )
Alle Flotten sind eindeutig einem Ziel zugeordnet, sodass es keine Datenüberschneidungen gibt. Du kannst entweder Instanzen hochfahren und dann Scans starten, wobei die Instanzen danach bestehen bleiben, oder du kannst einfach nur Scans starten. Wenn du einen Scan ohne vorhandene Instanzen startest, werden standardmäßig 5 Instanzen hochgefahren und nach Abschluss automatisch entfernt.
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>
Der Client wird Daten tabellarisch darstellen, todo: JSON- oder Textausgabe hinzufügen.
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>