
Escáner de vulnerabilidades multi-motor con motores integrados Nuclei Lite, Afrog y XRay. Incluye descubrimiento de activos mediante FOFA/Shodan, detección de interacciones OOB, sistema de complementos Python y gestión de resultados en tiempo real para operaciones de equipo rojo.
OmniScan es un escáner de vulnerabilidades ligero y multi-motor basado en Python, diseñado para operaciones de red team e investigación de seguridad. No solo integra el motor ligero Nuclei Lite y el motor Afrog, sino que también proporciona potentes capacidades de recolección de activos y gestión de resultados.
simpleeval en lugar de eval y ejecuta expresiones DSL en un entorno sandbox para evitar que plantillas maliciosas ejecuten código.{{lang-file}} -> etc/passwd), con soporte para fuzzing inteligente.hmac, gzip, reverse, rand_base, etc.).flow y req-condition.cookie-reuse y control de redirecciones redirects.Interactsh integrado que maneja automáticamente vulnerabilidades sin respuesta (como Blind RCE, SSRF).tqdm incorporada que muestra en tiempo real el progreso de cada plugin en cada objetivo.BasePlugin e implementar el método check(url).git_config.py: Detecta fugas de .git/configspring_boot.py: Detecta Spring Boot Actuatords_store.py: Detecta fugas de .DS_Storephpinfo.py: Detecta páginas phpinfo()backup_files.py: Detecta archivos de copia de seguridad comunes (.bak, .zip, etc.)swagger_ui.py: Detecta documentación Swagger UIcountry="CN").asyncio y aiohttp de Python.interactsh-client. (Ya he subido interactsh-client.zip; puedes descomprimirlo directamente en este directorio).xxx.oast.pro).{{interactsh-url}} en las plantillas con el Payload obtenido en tiempo real.Clonar el repositorio:
git clone https://github.com/d3ckx1/OmniScan.git
cd omniscan
Instalar dependencias:
pip3 install -r requirements.txt
Configurar herramientas (opcional):
Afrog o XRay, asegúrese de que los ejecutables correspondientes estén en el directorio raíz del proyecto o en la ruta del sistema.config.yml (opcional) para establecer la clave API y los parámetros de escaneo.Escanea una única URL:
python3 omniscan.py -u http://example.com --tool lite -T ./templates/cve/
Busca activos desde FOFA y escanea con el motor Nuclei Lite:
python3 omniscan.py -f 'app="SpringBoot"' --tool lite -T ./templates/spring-boot/
Lee objetivos desde urls.txt y escanea:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/cve/
python3 omniscan.py -l urls.txt --tool lite -T ./templates/python3 omniscan.py -l urls.txt --tool afrogpython3 omniscan.py -l urls.txt --tool xrayEjecute sin el parámetro --tool para ingresar al menú interactivo de selección de herramienta:
python3 omniscan.py -l urls.txt
Escanea vulnerabilidades Blind RCE (Interactsh se habilita automáticamente):
python3 omniscan.py -l urls.txt --tool lite -T ./templates/blind-rce.yaml
Si se detecta una interacción OOB, la consola mostrará [OOB DETECTED] y registrará la vulnerabilidad.
Usa el motor Nuclei Lite y habilita todos los plugins:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugins
Ejecuta solo los plugins Git Config y PHPInfo:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugin-file plugins/git_config.py,plugins/phpinfo.py
No realiza escaneo real, solo verifica la compatibilidad de las plantillas:
python3 omniscan.py --classify-only --tool lite -T ./templates/
config.yml)app:
lite_timeout: 10 # Tiempo de espera de solicitud (segundos)
lite_threads: 10 # Número de hilos concurrentes
use_async: true # Habilitar modo asíncrono
user_agents: # Pool personalizado de User-Agent
- "Mozilla/5.0..."
fofa:
email: "your_email"
key: "your_key"
shodan:
api_key: "your_key"
output:
formats: ["json", "csv", "html"] # Formatos de informe
omniscan.py: Punto de entrada principal, responsable del análisis de parámetros y la programación de tareas.nuclei_lite.py: Motor principal Nuclei Lite, implementa el análisis de plantillas YAML y el escaneo.result_manager.py: Módulo de gestión de resultados, maneja la deduplicación y la generación de informes.database.py: Gestión de la base de datos SQLite.config.py: Módulo de carga de configuración.P: ¿Qué significa [OOB DETECTED]?
R: Significa que el escáner ha detectado con éxito una interacción fuera de banda (Out-of-Band Interaction). Esto generalmente indica que el objetivo ha activado una devolución de llamada DNS o HTTP, confirmando la existencia de vulnerabilidades como Blind RCE, SSRF o Blind SQLi.
P: ¿Cómo configuro la API de FOFA/Shodan?
R: Puede completar la clave API en el archivo config.yml, o configurarla a través de las variables de entorno FOFA_EMAIL, FOFA_KEY, SHODAN_API_KEY.
P: ¿Qué sistemas operativos se soportan? R: Omniscan es multiplataforma; soporta Linux, macOS y Windows. Las herramientas externas (como afrog, interactsh-client) deben ser ejecutables en el sistema actual.
MIT License
| Parámetro | Descripción | Ejemplo |
|---|
-u URL | Escanea una sola URL | -u http://example.com |
-f | Usa FOFA para buscar activos | -f 'country="CN"' |
-s | Usa Shodan para buscar activos | -s 'apache' |
-l FILE | Especifica un archivo de objetivos local | -l targets.txt |
-T TEMPLATE | Especifica la ruta de las plantillas Nuclei (archivo/directorio) | -T ./templates/ |
--tool NAME | Especifica la herramienta de escaneo (nuclei/afrog/xray/lite) | --tool lite |
--severity | Especifica el nivel de gravedad (por defecto critical,high) | --severity high,medium |
--plugins | Habilita el escaneo con plugins Python (escanea el directorio plugins/) | --plugins |
--plugin-file FILE | Especifica archivos de plugin específicos a ejecutar (separados por comas) | --plugin-file plugins/test.py |
--new | Escanea solo plantillas recién publicadas (requiere soporte de Nuclei) | --new |
--no-resume | Deshabilita la reanudación de puntos de control | --no-resume |
--verbose | Muestra registros de depuración detallados | --verbose |