#1 - Take the red pill
Transcription
#1 - Take the red pill
Security Exposed #1 - Take the red pill ... and follow the white rabbit An introduction to hacking & security flaws 1 dimanche 13 février 2011 Copyright © 2010 Thireus. All Rights Reserved. 1 Sur les traces d’un pirate… Objectifs principaux d’un pirate ? • • Récupérer/modifier des données sensibles • • Rendre inaccessible un service Prendre le contrôle d’un système pour l’utiliser en tant que passerelle ou espionner un utilisateur Usurper une identité 2 dimanche 13 février 2011 2 Sur les traces d’un pirate… Quels sont les objectifs utopiques d’un hacker ? • • • • Web : Contrôler l’administration d’un site Système : Prendre la main sur le compte root/admin d’une machine Network : Accéder aux services d’administration des routeurs Pirater sans se faire prendre 3 dimanche 13 février 2011 3 1ère Partie - Le Web Au menu... 1. Footprinting & Authentification Mots clés: robots.txt, whois, google, social engineering, BruteForcer... 2. Exploits & H@ck1ng t00lz Mots clés: Nikto, Nmap, Skypfish... 3. Web Security Mots clés: PHP, SQL, Cookies... 4 dimanche 13 février 2011 4 I.1 - Footprinting • On arrive sur un site, on se demande : ‣ À qui appartient ce site ? (qui l’héberge ?) ‣ Comment puis-je prendre le contrôle du site ? ‣ Comment trouver des failles ? 5 dimanche 13 février 2011 5 I.1 - Footprinting • Première chose à faire, se renseigner sur la personne qui détient le DNS et le serveur ‣ ‣ Whois - http://www.raynette.fr/services/whois/ RIR (Registre Internet Régional) - Ex: http://ripe.net/ (RIPE) - • Contre-mesures : - DNS anonyme - Formulaire de contact Exemple: eirbware.fr En cherchant sur le site on peut aussi trouver des infos intéressantes, comme des adresses email, des pseudo, des noms, etc. 6 dimanche 13 février 2011 6 I.1 - Footprinting • Maintenant que l’on sait à qui on a à faire, on va essayer d’avoir une vue globale sur le site ‣ Quels outils ont été utilisés pour élaborer le site ? - Petite inspection du footer, copyright et code source • Énumération des répertoires/fichiers du site ‣ Acunetix Web Vulnerability Scanner, Google Hacking, w3bfukk0r, robots.txt Contre-mesures : - .htaccess, .htpasswd - Éviter les fichier.bak, test.php - Supprimer les copyrights / footers 7 dimanche 13 février 2011 7 I.1 - Authentification • On vient de trouver une page protégée par un mot de passe, que faire ? ‣ 3 options s’offrent à nous : - Guessing / social engineering BruteForce Détourner le système 8 dimanche 13 février 2011 8 I.1 - Authentification • Guessing / social engineering Contre-mesures : - Ne jamais communiquer son mdp - Éviter les mots de passe triviaux - Avoir des mdp multiples ‣ Qu’est-ce que c’est ? ‣ Phishing ‣ Username:Password les plus courants : admin: admin:admin admin:password admin:admin123 admin:azerty admin:qwerty test:test root:password 9 dimanche 13 février 2011 9 I.1 - Authentification • BruteForce ‣ ‣ WTF is that? Les outils : - " Brutal Gift " (Mac) " Brutus " (Windows) " THC-Hydra " (Unix) ‣ Les wordlists - Site : PacketStorm Contre-mesures : - Bloquer les tentatives multiples d’authentification (fail2ban) - Utiliser des mdp robustes 10 dimanche 13 février 2011 10 I.1 - Authentification • Si malgré tout, on ne trouve pas le mot de passe... ‣ ‣ On ne se décourage pas pour autant, on cherche un moyen détourné ! Introduction aux failles de sécurité :D 11 dimanche 13 février 2011 11 I.2 - Exploits • • • Qu’est-ce qu’un exploit ? ‣ Un exploit est un programme ou script permettant d'exploiter une faille de sécurité Où les trouve-t-on ? ‣ Bases de données d’exploits (Google is your friend) : - inj3ct0r.com Contre-mesures : - Mettre à jour son support web ! - S’abonner aux flux RSS de màj / exploits exploit-db.com Comment les utiliser ? ‣ Tout d'abord, il faut savoir si l’outil qui sert de support au site contient une faille, pour cela on récupère son nom et sa version. ‣ ‣ ‣ Un site qui n’est pas mis à jour contient généralement des failles ! Exemple: phpBB 3.0.1, wordpress 2.8.5, etc. Il nous suffit alors de rechercher dans la base de données d’exploits celui qui convient à la version du site. ATTENTION !! CES OUTILS PEUVENT ÊTRE TRÈS DANGEREUX !!! 12 dimanche 13 février 2011 12 I.2 - H@ck1ng t00lz • • • • Acunetix Web Vulnerability Scanner (Windows - payant) ‣ Un outil automatique qui combine à la fois un outil de mappage du site et de découverte de failles ou informations potentiellement dangereuses. Nikto (Unix & Windows - gratuit) ‣ Cet outil très puissant permet la découverte de failles uniquement. La base de données des failles ou informations potentiellement dangereuses est très souvent mise à jour ! Nmap (Unix & Windows) ‣ Outil permettant la découverte de service, d’OS, de ports ouverts et permettant aussi de mapper un réseau. Ici, il est intéressant pour la découverte de service. Skipfish (Unix) ‣ Outil développé par Google, il est similaire à Nikto. ATTENTION !! CES OUTILS SONT TRÈS DANGEREUX !!! 13 dimanche 13 février 2011 13 I.2 - H@ck1ng t00lz • Quels sont les types d’informations que ces outils nous apportent ? ‣ • Quelles sont les informations intéressantes dans l’immédiat ? ‣ • Dans la plupart des cas, les informations renvoyées par ces outils ne sont pas exploitables directement, elles concernent souvent des moyens supplémentaires pour le pirate de se renseigner sur le site en question. Failles include, sql injection, xss, DDoS, etc. (Ça vous parle ?) Que faire par la suite ? ‣ Exploitation des failles à la main en réfléchissant à une stratégie Contre-mesures : - Avoir une longueur d’avance sur le pirate - Utiliser ces outils avant lui 14 dimanche 13 février 2011 14 I.3 - Web Security • Quelques exemples de failles Web : ‣ ‣ ‣ ‣ PHP/JS: XSS PHP: File inclusion (include, file, fopen, require, include_once, require_once) PHP/SQL: Injection SQL PHP: Upload En général : NEVER TRUST USER INPUT ;) 15 dimanche 13 février 2011 15 I.3 - XSS • • Qu’est-ce qu’une faille XSS ? ‣ C’est une faille qui permet l'exécution d’un code JavaScript/HTML par le biais d’une requête de type POST ou GET envoyée par le client. Comment ça marche ? ‣ ‣ Imaginons le code PHP d’une page index.php qui serait de cette forme : Si maintenant le client s’amuse à appeler la page : Contre-mesures : - Coder les variables (ex : base64, htmlentities) index.php?une_variable=<script>alert("Faille_XSS_detected")</script> Le client verra son script s’exécuter sur la page index.php. • Mais à quoi ceci peut-il bien servir ? ‣ Si le client envoie un lien vers la page index.php avec la variable contenant un script malicieux à un membre ou administrateur du site, il pourra par exemple récupérer des informations juteuses (cookies, sessions, informations sur la page courante, etc.) 16 dimanche 13 février 2011 16 I.3 - File Inclusion • • File Inclusion ? ‣ En PHP ce sont toutes les fonctions de type : include, file, fopen, require, include_once, require_once Comment ça marche ? ‣ ‣ Imaginons le code PHP d’une page index.php qui serait de cette forme : Si maintenant le client s’amuse à appeler la page : Contre-mesures : - Utiliser un switch case pour la variable index.php?page=admin/une_page_admin Le client pourra ainsi accéder à la page admin/une_page_admin.php • Mais à quoi ceci peut-il bien servir ? ‣ Comme vous l’aurez compris, on peut facilement contourner la protection des pages interdites du site, en les incluant grâce à PHP dans notre index.php. Ceci permet donc au pirate d’afficher les informations contenues sur ces pages, même si elles sont dans un répertoire protégé par .htaccess. 17 dimanche 13 février 2011 17 I.3 - Injection SQL • • Miam ! ‣ L’injection SQL permet de récupérer des informations sensibles dans une base de donnée en modifiant la requête de base. Comment ça marche ? ‣ Imaginons le code PHP/MySQL d’une page index.php : ‣ Si maintenant le client modifie son cookie définissant son login pour le site en "admin" ou pire encore, si il rajoute " OR 1=1", alors il sera en mesure de voir tous les id, login et password stockés dans la table users_table ! Contre-mesures : - Utiliser mysql_real_escape_string() 18 dimanche 13 février 2011 18 I.3 - Upload • Une page upload sans vérification d'extension de fichier ou vérification de contenu c’est très dangereux !! ‣ ‣ ‣ Le client peut très bien uploader une page .php, .html, etc. Le client peut dissimuler du code malicieux à l’intérieur d’un fichier à transférer. Petite anecdote : il existait (ou existe toujours) une faille sur la messagerie Hotmail, via laquelle un expéditeur pouvait envoyer une page html dissimulée avec l’extension .jpg (ou toute autre extension d’image). Une fois le message reçu par le destinataire, si celui-ci ouvrait l’image reçue en pièce jointe il accédait directement à la page html codée par l’expéditeur. Celle-ci pouvant contenir des scripts malicieux ;) Contre-mesures : - Contrôler les uploads - Limiter les accès aux fichiers 19 dimanche 13 février 2011 19 I.3 - Pour info... • Les failles XSS sont partout, surtout sur les gros sites (Ebay, FaceBook, etc.). Plus un site sera complexe, plus forte sera la probabilité qu’une variable puisse être utilisée comme passerelle pour XSS. • Les failles de type include sont quant à elles beaucoup plus présentes sur les petits sites perso, car elles sont généralement évitées dès la création du site. • Les injections SQL sont quant à elles présentes lors de la création d’un site, elles sont généralement corrigées rapidement par les développeurs à la suite de problèmes rapportés par les utilisateurs. (Piratage de compte, etc.) Il est facile de cibler la source du problème grâce aux logs des requêtes SQL. 20 dimanche 13 février 2011 20 Questions ? 21 dimanche 13 février 2011 21 2ème Partie - Wireless Security Au menu... 1. Backtrack Basic ToOlz Mots clés: sniffing, aircrack, wireshark... 2. Wireless Hacking Mots clés: OPN, WEP, WPA... 3. Advanced Hacking TOolz Mots clés: ettercap, nmap... 22 dimanche 13 février 2011 22 II.1 - Backtrack Basic ToOlz • • • • • airmon-ng ‣ Un outil qui vous permet d’initialiser votre carte wifi en mode monitoring. airodump-ng ‣ Cet outil très puissant permet de scanner les réseaux sans fils disponibles et de sauvegarder la data qu’ils génèrent ! aircrack-ng ‣ Outil permettant le crack WEP et WPA/WPA2 personnal. aireplay-ng ‣ Outil permettant de dialoguer avec l’AP ou les clients (dans le but d’obtenir plus d’IVs par exemple). Wireshark ‣ Outil incontournable pour l’analyse d’un réseau, il permet de visualiser le contenu passant par notre interface réseau. 23 dimanche 13 février 2011 23 II.1 - Backtrack Basic ToOlz Place à la pratique... :) 24 dimanche 13 février 2011 24 II.2 - Wireless Hacking Réseau OPN ? 25 dimanche 13 février 2011 25 II.2 - Wireless Hacking Réseau WEP ? Phase de Cryptage 26 dimanche 13 février 2011 26 II.2 - Wireless Hacking Réseau WEP ? Phase de Décryptage 27 dimanche 13 février 2011 27 II.2 - Wireless Hacking Réseau WEP ? • • • IV ? ‣ Initialization Vector. IV = 24 bits, la probabilité qu’une IV se répète au bout de 5 000 paquets est d’environ 50% ! (Calcul: 5000*1500/2^24 ~ 45%) Mais où est la faille ? ‣ ‣ XOR utilisé plusieurs fois avec la même clé = Pas bon ! ‣ Une fois des bouts de PSEUDO-RANDOM DATA connus, on reverse le PRGA, puis on doit remettre en ordre la clé WEP mélangée avec notre IV. L’idée est donc de pouvoir remonter vers la branche PSEUDO-RANDOM DATA. Pour se faire, on va essayer de deviner des bouts de DATA. Mais comment fait-on tout ça ? ‣ On utilise airodump-ng pour capturer la data, et en parallèle on laisse aircrack-ng faire son boulot sur notre fichier de capture. ‣ Si on n’a pas assez de data, alors on ré-injecte des requêtes ARP sur le réseau avec aireplay-ng ;-) 28 dimanche 13 février 2011 28 II.2 - Wireless Hacking Réseau WPA/WPA2 ? • • • • Quels sont les réseaux WPA/WPA2 faillibles ? ‣ Seuls les réseaux WPA/WPA2 Personal, c’est-à-dire utilisant une clé de type PSK (Pre-shared Shared Key) peuvent être crackés à ce jour. Comment qu’on fait ? ‣ Il faut attendre ou forcer, un client à initialiser une connexion avec l’AP, dans le but de récupérer un paquet appelé l’handshake. On crack comment ? ‣ aircrack-ng ;) avec un bon dictionnaire, et oui! Cette fois-ci ce sera du pure bruteforce !!! Si on arrive pas à obtenir d’handshake alors qu’un client est connecté à une AP ? ‣ Hé bien on le déconnecte :D pour cela on utilise aireplay-ng avec l’attaque qui va bien ;) 29 dimanche 13 février 2011 29 II.3 - Advanced Hacking TOolz Next Time... 30 dimanche 13 février 2011 30 Questions ? 31 dimanche 13 février 2011 31