Ejecuta SimpleReconURL en un contenedor, sin necesidad de tener Python instalado.
Son dos caminos de build, y ambos producen la misma imagen docker/simplereconurl.
Haga el build desde la raíz del repositorio (el contexto debe incluir el proyecto entero):
docker build -t docker/simplereconurl -f docker/Dockerfile .No necesita checkout local. Este Dockerfile clona el proyecto solo, así que el contexto de build se ignora:
# con un contexto descartable
docker build -t docker/simplereconurl -f docker/Dockerfile.remote .
# sin contexto alguno (enviando el Dockerfile por el pipe)
docker build -t docker/simplereconurl - < docker/Dockerfile.remote
# sin nada clonado, construyendo desde la URL cruda
curl -sSL https://raw.githubusercontent.com/osintbrazuca/SimpleReconURL/master/docker/Dockerfile.remote \
| docker build -t docker/simplereconurl -Para fijar una rama, tag o fork, use build args:
docker build -t docker/simplereconurl -f docker/Dockerfile.remote \
--build-arg REF=v1.0.0 \
--build-arg REPO_URL=https://github.com/osintbrazuca/SimpleReconURL.git .Todo lo que venga después del nombre de la imagen se pasa directo a python simplereconurl.py:
# El ejemplo principal
docker run --rm docker/simplereconurl -u https://target.com/
# Sin argumentos -> ayuda
docker run --rm docker/simplereconurl
# Listar fuentes / perfiles / ejemplos
docker run --rm docker/simplereconurl --list-sources
docker run --rm docker/simplereconurl --list-profiles
# Listo para pipe (la salida fuera de TTY sale sin color automáticamente)
docker run --rm docker/simplereconurl -u https://target.com/ --no-banner | httpx -silent
# Salida interactiva y coloreada
docker run --rm -it docker/simplereconurl -u https://target.com/ --profile crawlWarning
Con --rm el contenedor es efímero y todo lo que escribió se descarta al terminar.
Monte un directorio del host y apunte el --db hacia él para conservar los resultados.
mkdir -p data
docker run --rm -v "$PWD/data:/app/data" \
docker/simplereconurl -u https://target.com/ --db /app/data/target.dbEl registro de comandos y el planificador --watch están en config/system.db dentro de la imagen. Para preservarlos
entre ejecuciones, monte un archivo del host encima:
touch config/system.db
docker run --rm \
-v "$PWD/data:/app/data" \
-v "$PWD/config/system.db:/app/config/system.db" \
docker/simplereconurl -u https://target.com/ --db /app/data/target.dbLas claves no quedan incrustadas en la imagen. Monte su config/api_keys.json en modo solo lectura
cuando necesite las fuentes autenticadas:
docker run --rm \
-v "$PWD/config/api_keys.json:/app/config/api_keys.json:ro" \
docker/simplereconurl -u https://target.com/ --profile discoveryImportant
Monte el archivo en modo solo lectura (:ro). Sin él, las fuentes que exigen clave
simplemente no devuelven nada y la herramienta sigue funcionando.
El planificador es un proceso de primer plano que corre continuamente, así que ejecútelo en segundo plano con la base de sistema persistida:
# Registrar jobs (escribe en el config/system.db montado)
docker run --rm -v "$PWD/config/system.db:/app/config/system.db" \
docker/simplereconurl -u https://target.com/ --profile fast --db /app/data/target.db --quiet \
--watch-add "0,15,30,45 * * * *"
# Ejecutar el daemon en segundo plano
docker run -d --name recon-watch \
-v "$PWD/data:/app/data" \
-v "$PWD/config/system.db:/app/config/system.db" \
docker/simplereconurl --watch
docker logs -f recon-watch # ver cada comando disparado
docker stop recon-watch # detener el planificadorNote
Los jobs programados corren dentro del mismo contenedor, como subprocesos de
python simplereconurl.py ....