
El motor de fingerprinting distribuido y modular
Scannerl es un motor modular de fingerprinting distribuido implementado por Kudelski Security. Scannerl puede generar huellas digitales de miles de objetivos en un solo host, pero también puede distribuirse fácilmente a través de múltiples hosts. Scannerl es al fingerprinting lo que zmap es al escaneo de puertos.
Scannerl funciona en Debian/Ubuntu/Arch (pero probablemente funcione en otras distribuciones también). Utiliza una arquitectura maestro/esclavo donde el nodo maestro distribuye el trabajo (host(s) a identificar) a sus esclavos (locales o remotos). Toda la implementación es transparente para el usuario.
Cuando se utilizan herramientas convencionales de fingerprinting para análisis a gran escala, los investigadores de seguridad a menudo se topan con dos limitaciones: primero, estas herramientas suelen estar diseñadas para escanear relativamente pocos hosts a la vez y no son adecuadas para grandes rangos de direcciones IP. Segundo, si se escanea un gran rango de direcciones IP protegidas por dispositivos IPS, la probabilidad de ser incluido en una lista negra es mayor, lo que podría llevar a un conjunto de información incompleto. Scannerl está diseñado para sortear estas limitaciones, no solo proporcionando la capacidad de identificar múltiples hosts simultáneamente, sino también distribuyendo la carga entre un número arbitrario de hosts. Scannerl también hace que la distribución de estas tareas sea completamente transparente, lo que hace que la configuración y el mantenimiento de proyectos de fingerprinting a gran escala sean triviales; esto permite centrarse en los análisis en lugar de la tarea hercúlea de gestionar y distribuir procesos de fingerprinting manualmente. Además del factor de velocidad, scannerl ha sido diseñado para permitir configurar fácilmente análisis de fingerprinting específicos en unas pocas líneas de código. No solo es fácil configurar un clúster de fingerprinting, sino que se puede ajustar añadiendo escaneos finamente ajustados a sus campañas de fingerprinting.
Es la herramienta más rápida para realizar campañas de fingerprinting a gran escala.
Para más información:
Tabla de contenidos
Consulte la wiki para más información.
Consulte las diferentes opciones de instalación en la página de instalación de la wiki
Para instalar desde el código fuente, primero instale Erlang (al menos v.18) eligiendo el paquete correcto para su plataforma: Descargas de Erlang
Instale los paquetes requeridos:
# en debian
$ sudo apt install erlang erlang-src rebar
# en arch
$ sudo pacman -S erlang-nox rebar
Luego compile scannerl:
$ git clone https://github.com/kudelskisecurity/scannerl.git
$ cd scannerl
$ ./build.sh
Obtenga el uso ejecutando
$ ./scannerl -h
Scannerl está disponible en AUR para usuarios de arch linux
Los DEBs (Ubuntu, Debian) están disponibles en los lanzamientos.
Los RPMs (Opensuse, Centos, Redhat) están disponibles en https://build.opensuse.org/package/show/home:chapeaurouge/scannerl.
Se necesitan dos tipos de nodos para realizar un escaneo distribuido:
El nodo maestro necesita tener scannerl instalado y compilado, mientras que el nodo(s) esclavo(s) solo necesita tener Erlang instalado. Toda la configuración es transparente y se realiza automáticamente por el nodo maestro.
Requisitos para un escaneo distribuido:
$ ./scannerl -h
____ ____ _ _ _ _ _ _____ ____ _
/ ___| / ___| / \ | \ | | \ | | ____| _ \| |
\___ \| | / _ \ | \| | \| | _| | |_) | |
___) | |___ / ___ \| |\ | |\ | |___| _ <| |___
|____/ \____/_/ \_\_| \_|_| \_|_____|_| \_\_____|
USO
scannerl MODULO OBJETIVOS [NODOS] [OPCIONES]
MODULO:
-m <mod> --module <mod>
mod: el módulo de fingerprinting a utilizar.
los argumentos se separan con dos puntos.
OBJETIVOS:
-f <objetivo> --target <objetivo>
objetivo: una lista de objetivos separados por coma.
-F <ruta> --target-file <ruta>
ruta: la ruta del archivo que contiene un objetivo por línea.
-d <dominio> --domain <dominio>
dominio: una lista de dominios separados por coma.
-D <ruta> --domain-file <ruta>
ruta: la ruta del archivo que contiene un dominio por línea.
NODOS:
-s <nodo> --slave <nodo>
nodo: una lista de nodos (nombres de host, no IPs) separados por coma.
-S <ruta> --slave-file <ruta>
ruta: la ruta del archivo que contiene un nodo por línea.
un nodo también se puede proporcionar con un multiplicador (<nodo>*<nb>).