Sunteți pe pagina 1din 69

Scuriser les rseaux par la connaissance des usages e e

Franois Dagorn c 1er septembre 2008

Rsum e e Ce document (support dun cours du Master rseau de luniversit de Yaound I) e e e est un tutoriel sur lamlioration de la scurit dun rseau obtenue par une meilleure e e e e connaissance des usages. Il est bas sur un retour dexprience dans la gestion au quotidien e e dun petit rseau Ethernet TCP/IP (commut et segment) protg en amont par un paree e e e e feu. Commentaires et remarques ` prenom.nom at univ-rennes1 point fr. a

Table des mati`res e

Table des mati`res e

1 Introduction

2 Les principales attaques provenant du rseau e 2.1 Les attaques sur les protocoles IP, TCP et UDP 2.1.1 2.1.2 2.2 . . . . . . . . . .

3 3 3 4

Le dni de service . . . . . . . . . . . . . . . . . . . . . . . e Lusurpation didentit . . . . . . . . . . . . . . . . . . . . . e

Les attaques sur les protocoles applicatifs, les donnes quils transe portent et les applications qui les mettent en uvre . . . . . . . . 2.2.1 2.2.2 2.2.3 2.2.4 Attaque sur le DNS . . . . . . . . . . . . . . . . . . . . . . Attaque sur HTTP . . . . . . . . . . . . . . . . . . . . . . . Attaques sur Apache . . . . . . . . . . . . . . . . . . . . . . Attaque sur FireFox . . . . . . . . . . . . . . . . . . . . . .

4 5 6 6 7 7 7

2.3 2.4

Les attaques sur les syst`mes dexploitation ou leurs composants . e Premi`res mesures ` prendre . . . . . . . . . . . . . . . . . . . . . e a

3 Les outils pour espionner 3.1 Rdiger des ltres de capture pour tcpdump et Ethereal . . . . . . e i

9 10

Table des mati`res e 3.2 tcpdump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 3.2.2 3.3 Un exemple dutilisation de tcpdump . . . . . . . . . . . . . Utiliser tcpdump sous Windows . . . . . . . . . . . . . . . . 10 11 12 12 13 15 16

Ethereal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Un exemple dutilisation dEthereal . . . . . . . . . . . . .

3.4 3.5

Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Scanner les ports 4.1 Nmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1.1 4.1.2 Les dirents types de scan de Nmap . . . . . . . . . . . . . e Quelques exemples de scans . . . . . . . . . . . . . . . . . . 4.1.2.1 4.1.2.2 4.2 Un scan sur un serveur ouvert . . . . . . . . . . . Un scan sur un serveur protg par un pare-feu . e e

17 17 18 19 19 20 21

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5 Visualiser lutilisation du rseau avec ntop e 5.1 5.2 Prsentation gnrale . . . . . . . . . . . . . . . . . . . . . . . . . . e e e Dployer ntop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . e 5.2.1 5.2.2 5.2.3 Quelques options de dmarrage de ntop . . . . . . . . . . . e Comment placer la sonde . . . . . . . . . . . . . . . . . . . Quelques exemples dutilisation de ntop . . . . . . . . . . .

23 23 24 24 24 25

6 Dtecter les vulnrabilits e e e ii

31

Table des mati`res e 6.1 Scanner les vulnrabilits avec Nessus . . . . . . . . . . . . . . . . e e 6.1.1 6.1.2 6.2 Quelques exemples dutilisation avec Nessus . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 32 35 36 37 42 43

Exploiter les vulnrabilits . . . . . . . . . . . . . . . . . . . . . . . e e 6.2.1 6.2.2 Metasploit . . . . . . . . . . . . . . . . . . . . . . . . . . . SecWatch.org . . . . . . . . . . . . . . . . . . . . . . . . . .

6.3

Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7 Dtecter les attaques e 7.1 snort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1 7.1.2 7.1.3 Les r`gles de snort . . . . . . . . . . . . . . . . . . . . . . . e Comment placer la sonde snort . . . . . . . . . . . . . . . . Utiliser snort . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.3.1 7.1.3.2 7.1.3.3 Grer les alertes de snort avec BASE . . . . . . . e snort et les faux positifs . . . . . . . . . . . . . . . Conclusion . . . . . . . . . . . . . . . . . . . . . .

45 45 46 47 47 48 50 51

8 Dtection post intrusion e 8.1 Les rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8.1.1 8.2 adore-ng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

53 53 54 55 55

Les anti rootkits 8.2.1

Zeppoo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9 Conclusion iii

57

Table des mati`res e A Les failles du protocole ARP et les risques qui en dcoulent e A.1 Le fonctionnement dARP . . . . . . . . . . . . . . . . . . . . . . . A.2 Les failles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.3 Lexploitation des failles dARP par Cain & Abel . . . . . . . . . . A.4 Que faire ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 59 60 60 63

iv

Chapitre 1

Introduction
La scurisation dun rseau Ethernet TCP/IP dans le monde acadmique repose e e e en gnral sur la mise en uvre dun pare-feu ainsi que sur le cloisonnement des e e ux ` laide de VLANs. Le pare-feu rgule les ux depuis et vers lextrieur, les a e e VLANs g`rent les ux internes. La conguration des pare-feux ainsi que celle des e VLANs seectue ` laide de r`gles qui reposent sur lide que ce qui nest pas a e e explicitement autoris est interdit. Au l du temps, les administrateurs du rseau e e mettent ` jour les r`gles et des doutes apparaissent sur ltanchit du dispositif : a e e e e des portes ne sont-elles pas ouvertes ` tort ? a comment vrier que lutilisation du rseau est conforme ` la charte dusage e e a signe par les utilisateurs ? e et surtout, comment dtecter les intrusions potentielles ? e Les pare-feux et les lments responsables de la gestion des VLANs produisent ee des chiers dvnements (logs) en gnral tr`s volumineux. Les consulter est utile e e e e e en phase de mise au point de nouvelles r`gles, ils sont par contre dicilement e exploitables pour vrier lecacit des r`gles de scurit positionnes. Des dispoe e e e e e sitifs supplmentaires sont donc ncessaires pour : e e vrier les ports ouverts sur lensemble des machines du rseau ; e e visualiser le trac (en dirents points) par machines, protocoles, ports ; e vrier la vulnrabilit des services installs ; e e e e dtecter les tentatives dattaques ; e dtecter les ventuels intrus. e e Apr`s avoir eectu le point sur les principales attaques provenant du rseau, e e e nous prsentons ici dirents outils dploys pour rpondre aux questions poses cie e e e e e dessus. Ces outils procurent ` ladministrateur du rseau une bonne connaissance a e 1

Chapitre 1. Introduction des usages (souhaits ou non) et lui permettent de faire converger la politique de e scurit souhaite et son implmentation eective. e e e e

Chapitre 2

Les principales attaques provenant du rseau e


Pour protger un rseau, il faut conna les principales attaques qui peuvent e e tre laecter, la suite de ce chapitre les prsente bri`vement. e e

2.1

Les attaques sur les protocoles IP, TCP et UDP

Les attaques sur les protocoles TCP/IP tentent dexploiter les concepts de base des couches rseau et transport. Elles ont pour but de bloquer le fonctionnement e dun rseau (dni de service) ou dusurper lidentit dune machine. e e e

2.1.1

Le dni de service e

Les attaques de type ( dni de service ) ont pour but de consommer toutes les ( e ) ressources dun rseau cible pour empcher son fonctionnement normal. Ces ate e taques sont opres par des groupes qui conjuguent leurs eorts pour le plaisir ee de nuire mais galement par des organisations maeuses qui demandent des rane c ons. Parmi un tr`s grand nombre dattaques en dni de service on peut citer les e e suivantes : les TCP SYN ood qui exploitent le mode connect de TCP : pour tae e blir une connexion, une machine source met un paquet SYN (synchronize) e auquel la machine destination rpond par un paquet SYN-ACK (synchronize e acknowledment). Dans une situation normale, la machine source met alors e un paquet ACK (acknowledgment) et la connexion est tablie. Le schma e e dune attaque TCP SYN est de supprimer la derni`re tape (envoi du paquet e e ACK), la machine cible lattend alors pendant un certain temps. En rptant e e lopration ` grande chelle, on sature la machine cible en lui faisant atteindre e a e 3

Chapitre 2. Les principales attaques provenant du rseau e le nombre maximum de connexion TCP quelle peut supporter : elle ne peut plus fonctionner. le ping of death dont le principe est denvoyer des paquets ICMP dont la taille est suprieure ` la taille maximale dun paquet IP, certains quipements e a e se bloquent alors (ils sont en voie de disparition).

2.1.2

Lusurpation didentit e

