Eu tenho três idéias para você. Todos eles têm sua parcela de complexidade e você pode misturar e combinar como achar melhor. O primeiro é provavelmente o mais fácil, mas menos robusto (por si só).
1. Detecção passiva de MAC
A maneira padrão seria acompanhar os endereços MAC que estão solicitando endereços DHCP do roteador. A maioria dos roteadores fornece uma tela no estilo "Dispositivos conectados", que informa quem está se conectando.
Isso não é automático, mas você pode (com bastante facilidade) criar script em alguns Bash / Python para baixar a página do roteador, analisar os endereços MAC e compará-los com uma lista de endereços MAC conhecidos / permitidos.
O problema aqui é que nada é instantâneo. Você confia no roteador para atualizar sua página e precisa pesquisar isso com frequência. Alguns roteadores não vão gostar disso. Eu tenho um roteador de baixa qualidade Edimax que trava se você carregar mais de 10 páginas em um minuto (patético!), Portanto isso pode não funcionar.
Os endereços MAC também são lamentavelmente falsificados. macchanger
por exemplo, permitirá falsificar seu endereço MAC em um comando. Acho que até o Network Manager permitirá que você faça isso. Se alguém não quiser ser detectado, ele monitorará o tráfego da rede e falsificará um dos dispositivos válidos (conhecidos).
2. Sniffing ativo
É aqui que arrancamos as rodas e cavamos. Você precisará de uma ou outra peça sem fio sobressalente em um local que possa interceptar o tráfego de / para o roteador (idealmente bem próximo a ele).
Em resumo, você se airodump-ng
conecta e observa pessoas conectadas à sua rede. Deve ser possível criar um script para esta saída, para que, quando um novo dispositivo aparecer e começar a usar sua rede, você possa fazer algo instantaneamente .
A idéia seria que você execute isso na inicialização (como root):
airmon-ng start wlan0
airodump-ng --bssid 00:1F:9F:14:6F:EB -w output --output-format csv mon0
Substitua o BSSID pelo seu ponto de acesso.
Isso grava um arquivo de incremento automático que pode ser analisado regularmente. A versão acima escreve um arquivo de valores separados por vírgula, que é bastante básico, mas se você está satisfeito com XML (o Python pode torná-lo bastante simples), convém observar o netxml
formato de saída do airodump.
De qualquer forma, isso fornece informações regulares sobre quais dispositivos estão usando a rede (e quanto tráfego eles estão enviando também). Ainda é tão falível quanto usar a tabela ARP do roteador, mas está ativa.
Enquanto você estiver no modo promíscuo, se o seu script captar um cliente que ele acha que não deveria estar na rede, você pode usar tcpdump
para rastrear pacotes e registrar trocas de interesse (solicitações HTTP, etc.). É mais programação, mas pode ser feito.
3. Impressão digital com nmap
Outro método é varrer a rede para clientes com nmap
. Normalmente, você pode pensar que isso não ajudaria muito, se alguém está bloqueando pings, pode não aparecer.
Eu sugiro que você use isso em conjunto com qualquer um dos outros dois métodos. 1
fornecerá o endereço IP para que você possa nmapar diretamente. 2
não fornecerá um IP, mas informará quantos clientes nmap
devem encontrar, naquele exato momento. Verifique se todos os seus dispositivos podem executar ping.
Quando nmap
executado (por exemplo sudo nmap -O 192.168.1.1/24
), ele tenta encontrar hosts e, em seguida, faz uma varredura de porta neles para descobrir o que são. Sua lista de verificação deve incluir como cada um dos seus dispositivos deve responder nmap
.
Se você quiser ir mais longe, poderá executar um servidor simples em cada um dos seus computadores. Apenas algo que aceitou uma conexão e a abandonou. Em suma: Algo para nmap
procurar. Se o encontrar aberto, provavelmente é o seu computador.
4. Proteja sua rede melhor
Você deve fazer isso primeiro se estiver preocupado. Use WPA2 / AES. Nunca use WEP (rachaduras em cerca de cinco minutos).
Se você ainda está preocupado que alguém possa descobrir a chave (o WPA2 leva muitos dados e tempo computacional para quebrar), mude para um modelo RADIUS. É uma estrutura de autenticação que configura uma chave única para cada usuário. PITA para configurar embora.
Mas o que fazer ..?
Se eu não estivesse feliz com as coisas, provavelmente assistiria manualmente ao despejo de ar. Se eu ainda não estivesse feliz, começaria a imprimir as coisas que vi. Um pouco difícil (de maneira alguma impossível) de script.
O mais fácil de script será a raspagem de roteador com impressões digitais nmap
. Curto e simples.