Nota: Las imágenes de Docker se publicarán en las próximas semanas.
Spidex es un escáner de reconocimiento continuo, que da prioridad a demostrar la exposición de la red. Realiza escaneo orientado a puertos a gran escala y recopila información de cada dispositivo conectado a Internet.
El motor se encarga de analizar masivamente las direcciones IP recibidas como argumentos. Recopila información pública sobre cada objetivo, como: puertos abiertos, ubicación geográfica, tecnologías web y banners.
También almacena un informe para cada ciclo de escaneo, que contiene: tiempo de ejecución, dispositivos encontrados y fecha de inicio/finalización.
La implementación de subprocesos y colas aumenta el rendimiento durante el escaneo. De esta forma, las solicitudes se envían en paralelo y se reduce significativamente el tiempo de ejecución de cada ciclo. Actualmente tiene un límite de 450/500 subprocesos.
options:
-h, --help show this help message and exit
-r RANGE, --range RANGE
Start IPv4 address
-t THREADS, --threads THREADS
Number of threads [Default: 50]
-f, FILE, --file File path with IPv4 ranges
-ti TIMEOUT, --timeout TIMEOUT
Socket timeout [Default: 0.5]
-p, --top-ports Scan only 20 most used ports
-a, --all-ports Scan 1000 most used ports
-c CUSTOM [CUSTOM ...], --custom-ports CUSTOM [CUSTOM ...]
Scan custom ports directly from terminal
-l, --logs Add a log file, useful in debugging
Escanee solo un rango de direcciones IPv4 con los puertos más utilizados de forma predeterminada:
python3 engine.py -r 192.168.0.0,192.168.0.255 -t 150 --top-ports
Escanee desde un archivo de texto con múltiples rangos de direcciones IPv4 y tiempo de espera de socket de segundos:
python3 engine.py -m ranges.csv -t 200 -ti 5 --all-ports
Escanear con CIDR, puertos personalizados y opción de registros:
python3 engine.py -r 192.168.0.0/255 -t 350 -C 80 21 22 --logs
Consiste en una aplicación Flask, que permite almacenar y realizar cualquier operación sobre los resultados enviados por el buscador. Utiliza MongoDB como base de datos, es ideal porque los datos no están estructurados.
Método | Ruta | Descripción |
---|---|---|
CORREO | api/enviar/dispositivo | Enviar resultado único |
CONSEGUIR | API/dispositivos | Obtener todos los resultados |
CONSEGUIR | API/dispositivo/IP | Obtenga un resultado único por dirección IP |
BORRAR | api/eliminar/dispositivo/ip | eliminar uno |
CORREO | API/enviar/reportar | Enviar informe de escaneo |
CONSEGUIR | API/informes | Obtener todos los informes |
El despliegue de ambos componentes se realiza con Docker, para facilitar la instalación y evitar contaminar el entorno con dependencias. Puede descargar las imágenes desde DockerHub.
Para una implementación básica, configure las variables de entorno para cada imagen en los archivos de Docker Compose.
MONGO_INITDB_ROOT_USERNAME: USERNAME
MONGO_INITDB_ROOT_PASSWORD: PASSWORD
DB_SERVER_NAME: MONGODB_SERVER
DB_USERNAME: MONGODB_USER
DB_PASSWORD: MONGODB_PASSWORD
SERVER_ADDRESS: API_SERVER
La integración de Elasticsearch y Kibana permite tener una interfaz gráfica para visualizar y manipular datos de manera eficiente.
Actualmente el proyecto no cuenta con una forma de insertar datos automáticamente. Pero puede utilizar herramientas como: Mongo-to-elastic-dump y generar algunos gráficos interesantes en su máquina local después de completar el ciclo de escaneo.
Si tienes ideas o funciones futuras, no dudes en participar para seguir haciendo grande este proyecto.
Este proyecto está realizado únicamente con fines educativos y de pruebas éticas. El uso de este software para atacar objetivos sin consentimiento mutuo previo es ilegal. Es responsabilidad del usuario final obedecer todas las leyes locales, estatales y federales aplicables. Los desarrolladores no asumen ninguna responsabilidad y no son responsables de ningún mal uso o daño causado por este programa.
apache 2.0