Lusurpation didentit IP (IP spoong) est base sur le fait que certains services e e utilisent ladresse IP comme param`tre de conance (rlogin, allow from dapache, e ...). D`s quune machine cliente dispose dune connexion sur un serveur via une e adresse IP de conance, lattaquant essaie dusurper son adresse IP. Lattaquant doit au pralable rduire le vrai client au silence en le saturant au par une attaque e e de type ( dni de service ) (SYN ood par exemple). Il doit ensuite tenter dexploi( e ) ter une caractristique du protocole TCP (numros de squences et dacquittement e e e qui ne sont pas toujours alatoires) en ouvrant une session TCP usurpant ladresse e IP de la machine cliente. Lattaquant peut ensuite, sil a russi ` deviner lalgoe a rithme dattribution des numros de squences, se faire passer la machine cliente. e e Cette technique est videmment tr`s dicile ` mettre en uvre, certains syse e a t`mes qui nutilisent pas un squencement alatoires y sont cependant toujours e e e vulnrables. e

2.2

Les attaques sur les protocoles applicatifs, les donnes quils transportent et les applications qui les e mettent en uvre

Ces attaques sont les plus nombreuses car elles sont parfois tr`s simples ` de a e ployer. Elles ciblent les vulnrabilits des protocoles applicatifs (SMTP, HTTP, e e ...) ou de leurs implmentations mais galement les applications quils permettent e e dutiliser (les scripts CGI, les applications PHP, ...). On peut aussi classer ici les attaques sur les applications, notamment celles portant sur les navigateurs Web. Lattaquant peut, en fonction des attaques, excuter du code malveillant, prendre e le contrle du syst`me ou engendrer un dni de service. Les quatre exemples suio e e vants mettent en vidence des failles exploitables du service dannuaire de nome mage de lInternet (DNS), du protocole HTTP, du serveur HTTP Apache et du navigateur FireFox. Les deux derniers exemples ont t choisis car ils sont relatifs ee a ` des outils tr`s utiliss dans le monde universitaire. Il est vident que dautres e e e outils encore plus utiliss par ailleurs sont encore plus vulnrables (Microsoft Intere e net Explorer notamment) cf. SANS Top-20 Internet Security Attack targets (2006 4

2.2. Les attaques sur les protocoles applicatifs, les donnes quils transportent et e les applications qui les mettent en uvre annual Update)1 .

2.2.1

Attaque sur le DNS

Le DNS fonctionne en utilisant le protocole UDP (sans tats) selon le schma e e suivant : lorsquune application souhaite rsoudre un nom, elle sadresse ` son serveur e a de noms local ; celui-ci prend en charge la requte et sadresse au serveur de noms responsable e du domaine cibl ; e il attend la rponse et lorsque celle-ci arrive, vrie quelle mane bien du sere e e veur interrog puis dlivre la rponse (quil stocke galement dans un cache). e e e e Le mcanisme de vrication sappuie sur un numro didentication de la quese e e tion (Query ID) qui est tir alatoirement dans une plage de 216 possibilits. e e e Lattaque consiste ici ` tenter de rpondre ` une question avant le serveur la e a e gitime. Il sagit dempoisonner les caches des serveurs DNS attaqus pour redirie ger leurs clients vers des machines qui usurpent lidentit de serveurs. En cas de e russite, les exploitations possibles sont illimites (diusion de fausses versions de e e logiciels, rcupration de donnes condentielles, ...). e e e Jusquen juillet 2008 on pensait que ce type dattaque avait assez peu de chance de russir car il tait ncessaire que e e e lentre cible ne gure pas dj` dans le cache du serveur attaqu (peu de e e ea e chance dans ce cas dusurper lidentit de www.google.fr) ; e les serveurs lgitimes soient bombards simultanment (pour les empcher de e e e e rpondre rapidement) ; e les Query ID soient prdictibles (ce fut le cas). e La course (qui rpondra le premier) entre lattaquant et le serveur DNS lgitime e e a donc peu de chance daboutir favorablement pour le pirate. Dans le meilleur des cas, seuls quelques essais en force brute arriveront avant la vraie rponse du e serveur lgitime. e En juillet 2008, D. Kaminsky (cf. http ://www.doxpara.com) a rendu public une faille qui allie la faible entropie du Query ID avec une particularit surprenante du e fonctionnement du DNS : rpondre ` une question qui na pas t pose (comme e a ee e dans lexemple suivant) : un mail, une page web, ... contient une suite de rfrences telles que les ee suivantes : inexist-1.domaine-a-usurper.fr
1

http://www.sans.org/top20/

Chapitre 2. Les principales attaques provenant du rseau e inexist-2.domaine-a-usurper.fr ... inexistt-n.domaine-a-usurper.fr lorque le mail est ouvert, la page web accde, ... lattaquant dmarre une e e e procdure qui va rpondre ` la place du serveur DNS lgitime de domainee e a e a-usurper.fr. Pour chacune des occurrences de inexist-n lattaquant va pouvoir tenter de deviner le Query ID (n chances au lieu de 1). De plus dans chacunes de ses fausses rponses, lattaquant glissera dans le cadre des infore mations additionnelles une ligne indiquant que www.domaine-a-usurper.fr est situ chez lui ! (cest le gros coup de D. Kaminsky). Sur les n tentatives, e il est assez probable que lattaquant nisse par trouver le bon Query ID. Les exploits publis annoncent moins de 10 minutes pour empoisonner un cache e DNS.

2.2.2

Attaque sur HTTP

La mthode TRACE du protocole HTTP/1.1 a t spcie pour faciliter le e ee e e dveloppement dapplication au dessus de HTTP. Elle permet de visualiser dans e le corps dune rponse, toutes les en-ttes qui sont transmises lors dune requ`te e e e HTTP. Cette fonctionnalit est pratique dans une phase de mise au point pour e vrier ce que lapplication distante reoit. Malicieusement utilise elle permet ` e c e a un attaquant de visionner des cookies, des authentication de type auth-type : basic encodes en base 64 (en clair), ... e Cette faille peut tre exploite de la mani`re suivante : e e e lattaquant poste un mail ` destination de lattaqu (en usurpant ladresse a e dun coll`gue de celui-ci de prfrence) ; e ee lattaqu consulte ce mail via une interface de type WebMail ; e le courrier contient une pi`ce jointe qui va faire xcuter un code JavaScript e e e qui engendre une requ`te HTTP TRACE ; e le script eectue une requ`te HTTP sur le serveur de lattaquant en passant e en param`tre le rsultat de la requ`te TRACE eectue sur le serveur de e e e e lattaqu ; e en consultant son log dhttpd, lattaquant visualise les cookies, les champs auth en base 64, ...,

2.2.3

Attaques sur Apache

Le serveur HTTP Apache est compos dun corps principal auquel sajoutent e divers modules priphriques optionnels. De faon assez rguli`re, des failles sont e e c e e 6

