Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/sensepost/snoopy-ng
OSINT (Inteligência de Fontes Abertas)Sniffing e Análise de PacotesReconhecimentoSegurança BluetoothMapeamento de RedeExfiltração de DadosColeta de InformaçõesSegurança Sem FioTestes de PenetraçãoComando e ControleRastreadorAnálise de DNS
443129há 9 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
snoopy-ng — Snoopy v2.0 - framework modular de rastreamento terrestre digital | Kitploit
GitHubsensepost/snoopy-ng

snoopy-ng

Snoopy v2.0 - framework modular de rastreamento terrestre digital

Ver Repositório

A SensePost apresenta:

root@kitploit:~
  /$$$$$$                                                   
 /$$__  $$                                                  
| $$  \__/ /$$$$$$$   /$$$$$$   /$$$$$$   /$$$$$$  /$$   /$$
|  $$$$$$ | $$__  $$ /$$__  $$ /$$__  $$ /$$__  $$| $$  | $$
 \____  $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  \ $$| $$  | $$
 /$$  \ $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$| $$  | $$
|  $$$$$$/| $$  | $$|  $$$$$$/|  $$$$$$/| $$$$$$$/|  $$$$$$$
 \______/ |__/  |__/ \______/  \______/ | $$____/  \____  $$
                                        | $$       /$$  | $$
                                        | $$      |  $$$$$$/
                                        |__/       \______/
                        
                                               Versão: 2.0
Código:    [email protected] // @glennzw
Visite:   www.sensepost.com // @sensepost
Licença: Utilização não comercial

Bem-vindo ao Snoopy Versão 2.0!

  1. Configuração Rápida ============== Sem tempo? Experimente isto:

Para instalar e configurar o Snoopy:

root@kitploit:~
bash install.sh

Para guardar localmente os dados dos plugins wireless, sysinfo e heartbeat:

root@kitploit:~
snoopy -v -m wifi:mon=True -m sysinfo -m heartbeat -d myDrone -l London

Para sincronizar dados de um cliente para um servidor:

Servidor:

root@kitploit:~
snoopy_auth --create myDrone     # Create account
snoopy -v -m server              # Start server plugin

Cliente:

root@kitploit:~
snoopy -v -m wifi:mon=True -s http://<server>:9001/ -d myDrone -l London -k <key>
  1. INTRODUÇÃO E VISÃO GERAL ============================= O Snoopy é um framework distribuído de sensores, recolha de dados, interceção, análise e visualização. Está escrito num formato modular, permitindo a recolha de dados arbitrários de várias fontes através de plugins Python.

  2. Arquitetura

    Cada instância do Snoopy pode executar vários plugins em simultâneo. Um plugin recolhe dados, que são consultados pelo processo principal do Snoopy e gravados numa base de dados local. O Snoopy consegue sincronizar dados entre clientes (drones) e um servidor, e os clientes (drones) também podem obter réplicas de dados de um servidor. Cada instância do Snoopy pode executar plugins adequados à sua posição no panorama geral. Eis um diagrama que representa uma possível configuração:

    root@kitploit:~
     Drone01                     Server01
     +---------------+           +--------------+
     | Plugins:      |           | Plugins:     |
     |   * WiFi      |           |  *Server     |
     |   * Bluetooth |====3G====>|              |<=========================\
     |   * GSM       |           |              |                          ||
     |   * FitBit    |           |              |                          ||
     +---------------+           +--------------+                          ||
                                                                           ||
     Drone02                      Server02               Server03          ||
     +---------------+            +--------------+       +-------------+   ||
     | Plugins:      |            | Plugins:     |       | Plugins:    |   ||
     |   * WiFi      |            |  * Server    |       |  * Server   |   ||
     |   * Cookie    |=====Xbee==>|  * Heartbeat |==3G==>|  * Wigle    |<==\
     |     thief     |   ||       |              |       |  * DataViz  |   ||
     |   * GPS       |   ||       |              |       |             |   ||
     +---------------+   ||       +--------------+       +-------------+   ||
                         ||                                             Internet
     Drone03             ||                             Laptop01           || 
     +---------------+   ||                            +--------------+    ||                                
     | Plugins:      |   ||                            | Plugins:     |    ||
     |   * Thermal   |   ||                            |  *RemotePull |    ||
     |   * Camera    |===/                             |              |====/
     |   * Heat      |                                 |  Run:        |
     |               |                                 |   *Maltego   |
     +---------------+                                 +--------------+
    

Na ilustração acima, existem três drones em execução a sincronizar os seus dados para dois servidores distintos. Um sincroniza via 3G, os outros dois via Xbee. O segundo servidor sincroniza os seus dados para um terceiro servidor. Por fim, um cliente (portátil) obtém todos os dados do primeiro e do terceiro servidores e executa o Maltego para explorar os dados.

  1. Configuração e Instalação

