Kismet
Un article de Wiki.
← Version précédente | Version suivante →
Sommaire |
Introduction
Kismet est un outil de la famille des sondeurs de réseaux sans fil (Wireless Network Sniffer) offrant de nombreuses possibilités (wireless mapping, wardriving,...).
Nous l'utiliserons uniquement lors des TP afin de trouver les plages de fréquences disponibles pour configurer les équipements WLAN sans gêner les autres équipements WLAN en service.
Installation à partir des binaires
Debian :
#apt-get install kismet
OpenSUSE:
#smart install kismet
Configuration
Pour une carte gérée avec la dernière version de madwifi (module ath5k) :
# Version of Kismet config version=2007.09.R1 # Name of server (Purely for organizational purposes) servername=Kismet # User to setid to (should be your normal user) suiduser=your_user_here # Do we try to put networkmanager to sleep? If you use NM, this is probably # what you want to do, so that it will leave the interfaces alone while # Kismet is using them. This requires DBus support! networkmanagersleep=true # Sources are defined as: # source=sourcetype,interface,name[,initialchannel] # Source types and required drivers are listed in the README under the # CAPTURE SOURCES section. # The initial channel is optional, if hopping is not enabled it can be used # to set the channel the interface listens on. # YOU MUST CHANGE THIS TO BE THE SOURCE YOU WANT TO USE source=ath5k,wlan0,addme
Pour une carte gérée avec le module madwifi (Cisco) sous Debian :
debian:~# more /etc/kismet/kismet.conf # Kismet config file # Most of the "static" configs have been moved to here -- the command line # config was getting way too crowded and cryptic. We want functionality, # not continually reading --help! # Version of Kismet config version=2005.06.R1 # Name of server (Purely for organizational purposes) servername=Kismet # User to setid to (should be your normal user) #suiduser=iris # Sources are defined as: # source=sourcetype,interface,name[,initialchannel] # Source types and required drivers are listed in the README under the # CAPTURE SOURCES section. # The initial channel is optional, if hopping is not enabled it can be used # to set the channel the interface listens on. # YOU MUST CHANGE THIS TO BE THE SOURCE YOU WANT TO USE source=madwifi_ag,wifi0,addme
Pour une carte Intel Corporation PRO/Wireless 2200BG sous openSUSE :
# more /etc/kismet.conf # Kismet config file # Most of the "static" configs have been moved to here -- the command li ne # config was getting way too crowded and cryptic. We want functionality , # not continually reading --help! # Version of Kismet config version=2005.06.R1 # Name of server (Purely for organizational purposes) servername=Kismet # User to setid to (should be your normal user) suiduser=your_user_here # Sources are defined as: # source=sourcetype,interface,name[,initialchannel] # Source types and required drivers are listed in the README under the # CAPTURE SOURCES section. # The initial channel is optional, if hopping is not enabled it can be u sed # to set the channel the interface listens on. # YOU MUST CHANGE THIS TO BE THE SOURCE YOU WANT TO USE source=ipw2200,eth1,monWLAN
Configuration de la carte WLAN pour Kismet
On passe la carte en mode monitor :
Carte Intel PRO/Wireless 2200BG :
# iwconfig eth1 essid any # iwconfig eth1 mode monitor
On peut vérifier que la carte fonctionne bien en mode Monitor :
# iwconfig eth1
eth1 unassociated ESSID:off/any
Mode:Monitor Frequency=2.417 GHz Access Point: Not-Associated
Bit Rate:0 kb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
A chaque appel de la commande précédente, la fréquence change (channel hopping).
EeePC
Pour un EeePC équipé d'un chipset Atheros, on choisira la source suivante :
source=madwifi_g,wifi0,Atheros
Avant de lancer kismet, on prendra soin d'enlever l'interface ath0 :
# wlanconfig ath0 destroy # kismet
Ecran principal
On lance Kismet dans une console :
# kismet ┌─Network List──(Autofit)─────────────────────────────────────────────────────┐┌─Info───┐ │ Name T W Ch Packts Flags IP Range Size ││ Ntwrks │ │ Probe Networks P N --- 2387 0.0.0.0 0B ││ 2 │ │ ! <tsunami> A N 011 980 0.0.0.0 0B ││ Pckets │ │ ││ 3826 │ │ ││ Cryptd │ │ ││ 0 │ │ ││ Weak │ │ ││ 0 │ │ ││ Noise │ │ ││ 0 │ │ ││ Discrd │ │ ││ 0 │ │ ││ Pkts/s │ │ ││ 6 │ │ ││ │ │ ││madwifi │ │ ││ Ch: 4 │ │ ││ │ │ ││ Elapsd │ └─────────────────────────────────────────────────────────────────────────────┘└00:07:11┘ ┌─Status────────────────────────────────────────────────────────────────────────────────┐ │ ALERT: Suspicious client 00:12:F0:9D:40:A0 - probing networks but never participating│ │ ALERT: Suspicious client 00:12:F0:9D:40:A0 - probing networks but never participating│ │ ALERT: Suspicious client 00:12:F0:9D:40:A0 - probing networks but never participating│ │ ALERT: Suspicious client 00:12:F0:9D:40:A0 - probing networks but never participating│ └─Battery: AC 100%──────────────────────────────────────────────────────────────────────┘
- Network list :
- Name : SSID (Service Set Identifier) identifiant du réseau
- T : Type de réseau
- P Probe request - Pas encore de connexion associée
- A Access point - Réseau WLAN standard
- H Ad-hoc - WLAN point à point
- T Turbocell - Turbocell aka Karlnet ou routeur Lucent
- G Group - Group de WLAN
- D Data - Réseau de données seulement sans paquets de contrôle
- W : Indicateur de chiffrement
- N : pas de chiffrement
- Y : chiffrement WEP
- O : (Other) autre chiffrement (LEAP...)
- Ch : Canal utilisé par le réseau
- Packts : Nombre de paquets capturés sur ce réseau
- Flags :
- IP Range : Plage d'adresses IP détectées sur ce réseau
- Size :
- Info :
- Ntwrks : Nombre total de réseaux trouvés
- Pckets : Nombre total de paquets capturés
- Cryptd : Nombre total de paquets cryptés capturés
- Weak : Nombre total de paquets avec un vecteur d'initialisation de cryptage faible
- Noise : Niveau de bruit
- Discrd : Nombre de paquets abandonnés
- Pkts/s : Nombre de paquets par seconde
- madwifi : Type de carte de capture (prism, ...)
- Ch: Canal sniffé en cours
- Elapsd : Temps d'exécution de Kismet
| Réseau/Client | Type |
|---|---|
| Jaune | Réseau non crypté |
| Rouge | Réglage usine sur la borne Wifi ! |
| Vert | Réseau sécurisé (WEP, WPA, ...) |
| Bleu | Camouflage SSID en cours / Broadcast SSID disabled |
Utilisation
Kismet se contrôle uniquement à l'aide des touches (majuscules ou miniscules) .
La sortie d'une fenêtre popup se fait à l'aide de la touche [x] ou [q].
On sort de Kismet avec [Q].
| Options | Touche |
|---|---|
| [Général] Aide | h |
| [Général] Méthodes de classement des réseaux | s |
| [Général] Liste des serveurs Kismet | e |
| [Général] Zoom sur la vue "Network List" | z |
| [Général] (Dés)Activation du son | m |
| [Général] Redessine l'écran | ^L |
| [Général] Affiche en caractères imprimables | d |
| [Général] Ferme une fenêtre popup | x/q |
| [Général] Sortie de Kismet | Q |
| [Groupe] Pose ou enlève un tag sur un réseau | t |
| [Groupe] Groupe les réseaux taggés | g |
| [Groupe] Dégroupe les réseaux | u |
| [Groupe] Ouvre/Ferme les groupes | +/- |
| [Analyse] Montre les clients d'un réseau | c |
| [Analyse] Verrouille le saut de canal sur le canal courant | L |
| [Analyse] Réactive le saut de canaux (channel hopping) | H |
| [Analyse] Nomme le réseau courant | n |
| [Analyse] Détails sur le réseau courant | i |
| [Analyse] Détails sur les niveaux de puissance de l'interface réseau sans fil | l |
| [Analyse] Graphique Nb paquets/temps | r |
| [Analyse] Statistiques | a |
| [Analyse] Montre le type des paquets | p |
| [GPS] Suit le centre du réseau | f |
| [GPS] Alerte de suivi | w |
| Classement par | Touche |
|---|---|
| Canal | c |
| Premier réseau vu | f |
| Dernier réseau vu | l |
| SSID | s |
| Nombre de paquets | p |
| Niveau de puissance du signal | Q |
| WEP | w |
Couplage de Kismet avec un GPS
On installe le démon GPSD :
~> cd ~/opt/ ~/opt> wget http://fresh.t-systems-sfr.com/linux/src/gpsd-2.34.tar.gz ~/opt> tar xvf gpsd-2.34.tar.gz ~/opt> cd gpsd-2.34/ ~/opt/gpsd-2.34> ./configure ~/opt/gpsd-2.34> make ~/opt/gpsd-2.34> sudo make install
On branche une antenne GPS sur un port USB :
~> lsusb Bus 002 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port ...
On vérifie que le port ttyUSB0 apparait dans /dev
~> ls /dev/ttyU* /dev/ttyUSB0
On vérifie l'arrivée des trames NMEA avec minicom (4800 8N1)
$GPVTG,,T,,M,0.00,N,0.0,K,A*13 $GPGGA,071654.000,4719.6096,N,00144.4534,W,1,04,3.0,45.7,M,48.7,M,,00000 $GPRMC,071654.000,A,4719.6096,N,00144.4534,W,0.00,,291007,,,A*6BOnline $GPVTG,,T,,M,0.00,N,0.0,K,A*13 $GPGGA,071655.000,4719.6096,N,00144.4534,W,1,04,3.0,45.7,M,48.7,M,,00001 $GPGSA,A,3,18,09,28,17,,,,,,,,,6.8,3.0,6.1*34 $GPGSV,3,1,11,26,59,135,19,09,55,282,25,18,38,280,26,17,28,086,31*76 $GPGSV,3,2,11,07,25,124,,28,23,047,19,31,23,061,,22,17,318,*77 $GPGSV,3,3,11,08,06,077,,10,06,184,,05,06,219,*44 $GPRMC,071655.000,A,4719.6096,N,00144.4534,W,0.00,,291007,,,A*6A $GPVTG,,T,,M,0.00,N,0.0,K,A*13 $GPGGA,071656.000,4719.6096,N,00144.4534,W,1,04,3.0,45.7,M,48.7,M,,00002 $GPRMC,071656.000,A,4719.6096,N,00144.4534,W,0.00,,291007,,,A*69 $GPVTG,,T,,M,0.00,N,0.0,K,A*13
On lance enfin le démon gpsd en root :
# gpsd -p /dev/ttyUSB0
Compilation de gpsmap pour google map
gpsmap est livré avec kismet. Il faut donc recompiler une partie de kismet pour produire le binaire gpsmap.
Dépendances pour la compilation de kismet :
- Images-Magick-devel (openSUSE)
- Libzypp-devel (openSUSE)
On se place dans un répertoire prévu pour la compilation d'application (/usr/local/src, /tmp, ~/opt, ...).
On télécharge les sources de développement de kismet et on les décompresse :
~/opt> svn co http://svn.kismetwireless.net/code/trunk kismet-devel
On télécharge la version patché de gpsmap pour google map et on la décompresse :
~/opt> wget http://parknation.com/gmap/files/gpsmap-gmap-0.1.tgz
On se place dans le répertoire kismet-devel et on applique le patch :
~/opt/kismet-devel> patch -p0 < ../gpsmap-gmap-0.1/gpsmap-gmap-0.1.diff
On configure kismet :
~/opt/kismet-devel>./configure
Il ne doit pas y avoir d'erreur à l'issue de la configuration.
On compile gpsmap :
~/opt/kismet-devel>make gpsmap
On copie gpsmap à la place de celui livré avec kismet :
~/opt/kismet-devel> sudo mv /usr/bin/gpsmap /usr/bin/gpsmap.orig ~/opt/kismet-devel> sudo cp gpsmap /usr/bin/.
On place le fichier index.html livré avec gpsmap-gmap sur un serveur web :
~/opt/gpsmap-gmap-0.1> scp index.html plegal@webmail.appert44.org:~/public_html/gmap/.
On s'incrit sur google et on génère une clef à partir d'ici [1] en précisant l'url où seront générés les cartes (webmail.appert44.org:~/public_html/gmap/)
On copie la clef obtenue à l'emplacement prévu dans le fichier index.html.
Liens externes
Le site officiel : www.kismetwireless.net
Tutoriel kismet : http://forum.hardware.fr/hfr/OSAlternatifs/reseaux-securite/unique-explications-securite-sujet_50917_1.htm
Autre tutoriel simplifié : http://www.wirelessdefence.org/Contents/kismetMain.htm
Mapping avec kismet : http://www.wirelessdefence.org/Contents/Kismet%20Wireless%20Mapping.htm
Encore un tutoriel : http://www.wi-fiplanet.com/tutorials/article.php/3595531
Les autres outils du même style : http://www.wirelessdefence.org/Contents/WirelessLinuxTools.htm
GPSD : http://gpsd.berlios.de/
Miroir de téléchargement de GPSD: http://fresh.t-systems-sfr.com/linux/src/gpsd-2.34.tar.gz/
gpsmap pour googlemap : http://parknation.com/gmap/

