Les 5 étapes d`un Hacking réussi
Transcription
Les 5 étapes d`un Hacking réussi
Les 5 étapes d'un Hacking réussi Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Ce document est offert gratuitement par le site web Le Blog Du Hacker. Vous pouvez librement le copier, le partager ou encore l'offrir en cadeau via un site web par exemple. Mais vous ne pouvez pas modifier le contenu sans autorisation préalable ni le vendre directement ou le partager dans des conditions non autorisées par la loi. Les 5 étapes d'un Hacking réussi de Michel Kartner est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas de Modification 3.0 non transposé. Les autorisations au-delà du champ de cette licence peuvent être obtenues à http://www.leblogduhacker.fr/contact. Disclaimer : Le site web Le Blog Du Hacker dont ce document est issu présente des techniques à titre indicatif et préventif uniquement. En aucun cas ces informations n'incitent à transgresser les lois. Ce e-book a pour but d'expliquer la méthodologie généralement utilisée par les pirates pour s'introduire dans un système informatique. Il ne cherche pas à expliquer comment compromettre un système mais plutôt à comprendre la façon dont il peut l'être afin de mieux pouvoir s'en prémunir. C'est la façon de faire standard dans le hacking éthique. Ainsi cet article ne donne aucune précision sur la manière dont les failles sont exploitées, mais explique comment faire afin de les déceler et de les corriger. Les termes « hacker » et « pirate » sont souvent confondus (même volontairement), mais un « hacker éthique » qui apprend l'attaque pour se défendre en toute légalité n'a rien à voir avec le pirate alias « hacker malveillant » qui cause de dommages à autrui. 2 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Sommaire Introduction...........................................................................4 1 La reconnaissance.................................................................5 1.1 Qu'est-ce que la reconnaissance ?..................................5 1.2 Connaître la cible........................................................7 1.3 Connaître le système de la cible....................................8 2 Le balayage réseau...............................................................9 2.1 Qu'est-ce que le balayage réseau ?................................9 2.2 Quels sont les outils utilisés ?........................................10 2.3 Les 6 étapes d'un balayage réussi..................................11 3 Gagner l'accès......................................................................12 3.1 Comment gagner l'accès à la machine............................12 4 Maintenir l'accès...................................................................13 4.1 Techniques de détection utilisées...................................14 5 Couvrir les traces..................................................................15 5.1 Pourquoi couvrir les traces............................................15 5.2 Comment couvrir les traces..........................................15 3 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Introduction Nous sommes dans un monde 2.0, l'informatique ne se limite plus aux ordinateurs, elle est partout, dans les téléphones portables, dans les maisons, dans les voitures, dans les vêtements et même dans les lunettes ! Les informations circulent à une allure incroyable et parmi elles circulent beaucoup de données privées et sensibles. On appellera système d'information tous les moyens matériels et logiciels mis à notre disposition et permettant de faire circuler ces informations. La confidentialité de certaines informations ainsi que l'augmentation des moyens de les transmettre nous poussent donc à trouver un moyen de sécuriser ce système d'information. Ce travail est habituellement celui d'un hacker éthique. Il s'agit d'un hacker qui va chercher à trouver des failles dans un système afin de les sécuriser. Les failles ne se situent pas que dans les systèmes, loin de là. Le hacker peut également chercher des failles dans le comportement de l'être humain à l'aide d'une technique de manipulation sociale aussi appelée en anglais Social Engineering. Pour réussir à trouver des failles, le hacker éthique agira toujours par étapes. Ces étapes permettent de se mettre à la place de l'attaquant dans le but de mieux sécuriser le système d'information. En effet, le slogan typique du milieu du hacking éthique est le suivant : Apprendre l'attaque pour mieux se défendre. Il y a en tout cinq grandes étapes, qui lorsqu'elles sont accomplies avec succès garantissent presque toujours un Hacking réussi. Le hacker éthique devra donc les couvrir une par une et en tirer des conclusions. 4 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Les cinq étapes dont nous allons parler sont, dans l'ordre : 1. La reconnaissance 2. Le balayage réseau 3. Gagner l'accès 4. Maintenir l'accès 5. Couvrir les traces Nous allons à présent les détailler une par une. 1 La reconnaissance La reconnaissance est généralement l'étape la plus longue mais elle est aussi la plus facile. 1.1 Qu'est-ce que la reconnaissance ? Le terme « reconnaissance » est une expression issue des militaires. Ces derniers s'organisaient afin de récupérer des informations sur leur cible avant de passer à l'attaque. Nous allons procéder de la même manière en récupérant des informations sur une cible à partir de divers endroits dont Internet car il s'agit d'une source énorme d'information. Nous l'avons vu dans l'introduction, les informations circulent par tous les moyens mis à notre disposition, ce qui étend donc la reconnaissance au système d'information en général. Nous allons admettre par la suite qu'un client nous a contacté car il souhaite sécuriser son système. Nous allons agir en tant que hacker éthique en nous plaçant dans la peau d'un pirate. Pour rappel, on emploiera le mot « pirate » pour designer un hacker malveillant dans le cadre précis de cet e-book. On aurait pu utiliser les termes « cracker » ou encore « black-hat » qui sont des équivalents. 5 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ On appellera également notre client la « cible ». On admettra aussi que la cible nous a uniquement fourni son adresse email et le nom de son site web en tant qu'informations de base. Le pirate cherchera à récupérer des informations selon un ordre de grandeur. Il récupérera d'abord les informations générales puis il finira par les petits détails. Le but est de dresser la carte d'identité de la cible pour déterminer son comportement et ses connaissances face à la sécurité informatique. Mais il cherchera également à dresser la carte d'identité du système qu'il essaiera d'attaquer afin de s'y introduire. Le pirate organisera toujours les informations récoltées à une étape donnée en vue de s'en servir dans les étapes qui suivent. La réussite des prochaines étapes et donc du piratage repose ainsi sur le temps passé à cette étape de reconnaissance et sur la qualité des informations recueillies. Par ailleurs, la reconnaissance est légale dans le sens ou les informations sont souvent partagées par la cible de son plein gré. En effet, la plupart des profils des utilisateurs sur les réseaux sociaux sont volontairement publics ainsi que les pseudonymes et autres informations disponibles sur des espaces communautaires tels que les forums de discussion. C'est la négligence des internautes qui est bien souvent la cause d'une attaque réussie. On peut cependant effectuer une reconnaissance de façon moins légale à l'aide d'outils spécialisés dans le sniffing (reniflage) réseau. Le sniffing réseau consiste à récupérer à la volée des informations non chiffrées transmises entre machines. On parle aussi de capture de paquets. Cependant, ces informations transmises via le réseau sont souvent confidentielles comme les mots de passe que la cible ne partage cette fois pas de son plein gré. 6 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Un message transmis sur le réseau est divisé en paquets contenant chacun un entête et des informations utiles à la reconstruction exacte du message lorsqu'il arrive sur la machine cible. WireShark est un célèbre outil de sniffing réseau permettant de capturer et d'analyser à la volée ces fameux paquets. On également vu l'extension Firefox appelée Firesheep qui permettait de voler toutes les sessions des utilisateurs sur un même réseau LAN. Imaginez qu'il suffisait d'installer cette extension pour voler le compte Facebook de toutes les personnes connectées sur le même réseau... 1.2 Connaître la cible Le pirate est en possession d'une adresse e-mail et d'un site web. Ces informations semblent tout à fait anodines mais suffisent largement. On considérera que l'adresse e-mail en question est : [email protected] et que le site web est : http://www.cible.com/ (oui c'est très recherché). Le pirate va commencer par chercher à connaître plus d'informations sur la cible. Il va donc taper "[email protected]" sur Google avec les doubles quotes (") pour voir si cette adresse mail a déjà été indexée, avec du contenu qui sera forcément lié à la cible. Pas de chance, il ne trouve rien. Cela dit, en recherchant l'adresse sur le célèbre réseau social Facebook, il tombe cette fois-ci sur le profil de sa cible. Il peut à partir de là commencer la partie Social Engineering en créant un faux profil afin d'ajouter la cible aux amis de ce faux profil et de récupérer beaucoup d'informations sur elle. Chaque pièce d'information supplémentaire comme une adresse e-mail secondaire permettra de répéter les étapes afin de mieux identifier cette fameuse cible. Comment sécuriser cela ? Il faut commencer par prendre conscience qu'une information qui paraît tout à fait anodine se révèle être une mine d'or pour un pirate. L'adresse 7 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ mail est bien souvent négligée mais elle constitue une partie réelle de l'identité de la victime. Il est également possible de définir une autre adresse e-mail spécialement pour Facebook (ou un autre service particulier, ce qui est recommandé), ou carrément de refuser la recherche d'un profil via son adresse e-mail. Pour se faire, rendez-vous directement sur ce lien : https://www.facebook.com/settings/? tab=privacy&privacy_source=privacy_lite et changez les paramètres sous « Qui peut me trouver avec une recherche ? » afin qu'ils soient restreints. 1.3 Connaître le système de la cible À présent, le pirate dispose de suffisamment d'informations sur la cible. Il va en chercher d'autres relatives cette fois-ci à l'entreprise de la cible et plus précisément à son système. La cible dispose d'une entreprise dont le siège social se situe dans une certaine ville. La cible dispose également d'une secrétaire. Grâce au site web de la cible, le pirate obtient l'adresse de cette entreprise à l'aide d'un outil appelé whois. Whois permet de trouver des informations sur le propriétaire d'un site web. Ces informations sont fournies par le propriétaire lui-même lors de l'enregistrement de son nom de domaine. D'autres outils comme dnslookup sont utilisables pour obtenir des détails sur un nom de domaine, voire pour trouver l'ensemble des sites hébergés sur un même serveur. En se rendant à l'adresse indiquée dans les résultats du whois, le pirate tombe donc sur l'entreprise de la cible. La secrétaire présente dans le bâtiment n'a reçu aucune sensibilisation en sécurité et se retrouve à donner la liste des serveurs privés après 20min de dialogue et quelques techniques de manipulation sociale. 8 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Comment sécuriser cela ? On a vu que du personnel non sensibilisé est un gros point faible dans une entreprise. Il faut nécessairement organiser des présentations des techniques fondamentales de sécurité. Les attaques par Social Engineering utilisent massivement les émotions et les sentiments. L'être humain est donc facilement manipulé, il faut donc veiller à garder un tête des principes de sécurité strictes comme ne jamais divulguer aucune information personnelle à qui que ce soit. Le pirate peut à présent organiser et structurer toutes les informations récupérées afin de continuer vers la prochaine étape. On l'aura donc bien compris, cette étape est longue, le pirate fera preuve de patience et d'intelligence. Il devra également s'assurer de la véracité des informations qu'il détient. 2 Le balayage réseau Cette étape s'appuie sur la reconnaissance et la pousse un peu plus loin en cherchant des informations plus techniques et spécifiques. 2.1 Qu'est-ce que le balayage réseau ? Le balayage réseau consiste à scanner les ports d'une machine et à identifier les vulnérabilités éventuelles de celle-ci dans le but de les exploiter plus tard. Généralement, des outils tout faits permettent d'établir des vulnérabilités spécifiques dans telle ou telle version d'un serveur web ou d'un programme. Ces outils sont faciles à utiliser car ils sont généralement open source et livrés avec des tutoriels ou notices d'utilisation complètes. Le pirate cherchera également à identifier les noms des ordinateurs, les versions des systèmes d'exploitation, les logiciels installés et bien sûr les adresses IP des diverses machines sans compter toutes les autres informations qui pourraient être intéressantes. 9 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ 2.2 Quels outils sont utilisés ? Parmi les outils les plus couramment utilisés, on peut noter l'outil traceroute qui permet par exemple de suivre les chemins qu'un paquet va prendre pour passer de la machine locale à la machine distante. Le balayage des ports (port scanning en anglais) est également très utilisé. Il permet de détecter les ports ouverts d'une machine et d'identifier les services qui y sont associés. Comment sécuriser cela ? Généralement, il suffit de désactiver les services inutiles afin de ne pas rendre la machine trop « bavarde ». Sous les machines unix il est possible de fermer les ports non utilisés grâce à la commande iptables qui agit comme un pare feu. Ici, manque de chance pour la cible, elle a installé beaucoup de services inutiles dans le passé qui n'ont plus été mis à jour depuis. Nmap est un scanner de ports très populaire permettant de détecter rapidement les ports ouverts d'une machine. Une commande basique ressemble à : sudo nmap -sS -O 127.0.0.1 • -sS signifie balayage TCP SYN. • -O active la détection du système d'exploitation. Le dernier paramètre est l'IP de la machine à scanner que le pirate aura par exemple récupérée via traceroute. Le pirate va donc scanner les IPs des serveurs obtenues précédemment et va trouver le service non mis à jour contenant des vulnérabilités critiques. 10 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ 2.3 Les 5 étapes d'un balayage réussi Un balayage réussi est habituellement décomposé en cinq étapes : 1. Établissement des machines disponibles et qui répondent sur le réseau. 2. Détection des ports ouverts sur ces machines. 3. Identification des services lancés sur celles-ci. 4. Recherche des vulnérabilités qu'ils comportent. 5. Préparation et lancement de l'attaque. Le pirate va donc successivement effectuer ces étapes et va maintenant se retrouver avec les informations d'une vulnérabilité bien connue d'un service faillible lancé sur une machine de l'entreprise de la cible. Il lui reste éventuellement à préparer des proxies ou tout autre moyen à sa disposition pour anonymiser les connexions qu'il va effectuer au serveur cible. Comment sécuriser cela ? C'est évident, en plus de fermer les ports non utilisés, il faut mettre le plus vite possible tous les services à jour, notamment lorsqu'ils contiennent des failles de sécurité. Cela va de même pour notre ordinateur personnel ainsi que tous les systèmes sensibles qui ont besoin d'être mis à jour régulièrement. Les systèmes mobiles ne sont pas épargnés. 11 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ 3 Gagner l'accès Il s'agit de l'attaque en elle-même que le hacker va initier envers le système de la cible. Cette étape n'est bien sûr pas faisable sans avoir auparavant détecté les vulnérabilités présentes dans le système cible. 3.1 Comment gagner l'accès à la machine Pour gagner l'accès à la machine, le pirate va exploiter la vulnérabilité qu'il a précédemment découverte dans un service non mis à jour sur la machine de la cible. La vulnérabilité qui est connue et qui existe depuis un certain temps permet déjà au pirate de s'assurer qu'il pourra mener l'attaque à bien. Il y a plusieurs façons d'exploiter une vulnérabilité. On peut noter parmi elles l'exploitation à travers un réseau local (LAN), à travers Internet, voire même sur la machine elle-même ou en mode hors connexion. L'attaquant utilisera généralement une technique de spoofing IP. Le spoofing IP est une technique permettant d'envoyer des paquets à une machine qui semblent provenir d'une autre machine que celle que le pirate utilise. Les paquets émis sont en fait modifiés pour mener à bien ce stratagème. Un paquet peut également être déformé volontairement puis envoyé à la machine cible dans le but de la faire planter. Les bugs les plus courants sont les dépassements (ou débordement) de tampon (buffer overflow) ou de pile (stack overflow) dans le cas d'un processus. Les dénis de service (DOS) ou plus précisément les attaques smurf peuvent également être utilisées par le pirate envers la machine cible. L'attaque smurf consiste à récupérer l'adresse IP de la machine cible par 12 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ spoofing IP, puis d'envoyer un maximum de requêtes ping à toutes les autres machines du réseau en se faisant passer pour la machine cible. Les autres machines vont donc répondre naturellement à la machine cible, mais la grosse quantité subite de réponses saturera la bande passante de la machine cible et la rendra indisponible. Le pirate devra cette fois s'armer de connaissances et s'assurer de pouvoir réussir à exploiter un bug. Si l'exploitation se déroule avec succès, le pirate a maintenant accès à la machine cible. L'opération est réussie. 4 Maintenir l'accès Cette étape survient assez rapidement après la précédente, elle consiste à placer une porte dérobée (backdoor en anglais) ou un cheval de troie (Trojan en anglais) sur le système cible afin de pouvoir y retourner plus tard sans problème. Non seulement le pirate pourra y retourner facilement mais d'autres personnes pourront en faire de même. Le pirate installe donc une porte dérobée pour revenir ultérieurement. La machine cible peut également être utilisée à son tour pour attaquer d'autres machines. Une autre technique plus risquée car plus facilement détectable par les systèmes de détection d'intrusion (IDS en anglais) consiste à installer un rootkit au niveau du noyau permettant d'obtenir des privilèges administrateur. La machine cible peut suite à tout cela transmettre énormément d'informations confidentielles au pirate et même se défendre contre les tentatives de désinfection éventuelles. À partir de là, la sécurité de l'entreprise aura donc été un échec, il n'y a qu'une dernière chose à espérer : que l'intrusion soit détectée au plus vite. 13 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ 4.1 Techniques de détection utilisées Un système de détection d'intrusion est un mécanisme destiné à repérer les activités anormales sur une machine comme les tentatives de connexion échouées. On distingue deux types de systèmes de détection d'intrusion : • Les NIDS (Network Based Intrusion Detection System) qui surveillent la sécurité au niveau réseau. • Les HIDS (HostBased Intrusion Detection System) qui surveillent la sécurité au niveau de la machine. Rien n'est toujours très statique en sécurité informatique, on parle donc également d'un troisième type, les systèmes de détection d'intrusion hybrides qui vont surveiller les deux niveaux à la fois. Pour donner plus de détails, les HIDS surveillent plusieurs points clés de la machine hôte : Ressources, utilisateurs (horaires et durées de connexion), processus...etc. Ils analysent également les logs à la recherche de comportements anormaux. Ils sont généralement installés sur des machines critiques. Les NDIS capturent le trafic réseau en temps réel ou à posteriori et comparent les informations avec des signatures connues. Les filtres de détection sont crées selon la politique de détection d'intrusion. Des pots de miel (honeypots en anglais) peuvent également être utilisés. Il s'agit de placer volontairement des vulnérabilités sur un système tout en vérifiant si un pirate essaye de les exploiter pour le prendre la main dans le sac. 14 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ 5 Couvrir les traces Il s'agit de la dernière étape qui comme son nom l'indique consiste à couvrir les traces précédemment laissées. Le pirate va donc supprimer les fichiers de logs et éventuellement cacher ou crypter des fichiers utilisés. 5.1 Pourquoi couvrir les traces Le pirate va chercher à couvrir ses traces pour plusieurs raisons. La raison principale est d'éviter de se faire repérer et de subir les sanctions prévues. L'administrateur système quant à lui fait généralement confiance à son fichier de log et ne se doutera donc de rien. Visionner le fichier log est également le premier réflexe qu'il aura lors d'un doute. Le pirate cherchera donc à rester totalement indétectable comme si rien ne s'était passé en commençant par éditer ces fichiers de logs. 5.2 Comment couvrir les traces Pour rester caché, le pirate va donc détruire toutes les preuves laissées au cours des étapes précédentes. Il commence ainsi par le plus important, il va détruire ou plutôt éditer les fichiers de logs contenant des détails de connexion et autres messages d'erreur potentiels. Par exemple, un bug tel qu'un buffer overflow laissera un message dans les logs système. Il peut même manipuler l'écriture de fichiers de logs afin de ne plus enregistrer sa présence dans le futur. 15 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Les rootkits peuvent être radicaux pour annuler tous les logs existants et donc utiliser la machine piratée pendant une longue période. Un rootkit sert en effet à dissimuler un maximum de preuves pendant la période la plus longue possible en plus de se cacher lui-même. Les informations comme la date de création ou d'édition d'un fichier doivent également être re-modifiées pour passer inaperçues. D'autres techniques pour cacher des fichiers sont la stéganographie et le tunneling. La stéganographie est le fait de cacher des données dans des images ou fichiers audio, par exemple. Le tunneling consiste à transporter un protocole dans un autre. Dans les entêtes TCP et IP il est possible de cacher des informations dans les « bits non utilisés » et donc de les transporter de manière transparente. Les détection de ces techniques se font au cas par cas. 16 Les 5 étapes d'un Hacking réussi – http://www.leblogduhacker.fr/ Ce document vous a plu ? Retrouvez d'autres informations sur le Hacking sur le site web Le Blog Du Hacker Les 5 erreurs les plus communes des débutants en hacking 7 qualités d'un hacker très efficace Protéger son E-book ou son image Être anonyme sur Internet et les formations Comment Protéger Son Ordinateur Et Sa Vie Privée Comment Devenir Un Hacker Nettoyer son PC 17