%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% THE MIDGARD MAGICPOINT TEMPLATE %% %% Copyright(c) 1999 Henri Bergius %% %% A template for making MagicPoint presentations for %% Midgard. Originally written for MagicPoint 1.06a %% and the Midgard Workshop in October 1999. %% %% See the Midgard CVS repository for usage examples. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %deffont "standard" tfont "arial.ttf", xfont "helvetica-medium-r" %deffont "thick" tfont "arialbd.ttf", xfont "helvetica-bold-r" %deffont "typewriter" tfont "courbd.ttf", xfont "courier-medium-r" %deffont "code" tfont "courdb.ttf", size 3, fore "green", prefix " " %% %% Default settings per each line numbers. %% %% The page settings: %%default 1 leftfill, size 2, fore "white", back "black", font "thick", bimage "midgard-black-bg.jpg" 1024x768 %default 1 leftfill, size 2, fore "white", back "black", font "thick" %% %% Format the header: %default 2 size 7, vgap 10, prefix " " %% %% Have a bar: %default 3 size 2, bar "brown" 5, vgap 30 %% %% The standard text settings: %default 4 size 5, fore "white", vgap 40, prefix " ", font "standard" %% %% Default settings that are applied to TAB-indented lines. %% %tab 1 size 4, vgap 30, prefix " ", icon box "brown" 30 %tab 2 size 4, vgap 20, prefix " ", icon arc "yellow" 30 %tab 3 size 3, vgap 20, prefix " ", icon delta3 "white" 40 %tab 4 size 3, vgap 20, prefix " ", icon delta3 "white" 40 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page %size 7 Les attaques du singe intercepteur %center, size 3 contre %cont, size 7 SSH %cont, size 3 et %cont, size 7 HTTPS %size 4 %size 6 Monkey In The Middle %cont, size 3 (tm) %cont, size 4 Dug Song %right, size 4 par Denis Ducamp Denis.Ducamp@hsc.fr Denis.Ducamp@groar.org http://www.groar.org/~ducamp/ %left %%image "linux-logo.png" %%xsystem "display -geometry %327x360 linux-logo.png" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Introduction %rcutin dsniff, la boite à outils %pause Dug Song webmitm sshmitm dsniff Les autres outils Les bibliothèques %rcutin, pause Pourquoi ça marche ? %pause SSH / HTTPS %rcutin, pause Les signes d'une attaque %pause SSH / HTTPS %rcutin, pause Comment se protéger ? %pause SSH / HTTPS Ce qui ne marche pas contre sshmitm / webmitm %rcutin, pause Conclusion %pause Références / Remerciements %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page dsniff, la boite à outils une collection d'outils permettant : d'auditer un réseau, de réaliser des tests d'intrusion. deux catégories d'outils : écouter passivement le réseau pour capturer des données intéressantes, faciliter l'interception de trafic réseau normalement non disponible à un attaquant. de formidables outils pour : %cont, font "thick", fore "green" éduquer les utilisateurs et les administrateurs %cont, fore "white", font "standard" , %cont, font "thick", fore "green" obtenir des budgets sécurité %cont, fore "white", font "standard" : montrez son mot de passe et son courrier électronique à votre patron %cont, fore "yellow" ;-) %fore "white" Mais surtout %cont, font "thick", fore "red" n'abusez pas de ces outils ! %fore "white", font "standard" même s'ils sont portables : *BSD, Linux, Solaris, Win32. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Dug Song University of Michigan : Center for Information Technology Integration http://www.citi.umich.edu/ Hacker Coordonnées personnelles : dugsong@monkey.org http://naughty.monkey.org/~dugsong/ Autres projets : Check Point FireWall-1 vulnerabilities Patches : popa3d : APOP / Kerberos v4 John the Ripper : S/Key / Kerberos v4 TGT SSH : AFS / Kerberos v4 OpenBSD ports and audits OpenSSH fragrouter The Honeynet Project %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page sshmitm relaye et enregistre le trafic SSH redirigé par dnsspoof capture les mots de passe d'accès SSH détourne les sessions interactives seule la version 1 du protocole est supportée et celle-ci sera toujours la seule à être supportée, ce programme est déjà trop maléfique. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page webmitm relaye de façon transparente et enregistre : le trafic HTTP/HTTPS redirigé par dnsspoof, capture : les accès webmail : hotmail, etc. les soumissions de formulaires : numéros de cartes bleues, etc. même les plus "sécurisés" par chiffrement SSL ! nécessite que le client soit compatible HTTP/1.1 : émission de la commande Host: dans l'entête HTTP. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page dsniff permet de capturer les mots de passe voyageant en clair, ou de façon brouillée !!! supporte plus de 30 protocoles normalisés / propriétaires : %font "code" FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP MS-CHAP, NFS, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase et Microsoft SQL. %font "standard", fore "white" points forts : réassemblage complet des sessions TCP/IP, support des routes asymétriques, détection auto-magique du protocole applicatif, sauvegarde dans une base Berkeley DB, HTTP : analyse de QUERY_STRING et x-www-form-urlencoded. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Les autres outils arpspoof, dnsspoof, macof : permettent l'interception de trafic réseau. filesnarf, mailsnarf, msgsnarf, urlsnarf, webspy : capture des informations intéressantes : fichiers transférés par NFS v2/v3 en UDP/TCP attention à vos clés privées, messages transférés par POP/SMTP, IRC/ICQ/AOL/MSN/Yahoo, URL visitées : dans un journal au format CLF, en live dans Netscape. tcpkill, tcpnice : facilitent la capture de données. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Les bibliothèques Les bibliothèques nécessaires sont nombreuses : libpcap - ftp://ftp.ee.lbl.gov/ capture et filtrage des paquets sur le réseau libnet - http://www.packetfactory.net/libnet/ génération de paquets sur le réseau libnids - http://www.packetfactory.net/libnids/ réassemblage de paquets et de sessions libdb - http://www.sleepycat.com/ (for non-BSD/Linux systems) enregistrement unique des authentifications dans une base de données ce qui permet de limiter les abus :) mais un package RPM est disponible :( %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Pourquoi ça marche ? La cryptographie de HTTPS et SSH est basée sur la cryptographie à clés publiques HTTPS y ajoute la confiance des certificats à clés publiques L'utilisation de ces méthodes est fortement contraignante : pour être plus acceptable, des modes dégradés sont disponibles le client peut accepter "aveuglément" la clé du serveur le client peut accepter que le serveur puisse avoir changé de clé sshmitm et webmitm utilisent ces vulnérabilités ainsi introduites %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page SSHv1 la clé de session est générée par le client puis envoyée chiffrée avec la clé publique du serveur qu'il vient de recevoir l'attaquant n'a qu'à utiliser n'importe quelle paire de clés publique / privée et attendre que le client accepte d'utiliser cette clé publique. authentification client par mot de passe : envoyé en "clair" dans le tunnel chiffré authentification client par RSA : le serveur envoie au client un challenge chiffré avec une clé publique autorisée le client prouve qu'il connait la clé privée en déchiffrant le challenge sshmitm impose l'authentification par mot de passe dans sshv1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page SSHv2 la clé de session est générée par le protocole de Diffie-Hellman : le serveur s'authentifie en signant une empreinte des messages échangés l'authentification client utilise les mêmes méthodes que sshv1 l'attaque est toujours possible par attaque de l'intercepteur sur le protocole DH sshmitm ne met pas en oeuvre sshv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page HTTPS La clé du serveur est accompagnée d'un certificat : ce certificat peut être signé par une autorité "reconnue", le navigateur n'accepte le certificat que s'il est destiné au site visité, mais l'utilisateur peut l'accepter. ce certificat peut être signé par une autorité "inconnue", le navigateur n'accepte pas l'autorité, mais l'utilisateur peut l'accepter. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Les signes d'une attaque ? Les signes de l'attaque sont parfaitement visibles dans tous les cas : SSH la clé publique a changé HTTPS le certificat est destiné à un autre serveur le certificat est signé par une autorité non reconnue %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page SSH %font "code" $ ssh -p 2222 groar @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that the RSA host key has just been changed. Please contact your system administrator. Add correct host key in /home/ducamp/.ssh/known_hosts to get rid of this message. %font "standard", fore "white" Avec un client OpenSSH : %font "code" Password authentication is disabled to avoid trojan horses. Permission denied. %font "standard", fore "white" Avec un client SSH : %font "code" Agent forwarding is disabled to avoid attacks by corrupted servers. X11 forwarding is disabled to avoid attacks by corrupted servers. Are you sure you want to continue connecting (yes/no)? yes ducamp@groar's password: %font "standard", fore "white" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page HTTPS Mauvais certificat le certificat ne correspond pas au nom du domaine demandé, ce certificat peut avoir été signé par une autorité reconnue. Autorité non reconnue le certificat a été signé par une autorité non reconnue, ce certificat peut correspondre au nom du domaine demandé. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page HTTPS (mauvais certificat 1/2) Ce certificat a été obtenu en accédant à www.groar.org ... %center %image "https1.jpg" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page HTTPS (mauvais certificat 2/2) ... alors qu'il a été généré pour sos.groar.org %center %image "https2.jpg" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page HTTPS (autorité non reconnue 1/2) Le certificat n'est pas signé par une autorité reconnue... %center %image "https3.jpg" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page HTTPS (autorité non reconnue 2/2) ...et les risques de supercherie sont indiqués par Netscape. %center %image "https4.jpg" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Comment se protéger ? Ne pas utiliser les modes dégradés toujours connaître la clé de son interlocuteur au préalable vérifier systématiquement la clé de son interlocuteur arrêter immédiatement la connexion en cas d'anomalie Attention : de nombreuses recommandations %cont, fore "red" ne sont pas sérieuses %cont, fore "white" !!! sauf pour les lecteurs de slashdot, une citation de Dug Song : %font "code" argh! it's amazing how silly some people are. Slashdot readers are especially numb-skulled, if their insistence that SSH2 would prevent such attacks is any indication. i'll add compression support when i get a free second. %font "standard", fore "white" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page SSH Avant la première connexion le client doit : récupérer la clé publique du serveur éventuellement faire déposer sa clé publique sur le serveur A chaque connexion le client doit toujours : forcer une vérification stricte de la clé du serveur condition sine qua non à une authentification par mot de passe %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Ce qui ne marche pas contre sshmitm hoax #1 : utiliser ssh v2 aujourd'hui %cont, fore "green" seul le protocole v1 a été mis en oeuvre %fore "white" dans le cas d'une %cont, fore "yellow" authentification par mot de passe %cont, fore "white" : ssh v2 est %cont, fore "red" tout aussi vulnérable %cont, fore "white" que ssh v1 des versions privées ont été / seront mises au point hoax #2 : utiliser la compression dans ssh aujourd'hui %cont, fore "green" la compression n'a pas encore été mise en oeuvre %fore "white" ce qui peut empêcher l'attaquant de visualiser la session et de la contourner mais pas de récupérer le mot de passe des versions privées ont été / seront mises au point %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page HTTPS Une autorité n'est connue qu'à une seule et unique condition : la clé publique de l'autorité doit être entrée dans le navigateur. Ne pas accepter les clés signées par une autorité connue, si la clé n'est pas destinée au site visité. Ne pas accepter les clés signées par une autorité inconnue, même si la clé est destinée au site visité. même si le nom de l'autorité correspond à une autorité connue. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Ce qui ne marche pas contre webmitm hoax #3 : utiliser de vieux navigateurs sans la commande Host: aujourd'hui %cont, fore "green" les fonctionnalités nécessaires n'ont pas encore été mises en oeuvre %fore "white" ceci réclame du code spécifique à chaque plate-forme des versions privées ont été / seront mises au point %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Conclusion Le principal problème est l'éducation des utilisateurs : les signes de l'attaque sont visibles, mais leurs conséquences sont ignorées. Doit suivre la mise en place d'une organisation permettant : la distribution des clés publiques des serveurs auprès des utilisateurs un serveur web avec signature des clés publiques des utilisateurs sur les serveurs accédés une liste électronique permettant le dépôt de clés Merci à Dug Song pour le travail réalisé et pour la prise de conscience que ses outils permettent. Merci à Ghislaine Labouret pour la relecture %cont, fore "yellow" :) %fore "white" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Références Site original : http://naughty.monkey.org/~dugsong/dsniff/ FAQ (Foire Aux Questions) : http://naughty.monkey.org/~dugsong/dsniff/faq.html Mailing liste : echo subscribe | mail dsniff-request@monkey.org Traduction française des manuels et de la FAQ (Foire Aux Questions) : http://www.groar.org/~ducamp/#sec-trad %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %page Merci de votre attention %rcutin, size 7, pause Vous pouvez poser vos questions... %size 4 %rcutin, size 6 et faire connaître vos remarques... %size 4 %rcutin, size 3, pause puis réveiller discrètement ceux qui dorment ;-) %size 4 %rcutin, size 5 Bye, bye... %size 4 %right (c) 02/2001 Denis de service %cont, fore "yellow" :) %cont, fore "white" [tm]