lundi 21 mars 2011

Qui est sur le réseau ?

Qui est branché sur le réseau ?
C'est toujours possible d'aller consulter son routeur pour trouver quels sont les postes connectés.
Mais je trouvais la manipulation un peu trop longue pour moi qui ai deux routeurs à la maison.

Passons en revue les commandes utiles.



Dans un terminal, taper la commande routel
La commande routel va permettre permet de trouver rapidement l'adresse IP des routeurs. (Notez bien qu'il s'agit de la commande routel et non pas route)

Une fois, les adresses IP trouvées, nous allons utiliser la commande nmap pour scanner, rapidement, les réseaux.
Dans un terminal, taper nmap -sP Plage_ip_routeur1 Plage_ip_routeur2

Dans l'exemple, ci-dessus les 512 adresses ont été scannées en 3.46 secondes. (plus rapide qu'avec un ping...)
C'est rapide mais il nous manque les adresses MAC des postes connectés.

Ce scan a permit d'alimenter le cache du ARP.
Dans un terminal, taper la commande arp -na | grep -iv incomplet
Arp nous a permit de récupérer rapidement les adresses MAC de tous les postes connectés.

Il ne reste plus qu'à alimenter un fichier permettant de mettre en correspondance les adresses MAC des différents postes du réseau avec des noms plus compréhensibles (j'ai toujours eu du mal à retenir par cœur des adresses de type MAC ...)

Il ne reste plus qu'à mettre tout ça dans un petit script bash.



Ce petit script a l'avantage d'être léger et même rapide comparé à certaines applications existantes et surtout vous en maitrisez les commandes et vous connaissez donc leurs limitations =;)


Les détails du script

Le fichier des adresses MAC répertoriées: qui_est_connu.txt est de la forme:adresse MAC;le nom du poste
Exemple : 00:16:dc:5e:03:82;PC_bidule


Le script:

#!/bin/bash
# Nécessite Nmap

echo $0
cd /home/$USER/.gnome2/nautilus-scripts
if [ -e qui_est_la.txt ]
then
rm qui_est_la.txt
fi

routel | grep "/ 24" | cut -d"." -f1-3 >> firstPart.txt

for firstPart in `cat firstPart.txt`
do
    nmap -sP $firstPart.0/24
done

    arp -na | grep -v "incomplet" | sort --key=4 >> qui_est_la4.txt

date >> qui_est_la.txt

for i in `cat qui_est_la4.txt | cut -d" " -f4 | sort`
do
    k=`cat qui_est_la4.txt | grep $i | cut -d" " -f2,7`
    j=`cat qui_est_connu.txt | grep $i | cut -d";" -f2`
if [ -z "$j" ]
    then
    echo " ***   !! Adresse MAC inconnue !! ******************************" >> qui_est_la.txt
    echo -e " * " \\t ": " $i \\t ": " $k "      *" >> qui_est_la.txt
    echo " ***   !! ******************** !! ******************************" >> qui_est_la.txt
    notify-send -u critical -i /usr/share/icons/hicolor/scalable/status/notification-critical.svg "ALERTE" " !! Adresse MAC inconnue : $i : $k "
else
    echo -e $j \\t ": " $i \\t ": " $k >> qui_est_la.txt
fi
done

xterm -title "Qui est là ?" -e "cat qui_est_la.txt && echo -e '\\n Les résultats sont enregistrés dans le fichier : qui_est_la.txt \\n Taper sur pour Quitter :  ' &&  read mot "

rm qui_est_la4.txt
rm firstPart.txt

exit

2 commentaires:

  1. Et pour repérer le poste d'un mec qui s'introduit entre deux PC wireless linked à coup d'ARP poisoning ?
    Pas moyen de repérer via la routeur la preuve du détournement des adresses MAC ? :)

    Merci d'avance, et merci pour le script, ça peut être utile de savoir qui rôde... ;)

    RépondreSupprimer
  2. @Wattswing
    De tête, il existe Arpwatch qui permet de surveiller l'appairage du réseau.

    A plus,

    RépondreSupprimer