Vive le mode texte, les hotspots et les livres !

edit du 23 avril, 00h34: en relisant ce billet, je me rends compte que c’est un beau fourre-tout… J’aurai probablement mieux fait de rédiger trois ou quatre billets, au lieu de tout entasser ici. Mais j’avais tellement de choses à raconter, et dans ma lancée je ne me suis pas méfié ! Sorry 😉 Mais poursuivez si le courage vous vient en aide, il y a un peu de tout mais ça en vaut la peine.

J’y parle de eeePC, de LiveCD, de Backtrack4R2 sur carte microSD, de gestion du WiFi en mode texte, de Twitter en mode texte, de streaming mp3 en mode texte, d’accès à Internet en 3G sous Linux,  de tunneling ICMP pour bypasser les hotspots, d’accès à Twitter et Wikipedia over DNS, de script d’autologin sur hotspot Aruba, de trois romans de cyberespionnage dont ZeroDay de Mark Russinovitch, et enfin du Split TCP Handshake. Sans oublier une allusion indirecte à Portal… le 2 venant de sortir, yéééé.

Le programme de ce billet est donc chargé. Bonne digestion !

_

_

Ceux qui me suivent savent que depuis quelques semaines j’ai eu quelques soucis avec mon ordinateur portable principal, dont le disque dur SSD avait lâché subitement (au moment même où je terminais le jeu Portal). J’ai donc fouillé mes placards et ai ressorti mon vieux eeePC 701, un ordinateur ultraportable peu puissant mais pourtant très bien pour les tâches courantes.

Basé sous le système Linux Xandros et muni d’une interface « grand public », il avait l’avantage de démarrer en quelques secondes seulement mais il offrait cependant peu de possibilités de base, l’accès à une console shell n’étant même pas prévu par défaut (enfin, si… l’appui sur les touches permettant d’ouvrir une fenêtre xterm avec un shell, mais cela n’étant officiellement pas documenté pour ne pas inciter les novices à planter leur PC, sans doute). Bref, pour les raisons évoquées plus haut, entre-autres, je me suis contenté d’un eeePC 701 (également appelé eeePC 4G) durant plusieurs semaines.

 

L’eeePC 701 / 4G

Sur le plan matériel, ce premier modèle du eeePC est très sympathique : disque SSD de 4Go préinstallé, mémoire vive de 512Mo, webcam, hauts parleurs stéréo et micro, Wi-Fi, 3 ports USB, un port pour carte mémoire SD et un écran de… 800×480. C’est le seul souci, car autant dire que la petitesse de l’écran pose souvent des problèmes lorsque certaines applications ne savent pas gérer ces petits écrans, et vont loger les boutons dont on a besoin en dehors de la surface affichable. Mais passons.

Je me suis donc résolu au départ à « booter » sur un « liveCD ». Les LiveCD sont des systèmes d’exploitation, très souvent Linux, qui peuvent fonctionner sans disque dur, tout étant chargé à partir du CD-Rom ou du DVD. Ce qui est bien est que le eeePC est capable de booter sur des clefs USB et sur la carte mémoire SD, du coup c’est ainsi que je faisais. Ainsi, grâce à cette astuce je me retrouvais non pas avec un système Xandros limité, mais avec un système BackTrack4 R2, bien plus évolutif et riche. Il s’agit d’une distribution (version) de Linux spécialisée pour les personnes qui font de la sécurité informatique, avec des centaines d’outils d’attaque, de tests, d’analyse et j’en passe. Mais également tout ce que l’on est en mesure d’attendre d’un système Linux complet, puisque cette version est basée sur la distribution très connue « Ubuntu« .

A. Du LiveCD vers un système bootable… sur carte MicroSD

