0x01. TELECHARGEMENT
L'extension FireSheep permet de sniffer le réseau et de récupérer les sessions en reconstruisant le cookie. Le programme firesheep-backend permet de sniffer selon un motif.
L'extension est disponible ici :
http://github.com/codebutler/firesheep/downloads/
0x02. CORRECTION
Sous Firefox 3.6.x sous MacOSX l'extension demande à corriger les permissions lorsque FileVault est activé. Une des solutions est de lancer Firefox en tant que root :
sudo /Applications/Firefox.app/Contents/MacOS/firefox-bin
L'autre solution est de faire en sorte à ce que firesheep-backend uniquement soit lancé depuis un système de fichier qui n'est pas crypté. Il suffit donc simplement de copier le dossier de l'extension dans le dossiers extensions de l'application.
Lancer le terminal et exécuter :
mv /Users/$USER/Library/Application?Support/Firefox/Profiles/*.default/extensions/firesheep@codebutler.com / /Applications/Firefox.app/Contents/MacOS/extensions/
Sinon dans le Finder il faut :
Depuis son dossier personnel : Finder > Bibliothèque > Application Support > Firefox > Profiles > *.default > extensions Déplacer le dossier... firesheep@codebutler.com ...ici : Depuis le Finder > menu Aller > "Aller au dossier..." Et écrire : /Applications/Firefox.app/Contents/MacOS/extensions En suite glisser le dossier firesheep@codebutler.com
0x03. PROTECTION
Le programme surveille les sessions, c'est à dire dire le fichier qui permet de confirmer qu'une personne est authentifiée sur un site Internet, par exemple Facebook.
Il faut donc installer un plugin Firefox qui permet de forcer l'utilisation de la sécurité SSL (protocole HTTPS) dès qu'il est possible.
Voici le lien vers l'extension qui va bien :
https://addons.mozilla.org/en-US/firefox/addon/12714/
En plus compliqué, un tunnel SSH ou un VPN est également une solution.
Ou encore plus simplement, ou pas, utiliser sa connexion 3G de votre téléphone.
Par mesures de sécurité :
- ne jamais se connecter depuis un ordinateur qui n'est pas le sien
- ne jamais se connecter depuis un réseau publique, à mois d'être dans une configuration qui le permet (tunnel, ssl...)
Voici une solution pour créer un tunnel SSH :
# Du côté du serveur: ## Installer le serveur SSH : ## -------------------------- ### Sous Debian : apt-get install openssh ### Sous Redhat : yum install sshd ### Sous FreeBSD : installé par défaut ## Installer un proxy (tinyproxy, uproxy, squid, ...) : ## ---------------------------------------------------- ### Sous Debian : apt-get install squid # apt-get install gadmin-tools ### Sous Redhat : yum install squid ### Sous FreeBSD cd /usr/ports/*/squid && make install clean ## Configurer le proxy pour qu il soit transparent (cas de SQuid) ## -------------------------------------------------------------- ### Mettre les ACL en "allowall" - tout accès autorisés # Du côté du client : ## En ligne de commande : ssh -f -v -T -N -p 443 -L 10080:127.0.0.1:3128 sshusr@80.80.80.80 # ssh : commande cliente SSH # -f : se lance en tâche de fond (permet de quitter le terminal # -v : mode bavard, explique ce qu il fait # -T : désactive l allocation TTY, ne cherche pas à s attacher à un terminal # -N : n exécute rien (par défaut : $SHELL) # -p 443 : numéro de port auquel se connecter # -L 10080:127.0.0.1:3128 : service auquel se rattacher # sshusr@80.80.80.80 : nom d utilisateur du serveur et son adresse IP
Il faut en plus configurer le routeur, la box pour que le port SSH soit transmis ou traduis.
Le schéma mis en place est donc celui ci :
CLIENT =========== Internet =========> SERVEUR:SSH SERVEUR:SSH ----- local ------------> SERVEUR:SQUID SERVEUR:SQUID <--- HTTP/HTTPS/... ---> INTERNET
=> Écrit par : Nicolas, le 10 novembre 2010