myst (my snifing tool) est un petit outil ayant trois fonctions simples:

  • Scanner le réseau pour savoir rapidement ce qui s'y trouve
  • Empêcher une machine donnée d'aller sur Internet
  • Suivre l'activité d'une machine et récupérer ce qu'elle fait transiter en clair

Tout cela en utilisant l'attaque ancestrale du "Man in the middle" par empoisonnement du cache arp de la victime. Mais puisque ce truc ne révolutionne rien du tout...

Pourquoi utiliser ce bidule ?

  • myst est, à ma connaissance, le premier outil à implémenter simultanément un scan arp et SSDP (Simple Service Discovery Protocol). j'en avais déjà parlé ici. Cela permet d'avoir une vision rapide et souvent très précise de ce qui se trouve sur un réseau.
  • Il a été entièrement conçu pour être "michu compliant". La philosophie est simple : une seule commande à lancer, avec le moins d'option possibles. Typiquement la seule chose à indiquer sera l'ip de la victime, myst se débrouillera tout seul pour le reste.
  • Parce que c'est moi qui l'ai fait ! :p
  • Sérieusement, myst n'est qu'un script en python/scapy d'environ 300 lignes (dont pas mal de blabla en français). Il peut donc être compris et modifié très facilement.

Petit exemple d’utilisation

Vous arrivez chez des (futurs anciens) amis, et avez envie de voir un peu ce qu'ils ont chez eux. Connecter vous en filaire ou en wifi sur leur réseau et lancez un scan : sudo myst -s

Chez moi, vous obtiendriez quelque chose comme ça :

$ sudo myst -s
Guessing values...
Interface :	eth0
IP/netmask :	192.168.1.12/24
Gateway    :	192.168.1.254
Usually scan will take less than 10 seconds. Please be patient.
6 hosts founds :
192.168.1.2	?
192.168.1.5	?
192.168.1.7	http://192.168.1.7:1107/DeviceDescription.xml
192.168.1.101	http://192.168.1.101:62580/
192.168.1.253	http://192.168.1.253:49152/InternetGatewayDevice.xml
192.168.1.254	http://192.168.1.254:52424/device.xml

Les points d’interrogations sont des machines qui n'ont pas de services UPNP actifs. Ici il s'agit d'un serveur sous linux et d'un PC sous windows (correctement configuré pour désactiver tous ces machins). Pour les autres, c'est que du bonheur. Les urls fournies vous donneront des informations complètes sur l'équipement en question (type, marque, modèle, possibilité, configuration etc.) Dans la majorité des cas vous n'avez plus qu'a aller récupérer le mot de passe admin par défaut sur le net... (ce qui, chez moi, ne fonctionnera pas ;)

Supposons maintenant que vous ayez envie de regarder quels genre de sites va consulter votre "ami". La commande sera : sudo myst -w IP (en ajoutant un -d si vous voulez visualiser tout le contenu du trafic http, ou un -a si vous voulez aussi suivre les réponses du serveur). A ce moment, vous découvrez avec horreur qu'il passe son temps à visionner des vidéos de propagande de la RIAA. Pour son propre bien, et parce qu'il n'a finalement pas su sécuriser correctement son installation (un délit puni par la loi je vous rappel), "déconnecter" le vous même : sudo myst -k IP

Installation

Comme d'habitude, vous avez le choix entre un paquet au format deb (qui devrait fonctionner sous debian et sous ubuntu), et uniquement le script en python. Script qui ne fonctionnera pas si vous n'installez pas les pré-requis suivants :

sudo apt-get install tcpdump python-scapy tcpflow gupnp-tools

Le futur

Écouter ce qui passe en clair c'est bien. Mais 99% du trafic passe maintenant par ssl. Je voudrai donc réussir à associer myst et sslstrip. Mais ce sera pour plus tard...

Conclusion

Have fun !

PS : Si une personne vous rapproche d'avoir "écouté" ses conversations, répondez lui d'un air entendu, et sur ton un poil provocateur : "Non mais tu sais, la vie privée de nos jours, ça ne veut plus dire grand chose. Entre les réseaux sociaux, les services de renseignements qui se refilent nos données personnels, et les mastodontes du web qui nous vendent comme du bétail... Franchement qui s'en souci ? Tant que tu n'a rien à te reprocher..."