Au bout de plus d’une semaine à utiliser ainsi mon eeePC, je me suis dit qu’il fallait tout de même changer de tactique. En effet, si le principe du LiveCD est excellent, il y a quand même deux petits désavantages :

  • puisque le système ne fait pas usage du disque dur, les données et paramétrages ne sont jamais sauvegardés et à chaque redémarrage je me retrouvais à devoir tout reconfigurer : clavier français (je l’avais acheté en France, il y a longtemps), réseau Wifi et jen passe.
  • puisque le système est entièrement chargé en mémoire vive lors du démarrage, il n’en reste plus beaucoup de libre pour travailler… ce qui provoquait assez imanquablement le plantage de l’ordinateur au bout de quelques heures, au fur et à mesure que la mémoire se remplissait.

Cela m’a incité à faire l’installation complète du système sur un média permanent. Pas possible de le faire sur le disque dur interne, de seulement 4Go de capacité. En effet, il faut pour installer une Linux Backtrack au moins une capacité de 8Go, et encore c’est juste… Je suis donc parti sur l’acquisition d’une carte SD. Pour diverses raisons, notamment le fait que le vendeur ne semblait pas avoir de carte SD en stock mais seulement les nouvelles et minuscules microSD en stock, me voilà donc possesseur d’une carte Sandisk microSD 32Go. L’état de l’art en la matière, 0.5 grammes de plastique et de silicum renfermant au minimum 256 milliards d’espaces de stockage pour des « zéro » et des « un », sans compter les bits de parité et autres circuits de contrôle. J’ai beau avoir fait des études d’électronique et relativement bien en maîtriser les concepts, j’ai du mal à imaginer comment cela est possible. A chaque requête de lecture ou d’écriture, les circuits intégrés dans cette minuscule puce sont capable de localiser précisément où se trouvent les données demandées, parmi ces centaines de milliards d’emplacement… et ils le font vite, en plus :

Ceci est la restauration du « disque » que j’avais sauvegardé (au format E01, les spécialistes Forensics reconnaîtront), sur cette carte microSD de 32Gb, à l’aide de la fonction « Backup manager » de mon programme « fétiche », X-Ways Forensics. Donc, 209Mb/min en restauration ce qui correspond à 7Mo par seconde. Je trouve cela honnête sachant que l’accès à la carte passe par un adaptateur USB.

