Kismet-drone & wrt54g

Kismet est un paquet sniffeur pour réseau wifi. Il écoute simplement les informations qui passent dans l'air et les analysent. Le problème est que finalement assez peu de cartes wifi ont la capacité de simplement écouter et que les systèmes d'exploitation ne facilitent pas la tâche (ne marche pas sous windows). La solution consiste donc a utiliser le wrt54g comme une oreille, un drone et d'utiliser son pc/mac pour l'analyse de donnée (kismet-server et kismet_client)

pour plus de détail, voici une introduction sur harakiwi.net

Préparation

Installer kismet drone, le plat de résistance …

tomato n'a pas de système de gestion de package, mais rien n'empêche de copier l'exécutable (compilé avec les librairies en statique) sur le linksys.

1er chose à faire, autoriser les connections ssh dans tomato.

dans le menu ⇒ administration ⇒ Admin Access

SSH daemon, enable at startup, allow pass, je n'ai pas donné de clef, il n'y a pas de remote access, pas de gros risque.

le drone

J'ai chargé kismet-drone http://www.kismetwireless.net/code/kismet-drone-2005-08-R1-wrt54.ipk

Noté que j'ai passé des heures sur ce point, les drones de 2004 n'utilise le même protocole, il démarre bien mais impossible de les lier à kismet-server. j'ai aussi tester des drone de 2008 et 2007 mais ils ont besoin d'une librairie non présente sur tomato… (une compilation croisée devrait solutionner ce problème, mais vu que cette version 2005 fonctionne !!)

Renommé en tgz, décompacté, vous avez 2 tar.gz dedans.

  • control, pas très interessant.
  • data, à decompresser qui contient un fichier de configuration et l'exécutable.

on edit kismet_drone.conf, voici les champs a adapter:

allowedhosts=192.168.0.6

#source=wrt54g,eth1:prism0,wrt54g
#source=wrt54g,prism0,drone
source=wrt54g,eth2:prism0,wrt54g
# WRT v1, v1.1
#source=wrt54g,eth2,wrt54g
# WRT v2
#source=wrt54g,eth1,wrt54g

channelhop=true
splitchannels=false

j'ai indiqué toute les “source” que j'ai trouvé, celle qui n'est pas en commentaire est utilisée sur ma configuration.

puis il faut les copier sur le linksys.

scp Downloads/kismet-drone/kismet_drone root@192.168.0.1:/root/
scp Downloads/kismet-drone/kismet_drone.conf root@192.168.0.1:/root/

ensuite vous vous connectez en ssh sur le linksys

ssh -l root 192.168.0.1
password:
cd /root
./kismet_drone -f kismet_drone.conf
Suid priv-dropping disabled.  This may not be secure.
No specific sources given to be enabled, all will be enabled.
Disabling channel hopping.
Source 0 (drone): Enabling monitor mode for wrt54g source interface eth1 channel 0...
Source 0 (drone): Opening wrt54g source interface eth1...
FATAL: pcap reported netlink type 1 (EN10MB) for eth1.  This probably means you're not in RFMON mode or your drivers are reporting a bad value.  Make sure you have the correct drivers and that entering monitor mode succeeded.

marche pas, il ne peut passer le WRT en mode écoute, la source n'est peut être pas bonne dans le fichier de configuration et il faudrait vérifier l'état du linksys.

passer en mode écoute, RFMON

Voici un script qui passe le linksys en mode écoute, à nouveau, j'ai pas mal chipoter dessus. Il faudra surement l'adapter suivant le modèle que vous utilisez.

#desactive les interfaces reseaux
ifconfig prism0 down
ifconfig eth2 down
 
#on les reactive
ifconfig prism0 up
ifconfig eth2 up
 
#on passe en mode passif d'écoute
wl ap 0
wl passive 1
wl promisc 1
 
#wl disassoc #cette commande ne marche pas pour moi
 
#on fait un scan, histoire de tester
wl scan
sleep 5 #attendre un peu
wl scanresults

si l'interface est bien configurée, “wl scanresults” devrait afficher qq chose comme

SSID: "XXXXXXXXXXX"
Mode: Managed    RSSI: -78 dBm    noise: -99 dBm    Channel: 6
BSSID: 00:12:BF:XX:XX:XX    Capability: ESS WEP ShortPre ShortSlot
Supported Rates: [ 1(b) 2(b) 5.5(b) 11(b) 22 6 9 12 18 24 36 48 54 ]


SSID: "XXXXXXXXXXXX"
Mode: Managed    RSSI: -84 dBm    noise: -99 dBm    Channel: 6
BSSID: 00:1A:2A:XX:XX:XX    Capability: ESS WEP ShortPre ShortSlot
Supported Rates: [ 1(b) 2(b) 5.5(b) 11(b) 22 6 9 12 18 24 36 48 54 ]

la commande “ifconfig” permet aussi de contrôler les interfaces activent:

# ifconfig
br0 ...
eth0 ...
eth1 ...

eth2       Link encap:Ethernet  HWaddr 00:0C:41:XX:XX:XX  
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:100
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
           Interrupt:6 Base address:0x2000

lo ...

prism0     Link encap:UNSPEC  HWaddr 00-0C-41-XX-XX-XX-00-00-00-00-00-00-00-00-00-00  
           UP BROADCAST RUNNING MULTICAST  MTU:0  Metric:1
           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

de mon expérience, il vaut mieux s'arranger pour que le wl scanresults fonctionne puis commencer a chipoter avec la source du fichier de config. et il vaut mieux reinitialiser l'interface apres chaque test (ifconfig … puis les wl)

après ca marche :-)

# ./kismet_drone -f kismet_drone.conf
Using alternate config file: kismet_drone.conf
Suid priv-dropping disabled.  This may not be secure.
No specific sources given to be enabled, all will be enabled.
Enabling channel hopping.
Disabling channel splitting.
NOTICE: Disabling channel hopping, no enabled sources are able to change channel.
Source 0 (drone): Enabling monitor mode for wrt54g source interface prism0 channel 0...
Source 0 (drone): Opening wrt54g source interface prism0...
NOTICE: bind address not specified, using INADDR_ANY.
Kismet Drone 2005.08.R1 (Kismet)
Listening on port 3501 (protocol 9).
Allowing connections from 192.168.0.6/255.255.255.255

Remarques

Un autre truc à savoir, /root c'est de la ram, donc si on reboot le linksys, il oublie. Il est donc plus simple d'avoir un répertoire avec les fichiers sur son pc et copier quand on en a besoin.

scp Documents/kismet-drone/* root@192.168.0.1:/root/

dans ce répertoire, j'ai kismet_drone, la fichier de config, et un script d'initialisation avec les ifconfig et wl.puis on va simplement le lancer en ssh.

./init_kismet
./kismet_drone -f kismet_drone.conf

voici trois liens qui m'ont bien aidé:

Kismet-server & client

bon j'installe kismet sur le mac (avec macport)

sudo port install kismet

modifier /etc/kismet.conf (en fonction de vos parametres)

source=kismet_drone,192.168.0.1:3501,drone
suiduser= moi

j'ai remarqué ici qu'il y a un problème avec leopard et libpcap si vous essayez d'utiliser kismet avec la carte wifi de votre mac, vous serez obliger d'installer une version plus récente de libpcap que celle présente dans macport. mais ce bug n'a pas d'impact si vous utilisez le drone wrt54g.

Kismet

code/kismet/installation.txt · Last modified: 2008/07/24 11:07 by aurelien
Creative Commons License Driven by DokuWiki Recent changes RSS feed