2.3. Les attaques sur les syst`mes dexploitation ou leurs composants e rpertories dans des modules, telles celles-ci qui permettent lexcution de code e e e arbitraire sur le serveur : le module mod rewrite des branches 1.3.8, 2.0.46 et 2.2.0 permet en fonction des r`gles dcritures (les Rewrite rules) dexcuter du code arbitraire ; e e e le module mod tcl qui permet de faire excuter des scripts developps en e e TCL est vunrable dans sa version 1.0. Il autorise dexcuter ` distance du e e a code arbitraire.

2.2.4

Attaque sur FireFox

Le probl`me le plus rcurrent concerne lactivation des scripts JavaScript, celle-ci e e permet, dans certains cas, lexcution de code arbiraire comme lindique lavis du e CERTA du 13 novembre 2006 : ( il a t dmontr quil tait possible de modier ( ee e e e des objets scripts en cours dexcution. Cette possibilit conduit potentiellement ` e e a lexcution de code JavaScript arbitraire. Cette fonctionalit touche le moteur du e e navigateur qui est aussi utilis dans le lecteur de mail qui devient ainsi vulnrable e e si la fonctionalit JavaScript est active ) e e ).

2.3

Les attaques sur les syst`mes dexploitation ou e leurs composants

Les syst`mes dexploitation et leurs composants peuvent galement comporter e e des vulnrabilits qui peuvent tre exploites ` distance. Plusieurs cas ont t e e e e a ee signals concernant des DLL de Windows, notamment ` propos de la visualisation e a dimages WMF permettant lexcution de code arbitraire. Pour exploiter il sut e de placer une image WMF corrompue sur un serveur Web et dattendre les clients utilisant la DLL cible. e Les noyaux Linux peuvent galement comporter des failles qui sont accessibles e aux utilisateurs disposant dun acc`s sur la machine cible. Combines avec une e e attaque sur un service rseau (httpd par exemple), elles peuvent donner des acc`s e e privilgis ` un attaquant, ou provoquer un dni de service comme dans le cas de e e a e la vulnrabilit du noyau Linux avec IPv62 publie par le CERTA le 07 novembre e e e 2006.

2.4

Premi`res mesures ` prendre e a

Pour protger un rseau il convient de sinformer tr`s rguli`rement sur ses e e e e e vulnrabilits potentielles. Il revient aux direntes communauts dutilisateurs e e e e
2

http://www.certa.ssi.gouv.fr/site/CERTA-2006-AVI-478/index.htm

Chapitre 2. Les principales attaques provenant du rseau e de lInternet de sorganiser en fonction du niveau de risques encourus. En France, les universits disposent des services du CERT-RENATER3 et de son rseau de e e correspondants de scurit de sites. Plus gnralement, en France, le CERTA4 e e e e (Centre dExpertise Gouvernemental de Rponse et de Traitement des Attaques e informatiques) diuse journellement des alertes et des avis de scurit qui dcrivent e e e les risques ainsi que les mesures ` prendre immdiatement. a e Sagissant des quatre exemples dcrits ci-dessus, dans les avis du CERTA on e dcouvre quil convient respectivement de mettre ` jour les serveurs DNS locaux5 , e a de ne plus autoriser la mthode TRACE, de mettre ` jour Apache et dinstaller e a la derni`re version de Firefox. e

http://www.renater.fr/spip.php?rubrique19 http://www.certa.ssi.gouv.fr/site/index.htm 5 Le Query ID est maintenant associ au numro de port UDP source de la question (convee e nablement tir de mani`re alatoire), lentropie est donc maintenant de 232 . e e e
4

Chapitre 3

Les outils pour espionner


Pour comprendre le fonctionnement dun rseau ou pour mesurer les risques lis e e a e ` lcoute, lutilisation des renieurs (sniers) est recommande. La suite de ce e chapitre prsente tcpdump1 et Ethereal2 , deux des renieurs les plus utiliss. e e En fonction de lendroit o` le renieur est positionn, lcoute sera plus ou moins u e e intressante. Dans un rseau commut, par dfaut, on ncoutera que le trac e e e e e 3 (les changes unicast o` elle appara destin ` la machine hbergeant le snier ea e e u t ainsi que les broadcast de son domaine de diusion). Raccord ` un concentrateur ea (hub), le snier coutera lensemble du trac destin ` toutes les machines. e ea Pour fonctionner normalement, tcpdump et Ethereal ncessitent de placer line terface dcoute en mode indiscret (promiscuous), ceci requiert des privil`ges dade e ministrateur sur la machine qui les hberge (par dfaut une interface rseau ne e e e sintresse quau trac qui lui est destin, en mode indiscret, tout le trac est e e espionn). e tcpdump et Ethereal utilisent la biblioth`que portable libpcap qui permet de e capturer des paquets sur une interface rseau. Le principe des 2 outils est le mme : e e capturer des paquets en tenant compte dun ltre de capture potentiellement positionn par lutilisateur. Ils fonctionnent tous deux sous Windows XP et Linux, e tcpdump est utilisable en mode ligne uniquement tandis que Ethereal procure une interface graphique agrable. e

http://www.tcpdump.org http://www.ethereal.com/ 3 Sur certains commutateurs, des ports peuvent tre congurs pour rpliquer le trac dautres e e e ports (cf. port monitoring chez Cisco par exemple.
2

Chapitre 3. Les outils pour espionner

3.1

Rdiger des ltres de capture pour tcpdump et Ethee real

Les ltres de captures permettent de restreindre le nombre de paquets capturs e en ciblant prcisment le type de recherche ` eectuer. La notication utilise e e a e pour spcier des ltres de captures permet de slectionner des rseaux, des noms e e e de machines, des protocoles et des numros de ports. Les dirents lments dun e e ee ltre peuvent tre combins logiquement (and, or, not) comme dans les exemples e e suivants : net 148.65.13.0 mask 255.255.255.0 host www.machin.fr : un nom de machine ` rsoudre ou un numro IP ; a e e tcp : on cible ici uniquement les paquets TCP. Les autres valeurs possibles incluent udp, ip, icmp, broadcast, multicast, arp, ... port 80 : le port 80 en TCP ou UDP ; tcp and port 80 : le port TCP 80 ; tcp and not port 80 : tout TCP sauf le port 80 ; not broadcast and not multicast and not icmp and not arp : tout sauf les broadcast, le multicast, les paquets ICMP et les paquets ARP ;

3.2

tcpdump

Les options de dmarrage de tcpdump sont les suivantes : e tcpdump [ [ [ [ [ -adeflnNOpqRStuvxX ] [ -c nombre de paquets ] -C taille du fichier de capture ] [ -F fichier ] -i interface ] [ -m module ] [ -r fichier ] -s nombre doctets ] [ -T type ] [ -w fichier ] -E algo:secret ] [ expression ]

Parmi les options les plus usuelles de tcpdump on peut citer les suivantes : -c nombre de paquets qui arrtera la capture lorque le nombre de paquets ine diqu sera atteint ; e -w fichier pour crire les paquets capturs dans un chier ; e e -x pour imprimer les paquets capturs en codage hexadcimal ; e e -X pour imprimer les paquets capturs en ASCII ; e -s nombre doctets pris en compte dans chaque paquets (68 par dfaut). En e indiquant 0, on stipule quil faut utiliser le nombre doctets ncessaires pour e capturer la totalit du contenu des paquets. e expression correspond ` un ltre rdig comme indiqu en section 3.1 a e e e 10

3.2. tcpdump

3.2.1

Un exemple dutilisation de tcpdump

/usr/sbin/tcpdump -x -X -s 0 host www.google.fr tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 14:12:32.220589 IP zag.trucs.test-reseaux.fr.34904 > fg-in-f147.google.com.http: S 4099167971:4099167971(0) win 5840 <mss 1460,sackOK,timestamp 357988976 0, nop,wscale 2> 0x0000: 000b 4668 a600 0007 e9eb aadc 0800 4500 ..Fh..........E. 0x0010: 003c 2c93 4000 4006 4a35 943c 0a16 480e .<,.@.@.J5.<..H. 0x0020: dd93 8858 0050 f454 56e3 0000 0000 a002 ...X.P.TV....... 0x0030: 16d0 099a 0000 0204 05b4 0402 080a 1556 ...............V 0x0040: 7a70 0000 0000 0103 0302 zp........ 14:12:32.240613 IP fg-in-f147.google.com.http > zag.trucs.test-reseaux.fr.34904: S 2805043872:2805043872(0) ack 4099167972 win 8190 <mss 1380> 0x0000: 0007 e9eb aadc 000b 4668 a600 0800 4500 ........Fh....E. 0x0010: 002c 367b 0000 ef06 d15c 480e dd93 943c .,6......H....< 0x0020: 0a16 0050 8858 a731 92a0 f454 56e4 6012 ...P.X.1...TV.. 0x0030: 1ffe a6c0 0000 0204 0564 0000 .........d.. 14:12:32.240651 IP zag.trucs.test-reseaux.fr.34904 > fg-in-f147.google.com.http: ack 1 win 5840 0x0000: 000b 4668 a600 0007 e9eb aadc 0800 4500 ..Fh..........E. 0x0010: 0028 2c95 4000 4006 4a47 943c 0a16 480e .(,.@.@.JG.<..H. 0x0020: dd93 8858 0050 f454 56e4 a731 92a1 5010 ...X.P.TV..1..P. 0x0030: 16d0 c75b 0000 ...[.. 14:12:32.243247 IP zag.trucs.test-reseaux.fr.34904 > fg-in-f147.google.com.http: P 1:503(502) ack 1 win 5840 0x0000: 000b 4668 a600 0007 e9eb aadc 0800 4500 ..Fh..........E. 0x0030: 16d0 c604 0000 4745 5420 2f20 4854 5450 ...... GET./ .HTTP 0x0040: 2f31 2e31 0d0a 486f 7374 3a20 7777 772e /1.1..Host:.www. 0x0050: 676f 6f67 6c65 2e66 720d 0a55 7365 722d google.fr..User0x0060: 4167 656e 743a 204d 6f7a 696c 6c61 2f35 Agent:.Mozilla/5 0x0070: 2e30 2028 5831 313b 2055 3b20 4c69 6e75 .0.(X11;.U;.Linu 0x0080: 7820 6936 3836 3b20 656e 2d55 533b 2072 x.i686;.en-US;.r 0x0090: 763a 312e 372e 3132 2920 4765 636b 6f2f v:1.7.12).Gecko/ 0x00a0: 3230 3035 3039 3230 0d0a 4163 6365 7074 20050920..Accept 0x00b0: 3a20 7465 7874 2f78 6d6c 2c61 7070 6c69 :.text/xml,appli

Lexemple prcdent est une trace des changes entre un navigateur WWW et e e e un serveur HTTP. Le premier paquet est ltablissement de la connexion TCP e entre le client et le serveur (mission dun paquet SYN marqu du drapeau S par e e tcpdump). Le second paquet est lacceptation de la connexion par le serveur qui met un paquet SYN-ACK ` destination du client. Le troisi`me paquet est lmise a e e sion dun paquet ACK par le client pour valider son acceptation de la connexion. Le quatri`me paquet TCP marque le dbut de la premi`re requte HTTP ( GET / ). e e e e 11

Chapitre 3. Les outils pour espionner

3.2.2

Utiliser tcpdump sous Windows

La version Windows de tcpdump sappelle Windump, elle est disponible ` ladresse a http://www.winpcap.org/windump/default.htm. Il convient dinstaller WinPcap puis WinDump. Pour conna les interfaces rseaux gres par la machine ou lon tre e ee installe WinDump, il convient de dmarrer une premi`re fois avec loption -D (qui e e indique le nom des interfaces). Noter le numro de linterface cible et lutiliser e e avec loption -i (numro dinterface), cf. gure 3.1. e

Fig. 3.1 Utiliser Windump sous Windows

3.3

Ethereal

En dehors de son interface dusage graphique (tr`s riche), Ethereal se dise tingue de tcpdump par le tr`s grand nombre de protocoles quil interpr`te (plus e e de 500 protocoles, dont BitTorrent, CUPS, HTTP, ICQ, IMAP, LDAP, NTP ... cf. http://www.ethereal.com/docs/dfref/). Parmi les principales fonctionnalits e dEthereal on peut citer les suivantes : adaptation ` direntes technologie de rseaux locaux (Ethernet, FDDI, Toa e e ken Ring, 802.11, ...) ; 12

3.3. Ethereal ltrage des paquets en capture et impression (avec personnalisation de lutilisation de la couleur) ; suivi de session TCP ; cration de statistiques et de graphes (nombre de paquets, nombre de ree qutes, ...). e

3.3.1

Un exemple dutilisation dEthereal

Les gures suivantes prsentent Ethereal en fonctionnement, lutilisateur a dee ` mand de tracer ` laide dun ltre de capture (port 80). A lissue de la capture, e a il a selectionn un paquet TCP qui transporte une requte HTTP. Il a en outre e e demand linterprtation du protocole HTTP (gure 3.2). La gure 3.3 montre le e e rendu loption Follow TCP Stream.

13

Chapitre 3. Les outils pour espionner

Fig. 3.2 Ethereal capturant avec un ltre port 80

14

3.4. Wireshark

Fig. 3.3 loption Follow TCP stream dEthereal

3.4

Wireshark

Depuis mai 2006, Ethereal est remplac par WireShark qui est disponible e a ` ladresse http://www.wireshark.org. Wireshark sutilise comme Ethereal, ses avantages sont nombreux : dveloppeurs tr`s actifs ; e e support Windows nettement amlior ; e e ... 15

Chapitre 3. Les outils pour espionner

3.5

Conclusion

Lintrt de ces outils pour un administrateur de rseau est manifeste. Ils sont ee e par contre tr`s dangereux lorsque des personnes mal intentionnes les utilisent. e e Compte tenu de leur capacit ` interprter en clair des protocoles aussi rpandu ea e e que HTTP, POP, IMAP, LDAP, ... il est vident que lusage des versions scurises e e e HTTPS, POPS, IMAPS, LDAPS, ... est fondamental. On rappelera aussi quen France, la CNIL (Commission Nationale de lInformatique et des Liberts) encadre le rle des administrateurs informatiques, le texte e o ci-dessous est extrait du guide pratique pour les employeurs de la CNIL4 : (( De mme, les administrateurs de rseaux et syst`mes, gnralement tenus au e e e e e secret professionnel ou ` une obligation de discrtion professionnelle, ne doivent a e pas divulguer des informations quils auraient t amens ` conna dans le cadre ee e a tre de leurs fonctions, et en particulier lorsque celles-ci sont couvertes par le secret des correspondances ou rel`vent de la vie prive des utilisateurs et ne mettent en cause e e ni le bon fonctionnement technique des applications, ni leur scurit, ni lintrt e e e e de lentreprise. Ils ne sauraient non plus tre contraints de le faire, sauf disposition e lgislative particuli`re en ce sens. ) e e )

http://www.cnil.fr/leadmin/documents/La CNIL/publications/CNIL GuideTravail.pdf

16

Chapitre 4

Scanner les ports


Compte tenu de la vulnrabilit potentielle des protocoles, des applications et e e des syst`mes dexploitation (cf section 2.2 et section 2.3), il est tr`s important e e quun administrateur ait une parfaite connaissance des services qui fonctionnent sur lensemble du parc de machines quil g`re. Les scanners de ports sont des outils e de dcouverte automatique des services disponibles. Ils permettent dexaminer e lensemble des machines dun rseau et produisent des rapports de synth`ses tr`s e e e prcis. e Comme dans le cas des renieurs (cf. chapitre 3), ces outils sont galement e tr`s intressants pour les personnes mal intentionnes. Ils permettent ` distance, e e e a de tenter de dcouvrir quels sont les services installs, quels sont les syst`mes e e e dexploitation dploys, ... Le scanner de ports est un des outils de base des pirates e e informatiques. La suite de ce chapitre est consacre ` Nmap1 (Network Mapper) un des scanners e a de ports les plus utiliss. e

4.1

Nmap

Nmap peut tre utilis pour scanner une machine, un sous-ensemble ou la totalit e e e dun rseau, et fournit un rapport danalyse dont la table des ports intressants e e est llment essentiel. Lorsquune machine est accessible, Nmap aecte un statut ee aux ports scanns, il peut prendre les valeurs suivantes : e ferm : le port est accessible mais nest pas en service (il ny a pas dapplie cation ` lcoute) ; a e ltr : le port est ltr par un dispositif de contrle (pare-feu, ACLs de e e o routeurs). Nmap ne peut pas dterminer sil y a eectivement un service ` e a
1

http://insecure.org/nmap/

17

Chapitre 4. Scanner les ports lcoute ; e ouvert : un service utilise ce port et rpond aux sollicitations ; e ouvert ou ltr : Nmap est incapable de dterminer si le port est ouvert ou e e ltr. Cet tat se prsente avec certains types danalyses (cf. section 4.1.1) e e e et dpend aussi de la conguration des pare-feux rencontrs (que font-ils e e lorsque un paquet est indsirable ? en gnral il ne rpondent pas (ltr donc), e e e e e dans certains cas ils mettent un paquet RST, qui a mis le paquet RST une e e application ou un pare-feu ?) ; non ltr : Nmap est incapable de dterminer si le port est ouvert ou ferm. e e e Cet tat se prsente uniquement avec le type danalyse ACK (cf. section 4.1.1) ; e e ferm ou ltr : Nmap est incapable de dterminer si le port est ferm ou e e e e ltr. Cet tat se prsente uniquement avec le type danalyse Idle (cf. section e e e 4.1.1).

4.1.1

Les dirents types de scan de Nmap e

Nmap permet deectuer des scans en utilisant direntes techniques issues de e ltude du comportement des machines respectant le RFC 7932 (TCP). Parmi la e douzaine de techniques de scan connues, on peut citer les suivantes : SYN Stealth scan : le scan SYN furtif est celui propos par dfaut. Il est e e tr`s rapide car il neectue pas une connexion TCP compl`te. Nmap met un e e e paquet sur le port cibl et attend la rponse qui peut tre : e e e un paquet SYN/ACK qui indique que le port est ouvert ; un paquet RST qui indique que le port est ferm ; e pas de rponse si le port est ltr. e e Dans tous les cas Nmap neectue pas la connexion compl`te et met un paquet e e RST pour fermer la connexion. Cest pourquoi ce type de scan est galement e appel demi-ouvert (half open scan). e Connect scan : le scan le plus anodin. Il eectue un appel syst`me connect() e et se comporte donc comme un client TCP normal. Il ne ncessite pas de droits e particuliers (contrairement au SYN Stealth scan) mais son excution est e plus lente ; UDP port scan : le scan des ports UDP ; consulter la documentation de tous les types de scan sur http://insecure.org/nmap/man/fr/man-port-scanning-techniques.html.
2

http://www.rfc-editor.org/rfc/rfc793.txt

18

4.1. Nmap

4.1.2

Quelques exemples de scans

Les exemples suivants utilisent nmapfe, linterface X-Window de la commande Nmap.

4.1.2.1

Un scan sur un serveur ouvert

Fig. 4.1 Un scan sur un serveur ouvert Le rsultat de ce Connect scan sur un serveur non protg par un pare-feu e e e rv`le la version dApache utilise (il est donc ncessaire de rendre Apache plus e e e e 19

Chapitre 4. Scanner les ports furtif3 ). Par ailleurs on peut constater quun service SSH existe et que les services rsh, rlogin ne sont pas dsarms (il faut le faire). e e

4.1.2.2

Un scan sur un serveur protg par un pare-feu e e

Fig. 4.2 Un scan sur un serveur protg par un pare-feu e e Lexemple de la gure 4.2 montre le rsultat dun SYN Stealth scan sur un e serveur qui hberge un service Web ouvert et dautres services ltrs. On notera e e que malgr la slection de loption Version probe (acher les versions de serveurs), e e Nmap ne peut indiquer quelle est la version dApache utilise. Dans un bon rexe, e e ladministrateur du serveur WWW a congur de masquer cette information. e
3

ServerTokens Prod et ServerSignature off dans le chier httpd.conf

20

4.2. Conclusion

4.2

Conclusion

Les scanners de ports sont des outils de base pour les pirates, il doivent donc ltre e aussi pour les administrateurs de rseaux. Ceux-ci doivent soumettre rguli`rement e e e les rseaux quils g`rent ` une analyse compl`te. Notamment apr`s linstallation de e e a e e toute nouvelle machine (des services inutiles peuvent tre ouverts) ou pour vrier e e que les bonnes rsolutions initiales sont toujours eectives. e Lusage dun scanner de ports (tel Nmap) amliore la scurit des rseaux car il e e e e permet aux administrateurs de suivre tr`s prcismment ltat des services ouverts, e e e e cest un lment important pour ma ee triser les usages.

21

Chapitre 4. Scanner les ports

22

Chapitre 5

Visualiser lutilisation du rseau avec ntop e


Une fois la politique de scurit dploye (pare-feu, access-lists de VLAN, ...), e e e e apr`s que les r`gles dusages aient t maintes fois rappeles aux utilisateurs, il est e e ee e important de pouvoir visualiser lusage courant du rseau. La suite de ce chapitre e prsente ntop1 qui rpond ` cet impratif. e e a e

5.1

Prsentation gnrale e e e

ntop est un outil de mesure et de caractrisation du trac sur un rseau. Il e e fonctionne en temps rel et montre lusage courant du rseau via une interface e e Web. ntop utilise la biblioth`que portable libpcap (comme ethereal et tcpdump) e pour capturer les paquets sur une ou plusieurs interfaces rseaux. e ntop utilise les couches 2 et 3 pour prsenter par machines, une synth`se de e e tous les protocoles utiliss (TCP, UDP, ICMP, ICMPv6, DLC, IPX, Decnet, (R)ARP, e AppleTalk, NetBios, OSI, IPv6, STP, IPSEC, OSPF, IGMP). Dans le cas spcique e du protocole IP, le trac est caractris par protocoles applicatifs incluant les e e suivants : FTP, HTTP, DNS, Telnet, NBios-IP, Mail, DHCP-BOOTP, SNMP, NNTP, NFS/AFS, VoIP, X11, SSH, Gnutella, Kazaa, WinMX, DC++, eDonkey, BitTorrent, Messenger. Parmi les fonctionnalits de ntop, on peut citer les suivantes : e graphes du dbit global du rseau pour le mois en cours, les derni`res 24 e e e heures, les derni`res 60 minutes, les derni`res 10 minutes ; e e caractrisation du trac par machine et protocole en sparant ventuellement e e e
1

http://www.ntop.org/

23

Chapitre 5. Visualiser lutilisation du rseau avec ntop e les machines locales et les machines distantes. Par dfaut, les rsultats sont e e classs par ordre dcroissant de trac constat ; e e e dtails de la consommation de chaque machine sur les derni`res 24 heures e e permettant de mettre en vidence les usages (dtails des connexions, sessions e e TCP et UDP actives, ...) ; statistiques dusage par domaines avec caractrisation du trac par protoe coles ; ...

5.2

Dployer ntop e

ntop capture et analyse les paquets quil voit passer. Son positionnement determine donc les ux qui seront monitors. Pour la mise en place dun service e ntop (une sonde) il est conseill dutiliser deux interfaces : lune pour lacc`s ` la e e a machine et au service WWW de consultation, lautre pour capturer le trac. Par ailleurs, il est indispensable de congurer linterface utilise pour capturer le trac e dans une plage dadresse IP non routable.

5.2.1

Quelques options de dmarrage de ntop e

Parmi les options de dmarrage de ntop, on peut mentionner les suivantes : e [-i interfaces] : une liste dinterface (spares par des virgules) de capture e e (-i eth1, eth2) ; [-m reseaux locaux] : une liste de rseaux (spars par des virgules) pour e e e indiquer quels sont les rseaux locaux an de procder ` la sparation du e e a e trac (local, distant). Par dfaut ntop trouve cette information en interroe geant la conguration de linterface de capture, si elle congure dans une e plage dadresse non routable, alors en labsence de prcision, tout le trac est e considr comme distant ; ee [-o] : dans certains cas, notamment lorsque linterface de capture reoit du c trac issu dun port congur en SPAN (cf. section 5.2.2), il est ncessaire e e de positionner cette option (Situations which may require this option include port/VLAN mirror, ...) ;

5.2.2

Comment placer la sonde

Dans le cadre dun rseau commut, par dfaut, une sonde ne peut avoir acc`s e e e e quau trac destin ` la machine qui lhberge. Ce nest videmment pas ce qui est ea e e en gnral recherch. Pour largir le champ de vision, il est ncessaire de choisir e e e e e un des trois dispositifs suivants : 24

5.2. Dployer ntop e utiliser un concentrateur (hub) comme point de passage oblig du trac ` e a analyser. Cette mthode est simple, elle peut servir pour eectuer quelques e essais. Elle ne peut videmment pas tre utilise en production, car outre les e e e probl`mes de scurit lis au partage du mdia, le mode de fonctionnement e e e e e half-duplex peut rendre inoprants certains services (diusion de vidos en e e streaming, ...) ; congurer le port utilis par linterface de capture en mode SPAN (Switch e Port ANalyser ). Dans ce cas, le port congur va recevoir un duplicata du e trac des ports ` analyser. La mise en uvre de cette fonctionnalit est tr`s a e e simple, elle dpend videmment des commutateurs utiliss. Lexemple suivant e e e montre les commandes ncessaires pour congurer des commutateurs CISCO e (dans les deux cas linterface Fa0/11 reoit un duplicata du trac des ports c Fa0/12 et Fa0/13) : Commutateurs 2950 monitor session 1 source interface Fa0/11 monitor session 1 destination interface Fa0/12 monitor session 1 destination interface Fa0/13 Commutateurs 3500 ! interface FastEthernet0/11 port monitor FastEthernet0/12 port monitor FastEthernet0/13 switchport access vlan x ! utiliser un dispositif qui duplique le signal (network tap)2 pour permettre de raliser une drivation du rseau sur laquelle la sonde pourra tre installe. e e e e e Cette solution autorise de placer des sondes totalement furtives (invisibles du reste du rseau), elle est ` privilgier dans les environnements tr`s sensibles. e a e e

5.2.3

Quelques exemples dutilisation de ntop

Les gures suivantes montrent les rsultats obtenus par une sonde place ` lexe e a trmit dun rseau (juste avant le pare-feu). Le niveau de dtail obtenu permet e e e e datteindre lobjectif dune meilleure connaissance des usages. Les gures 5.1 et 5.2 montrent le trac avec des machines distantes caractris e e par protocoles. Les gures 5.3 et 5.4 illustrent le dtail qui est obtenu lorsquun e administrateur sintresse particuli`rement ` lactivit (prsente et passe) dune e e a e e e machine. La gure 5.5 permet de constater si lactivit est conforme aux prvisions, e e notamment la nuit.
2

cf. http://www.netopics.com

25

Chapitre 5. Visualiser lutilisation du rseau avec ntop e

Fig. 5.1 ntop caractrise les protocoles utiliss e e

26

5.2. Dployer ntop e

Fig. 5.2 ntop caractrise les protocoles applicatifs utiliss e e

27

Chapitre 5. Visualiser lutilisation du rseau avec ntop e

Fig. 5.3 ntop dtaille lactivit dune machine (1) e e

28

5.2. Dployer ntop e

Fig. 5.4 ntop dtaille lactivit dune machine (2) e e

29

Chapitre 5. Visualiser lutilisation du rseau avec ntop e

Fig. 5.5 ntop prsente des statistiques dutilisation e

30

Chapitre 6

Dtecter les vulnrabilits e e e


Comme indiqu au chapitre 2, les protocoles, les applications et les syst`mes e e dexploitation peuvent prsenter des vulnrabilits. D`s quune vulnrabilit est e e e e e e recense, un bulletin dalerte est dius (cf. section 2.4), la disponibilit dexploits 1 e e e peut alors tre tr`s rapide. e e Des outils permettent de dtecter les vulnrabilits, ils peuvent mme tre cone e e e e gurs pour tre intrusifs, ils sont ` la disposition des administrateurs de rseaux e e a e pour valuer les risques encourus. Ces outils sont galement accessibles aux pere e sonnes mal intentionnes, il est donc tr`s important de les conna e e tre et de les utiliser rguli`rement. e e La suite de ce chapitre prsente le scanner de vulnrabilits Nessus ainsi que e e e loutil dexploitation de vulnrabilits Metasploit. e e

6.1

Scanner les vulnrabilits avec Nessus e e

Nessus2 est un outil qui automatise la dcouverte de vulnrabilits connues e e e sur les machines dun rseau. Cest un produit commercial dius par la socit e e ee TENABLE Network Security. Il peut toutefois tre utilis gratuitement en utilie e sant une base des vulnrabilits dont la mise ` jour est dcale3 dune semaine. e e a e e Nessus est organis en mode client/serveur : le serveur eectue les tests tandis e que les clients sont chargs de la conguration et de la prsentation des rsultats. e e e Les principales fonctionnalits de Nessus sont les suivantes : e mise ` jour automatique de la base des vulnrabilits ; a e e
traduction de langlais sploit : shortname for exploit or the use of a software bug to accomplish something not intended by the designers. 2 cf. http://www.nessus.org 3 les administrateurs apprcieront en fonction de la sensibilit des sites grs si un dlai est e e e e e envisageable ou pas.
1

31

Chapitre 6. Dtecter les vulnrabilits e e e disponibilits des tests sous formes de plugins dvelopps en NASL (Nessus e e e Attack Scripting Language). NASL permet de dvelopper rapidement des e scripts de tests de vulnrabilits, il propose des mta-instructions pour intere e e roger des serveurs HTTP, FTP, ... ou pour fabriquer des paquets IP, TCP, UDP ou ICMP, ... ; reconnaissance automatique des services attachs aux ports scanns ; e e slection par lutilisateur des types de dtection ` mettre en uvre (avec ou e e a sans activation des options intrusives, ...).

6.1.1

Quelques exemples dutilisation avec Nessus

Le client Nessus est disponible dans tous les environnements (Windows, Mac OS X, mode ligne sous Unix, X11), les tests suivants ont t eectus ` laide de ee e a NessusClient (le client Nessus pour X11). La gure 6.1 montre lcran daccueil de NessusClient et notamment les options e gnrales utilises pour les scans (safe checks ici pour ne pas risquer de corrompre e e e une machine). La gure 6.2 montre le rsultat dune analyse sur un serveur o` e u un service FTP tr`s vulnrable est install. Nessus indique la solution (mettre ` e e e a jour) ainsi que les rfrences des bulletins dalertes qui correspondent et quil est ee ncessaire de consulter4 : e

National Vulnerability DataBase Original release date: 6/18/2001 Last revised: 10/20/2005 Source: US-CERT/NIST Overview Heap overflow in FTP daemon in Solaris 8 allows remote attackers to execute arbitrary commands by creating a long pathname and calling the LIST command, which uses glob to generate long strings. Impact CVSS Severity: 10.0 (High) Approximated Range: Remotely exploitable Impact Type: Provides administrator access

http://nvd.nist.gov/nvd.cfm?cvename=CVE-2001-0249

32

6.1. Scanner les vulnrabilits avec Nessus e e

Fig. 6.1 cran daccueil de NessusClient e

33

Chapitre 6. Dtecter les vulnrabilits e e e

Fig. 6.2 Le rsultat dun scan Nessus e

34

6.1. Scanner les vulnrabilits avec Nessus e e

Fig. 6.3 Le choix des vulnrabilits ` tester avec Nessus e e a

6.1.2

Conclusion

Nessus est tr`s largement utilis. Il recense plus de 13000 plugins dont le code e e est assez simple ` comprendre (cf. /opt/nessus/lib/nessus/plugins sous Linux). a Comme tous les scanners, Nessus peut engendrer des faux positifs (des alertes alors que le produit est sain), une connaissance de NASL est alors utile pour dterminer si lalerte est justie. Dans ce cas il convient deectuer les seuls tests e e qui ont gnr lalerte en y plaant des traces. La commande nasl permet de e ee c soumettre un test rapidement comme dans lexemple suivant :

nasl -T /tmp/trace -t serv-1 /opt/nessus/lib/nessus/plugins/mod_auth_any.nasl Ouf, ce serveur nest pas vulnerable

Le code modi de mod_auth_any.nasl est le suivant : e 35

Chapitre 6. Dtecter les vulnrabilits e e e

# # The script code starts here # include("http_func.inc"); include("http_keepalive.inc"); include("global_settings.inc"); port = get_http_port(default:80); if ( report_paranoia < 2 ) { banner = get_http_banner(port port); if ( ! banner || "Apache" >!< banner ) exit(0); } pages = get_kb_list(string("www/", port, "/content/auth_required")); if(isnull(pages)) { display ("Ouf, ce serveur nest pas vulnerable"); exit(0); } pages = make_list(pages); foreach file (pages) { req = http_get(item file, port port); auth = egrep(pattern:"^Authorization", string:req); if(auth) req = req - auth; res = http_keepalive_send_recv(port:port, data:req); ....

Lutilisation de Nessus est tr`s intressante, les premiers scans sont en gnral e e e e surprenants, il faut prvoir beaucoup de temps pour les analyser. Pour cette raison, e il est recommand deectuer les analyses en classiant les serveurs et en vitant e e de lancer des scans sur la globalit dun rseau (ladministrateur serait alors noy e e e sous un dluge dinformations). e

6.2

Exploiter les vulnrabilits e e

Bien quil puisse tre congur pour tre intrusif, Nessus reste surtout un outil de e e e dtection de vulnrabilits. Des outils nettement plus agressifs sont galement dise e e e ponibles, ils recensent et diusent des mthodes pour exploiter les failles connues. e La suite de cette section prsente Metasploit et SecWatch.org qui peuvent seme 36

6.2. Exploiter les vulnrabilits e e bler ambigus car ils vulgarisent des techniques dintrusion. Le concept de base de ces outils est que si des pirates disposent doutils simples pour attaquer, il est alors tr`s important que les administrateurs de rseaux soient informs et ractifs e e e e

6.2.1

Metasploit

Metasploit5 est une base de tests dintrusions. Les exploits sont dvelopps sous e e forme de modules Perl, ils partagent un mme cadre comme dans lexemple suie vant :

package Msf::Exploit::mssql2000_resolution; use base "Msf::Exploit"; use strict; use Pex::Text; my $advanced = { }; my $info = { Name => MSSQL 2000/MSDE Resolution Overflow, Version => $Rev: 3818 $, Authors => [ H D Moore <hdm [at] metasploit.com>, ], Arch => [ x86 ], OS => [ win32, win2000 ], Priv => 1, AutoOpts => { EXITFUNC => process }, UserOpts => { RHOST => [1, ADDR, The target address], RPORT => [1, PORT, The target port, 1434], }, Payload => { Space => 512, BadChars => "\x00\x3a\x0a\x0d\x2f\x5c", }, Description => Pex::Text::Freeform(qq{ This is an exploit for the SQL Server 2000 resolution service buffer overflow. This overflow is triggered by sending a udp packet to port 1434 which starts with 0x04 and is followed by long string terminating with a colon and a number. This module should work against any vulnerable SQL Server 2000 or MSDE install (pre-SP3). }),

http://www.metasploit.org

37

Chapitre 6. Dtecter les vulnrabilits e e e La derni`re version de Metasploit comporte 164 exploits, ils sont classs par are e chitecture, syst`me dexploitation et application. Les param`tres principaux dun e e exploit sont la machine cible (RHOST) et le port cible (RPORT), il convient en outre de stipuler une sentence (payload ) ` excuter si la tentative dintrusion a e est russie. Les sentences sont dveloppes indpendamment des exploits, il existe e e e e donc, en gnral, plusieurs sentences pour un mme exploit. Parmi les sentences e e e disponibles pour un exploit en environnement Linux, on peut citer les suivantes :

excution dun interprteur de commandes ; e e

ajout dun utilisateur ;

excution dune commande ; e

dmarrage dun tunnel SSH (reverse shell ). e

Metasploit propose plusieurs interfaces dutilisation : msfconsole et msfcli en mode lignes de commandes et msfweb qui est adapte ` lutilisation dun navigae a teur Web. Les 3 exemples des gures 6.4, 6.5 et 6.6 ont t raliss avec msfweb, ee e e ils montrent respectivement la slection des exploits de lenvironnement Solaris e (gure 6.4), lintroduction des param`tres dun exploit (gure 6.5) et la preuve de e lintrusion (gure 6.6). Lexploit choisi ici ` titre dexemple (Arbitrary Read File) ne propose pas de a choix de sentence car il ne sagit pas dune intrusion compl`te, mais simplement e dun acc`s illicite ` des chiers protgs (/etc/shadow ici). e a e e Metasploit permet dajouter de dvelopper de nouveaux exploits, pour plus e dinformations consulter le contenu du rpertoire sdk dune installation. e 38

6.2. Exploiter les vulnrabilits e e

Fig. 6.4 Le choix des exploits avec msfweb 39

Chapitre 6. Dtecter les vulnrabilits e e e

Fig. 6.5 Les param`tres de lexploit solaris_kcms_readfile e 40

6.2. Exploiter les vulnrabilits e e

Fig. 6.6 Le rsultat de lexploit solaris_kcms_readfile e

41

Chapitre 6. Dtecter les vulnrabilits e e e

6.2.2

SecWatch.org

http://www.secwatch.org propose une archive des vulnrabilits et des exploits e e connus (cf. gure 6.7).

Fig. 6.7 Les exploits du mois de janvier 2007 42

6.3. Conclusion

6.3

Conclusion

Les outils prsents dans ce chapitre sont ` la disposition de tous, il est indispene e a sable que les administrateurs de rseaux les connaissent. Lutilisation r`guli`re de e e e Nessus ne dispense pas de faire le tour des intrusions proposes par Metasploit e ou SecWatch.org : la faille Arbitrary Read File prsente en exemple (cf. sece e tion 6.2.1) na pas t dtecte. Comme prcis en section 2.4, il est ncessaire de ee e e e e e consulter journellement les avis et alertes diuss par le CERTA. e

43

Chapitre 6. Dtecter les vulnrabilits e e e

44

Chapitre 7

Dtecter les attaques e


Nessus permet de dtecter des vulnrabilits rpertories, des outils tels Metasploit e e e e e montrent encore plus les risques encourus, mais comment tre inform si ces outils e e (ou dautres) servent lors de tentavives dintrusions ? Les dtecteurs dintrusions rpondent ` cette question, ils permettent de dtecter e e a e des activits anormales sur un rseau1 ou sur une machine2 . e e Les HIDS dtectent les activits suspectes en eectuant des tudes comportee e e mentales (analyse des journaux du syst`me et des applications) ou en vriant e e lintgrit des chiers ainsi que celle du noyau. Les NIDS agissent comme des e e sondes qui analysent tous les paquets pour les comparer ` une base de signatures a dattaques connues et rpertories. La suite de ce chapitre prsente snort, un des e e e NIDS les plus utiliss. e

7.1

snort

snort3 est un NIDS dvelopp sous licence GPL par la socit Sourcere4 . snort e e ee sappuie sur une biblioth`que de signatures dont la distribution et la mise ` jour e a ncessitent une souscription annuelle5 de 399 $. e snort capture et analyse les paquets quil voit passer et peut tre utilis comme e e snier (avec ou sans criture dans un journal) ou comme NIDS. e Le fonctionnement de snort comme NIDS est bas un chier de conguration e
Les NIDS (Network based Intrusion Detection System). Les HIDS (Host based Intrusion Detection System). 3 http://www.snort.org 4 http://www.sourcere.com 5 La base des signatures est accessible gratuitement avec un dir dun mois, comme dans e e le cas de Nessus (cf. 6.1), les administrateurs apprcieront en fonction de la sensibilit des sites e e grs si le dlai est envisageable. e e e
2 1

45

Chapitre 7. Dtecter les attaques e (snort.conf) ainsi quune base de signatures (les r`gles). Parmi les options de e snort congurables dans snort.conf, on peut citer les suivantes : HOME_NET : une liste des rseaux ` surveiller ([10.1.1.0/24,192.168.1.0] par e a exemple) DNS_SERVERS, HTTP_SERVERS, ... : une liste des serveurs ` surveiller. Il nest a pas utile de traiter les attaques qui sont sans objets, i.e qui ciblent des machines nhbergeant pas le service attaqu. e e RULE PATH : le rpertoire contenant la base des signatures e (/usr/local/etc/snort/rules par dfaut). e

7.1.1

Les r`gles de snort e

Les paquets capturs par une sonde snort sont analyss en fonction de r`gles qui e e e dcrivent des attaques ou des vulnrabilits connues. Les r`gles dont lutilisation e e e e est congurable dans snort.conf sont regroupes par nature dans des chiers e comme dans les exemples suivants : : bad-traffic.rules : des signatures gurant du trac qui ne devrait jamais appara sur nimporte quel rseau ; tre e web-php.rules : des signatures de scripts php rputs vulnrables ; e e e scan.rules : des signatures gurant les scanners (nmap, ...) ; ... Les r`gles de snort sont crites dans un langage qui permet de dcrire un pae e e quet ` analyser. Une r`gle est divise en deux parties : la premi`re permet de a e e e slectionner les paquets cibls, la seconde indique le sous-ensemble du paquet ` e e a inspecter en dtail ainsi que le message dalerte ` gnrer si lanalyse est positive. e a e e Lexemple suivant est extrait de x11.rules qui ici gn`re une alerte si un usage e e 6 est dtect : de lauthentication MIT-MAGIC-COOKIE-1 e e

1 2 3 4

alert tcp $EXTERNAL_NET any -> $HOME_NET 6000 (msg:"X11 MIT Magic Cookie detected"; flow:established; content:"MIT-MAGIC-COOKIE-1"; reference:arachnids,396; classtype:attempted-user; sid:1225; rev:4;)

La ligne 1 correspond ` lentte de la r`gle, elle slectionne les paquets ` analyser a e e e a de la mani`re suivante : e
6 Ce procd permet dautoriser des clients X Window distants ` utiliser un serveur X en e e a partageant un clef. La clef est vhicule en clair ... e e

46

7.1. snort alert : laction ` dclancher si lanalyse est positive. Ici alert indique de a e gnrer une alerte dans le chier alert. Par dfaut, le paquet sera aussi e e e journalis (dmarrer snort avec loption -N pour supprimer la journalisation e e des paquets engendrant des alertes) ; tcp : slection du protocole ; e $EXTERNAL_NET : adresse IP source (cf. snort.conf) ; any : port source ; $HOME_NET : adresse IP destination (cf. snort.conf) ; 6000 : port destination ; Les lignes 2,3 et 4 sont des options de la r`gle : e msg : le message qui sera indiqu dans lalerte ; e content : le texte qui est recherch dans le contenu du paquet ; e flow : le sens du trac TCP ; reference : des rfrences de la vulnrabilit sur des sites (bugtraa, cve, ee e e nessus, arachnids, ...) ddis aux attaques ; e e Une documentation sur lcriture des r`gles de snort est disponible dans le Snort e e Users Manual7

7.1.2

Comment placer la sonde snort

cf. section 5.2.2.

7.1.3

Utiliser snort

Le dmarrage de snort comme NIDS peut seectuer avec la ligne de commande e suivante qui indique un dmarrage comme daemon (NIDS), avec un chier de e conguration situ dans /usr/local/etc/snort : e

snort -d -c /usr/local/etc/snort/snort.conf

Pour utiliser snort dans de bonnes conditions, il convient de dcider quelles sont e les r`gles qui doivent tre utilises. La conguration des r`gles seectue dans le e e e e chier snort.conf, il faut commenter les r`gles inutiles. Par exemple, un site qui e nexploite pas de serveurs IIS a intrt ` ne pas gnrer dalertes sil reoit des ee a e e c attaques sur ce type de service.
7

http://www.snort.org/docs/snort manual/2.6.1/snort manual.pdf

47

Chapitre 7. Dtecter les attaques e Il convient galement de congurer une mthode de propagation des alertes e e adapte aux administrateurs des rseaux ` surveiller. Le chier des alertes de e e a snort(/var/log/snort/alert) nest pas de lecture aise (cf. gure 7.1), un mail e relatif ` chaque alerte peut tr`s rapidement savrer inexploitable : une interface a e e de consultation exploitant le chier des alertes est ncessaire. e

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

[**] [1:2189:4] BAD-TRAFFIC IP Proto 103 PIM [**] [Classification: Detection of a non-standard protocol or event] [Priority: 2] 01/18-15:20:08.834049 156.60.18.254 -> 224.0.0.13 PIM TTL:1 TOS:0xC0 ID:55939 IpLen:20 DgmLen:38 [Xref => http://cgi.nessus.org/plugins/dump.php3?id=11791] [Xref => http://cve.mitre.org/cgi-bin/cvename.cgi?name=2003-0567] [Xref => http://www.securityfocus.com/bid/8211] [**] [1:1226:4] X11 xopen [**] [Classification: Unknown Traffic] [Priority: 3] 01/19-13:17:24.608929 156.60.18.19:45985 -> 156.60.18.22:6000 TCP TTL:63 TOS:0x0 ID:35693 IpLen:20 DgmLen:64 DF ***AP*** Seq: 0x3730914D Ack: 0x5BCA83A1 Win: 0x5B4 TcpLen: 32 TCP Options (3) => NOP NOP TS: 1855134245 93899245 [Xref => http://www.whitehats.com/info/IDS395]

Fig. 7.1 Le chier des alertes de snort

7.1.3.1

Grer les alertes de snort avec BASE e

BASE8 (Basic Analysis and Security Engine) est une interface de consultation des alertes de snort. BASE eectue un tri des alertes et propose de slectionner e les alertes du jour, les alertes uniques, ... Les gures 7.2 et 7.3 montrent respectivement la page daccueil dun service BASE et un cran de visualisation des alertes e uniques.

http://base.secureideas.net/

48

7.1. snort

Fig. 7.2 La page daccueil dun service BASE

49

Chapitre 7. Dtecter les attaques e

Fig. 7.3 Les alertes uniques

7.1.3.2

snort et les faux positifs

Le probl`me principal pos par lexploitation dune sonde snort est lanalyse e e des alertes positionnes. Quelles sont les alertes justies ? Comment liminer les e e e alertes intempestives (les faux positifs) ? Lutilisation dune interface de consultation des alertes telle que BASE procure 50

7.1. snort un premier lment de confort : les alertes sont tries et consultables indpenee e e damment de leurs occurences. Il reste tout de mme ` vrier limportance des e a e faits signals, cette opration nest pas automatisable, elle doit tre eectue avec e e e e prcision. e Lexemple suivant, issu du chier contenant des r`gles ciblant les attaques sur e des scripts CGI, illustre la part dinvestigation laisse aux administrateurs : une e alerte est remonte, elle indique quun des serveurs Web surveills a reu une e e c requte dacc`s ` sendmessage.cgi. BASE prcise la rfrence de la vulnrabie e a e ee e lit (cve-2001-1100) : sendmessage.cgi in W3Mail 1.0.2, and possibly other CGI e programs, allows remote attackers to execute arbitrary commands via shell metacharacters in any eld of the Compose Message page.. Si W3Mail 1.0.2 est en service alors il sagit peut tre dune attaque, dans le cas contraire lalerte e est un faux positif. Plus gnralement, on notera quun appel ` un script nomm e e a e sendmessage.cgi engendrera une alerte quil fasse partie ou pas de W3Mail 1.0.2. ` A lissue dune alerte, lorsque les investigations sont termines, ladministrateur e peut sil le juge ncessaire, commenter les r`gles qui gn`rent des alertes non e e e e justies. e 7.1.3.3 Conclusion

a ` suivre ...

51

Chapitre 7. Dtecter les attaques e

52

Chapitre 8

Dtection post intrusion e


Lorsquune intrusion russi, le pirate obtient des droits privlgis sur la machine e ee e cible (super utilisateur). La suite des oprations dpend alors du but recherch, e e e parmi les actions les plus souvent opres, on peut citer les suivantes : ee dsarmer les anti-virus et autres outils de scurit qui peuvent tre installs ; e e e e e installer des certicats dans la liste des certicats de conance des navigateurs ; utiliser la machine corrompue comme metteur de spams ou comme scanneur e nmap ; ... Les rootkits sont des outils prts ` lemploi qui permettent dautomatiser les e a oprations post intrusion. Le but est toujours le mme : rendre furtives et persise e tantes les oprations malveillantes opres par les pirates. La suite de ce chapitre e ee prsente par lexemple les techniques utilises par les rootkits pour Linux ainsi que e e quelques dtecteurs de prsence de rootkits. e e

8.1

Les rootkits

Les rootkits font partie de lInternet souterrain, ils ne sachent videmment e pas toujours. Une liste non exhaustive et non ` jour peut toutefois tre consulte a e e par http://packetstormsecurity.org/UNIX/penetration/rootkits/index.html. Le site http://www.eviltime.com/ diuse galement les derni`res versions de quelques e e rootkits, on peut notamment y trouver adore-ng et suckit. Plusieurs techniques sont utilises par les rootkits pour dissimuler des processus e ou des rpertoires, parmi celles-ci citons les suivantes : e 53

Chapitre 8. Dtection post intrusion e le remplacement des commandes usuelles utilises par les administrateurs e (ls, ps, netstat, top, ...) par des versions masquant la ralit ; e e la modication de certaines biblioth`ques partages utilises dynamiquement e e e par les commandes de base ; la modication ou lajout de modules au noyau du syst`me. Ce procd est e e e le plus redoutable car il donne acc`s ` lespace mmoire gr par le noyau e a e ee (kerneland ).

8.1.1

adore-ng

adore-ng est un rootkit pour Linux qui permet dajouter des fonctionnalits e caches au noyau. adore-ng peut tre utilis avec des noyaux 2.4 ou 2.6 et procure e e e les fonctionnalits suivantes : e

masquage de chiers et rpertoires : les commandes telles ls ne montrent pas e les chiers et rpertoires dsigns par le hacker ; e e e masquage de processus : les commandes telles top, ps, ... ne montrent pas les processus dsigns par le hacker ; e e mise en place de portes drobes ; e e nettoyage des traces.

La gure 8.1 montre adore-ng en action via la commande ava qui est ici utilise e pour cacher un processus (la gure 8.2 montre la dtection du processus cach par e e zeppoo). 54

8.2. Les anti rootkits

Fig. 8.1 adore-ng cache un processus

Une fois install (cf. insmod de la gure 8.1), adore-ng permet galement de e e cacher des chiers ou rpertoires (ava h) ou de lancer des commandes en passant e root (ava r).

8.2
8.2.1

Les anti rootkits


Zeppoo

zeppoo1 est un outil qui permet de dtecter des rootkits voluant en mode utie e lisateur (userland ) ou en mode noyau (kerneland ). Pour ce faire il sappuie principalement sur une base de signatures du syst`me sain (mode utilisateur) et sur e un parcours de /dev/kmem (la mmoire utilise par le noyau) pour comparer les e e processus prsents avec ceux observs dans le pseudo rpertoire /proc (un proe e e cessus cach appara e tra dans le parcours de /dev/kmem mais ne sera pas prsent e dans /proc)..

http://zeppoo.net

55

Chapitre 8. Dtection post intrusion e

Fig. 8.2 zeppoo dtecte un processus cach par adore-ng. e e

56

Chapitre 9

Conclusion

57

Chapitre 9. Conclusion

58

Annexe A

Les failles du protocole ARP et les risques qui en dcoulent e


A.1 Le fonctionnement dARP

Lorganisation en couches des applications rseaux implique la mise en oeuvre e de mcanismes qui permettent deectuer le lien entre les couches. Cest ainsi que e le protocole de niveau 3 (IP, ...) utilis gure dans les trames Ethernet ou que le e protocole de niveau 4 (TCP, UDP,...) est prsent dans les datagrammes IP. e Dans la communication entre la couche 2 (rseau local, adresses physiques) et e la couche 3 (rseau, adresses IP) se pose videmment le probl`me de la correse e e pondance entre ladresse IP et ladresse physique (ladresse MAC). Comment un ordinateur connaissant ladresse IP de son destinataire fait il pour communiquer avec lui ? Il nexiste videmment aucune fonction permettant dobtenir une adresse e MAC ` partir dune adresse IP (les adresses IP sont aectes indpendamment des a e e 1 a t spci pour rsoudre ce probl`me. adresses physiques), le protocole ARP ee e e e e ARP repose sur la diusion : pour obtenir ladresse physique de son correspondant, un ordinateur va envoyer ` toutes les machines connectes au rseau local a e e une question de la forme suivante : mais quelle est ladresse physique de la machine dont le numro IP est xxx.xxx.xxx.xxx ? seule la machine concerne va rpondre, e e e lchange sur le rseau local va pouvoir soprer. Il faut noter que les machines e e e conservent en mmoire (en cache) les rponses ` leurs requtes ARP, ceci vite e e a e e dencombrer le rseau local avec des rponses dj` donnes. e e ea e ARP fonctionne sans chirement et neectue pas de lien entre les questions poses et les rponses reues. Cette particularit est assez prcieuse pour grer e e c e e e lintroduction de nouvelles stations sur un rseau : les nouvelles machines se sie gnalent aux autres (mcanisme appel ARP gratuit) qui mettent immdiatement e e e
1

Address Resolution Protocol

59

Annexe A. Les failles du protocole ARP et les risques qui en dcoulent e leur cache ` jour. a

A.2

Les failles

Le dispositif ARP gratuit est videmment pratique, il est toutefois la source e dun gros probl`me de scurit. Si les stations dun rseau local acceptent de e e e e mettre ` jour leur cache sans sollicitation pralable (et sans vrication), alors a e e rien nempche un utilisateur malveillant de polluer (dempoisonner) les caches e ARP des machines quil cible. Lempoisonnement des caches ARP permet la mise en oeuvre de diverses attaques, parmi celles-ci le fameux man in the middle o` un attaquant intercepte et u redirige les ux entre deux machines. Cette attaque est tr`s redoutable car mme si elle est circonscrite au domaine de e e diusion Ethernet (ARP ne franchit ni les routeurs ni les VLANs) elle sapplique toutefois aux rseaux commuts (qui parfois se croient protgs). e e e e

A.3

Lexploitation des failles dARP par Cain & Abel

Cain & Abel est un craqueur de mots de passe coupl ` un renieur (snier )qui ea est dot dune fonctionnalit dempoisonnement ARP. Sur le site de diusion de e e loutil (http ://www.oxit.it), on trouve la prcision suivante : e Cain & Abel has been developed in the hope that it will be useful for network administrators, teachers, security consultants/professionals, forensic sta, security software vendors, professional penetration tester and everyone else that plans to use it for ethical reasons. The author will not help or support any illegal activity done with this program. Be warned that there is the possibility that you will cause damages and/or loss of data using this software and that in no events shall the author be liable for such damages or loss of data. Please carefully read the License Agreement included in the program before using it. Apr`s avoir dmarr loutil, il convient de cliquer successivement dans licne de e e e o dmarrage du mode Snier (en haut ` gauche cf. gure A.1) puis actionner la vue e a Snier dans la barre doutils Decoders / Network / Snier et slectionner la vue e APR en bas ` gauche. Loutil est prt pour le choix des machines ` empoisonner a e a (cliquer dans licne o bleue), la fentre de slection (cf. gure A.2) appara e e t et un Man in the Middle peut dmarrer entre la machine slectionne en partie e e e gauche et celle slectionne en partie droite. e e 60

A.3. Lexploitation des failles dARP par Cain & Abel

Fig. A.1 Utiliser Cain & Abel

Fig. A.2 Choisir les machines ` empoisonner a 61

Annexe A. Les failles du protocole ARP et les risques qui en dcoulent e

Fig. A.3 Empoisonnement ART en cours

Fig. A.4 Le rsultat e 62

A.4. Que faire ?

A.4

Que faire ?

Pourquoi ARP na t-il pas volu ? e e La principale proposition dvolution (Secure Neighbor Discovery - RFC 3971) e sugg`re de remplacer les adresses IP par des clefs cryptographiques. Le rem`de e e semble alors tr`s lourd ` administrer, on comprend la rticence des administrateurs e a e rseau ... e Lutilisation de tables ARP construites statiquement nest pas une solution (trop rigide). Les outils qui expdient des mails aux administrateurs pour reporter les e changements dans les tables ARP ne sont pas non plus ecaces. Lutilisation de la norme 802.1X (authentier les usagers avant dautoriser lacc`s e physique au rseau) est ventuellement disuasif mais ne r`gle rien non plus ... e e e

63

S-ar putea să vă placă și