Une fois démarré (après avoir tapé quelques commandes de type « _grub-install_ » pour aider le système à se charger à partir de ladite carte, on est en possession d’un système Linux traditionnel, cependant très pratique.

B. Quelques outils sympathiques (en mode texte !)

Après les traditionnels « _apt-get update && apt-get upgrade_ » permettant une mise à jour du système (basé sur Debian/Ubuntu, je rappelle), voici quelques programmes que j’ai installés pour compléter efficacement une utilisation sur Internet standard.

La gestion du Wi-Fi se fait de manière simple et efficace grâce au programme client-serveur « Wicd« . On lance le programme « _wicd_ » au démarrage du système, et celui-ci se met en tâche de fond. On peut ensuite piloter ce programme à l’aide de plusieurs interfaces graphiques, au choix. Pour ma part je suis un afficionado de « _wicd-curses_« , donc en mode texte, mais il y a une version graphique sous GTK pour les personnes moins habituées au mode texte.

Pratique et efficace, d’autant plus que le démon Wicd en tâche de fond se charge de reconnaître les réseaux pré-enregistrés, se reconnecte automatiquement, et gêre en un clin d’oeil mots de passe et autres clefs WPA2 enregistrées dans la configuration. Pas la peine de triturer les obscurs « _iwconfig_« , « _wpa-supplicant_ » et autres bizarreries à rallonge !

Pour la musique en streaming, car j’aime beaucoup écouter FIP, Canal Académie et… Bide et Musique (!), là encore pas la peine de recourir à un logiciel lourd. J’optimise au mieux mes ressources, l’eeePC n’ayant pas une puissance illimitée : un processeur cadencé à 630MHz et peu de mémoire vive. Là encore, j’opte pour le mode texte et le client-serveur avec l’installation de trois programmes tout simples : « _apt-get install mpd mpc ncmpc« . Quelques kilo-octets plus tard, je lance le démon « mpd_ » (en tâche de fond), puis le client en mode texte « _ncmpc_« . L’interface est… sobre, mais efficace. J’avais copié dans un répertoire mes quelques fichiers de listes de musique « m3u », et le client media-player les a reconnus. un simple « mpc play » en ligne de commande suffit alors à lancer le streaming et me voilà en train d’écouter FIP ! Plus simple il n’y a pas.

 

– Bien entendu, l’accès à Internet se passe via Lynx et eLinks, les deux navigateurs Internet… en mode texte ! Si, si, ça fonctionne (relativement) bien. Bon, évidemment il ne faut pas trop s’attendre à pouvoir regarder Youtube avec, mais bon, ça dépanne plutot bien. A savoir cependant : la version de Lynx fournie en standard sur la Backtrack4R2 n’est pas capable de gérer les pages sécurisées avec SSL, il faut faire un « _apt-get install lynx-current_ » pour remplacer cette version déficiente par  une version complète.

– Ceux qui me suivent savent également que je me suis pris au jeu de Twitter. Je ne me rendais pas compte à quel point la chose était addictive, d’ailleurs. Cela fait un année que j’y suis inscrit, mais je ne m’en servais que pour suivre de manière épisodique les actualités sécurité. Ces quelques semaines, mon activité Twitter était en forte recrudescence au point que j’ai dû me raisonner, et modérer mon temps de présence dessus… car on y passe vite plusieurs heures par jour (et nuit) au final. J’en étais même rendu à installer un client Twitter en mode texte (!!), TtyTTer,  pour ne pas perdre une miette des différentes discussions et nouvelles tournant autour du petit monde des experts sécurité. En journée je suivais les européens, et en soirée+ la nuit les américains. Heureusement que j’ai peu de contacts en Asie sinon j’y passais toutes mes nuits !

J’ai joué avec quelque temps, mais ai dû arrêter car certaines commandes mal interprétées (mal saisie par votre serviteur) passaient directement en tweets ! Je me suis ainsi retrouvé avec quelques tweets mentionnant « _/quit_« , etc.. Un peu désordre, n’est-ce pas ! Mais le développement de cet outil écrit en Perl, continue activement puisque la dernière version date du 19 avril 2011…

C. « Dresser » un Hotspot en quelques leçons

Autre source d’intérêt qui m’a un peu occupé ces derniers jours, les Hotspots… Toujours pour les nébuleuses raisons évoquées, non seulement je n’avais qu’un simple eeePC, mais je me suis en fait retrouvé derrière un Hotspot de marque Aruba. J’avais bien entendu un compte légitime m’ayant été communiqué pour le temps de ma présence sur place, mais les Hotspots, c’est quand même ennuyeux.

1. Accéder à Internet via le réseau 3G

Le premier jour, je n’avais d’ailleurs même pas d’accès à Internet via ce Hotspot car mon compte n’avait pas été créé. Ne comptant que sur mon imagination,  j’ai mis la carte SIM de mon téléphone courant dans mon PocketPC HTC HD2 (oui je sais, j’ai plusieurs téléphones…), et l’ai relié par le biais de son câble MicroUSB (saleté de format, d’ailleurs : connecteur pas solide et on n’a jamais le bon câble sur soi) vers le port USB de mon eeePC. Par miracle, c’est reconnu tout de suite et je me suis retrouvé avec une interface réseau « eth1 » supplémentaire sous mon Linux. Une commande « _dhclient_ » pour obtenir l’adresse IP, suivi d’un « _ping google.com_ » m’a confirmé que j’étais connecté à Internet via la liaison 3G de mon téléphone HD2, et . Super pratique, mais j’ai cependant fait attention à ne pas consommer trop sur mon forfait data… la facture peut monter vite !

 

2. Faire communiquer deux ordinateurs via le Hotspot

En théorie ce n’est pas possible. Car si les deux ordinateurs qui se connectent au hotspot, obtiennent une adresse IP sur le même sous-réseau, ils ne se voient pas car le contrôleur du Hotspot isole chaque système. La distribution Backtrack4 recèle de petits logiciels ingénieux. Parmi ceux-ci, la commande « ptunnel » encapsule le trafic via ICMP, « _ping_ » pour les néophytes. Comme « ping » est toujours ouvert sur les hostpots (tentez un « _ping www.google.com_ » sur un hotspot alors que vous n’êtes pas identifié), du coup il est possible de faire passer du trafic par ce biais. J’ai testé pour voir, ça marche et je dirai même que j’étais surpris par des performances moins mauvaises que j’aurai imaginé. Evidemment, si le Hotspot est muni d’un système de détection d’intrusion (IDS), l’afflux de commandes ICMP va le déclencher et probablement couper la connexion. D’autres personnes ont tenté avec succès via des tunnels « DNS », protocole également ouvert sur tout Hotspot.

 

3. A propos de DNS… Twitter et Wikipedia !

Encore deux astuces amusantes. Si vous voulez lire « une page » Wikipédia (en fait quelques lignes), vos tweets, ou carrément Tweeter sans vous authentifier sur un Hotspot, c’est possible !! Des nerds (très probablement) ont mis au point des passerelles vers ces services qui peuvent s’interroger via… DNS !

Ca donne ceci :

Wikipedia over DNS (https://dgl.cx/wikipedia-dns)

  • « <em>host -t txt <terme_a_rechercher>.wp.dg.cx</em>” (sous Linux),
  • ou « _nslookup -type=TXT .wp.dg.cx_ » (sous Windows)

Twitter over DNS : Et oui !!! Le site « any.io » propose cela, et en plus c’est très sophistiqué : possibilité de lire un ou plusieurs messages, de choisir l’utilisateur, de choisir le contenu, etc… Voici des exemples tirés de du site web de l’auteur :

  • # plusieurs méthodes pour obtenir le statut d’un utilisateur (dans cet exemple, kerouanton)
    • $ dig kerouanton.twitter.any.io txt
    • $ host -t txt kerouanton.twitter.any.io
  • # ça fonctionne également pour identi.ca<br />  

    • $ host -t txt kerouanton.identica.any.io
  • # Obtenir les 10 derniers tweets
    • $ dig -t txt kerouanton.timeline.twitter.any.io
  • # Obtenir le tweet numéro 20 (avant la fin)
    • $ host -t txt 20.status.twitter.any.io
  • # Pour plus d’infos, interroger le “faux” serveur DNS directement :
    • $ dig kerouanton.twitter @any.io
    • $ host -t txt kerouanton.twitter any.io
  • # Pour obtenir juste le nom d’utilisateur<br />  

    • $ dig name.user.kerouanton.twitter.any.io txt
    • $ dig name.user.kerouanton.twitter @any.io
    • $ host -t txt name.user.kerouanton.twitter.any.io
    • $ host -t txt name.user.kerouanton.twitter any.io
  • Et bien sûr cela marche également sous Windows :
    • C:&gt;nslookup -type=txt mgrdcm.twitter.any.io

Il y a des nerds partout…. mais il y a encore mieux ! La possibilité de Tweeter *via* le serveur DNS ! Malheureusement je ne trouve plus le lien… mais promis ça marche, j’ai pu tester !

Après ce voyage au centre de la nerditude, retournons à des choses plus traditionnelles !

4. Se connecter automatiquement au Hotspot.

Le problème avec les hotspots, c’est que le réseau n’est pas protégé par WPA, mais par un couple d’identifiant et mot de passe sur un portail web dit « captif », comme illustré ci-contre. Et là, les _wicd _et autres mécanismes semi-automatiques présents sur iPhone, Windows et autres systèmes ne savent pas faire…

Heureusement Linux est capable de faire des prouesses dès lors que l’on crée des scripts… j’en ai donc profité pour transformer mon eeePC en point d’accès WiFi sécurisé en WPA (pour que mon iPod touch puisse s’y connecter sans avoir à buter sur le portail captif du Hotspot). Il écoutait d’une oreille le réseau Hotspot, et transmettait de l’autre oreille un « SSID » pour mon propre réseau Wifi. Entre les deux, mon petit eeePC routait le trafic de manière transparente. Pratique ! Mais comment faire l’authentification automatique ?

Voici le petit script que j’ai mis au point pour les Hotspots de marque ARUBA :

#!/bin/bash

_HOTSPOTUSER=kerouanton

_HOTSPOTPASS=qwerty1234

_HOTSPOTURL= »https://securelogin.arubanetworks.com/cgi-bin/login »

_curl –max-time 5 -s –no-keepalive -L $HOTSPOT_URL -d « Login=Log+In&cmd=authenticate&password=$HOTSPOT_PASS&user=$HOTSPOTUSER »

c’est tout, ça tient en 1 seule ligne et ça marche parfaitement. La commande « _curl_ » appelle la page du portail captif et renvoie avec un « _POST_ » les paramètres d’identification demandés. C’est aussi simple que cela.

 

**D. Et pour finir, des livres passionnants !

**

Ces dernières semaines ont été l’occasion également de lire beaucoup de romans de cyber-espionnage !

Je suis en pleine lecture de « Stealing the Network, the complete collector’s edition« . Un pavé de 1080 pages, composé de trois tomes reliés ensemble. Un régal à lire, de nombreux auteurs connus (du moins sous la casquette « experts sécurité ») tels que Ryan Russel, ont écrit de courtes fictions bien documentées techniquement sur des attaquants, pirates et criminels tentant avec ou non du succès de s’introduire sur des réseaux et systèmes. Le tout abondamment accompagné d’exemples… passionnant !

J’ai également reçu de chez Amazon USA (forcément, ce n’est pas encore dispo en Europe) trois livres sympa :

Zero Day » de mark Russinovitch. *Le* Mark de Sysinternals Microsoft, oui, celui qui propose Process Explorer et plein de bons outils pratiques et puissants, les in-dis-pen-sables du monde Windows. Pas étonnant d’ailleurs que Microsoft ait tout repris ! Pour en revenir au livre, c’est un roman passionnant, je suis plongé dedans et ça parle d’AlQuaeda, de pirates russes, brésiliens, turcs et français (tiens, depuis le temps que je fais référence à ces 4 mêmes pays dans mes cours sur la cybercriminalité!) et c’est bien écrit…

« KingPin, How one hacker took over the billion-dollar cybercrime underground » par Kevin Poulsen (et non Jean-Kevin !)l. Encore un tour dans le milieu cyber-mafieux, très bien écrit également.

Et enfin, « Fatal System Error« , de Joseph Menn. Je ne vous raconte pas que c’est un roman sur l’écologie en afrique, vous ne me croiriez pas (et vous avez raison). C’est également un roman qui nous promène dans le milieu de la cybercriminalité !

J’apprends à l’instant que le fils de Eugene Kaspersky, le célèbre auteur des antivirus Kaspersky, a été libéré par ses kidnappeurs… contre paiement d’une forte somme, forcément. Nous voilà en plein cybercrime russe…

Avec tout cela, je ne m’ennuie pas… allez, je me remets sur Twitter où viens d’apprendre l’existence du « TCP Split Handshake« , nouvelle technique d’attaque réseau (basée sur une vieille RFC mais mal lue !) permettant de perturber les pare-feux les plus connus, détecteurs d’intrusions et noyaux de toutes marques… Tout le monde connaissait le « 3-Way Handshake« , la base du protocole TCP ? On apprend l’existence légitime du « 4 and 5 Way-Handshake »  (<==très bon rapport, au demeurant) ! Argh, on n’arrête pas le progrès, vive Twitter pour me rappeler chaque jour minute que je dois apprendre et apprendre !

Au fait, le site web de Jurackerfest.ch est en ligne, et les inscriptions sont ouvertes !!! Préparez votre voyage et inscrivez-vous vite  😉

Comments

Comment by Pilpoile on 2011-04-27 09:52:57 +0200

Salut Bruno,

Ça c’est du billet comme je les aiment 🙂

++

Pilpoile

Comment by F on 2011-06-20 21:36:04 +0200

J’ai connu ce blog grâce à la NDH, il est vraiment chouette!

Magnifique conf au passage 😉

Comment by Bruno Kerouanton on 2011-06-20 22:23:04 +0200

Merci à toi pour ton passage sur mon blog ! Content que la conf t’aie plu, aussi !