Executar 'sh install.sh' dentro do diretório snoopy-ng.git instalará todos os pacotes necessários. Oferece a opção de instalar o aircrack a partir do código-fonte, o que é necessário para distribuições sem este pacote (a suíte aircrack é usada pelos plugins wireless). Não podemos recomendar o Maltego o suficiente para exploração de dados; uma edição comunitária (com algumas restrições) pode ser descarregada gratuitamente do site da Paterva em http://paterva.com.


  1. UTILIZAÇÃO ========

Básico

Para ver todas as flags e opções disponíveis, criámos dois comandos para si:

root@kali:~# snoopy --help (shorthand -h)

Este comando mostra-lhe todas as opções de execução, como o servidor para o qual sincronizar, o nome do drone e a sua localização. Além disso, também explica como executar os vários plugins.

root@kali:~# snoopy --list (shorthand -i)

Este comando lista todos os plugins disponíveis e os parâmetros necessários para cada plugin funcionar corretamente. Para obter informações mais detalhadas sobre cada plugin, use '-ii' ou '-iii'. Para obter informações sobre um plugin específico, use '-i -m '.

Os plugins podem ser especificados com a opção --plugin (ou a forma abreviada -m). Podem ser especificados vários plugins, que serão iniciados pela ordem introduzida. Cada plugin terá 60 segundos para indicar o seu estado de prontidão, após os quais ocorre timeout e o plugin seguinte é iniciado. Isto pode ser útil se os plugins subsequentes dependerem de ações dos anteriores.

Cada plugin pode aceitar vários parâmetros (conforme indicado na saída do --list) na forma de pares chave/valor separados por vírgulas. Abaixo usamos o plugin 'example', que simplesmente gera números aleatórios.

root@kitploit:~
   snoopy --plugin example:x=1,v=True
   

Se as opções de drone/localização não forem fornecidas, são usados valores predefinidos. Em alternativa, podem ser especificadas como abaixo.

root@kitploit:~
   snoopy --plugin example:x=1,v=True --drone myDrone --location Cansas

Sincronização de Dados

Os dados podem ser sincronizados para uma máquina remota fornecendo a opção --server (-s). A máquina remota deve estar a executar o plugin de servidor (--plugin server). Deve ser gerada uma chave para um nome de drone antecipadamente. O exemplo abaixo ilustra isto.

Servidor

root@kitploit:~
    root@server:~# snoopy_auth --create myDrone01 --verbose
    [+] Creating new Snoopy server sync account
    [+] Key for 'myDrone01' is 'GWWVF'
    [+] Use this value in client mode to sync data to a remote server.
    root@kali:~# snoopy --plugin server
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.
    

Cliente

root@kitploit:~
    root@client:~# snoopy --plugin example:x=1 --drone myDrone --key GWWVF --server http://<server_ip>:9001/ --verbose
    [+] Starting Snoopy with plugins: example
    [+] Plugin example created new random number: 21
    [+] Snoopy successfully sunc 2 elements over 2 tables.
     

Obtenção Remota de Dados

Os dados podem ser obtidos de um servidor usando o plugin local_sync. Por exemplo, supondo que o servidor acima está em execução, execute esta operação a partir do cliente:

root@kitploit:~
root@client:~# snoopy --plugin local_sync:server_url=http://<server_ip>:9001/ --drone myDrone --key GWWVF
[+] Plugin local_sync pulled 888 records from remote server.

Armazenamento em Base de Dados

