
Otro monitor de subdominios más.
Algunos dicen que el bug bounty no solo se trata de encontrar bugs, sino de ser el "primero" en encontrarlos. Estoy construyendo esta herramienta para notificar a los cazadores cuando aparecen nuevos subdominios.

scan o schedule un escaneo.
cd backend# instalar herramientas
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install -v github.com/projectdiscovery/dnsx/cmd/dnsx@latest
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest
# añadir GOPATH/bin al PATH
export PATH=$PATH:$(go env GOPATH)/bin
# guarda el comando anterior en `~/.bashrc`
source ~/.bashrc # o ~/.zshrc
# variables de entorno opcionales para el backend
export DB_NAME="database.db"
export DISCORD_WEBHOOK_URL="YOUR-DISCORD-WEBHOOK"
# crea un entorno virtual
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# ejecuta el servicio fastapi
python -m app.main
# ejecuta el worker en una nueva terminal
python -m app.services.worker
# consulta la documentación Swagger
http://localhost:8000/docs
# consulta ReDoc
http://localhost:8000/redoc
cd frontend# ejecuta el frontend
npm i
npm install node
npm run dev
Desde la raíz del proyecto:
# opcional: crea un archivo env y configura el webhook de Discord para alertas
cp .env.example .env
# luego edita .env y configura DISCORD_WEBHOOK_URL
# construye e inicia frontend + backend + worker
docker compose up --build -d
Abre:
http://localhost:5173http://localhost:8000/docs# detener servicios
docker compose down
flowchart TD
U[User / Frontend] -->|Scan Target| A[FastAPI Backend]
U -->|Schedule Scan| A
A -->|Create or update ScanRun = queued| DB[(SQLite)]
W[Worker Loop] -->|Poll queued jobs + enqueue due schedules| DB
W -->|Pick next queued ScanRun| S[Scanner Pipeline]
S --> SF[subfinder]
SF --> DX[dnsx]
DX --> HX[httpx]
HX --> D[Diff with existing subdomains]
D -->|Insert new subdomain| DB
D -->|Mark missing subdomain| DB
D -->|Send new findings| DIS[Discord Webhook]
S -->|success / failed| W
W -->|Update ScanRun status| DBScanRun (queued, running, success, failed).subfinder -> dnsx -> httpx, compara los resultados, actualiza la base de datos y envía alertas de Discord para nuevos subdominios.