Making network protocols go crazy

Aller au contenu | Aller au menu | Aller à la recherche

samedi, janvier 7 2012

Comment ne pas couper à la tradition ... ou pas

C'est l'heure du billet annuel, pour vous souhaiter une belle et heureuse année 2012 en ces temps sombres.

Je ne prends plus vraiment le temps de poster sur ce blog, ça reviendra peut-être. Pour l'heure, je passe deux informations pour ceux qui dorment sous les rochers (et l'hiver ça doit être dur). L'une portant sur une liste impressionnante de failles ciblant FreeBSD [1][2][3][4][5], et l'autre concernant la faille Wi-Fi de l'année (2011, mais qui va occuper les gens en ce début d'année 2012) [6].

Pas moins de 5 avis de sécurité pour FreeBSD. Un 23 décembre. Il parait que certains sysadmins ont râlé. La plus grosse faille étant un remote root sur le serveur telnet [3] (et oui, encore [8]). Pas grave me direz-vous, puisque tout le monde utilise SSH. Fyodor (nmap) ne semble pas d'accord [7]. D'après ses résultats de scan à grande échelle sur Internet, telnet arrive avant SSH comme service de connexion à distance. Tous les systèmes utilisant une version de code BSD-derived sont impactés. Ca nous fait une belle liste, n'est-il pas ? Il paraît que cette faille était là depuis plus de 12 ans. Miam.

Pour le Wi-Fi, c'est une faiblesse dans l'algorithme d'authentification du WPS (Wi-Fi Protected Setup). Une faiblesse sympathique, puisqu'en à peine 11.000 tentatives, il est possible de s'authentifier sur un point d'accès supportant le WPS. Conséquence d'une attaque réussie : fuite de la clé Wi-Fi partagée. C'est beau.

Sur ce, bonne fin de week-end. Et désactivez le WPS si votre équipement vous en offre la possibilité.

dimanche, novembre 9 2008

Voilà. Injection de packets 802.11 en Perl.

Il existe depuis près de 2 ans un module Perl[1] pour expédier des packets 802.11 dans les airs. Malheureusement, ce module écrit à l'origine par David Leadbeater est maintenant obsolète par rapport à l'API actuelle de Lorcon[2].

Alors je contacte l'auteur du module, et lui demande si il souhaite garder l'ownership du module, lui disant que ça me plairait bien de reprendre le lead sur ce projet. En effet, j'avais déjà écrit la version 0.02 du module, et n'attendais plus que le feu vert. L'auteur accepte avec joie, n'ayant plus d'intérêt pour l'injection 802.11 pour le moment.

So far, so good, la version actualisée supportant plus de drivers Wi-Fi et fonctionnant avec la dernière version SVN (revision 163)[3] est maintenant dispo sur CPAN[4].

Maintenant un exemple, pour vous montrer a quel point c'est facile à utiliser :

use Net::Lorcon qw(:all);

# Injection pour ma carte Intel 3945. Son device est eth1, et le driver requit est iwlwifi
my $tx = Net::Lorcon->new("eth1", "iwlwifi");

$tx->open or die("Impossible d'ouvrir l'interface");
$tx->setfunctionalmode(1);

# Beacon vers le point d'accès ayant pour SSID "Net::Lorcon"
my $packet = "\x80\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x02\x02\xe2\xc4\xef\x00\x02\x
02\xe2\xc4\xef\xd0\xfe\x37\xe0\xae\x0c\x00\x00\x00\x00\x64\x00\x21\x08\x00\x0b\x4e\x65\x
74\x3a\x3a\x4c\x6f\x72\x63\x6f\x6e\x01\x08\x82\x84\x8b\x96\x0c\x12\x18\x24\x03\x01\x0d\x
05\x04\x00\x01\x00\x00\x2a\x01\x00\x32\x04\x30\x48\x60\x6c";

# Et voilà, un packet dans les airs.
$tx->txpacket($packet);

Bon. Reste plus qu'à ajouter le support injection Wi-Fi dans Net::Write[5].

[1] http://search.cpan.org/~dgl/Net-Lorcon-0.01/

[2] http://802.11ninja.net/lorcon

[3] "svn co http://802.11ninja.net/svn/lorcon/trunk/"

[4] http://search.cpan.org/~gomor/Net-Lorcon/

[5] http://search.cpan.org/~gomor/Net-Write/

UPDATE : mon module compile avec la version suivante du SVN de lorcon : svn co http://802.11ninja.net/svn/lorcon/branch/lorcon-old

Pour une version plus récente de lorcon, j'ai un peu de boulot ^^