O comportamento predefinido é armazenar todos os dados num ficheiro SQLITE snoopy.db. Isto pode ser substituído com o parâmetro --dbms. Consulte a documentação do SQL Alchemy sobre como especificar diferentes motores de base de dados (http://docs.sqlalchemy.org/en/rel_0_9/dialects/index.html). Como exemplo, abaixo usamos MySQL:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=mysql://glenn:secret@localhost/snoopy_db
    [+] Capturing local only. Saving to 'mysql://glenn:secret@localhost/snoopy_db'   

Pode ser útil usar armazenamento SQLITE em dispositivos mais pequenos e fazer com que o plugin de servidor guarde em MySQL (ou semelhante). Outro exemplo pode ser útil quando especificamos a localização do ficheiro para armazenar dados, como em suporte amovível:

root@kitploit:~
    root@client:~# snoopy -v --plugin example --dbms=sqlite:////media/USB01/snoopy.db
    

Existe uma opção --flush (-f) para 'limpar' os dados do armazenamento local depois de estes serem sincronizados com um servidor upstream.

Iniciar Serviços no Arranque

O Snoopy pode ser iniciado com um script upstart (consulte a pasta ./setup/upstarts). Outros scripts upstart de exemplo são fornecidos no mesmo diretório - por exemplo, um para estabelecer uma ligação PPP a partir de um modem 3G e outro para criar um canal remoto de comandos SSH.

Os sistemas baseados em Debian (ex.: Kali) parecem não suportar upstart. Entretanto, o ficheiro rc.local fornecido pode ser usado para iniciar o Snoopy e serviços relacionados no arranque.


  1. VISUALIZAÇÃO DE DADOS =====================

O Maltego é a ferramenta preferida para fazer a visualização. As instruções estão abaixo:

  1. Abra o Maltego
  2. Selecione 'Import Configuration'
  3. Escolha 'snoopy_entities.mtz' da pasta transforms

Isto deverá importar tanto as entidades como os transforms. Para começar, arraste a entidade 'Base of Operations' do separador Snoopy no menu Palette para um gráfico em branco. Como exemplo, execute as seguintes operações sobre a entidade:

  1. Clique com o botão direito, selecione Transforms e escolha 'Get Drones'
  2. No drone pretendido, clique com o botão direito e selecione 'Get Location'
  3. Na localização pretendida, clique com o botão direito e selecione 'Get Clients'
  4. Nos clientes pretendidos, clique com o botão direito e selecione 'Get Observations'

Existem transforms para obter domínios e cookies (a partir de monitorização passiva), consultar endereços de rua de SSIDs, e vários são bidirecionais (por exemplo, é possível consultar clientes a partir de Localização, ou Localizações a partir de cliente). O melhor é explorar.

Especificação da Base de Dados

Se não estiver a usar o formato sqlite predefinido, edite o seguinte ficheiro para especificar a localização dos dados:

root@kitploit:~
    snoopy_ng/transforms/db_path.conf
    

Partilha de Gráficos

O gráfico do Snoopy pode ser partilhado por vários analistas em simultâneo usando a função de colaboração do Maltego. Selecione Collaboration e 'Share Current Graph'.


  1. UTILIZAÇÃO COMERCIAL =================== A licença sob a qual o Snoopy é distribuído proíbe obter ganho financeiro (ou de outra forma) com a sua utilização (ver LICENSE.txt). Temos uma licença separada disponível para uso comercial, que inclui funcionalidades adicionais como:

    • Sincronização de dados via XBee
    • Plugins avançados
    • Transforms extra/personalizados
    • Interface web
    • Drones pré-construídos

Entre em contacto ([email protected] / [email protected]) se quiser colaborar connosco.


  1. APÊNDICE =========== Escrever Plugins

Consulte o ficheiro plugins/example.py para compreender como os plugins devem ser escritos. Qualquer ficheiro colocado na pasta plugins será tratado como um plugin e deve ter as seguintes propriedades:

  1. Fornecer informações do plugin e definições opcionais de parâmetros.
  2. Fornecer definições do esquema de tabelas SQL para os dados que irá recolher.
  3. Devolver os dados no formato definido acima quando consultado.

Caso contrário, o plugin pode fazer o que quiser.

Hardware

O Snoopy funciona em qualquer dispositivo Linux com suporte suficiente para instalar os ficheiros do ficheiro install.sh, ou seja, Python e pacotes relacionados. O suporte de hardware varia consoante os plugins necessários, mas para o cenário mais comum de recolher dados WiFi e enviá-los via 3G, é recomendado o seguinte:

  • BeagleBone Black
  • Hub USB alimentado (com divisor em Y para poupar duas tomadas)
  • Adaptador WiFi Alfa AWUS036h
  • Modem Huawei E160
  • BlueNext BN903S GPS
  • Pelo menos um adaptador de corrente de 2A (variará consoante os periféricos que tiver)

Sistema Operativo

Foram testados o Kali 1.05 e o Ubuntu 12.04. Sistemas semelhantes deverão funcionar.

Notas Adicionais:

  • Pode executar quantos plugins quiser ao mesmo tempo. Os plugins iniciam sequencialmente, pela ordem fornecida na linha de comandos.
  • O plugin seguinte só começa a iniciar quando o anterior indicar que está pronto (com um timeout de 60 segundos). Isto é útil se os plugins subsequentes dependerem dos anteriores.
  • Se não especificar um drone ou localização, serão usados os valores predefinidos.
  • Pode executar o Snoopy sem plugins para apenas sincronizar dados.

Problemas Conhecidos

Ocorre uma condição de erro ao recolher dados localmente, sincronizar para um servidor remoto e depois obter uma réplica do servidor. Ex.:

Servidor

root@kitploit:~
    root@kali:~# snoopy -m server -m wigle:username=u,password=p,[email protected]
    [+] Running webserver on '0.0.0.0:9001'
    [+] Plugin server caught data for 2 tables.

     

Cliente

root@kitploit:~
	root@client:~# snoopy -m wifi -m local_sync:server_url=http://1.1.1.1:9001/ -d myDrone -l London -k secretkey -s http://1.1.1.1:9001/
Baixar ferramenta