
O motor modular distribuído de fingerprinting
O Scannerl é um mecanismo modular distribuído de fingerprinting implementado pela Kudelski Security. O Scannerl pode realizar fingerprint de milhares de alvos em um único host, mas pode ser facilmente distribuído por vários hosts. O Scannerl está para o fingerprinting assim como o zmap está para o escaneamento de portas.
O Scannerl funciona no Debian/Ubuntu/Arch (mas provavelmente funcionará em outras distribuições também). Ele usa uma arquitetura mestre/escravo onde o nó mestre distribui o trabalho (host(s) para fingerprint) para seus escravos (locais ou remotos). Toda a implantação é transparente para o usuário.
Ao usar ferramentas convencionais de fingerprinting para análises em larga escala, os pesquisadores de segurança frequentemente encontram duas limitações: primeiro, essas ferramentas são tipicamente construídas para escanear comparativamente poucos hosts por vez e são inadequadas para grandes faixas de endereços IP. Segundo, se uma grande faixa de endereços IP protegidos por dispositivos IPS estiver sendo submetida a fingerprint, a probabilidade de ser colocada na lista negra é maior, o que pode levar a um conjunto incompleto de informações. O Scannerl foi projetado para contornar essas limitações, não apenas fornecendo a capacidade de realizar fingerprint de múltiplos hosts simultaneamente, mas também distribuindo a carga por um número arbitrário de hosts. O Scannerl também torna a distribuição dessas tarefas completamente transparente, o que torna a configuração e manutenção de projetos de fingerprinting em larga escala triviais; isso permite focar nas análises em vez da tarefa hercúlea de gerenciar e distribuir processos de fingerprinting manualmente. Além do fator velocidade, o scannerl foi projetado para permitir configurar facilmente análises específicas de fingerprinting em algumas linhas de código. Não apenas a criação de um cluster de fingerprinting é fácil de configurar, mas também pode ser ajustada adicionando varreduras refinadas às suas campanhas de fingerprinting.
É a ferramenta mais rápida para realizar campanhas de fingerprinting em larga escala.
Para mais informações:
Índice
Veja o wiki para mais.
Veja as diferentes opções de instalação na página de instalação do wiki
Para instalar a partir do código fonte, primeiro instale o Erlang (pelo menos v.18) escolhendo o pacote correto para sua plataforma: Downloads do Erlang
Instale os pacotes necessários:
# on debian
$ sudo apt install erlang erlang-src rebar
# on arch
$ sudo pacman -S erlang-nox rebar
Em seguida, compile o scannerl:
$ git clone https://github.com/kudelskisecurity/scannerl.git
$ cd scannerl
$ ./build.sh
Obtenha o uso executando
$ ./scannerl -h
O Scannerl está disponível no AUR para usuários do Arch Linux
DEBs (Ubuntu, Debian) estão disponíveis nos releases.
RPMs (Opensuse, Centos, Redhat) estão disponíveis em https://build.opensuse.org/package/show/home:chapeaurouge/scannerl.
Dois tipos de nós são necessários para realizar uma varredura distribuída:
O nó mestre precisa ter o scannerl instalado e compilado, enquanto o(s) nó(s) escravo(s) precisa(m) apenas ter o Erlang instalado. Toda a configuração é transparente e feita automaticamente pelo nó mestre.
Requisitos para uma varredura distribuída:
$ ./scannerl -h
____ ____ _ _ _ _ _ _____ ____ _
/ ___| / ___| / \ | \ | | \ | | ____| _ \| |
\___ \| | / _ \ | \| | \| | _| | |_) | |
___) | |___ / ___ \| |\ | |\ | |___| _ <| |___
|____/ \____/_/ \_\_| \_|_| \_|_____|_| \_\_____|
USAGE
scannerl MODULE TARGETS [NODES] [OPTIONS]
MODULE:
-m <mod> --module <mod>
mod: the fingerprinting module to use.
arguments are separated with a colon.
TARGETS:
-f <target> --target <target>
target: a list of target separated by a comma.
-F <path> --target-file <path>
path: the path of the file containing one target per line.
-d <domain> --domain <domain>
domain: a list of domains separated by a comma.
-D <path> --domain-file <path>
path: the path of the file containing one domain per line.
NODES:
-s <node> --slave <node>
node: a list of node (hostnames not IPs) separated by a comma.
-S <path> --slave-file <path>
path: the path of the file containing one node per line.
a node can also be supplied with a multiplier (<node>*<nb>).