J'ai trois idées pour toi. Ils ont tous leur part de complexité et vous pouvez mélanger et assortir comme bon vous semble. Le premier est probablement le plus simple, mais le moins robuste (seul).
1. Détection passive MAC
La manière standard serait de garder une trace des adresses MAC qui demandent des adresses DHCP au routeur. La plupart des routeurs fournissent un écran de style «Périphériques connectés» qui vous indiquera qui se connecte.
Ce n'est pas automatique, mais vous pouvez (assez facilement) créer un script Bash / Python pour tirer la page du routeur vers le bas, analyser les adresses MAC et les comparer à une liste d'adresses MAC connues / autorisées.
Le problème ici est que rien n'est instantané. Vous comptez sur le routeur pour mettre à jour sa page et vous devez l'interroger fréquemment. Certains routeurs n'aimeront pas cela. J'ai un routeur Edimax merdique qui se bloque si vous chargez plus de 10 pages en une minute (pathétique!), Donc cela pourrait ne pas fonctionner.
Les adresses MAC sont également terriblement usurpées. macchanger
par exemple, vous permettra d'usurper votre adresse MAC en une seule commande. Je pense que même Network Manager vous permettra de le faire. Si quelqu'un ne veut pas être détecté, il surveillera le trafic réseau et usurpera l'un des appareils valides (connus).
2. Reniflement actif
C'est là que nous déchirons les roues et creusons. Vous aurez besoin de quelque chose ou autre sans fil de rechange dans un endroit qui peut intercepter le trafic vers / depuis le routeur (idéalement assez proche de lui).
En bref, vous vous connectez airodump-ng
et vous regardez les gens connectés à votre réseau. Il devrait être possible de créer un script pour cette sortie. Ainsi, lorsqu'un nouveau périphérique apparaît et commence à utiliser votre réseau, vous pouvez instantanément faire quelque chose .
L'idée serait que vous exécutiez cela au démarrage (en tant que root):
airmon-ng start wlan0
airodump-ng --bssid 00:1F:9F:14:6F:EB -w output --output-format csv mon0
Remplacez le BSSID par celui de votre point d'accès.
Cela écrit un fichier auto-incrémenté qui peut être analysé régulièrement. La version ci-dessus écrit un fichier de valeurs séparées par des virgules qui est assez basique mais si vous êtes satisfait de XML (Python peut le rendre assez simple), vous voudrez peut-être regarder le netxml
format de sortie pour airodump.
Quoi qu'il en soit, cela vous donne des informations régulières sur les appareils qui utilisent le réseau (et la quantité de trafic qu'ils envoient également). C'est toujours aussi faillible que d'utiliser la table ARP du routeur, mais c'est en direct.
Pendant que vous êtes en mode promiscuité, si votre script détecte un client qu'il pense qu'il ne devrait pas être sur le réseau, vous pouvez utiliser tcpdump
pour parcourir les paquets et consigner les échanges d'intérêt (requêtes HTTP, etc.). C'est plus de programmation mais cela peut être fait.
3. Empreintes digitales avec nmap
Une autre méthode consiste à balayer le réseau pour les clients avec nmap
. Normalement, vous pourriez penser que cela ne vous aiderait pas trop, si quelqu'un bloque les pings, cela pourrait ne pas apparaître.
Je vous suggère de l'utiliser en conjonction avec l'une des deux autres méthodes. 1
vous donnera l'adresse IP afin que vous puissiez nmap directement. 2
ne vous donnera pas d'adresse IP, mais il vous permettra de savoir combien de clients nmap
devraient s'attendre à trouver, à ce moment précis. Assurez-vous que tous vos appareils sont pingables.
Lors de l' nmap
exécution (par exemple sudo nmap -O 192.168.1.1/24
), il essaiera de trouver des hôtes, puis effectuera une analyse de port sur eux pour déterminer ce qu'ils sont. Votre liste de contrôle doit inclure la réponse de chacun de vos appareils nmap
.
Si vous voulez aller plus loin, vous pouvez exécuter un simple serveur sur chacun de vos ordinateurs. Juste quelque chose qui a accepté une connexion et l'a ensuite abandonnée. En bref: quelque chose nmap
à rechercher. S'il le trouve ouvert, c'est probablement votre ordinateur.
4. Sécurisez mieux votre réseau
Vous devriez en fait le faire en premier si vous êtes inquiet. Utilisez WPA2 / AES. N'utilisez jamais de WEP (se fissure en cinq minutes environ).
Si vous craignez toujours que quelqu'un découvre la clé (WPA2 prend beaucoup de données et de temps de calcul pour se fissurer), passez à un modèle RADIUS. Il s'agit d'un cadre d'authentification qui définit une clé unique pour chaque utilisateur. PITA à mettre en place cependant.
Mais que faire ..?
Si je n'étais pas satisfait des choses, je regarderais probablement manuellement airodump. Si je n'étais toujours pas heureux, je commencerais à prendre les empreintes digitales des choses que j'ai vues. Un peu difficile (en aucun cas impossible) à écrire cependant.
Le plus simple à scripter sera le raclage de routeur avec empreinte digitale nmap
. Court et simple.