
Snoopy: Um framework distribuído de rastreamento e interceptação de dados
| || | | || || || || | | |
| _____|| |_| || _ || _ || _ || |_| |
| |_____ | || | | || | | || |_| || |
|_____ || _ || |_| || |_| || ___||_ _|
_____| || | | || || || | | |
|_______||_| |__||_______||_______||___| |___|
V0.1
"Amy, tecnologia não é intrinsecamente boa ou má. É como ela é usada. Como o Raio da Morte."
-Professor Farnsworth
Bem-vindo ao Snoopy; uma estrutura distribuída de rastreamento e perfilamento. O Snoopy é um trabalho em andamento, então sinta-se à vontade para enviar sugestões e/ou correções. Este documento descreve o uso básico. Para entender um pouco mais do histórico, dê uma olhada no seguinte:
O software do lado cliente é executado no que chamamos de "Drones". Um Drone pode ser qualquer dispositivo baseado em Linux que possua interface WiFi (com drivers de injeção) e conectividade de internet de saída. O Snoopy foi testado em um Nokia N900 e em um laptop rodando BackTrack. Os Drones realizam as duas operações a seguir:
As solicitações de sonda coletadas (ex.: o iPhone do Bob procurando por BTHomeHub-4123) são enviadas ao servidor Snoopy em intervalos regulares. Todos os dispositivos que se associam ao Rogue AP têm sua Internet servida através do Servidor Snoopy.
O servidor armazena todas as solicitações de sonda em um banco de dados, e usa o Wigle para determinar coordenadas GPS, e o Google Maps para determinar endereços (e fotografias do Street View). Isso significa que, se você estiver sondando sua rede doméstica, eu posso obter uma fotografia da sua casa.
Cada Drone se conecta ao servidor via OpenVPN e possui sua própria sub-rede. Os clientes associados recebem um endereço IP do Drone e roteiam o tráfego através dele. Isso significa que, no servidor, podemos associar endereços IP de clientes (e portanto endereços MAC) à atividade de internet.
No servidor, acontece o seguinte:
O diagrama de rede é o seguinte:
Client1 Drone1 Snoopy Server
+----------+ +-----------------------+ +-----------------------+
| wlan0-|<---WiFi--->|-at0 | | eth0|<-squid-sslstrip-mitmproxy->Internet
| | | | 10.2.0.1 | | 11.22.33.44| |
| dhclient | | | | | | Traffic inspection
| | | | tap0-|<-openvpn----->|-tap0 | Social media analysis
+----------+ | | 192.168.42.2 | +--/| 192.168.42.1 |
10.2.0.2 | +-----------------------+ | +-----------------------+
| |
| | route 10.2.0.0 via 192.168.42.2
| | route 10.3.0.0 via 192.168.42.3
Client2 | |
+----------+ | |
| wlan0-|<---+ |
| | |
| dhclient | |
| | |
+----------+ |
10.2.0.3 |
|
|
|
Client3 Drone2 |
+----------+ +-----------------------+ |
| wlan0-|<---WiFi--->|-at0 | |
| | | | 10.3.0.1 | |
| dhclient | | | | |
| | | | tap0-|<-openvpn--+
+----------+ | | 192.168.42.3 |
10.3.0.2 | +-----------------------+
|
|
|
Client4 |
+----------+ |
| wlan0-|<---+
| |
| dhclient |
| |
+----------+
10.3.0.3
Walter escreveu uma interface web para o Snoopy. Ela pode ser acessada em http://your-snoopy-server.com:5000/
Existem vários transforms do Maltego para explorar graficamente os dados coletados (veja abaixo para mais informações).
INSTALAÇÃO ================ A instalação do servidor deve ser simples. Ela só foi testada em uma instalação padrão do Ubuntu 12.04 LTS 32bit. São feitas alterações em vários componentes do servidor, portanto é altamente recomendável executar o script de instalação em uma instalação base, e não rodar muitas outras coisas nessa máquina (se é que algo). Em caso de dúvida, percorra o arquivo install.sh e faça as alterações manualmente. Caso contrário, basta executar o instalador (./install.sh).
USO ======== Quando a instalação terminar, você deve conseguir digitar 'snoopy' para carregar o menu do servidor. Se não funcionar (ou em caso de dúvida), vá para o diretório home do usuário criado durante a instalação. Dentro do diretório 'snoopy/server/' há um arquivo 'snoopy.sh' que você pode executar. Abaixo está o menu:
+---------------------------------------------------------------+
| Welcome to Snoopy V0.1 |
| SERVER SIDE |
| |
| SensePost Information Security |
| [email protected] / www.sensepost.com |
+---------------------------------------------------------------+
Date: Thu Nov 1 16:37:08 CET 2012
Snoopy Server Status: Stopped
Connected Drones: 0
Wigle User: setYourWigleAccount