Security Exposed #1 - Take the red pill... and follow the white rabbit An introduction to hacking & security flaws 1 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 Prendre le contrôle d un système pour l utiliser en tant que passerelle ou espionner un utilisateur Rendre inaccessible un service Usurper une identité 2 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 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 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 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 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 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 8
I.1 - Authentification Guessing / social engineering 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 Contre-mesures : - Ne jamais communiquer son mdp - Éviter les mots de passe triviaux - Avoir des mdp multiples 9 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 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 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 - 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!!! Contre-mesures : - Mettre à jour son support web! - S abonner aux flux RSS de màj / exploits 12 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 13
I.2 - H@ck1ng t00lz Quels sont les types d informations que ces outils nous apportent? 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. Quelles sont les informations intéressantes dans l immédiat? 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 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 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 : 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? Contre-mesures : - Coder les variables (ex : base64, htmlentities) 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 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 : 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? Contre-mesures : - Utiliser un switch case pour la variable 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 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 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 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 20
Questions? 21 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 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 23
II.1 - Backtrack Basic ToOlz Place à la pratique... :) 24 24
II.2 - Wireless Hacking Réseau OPN? 25 25
II.2 - Wireless Hacking Réseau WEP? Phase de Cryptage 26 26
II.2 - Wireless Hacking Réseau WEP? Phase de Décryptage 27 27
IV? II.2 - Wireless Hacking Réseau WEP? 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! 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. 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. 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 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 29
II.3 - Advanced Hacking TOolz Next Time... 30 30
Questions? 31 31