Kismet

Un article de Wiki.

Revision as of 16 décembre 2008 à 12:29; view current revision
← Version précédente | Version suivante →
Jump to: navigation, search

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


Code de couleur des réseaux découverts
Réseau/ClientType
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].

Menu principal
OptionsTouche
[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


Menu de classement : touche [s]
Classement parTouche
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/