Abstract
Une fois le rseau install et configur, celui-ci ne va cesser
d'voluer. De nouveaux systmes viennent s'y ajouter, de vieilles et
fidles machines disparaissent, bref, tout change tout le temps. Les
utilisateurs peuvent galement agir dans le dos de l'administrateur et
apporter leurs propres modifications au rseau.
Pour vrifier l'tat de son rseau, un administrateur doit se
comporter comme un pirate et tenter de pntrer ses propres
dfenses. Cet article prsente la dmarche suivre.
Introduction
Il est important de tester la scurit de son propre rseau en
se mettant la place du pirate pour dcouvrir d'ventuelles
failles. Ces tests se dcomposent en plusieurs tapes :
- phase d'approche : rcupration d'informations sur le
rseau cible ;
- phase d'analyse : dtermination, l'aide des rsultats obtenus
l'tape prcdente, des vulnrabilits potentielles et des
outils ncessaires leur exploitation ;
- phase d'attaques : passage l'acte.
Avant d'entreprendre la dernire tape, l'administrateur du rseau
doit imprativement vous avoir donn son consentement, et pas
uniquement oral. Le chapitre III du code pnal traite des
atteintes aux systmes de traitement automatis de donnes. On y
trouve 7 articles, dont voici les trois premiers :
- Article 323-1 :
Le fait d'accder ou de se maintenir, frauduleusement, dans tout
ou partie d'un systme de traitement automatis de donnes est
puni d'un an d'emprisonnement et de 100 000 F
d'amende.
Lorsqu'il en est rsult soit la suppression ou la modification
de donnes contenues dans le systme, soit une altration du
fonctionnement de ce systme, la peine est de deux ans
d'emprisonnement et de 200 000 F d'amende.
- Article 323-2 :
Le fait d'entraver ou de fausser le fonctionnement d'un systme de
traitement automatis de donnes est puni de trois ans
d'emprisonnement et de 300 000 F d'amende.
- Article 323-3 :
Le fait d'introduire frauduleusement des donnes dans un systme
de traitement automatis ou de supprimer ou de modifier
frauduleusement les donnes qu'il contient est puni de trois ans
d'emprisonnement et de 300 000 F d'amende.
Le 323-1 concerne l'intrusion en elle-mme. Lorsque que, de plus,
elle induit des altrations des donnes du systme, la peine est
majore. Le 323-2 porte sur des nuisances faites au rseau (virus,
mail bombing, DoS, ...). Enfin, le 323-3 punit les modifications
faites volontairement aux donnes prsentes sur le rseaux (comprendre
par "donnes" aussi bien les meilleurs scores xbill que les fichiers
de configuration du rseau).
Mettre l'preuve la scurit d'un rseau signifie en gnral
"rsistance aux menaces externes". Cependant, de nombreuses oprations
malveillantes sont facilement menes depuis une machine du rseau
lui-mme (virus, backdoor, sniffer...). Ces sources de danger sont
rarement prises en considration lors de l'valuation du rseau. De
mme, la plupart des attaques prsentes dans l'article d'ric
Detoisien doivent galement tre values (spoofing, (D)Dos...).
Des scnarii varis sont envisageables en guise de tests
d'intrusion :
- le testeur ne connat rien du rseau cible et ne dispose d'aucun
accs celui-ci, nous sommes dans le cas d'un test d'intrusion
externe ;
- le testeur dispose de privilges minimaux sur le rseau cible
(compte utilisateur quelconque). Il cherche accrotre ses
privilges depuis l'intrieur mme du rseau (crans de veille
non activs, sniffing, exploitation de vulnrabilits
locales..). Dans ce cas, il s'agit d'un test d'intrusion interne.
Les rsultats obtenus doivent permettre de mieux cerner, afin de
les corriger, les problmes potentiels ou existants sur le rseau
cible. Par exemple, il faut valuer le comportement de
l'administrateur face aux tentatives d'intrusion ou l'intrusion
elle-mme si elle russit (sera-t-elle dtecte ? Au bout de combien
de temps ? ...)
La guerre de l'information
Nous nous plaons donc dans la peau d'une personne qui cherche
rcolter un maximum de renseignements sur un rseau cible. Cette
collecte se divise en deux tapes. Dans un premier temps, nous allons
rcuprer toutes les informations disponibles sans accder directement
aux ressources de la cible. Ensuite, lorsque nous commencerons avoir
une ide plus prcise de ce dont il retourne, nous accderons
directement aux moyens fournis par la cible.
Les requtes indirectes
Dans cette catgorie, nous plaons tous les moyens qui permettent
d'en apprendre plus sur la cible, mais sans la contacter
directement. Ces informations sont disponibles, il suffit de savoir o
chercher.
Interrogation des bases whois
Les serveurs whois, aussi appels
nicname (port 43), permettent d'accder la base de
donnes des renseignements fournis lors de l'enregistrement d'un nom
de domaine :
- des informations administratives comme des noms, tlphones et
adresses pour diffrents contacts (
admin-c,
tech-c, zone-c,
bill-c...) ;
- des informations techniques telles que le(s) nom(s) du(des) DNS(s),
les adresses emails des responsables voqus ci-dessus, les ensembles
d'adresses IP allous la cible...
Cette base de donnes, autrefois gre par InterNIC et maintenant
par Network Solutions, reste simplement accessible tous car elle
permet de vrifier si un nom de domaine existe dj.
Les socits qui enregistrent les noms de domaine offrent
gnralement un service d'interrogation en ligne (voir le tableau 1). Sous Unix, il existe galement la commande
whois.
| AFNIC |
Association Franaise pour le Nommage Internet en Coopration |
www.nic.fr/cgi-bin/whois |
tous les ".fr" |
| RIPE |
Rseau IP Europen |
www.ripe.net/cgi-bin/whois |
couvre l'Europe, le Moyen-Orient et quelques pays d'Asie et d'Afrique
|
| InterNIC |
Pris sur leur page web : "InterNIC is a registered service mark
of the U.S. Department of Commerce. This site is being hosted by
ICANN on behalf of the U.S. Department of Commerce". |
www.internic.net/whois.html |
les ".com", ".net", ".edu" et autres ".org" |
Tab. 1 : bases whois
Pour vous montrer la richesses des inforamtions contenues dans ce
type de base, rien de tel qu'un petit exemple sur un nom de domaine
(fictif pour des raisons de confidentialit) :
Nous apprenons que la socit Pigeon et Cie est en fait
hberge par Heberge Telecom. Les adresses emails
correspondent sans doute des alias, mais elles nous fournissent
galement une piste sur l'existence de comptes sur des machines :
si les mots de passe correspondant sont faibles (comme les prnoms,
dates de naissance...), cette information peut se rvler utile.
Toujours via les bases whois des recherches plus pousses partir
d'une adresse IP appartenant la socit Pigeon et Cie nous
amnent dcouvrir les classes d'adresses IP qui lui ont t
alloues. Pour cela, nous utilisons la base whois de RIPE qui se
rvle tre la plus pertinente :
En outre, des recherches croises sur les noms rcuprs peuvent
nous donner des informations supplmentaires sur la cible (dcouvrir
de nouvelles adresses IP ou de nouveaux serveurs DNS).
Le bilan des recherches via les bases whois est trs concluant
puisque nous avons rcupr :
- les serveurs DNS ayant autorit sur le domaine
pigeons.fr ;
- les coordonnes des contacts administratifs et techniques
lis Pigeon et Cie ;
- les classes d'adresses IP allous la socit Pigeon et
Cie.
Nous pouvons tout de mme continuer glaner des informations sur
Internet.
News Group
Souvent les administrateurs ou les dveloppeurs se retrouvent face
des problmes. Pour les rsoudre, ils utilisent les NewsGroup pour
poser des questions. Malheureusement, ils donnent souvent beaucoup
trop d'informations sur leur systme d'information (technologie,
version des applications utilises, fragment de code...). Pour faire
des recherches, nous pouvons demander groups.google.com
avec comme critre de recherche @pigeons.fr par
exemple. Ce moteur, trs performant, remonte alors tous les messages
posts par des personnes de la socit Pigeon et Cie. Outre
les informations techniques, nous pouvons obtenir des renseignements
sur les gots personnels de certaines personnes de la socit. Ces
indications servirons lors de recherche de mots de passe ou pour
amliorer une ventuelle tentative Social Engineering (expliqu
ultrieurement).
Moteur de recherche
Mme principe que pour les NewsGroup, nous essayons de rcuprer
d'autres donnes sur le systme d'information cible en utilisant un
moteur de recherche. Ds lors, les mots cls employer ne seront
limits que par notre imagination. L encore,
www.google.com est trs performant surtout grce son
cache. Nanmoins, des mta-moteurs comme www.dogpile.com
donnent des rsultats pertinents en multipliant les recherches sur
plusieurs moteurs.
Social Engineering
Nous sortons un peu des requtes indirectes puisque cette
technique implique un contact direct avec la cible. Nanmoins, cette
dmarche n'est toujours pas technique c'est pourquoi elle ne fait pas
partie des requtes directes. Le social engineering se pratique pour
obtenir des informations confidentielles (mot de passe, renseignements
techniques, numro de tlphone, adresse IP...) des utilisateurs du
systme d'information cible. Tous les moyens possibles et imaginables
sont disposition (tlphone, mail, fax...). Avec une usurpation
d'identit et une exploitation habile des informations rcoltes au
pralable sur les personnes et la socit, la crdibilit est au
rendez-vous ainsi que de prcieuses donnes.
Divers
Les requtes indirectes sont quasiment illimits, un pirate a le
temps pour lui, il ira jetter un oeil sur le site de la socit ou de
ces filiales. D'autres donnes sur les socits et sur les marques se
retrouvent sur des sites comme www.societe.com ou celui
des pages jaunes (les numros de tlphone ou des noms de
personnes). Les rsultats dpendent evidemment de l'inventivit du
pirate.
Les requtes directes
Les informations rcupres jusqu'ici ne proviennent pas
directement de la cible. Nous allons maintenant lancer quelques sondes
dans sa direction et voir tout ce que nous pouvons rcuprer.
Du point de vue de la cible, nous verrons galement comment
djouer certaine interrogation. A la diffrence des tapes
prcdentes, la cible contrle maintenant les donnes que le testeur
recherche. C'est donc elle de faire en sorte de les limiter au
minimum.
Interrogation des DNS
La requte whois nous montre les DNSs utiliss. Que
peuvent nous rvler ces derniers ? Pour obtenir des
informations de ces serveurs, il suffit de les interroger dans un
langage qu'ils comprennent savoir le protocole DNS. Plusieurs
requtes sont notre disposition :
- Rcupration de tous les serveurs DNS ayant autorits sur le domaine
Nous avons donc la confirmation des serveurs DNS utiliss ainsi
que leur adresse IP.
- Rcupration des serveurs de messagerie (Mail eXchanger) du domaine
- Vrification des deux requtes prcdentes
Dsormais nous avons toutes les informations que nous pouvions
recuprer facilement et tous les coups. Explorons plus avant le
domaine pigeons.fr en recherchant des informations sur
les machines prsentes sur le rseau :
- Le transfert de zone renvoie toute la configuration du serveur DNS
La chance est avec nous, une mauvaise configuration nous a
permis de lister toutes les machines du domaine
pigeons.fr. Dans le cas contraire, nous aurions
refait la mme opration sur les autres serveurs DNS car
souvent le serveur principale est bien configur contrairement
aux autres.
- D'autres tests sont intressants quand le transfert de
zone est impossible. Par exemple, nous pouvons regarder s'il
est possible de rcuprer l'adressage interne.
Nous avons pris ici une autre cible puisque le transfert de zone
prcdent nous a montr aucune machine avec un adressage priv
(192.168.0.1 par exemple). Nous voyons donc que la zone
0.168.192.in-addr.arpa est gre par le serveur DNS
ns1.pigeons2.fr. Il suffit donc de tester toutes
les machines du rseau 192.168.0.*.
Il ne reste plus qu' crer un petit script (en Perl par
exemple) qui rpte cette commande pour les adresses de
192.168.0.1 192.168.0.254.
- Enfin, dans le cas d'un Bind uniquement, nous pouvons obtenir
sa version, ce qui est trs intressant quand on connat le long
pass de ce serveur en terme d'exploits distance.
Nous obtenons bien la version de Bind, ce qui pourra nous
permettre de trouver une ventuelle vulnrabilit sur cette
version (un buffer overflow par exemple).
Utilisation de ping
Les requtes indirectes (whois) et l'interrogation des DNS nous
ont permis de rcuprer des adresses IP et des classes d'adresses IP
appartenant la cible. En effectuant, un ping sur chacune de ces
adresses IP, nous allons savoir lesquelles sont accessibles. Il faut
nanmoins prendre en compte le fait que la prsence d'un firewall peut
empcher la machine de rpondre au ping. Le scan de port solutionnera
se problme en dtectant la prsence de la machine dans le cas o elle
a un port ouvert. Nmap effectue trs bien cette tche :
Utilisation de traceroute
Le but du jeu est d'obtenir l'adresse IP d'un routeur d'accs aux
machines cibles. Pour cela, il suffit de faire un traceroute en
direction d'une machine du rseau cible :
La machine juste avant la destination est un routeur.
Port Scan
Il existe une grande varits de mthodes pour scanner, dont la
description dpasse largement le cadre de cet article. Le principe
gnral de toute mthode de scan est d'envoyer un paquet (TCP, UDP,
ICMP...) sur la machine cible et de voir ce qui se passe. Selon la
mthode employes, le testeur dtermine l'tat du port (ouvert, ferm,
filtr).
Le but du scan est similaire celui de l'claireur. Le testeur
(ou le pirate) dtermine ainsi le rle des machines, les services
accessibles, les protocoles supports... A la fin de l'opration, les
informations suivantes sont obtenues :
- les adresses IP des machines du rseau ;
- la liste des services disponibles ;
- la liste des diffrents protocoles supports (TCP, UDP, ICMP...)
- pour un maximum de machines, l'tat de chacun de ses
ports.
Pour un administrateur, cette tape dvoile les accs ses
machines. Il doit galement installer des outils lui permettant de
dtecter les scans qu'il n'a pas lui-mme dilligents
(iplog ou portsentry par exemple).
Il existe diffrentes solutions pour chapper ce genre de
dtecteurs, en spoofant des adresses IP ou en distribuant le scan
depuis plusieurs machines.
Par exemple, lorsque l'adresse source du paquet est spoofe, la
machine de test reste inconnue de la machine cible, bien que celle-ci
sache alors qu'elle a t scanne :
kelly (192.168.1.3) la machine de
tests
bosley (192.168.1.2) une machine calme
(i.e. qui ne gnre pas beaucoup de trafic) ;
charly (192.168.1.1) la machine
cible.
Pour dtecter si un port TCP laisse passer les paquets,
kelly envoie rgulirement des paquets
bosley. Si bosley gnre peu de trafic sur
le rseau, le champs id de ses paquets varie peu. Dans le mme temps,
kelly envoie charly des paquets TCP avec
le drapeau SYN activ (comme pour une demande de connexion normale),
mais en mettant comme adresse source celle de
bosley. Ainsi, charly rpond
bosley avec des paquets SYN-ACK si le port est
ouvert. bosley, qui n'a rien demand, envoie un paquet
RST charly pour couper la connexion. Du coup, le champs
id augmente puisque deux paquets sont mis (le RST et la rponse
kelly :
Simultanment depuis un autre terminal :
Il est normal que kelly ne recoive aucune rponse de
charly puisqu'elles sont envoyes bosley.
Au contraire, lorsque le port cible n'est pas ouvert,
charly n'met aucun paquet. Le champs id ne varie alors
pas :
Le port cible (hping -a bosley -p 80 -S charly) est
donc ferm. Les logs de charly contiennent une tentative
de connexion provenant de bosley.
Pour induire un scan en erreur, il est galement possible de
laisser tourner un pot de miel (honney pot). Ceci
ressemble un serveur, a le got d'un serveur, mais ce n'est pas un
vrai serveur :
Il suffit alors de le mettre sur le port de son choix :
Nous lanons notre serveur fake sur le port 21 (ftp).
lsof nous rvle bien qu'un serveur coute sur ce port
21. Toutefois, nmap (scanner de port) se laisse abuser
car il tente juste d'ouvrir une connexion sur le port 21. Comme il
russit, il croit que c'est bien un serveur ftp. L'illusion fonctionne
avec ce type de scanners rseau car ils ne cherchent pas rellement
se connecter. Toute connexion plus approfondie rvlera la
supercherie, moins d'affiner le faux serveur (par exemple en
ajoutant les bannires pour simuler le service dsir). Signalons
enfin que la commande nc (netcat) produit un rsultat
similaire (nc -l -p 21 pour couter sur le port 21).
Ce genre de dfense s'appelle pot de miel. Les projets
honeynets et honneypots mettent en place des rseaux, ou
des machines, destins attirer les pirates pour apprendre leurs
techniques.
Scanner une machine se rsum toujours envoyer un paquet de la
machine de tests la machine cible, indpendamment de la mthode
employe. Selon les moyens de la machine cible (i.e. la scurit
attendue sur celle-ci), une tentative avec 2 paquets par jour suffit
pour dtecter le scan. Il faut alors de gros disques et enregistrer
tous les paquets qui arrivent sur la machine pour analyser ces donnes
sur plusieurs jours afin de reconstituer le scan.
OS Fingerprinting
Grce au scan du rseau cible, nous connaissons maintenant les
machines actives. Nous affinons notre connaissance en dterminant leur
systme d'exploitation. Cette connaissance nous permettra, lorsque
nous aurons galement dtermin la version des daemons qui attendent
sur les ports de la machine cible, de rechercher les exploits
ncessaires nos tests d'intrusion.
Chaque OS possde sa propre conception de la gestion des
protocoles rseaux. D'une part, certains champs sont laisss la
charge de l'OS (TTL, ToS, Win, DF...). D'autre part, mme si les RFC
dfinissent l'essentiel, elles ne sont pas toujours scrupuleusement
respectes. De plus, si elles interdisent bien certaines
configurations de paquets, elles ne prcisent toutefois pas comment y
rpondre. Par exemple, que faire d'un paquet qui contient le flag 64,
non dfini ? Chacun a sa solution.
valeurs par dfaut dans les paquets
En rcuprant des paquets mis par la cible, nous dcouvrons la valeur
de paramtres :
- le champs TTL (time to live) des paquets sortants ;
- la taille de la fentre (window) ;
- le bit DF (Don't Fragment) ;
- le champs TOS (Type Of Service).
- ...
Selon les OS, tous ces paramtres changent. Une base de donnes
contenant leur valeur par dfaut facilite alors l'identification. Il
suffit ainsi d'envoyer des paquets diffrents pour tester les rponses
puis de comparer ces dernires une base de signatures pour
identifier l'OS.
Par exemple, le champs id permet de distinguer facilement les
linux 2.2.x des 2.4.x (la commande hping -1 -c 3 met 3
paquets de type 1 i.e. ICMP) :
La pile TCP/IP
Cependant, cette mthode n'est pas trs fiable car les OS
permettent souvent de modifier certaines de ces valeurs (avec
sysctl sous Linux ou dans la base de registres pour
Windows).
Une mthode plus performante consiste analyser les rponses de
l'OS cible face certains paquets : le testeur connat alors le
comportement de la pile TCP/IP de la cible, ce qui est suffisant pour
identifier l'OS si les t ests sont bien choisis.
nmap (encore et toujours ;) utilise exactement cette
dmarche lorsque l'option -O (OS identification) est
active. Une base de donnes contient les rponses types selon les
OS. Ainsi, l'empreinte des noyaux Linux 2.4.0 - 2.4.5 correspond
:
Les tests en eux-mmes sont dcrits par les lignes Ti. La
lecture de l'article de Fyodor paru dans phrack vous les dtaillera
(phrack 54, fichier 9/12). Toutefois, dvoilons succinctement la
signification de chacun :
- TSeq : dcrit la nature de l'incrmentation des numros de
squence ;
- T1 : paquet TCP avec le flag SYN|64 (comme 64 ne correspond
aucune valeur de flag, le paquet est "syn-bogu") vers un port
ouvert ;
- T2 : paquet TCP NULL, i.e. ne contenant aucune option ni aucun
flag, vers un port ouvert ;
- T3 : paquet TCP avec les flags SYN|FIN|URG|PSH vers un port
ouvert ;
- T4 : paquet TCP avec le flag ACK vers un port ouvert ;
- T5 : paquet TCP avec le flag SYN vers un port ferm ;
- T6 : paquet TCP avec le flag ACK vers un port ferm ;
- T7 : paquet TCP avec le flag FIN|PSH|URG vers un port
ferm ;
- PU : paquet UDP envoy un port ferm afin de rcuprer un
paquet ICMP "port unreachable".
S'il est souvent possible de modifier les valeurs de certains
paramtres, modifier le comportement complet de la pile est autrement
difficile, voire impossible avec certains OS dont les sources ne sont
pas disponibles.
Bannires
L'objectif est simple : connatre la version de l'application
utilis pour un service spcifique. La plupart du temps, un simple
telnet sur le port dsir nous donne le
renseignement. Signalons les quelques services qui ne dlivrent pas
cette information : finger (port 79), exec (port 512), login
(port 513), printer (port 515).
- FTP (port 21)
Souvent la version est dvoile ds le login :
Cependant, certains serveurs autorisent la dissimulation de la
bannire. La commande STAT peut nous sauver :
- telnet (port 23):
Avant mme que la connexion soit valide par le mot de passe, le
serveur renvoie les informations recherches :
Si vous tenez vraiment utiliser telnet, l'option
-h ne les affichera qu'une fois le client
authentifi.
- DNS (port 53) :
Nous avons vu qu'il tait assez simple de rcuprer la version d'un
serveur DNS. Il est cependant possible de fausser cette
information en modifiant le champs options dans
/etc/named.conf :
- HTTP (port 80) :
La commande HEAD ne renvoie que les
mta-informations constituant l'en-tte HTTP :
L'ajout de la ligne ServerToken Prod limite
l'information au nom du serveur, i.e. Apache.
portmap (port 111) et les RPCs :
Comme nous le dtaillons dans la suite de cet article, la
commande rpcinfo fournit toutes les versions des
services RPCs qui tournent sur la cible.
identd (port 113) :
Certaines versions supportent une extension
la RFC 1413 : la commande VERSION :
Les serveurs qui supportent cette commande dispose galement
souvent d'une option pour la dsactiver.
Informations relatives des protocoles spcifiques
Nous savons maintenant ce qui tourne prcisment sur chacun des
systmes (OS, serveurs, version des serveurs...). Nous continuons
notre qute de renseignements car de nombreux serveurs en dvoilent
encore beaucoup sur le rseau et ses utilisateurs :
finger fournit des informations sur les
utilisateurs du systme :
En outre, il est possible d'enchaner les requtes avec la
notation finger raynal@hots1@host2.
- le serveur de mails : le protocole SMTP (RFC 821) dfinit
les commandes VRFY et EXPN :
Sur charly, nous obtenons les informations suivantes :
La plupart des serveurs SMTP permettent maintenant de les
dsactiver, ce qui est donc recommand ;)
identd (anciennement appel auth, port
113 - RFC 1413) fournit des informations sur
l'identit des utilisateurs du systme. Il dvoile le dtenteur d'une
connexion, ce qui ncessite de connatre les ports cible et
destination. Pour le port cible, comme nous sommes sur notre
machine, la commande netstat -A inet nous le
rvle. Quant au port destination, nous avons dj scann la
machine cible ! Il ne nous reste plus qu' nous connecter
chacun des ports ouverts puis demander identd
qui est en charge de cette connexion.
Le rsultat du scan de bosley est le suivant :
Nous initialisons une connexion sur le port 113 de
bosley. Puis,
pour chacun des ports ouverts, nous nous connectons avec un simple
client telnet (telnet bosley 664). Nous
demandons alors identd de nous donner les
informations voulues (la syntaxe des requtes est
<port-sur-serveur>,<port-sur-client>) :
Nous voyons ici quelques limites nmap. Tout
d'abord, l'erreur obtenue sur le port 80 signifie qu'en fait il
n'y a pas de serveur web sur bosley . Ensuite, le kdm
qui tourne avec l'identit rpcuser laisse plutt
penser qu'il s'agit en fait d'un programme RPC.
Regardez attentivement les indications de configuration de votre
daemon. Il est souvent possible de remplacer le nom de l'utilisateur
par son UID, mais d'une manire gnrale, mieux vaut dsactiver
ce serveur.
portmap (sunrpc port 111) est le
serveur essentiel au bon
fonctionnement des services qui reposent sur les RPCs (NIS,
NFS, rusers, rstat...). La commande rpcinfo rvle
ce qui tourne sur une machine :
rpcinfo se connecte au port 111 de la machine cible
et lui demande ce qui fonctionne dessus. portmap
n'a pas prvu de mcanismes de contrle. Il est donc conseill
de bloquer l'accs se serveur via le pare-feu et le
tcp-wrapper. Dans ce cas, toutes les requtes fondes sur les
RPC (comme les 2 suivantes) choueront.
Cependant, l'authentification de RPCs repose sur l'adresse IP du
client. Sur un rseau local, il est trs facile d'usurper une
adresse et d'accder ainsi tous les services RPCs
disponibles.
- Un serveur NIS contrle les clients autoriss l'interroger par
un mcanisme appel securenets.
Par dfaut, tout le monde peut se connecter au serveur.
N'importe quelle machine peut alors se dclarer
client de telle base NIS. Une fois connu le nom de la
base NIS (il s'agit souvent du mme nom que le serveur), nous
dclarons notre machine de tests (kelly - 192.168.1.3) comme
cliente du serveur NIS (charly - 192.168.1.1) :
- Lorsque la machine cible exporte des rpertoires par NFS, il est
parfois possible de les connatre en utilisant la commande
showmount :
Nous retrouvons ici le netgroup angels dcouvert
prcdemment dans la base NIS. Les rpertoires exports tout
le monde (signals par (everyone)) sont alors
accessibles sur la machine tests par
mount -t nfs <cible>:<rpertoire> /mnt/cible.
- Toujours parmi les RPC, voici quelques serveurs moins
courants :
ruserd rvle les
utilisateurs connects sur une machine :
On apprend ainsi les dates de connexion et leur
provenance.
rstatd gnre des statistiques sur le
systme, lues par la commande rup :
Envoie de mail
L'en-tte d'un mail fourmille d'informations pertinentes comme la
version du serveur smtp utilis voir l'adressage interne. Nous
obtenons le chemin emprunt par le mail.
Nous rcuprons le nom et l'adresse d'une machine interne, la
version du serveur SMTP ainsi que la version du client SMTP
utilis. Il est frquent d'envoyer un mail un adresse
inexistante. Ainsi, le serveur SMTP de la cible renvoie
automatiquement une rponse avec la plupart des informations
Scan CGI
L'installation par dfaut d'un serveur Web et/ou une mauvaise
configuration font que de nombreux scripts peuvent tre prsent sur un
serveur Web. Un nombre important de ces scripts sont la source de
failles. Un scanner de CGI permet de tester la prsence de ces scripts
sur un serveur cible. Le pirate pourra ainsi les utiliser pour
attaquer la machine cible. Le scanner le plus connu est
whisker.
Nous avons une liste de scripts potentiellement vulnrables qui
pourront exploits ultrieurement.
War Dialing
Le War Dialing est une technique un peu part. En effet, cela
consiste scanner tout un ensemble de numros de tlphone.
Un logiciel (Toneloc, THC-Scan...) appelle chacun des numros de
tlphone et dtecte s'il s'agit d'une VMB (Voice Mail Box), d'un fax,
d'une personne, d'un type de sonnerie (occup, pas de rponse...) ou
d'une porteuse c'est dire un modem (ou plus gnralement un Remote
Access) qui rpond. L'attaque suivant cette dcouverte se focalise sur
la dcouverte d'un login/password permettant d'accder la machine
derrire le modem.
L'utilisation des informations
Aprs avoir rcupr tous ces renseignements sur le systme
d'information cible, nous pouvons planifier la suite du test
d'intrusion.
La recherche de vulnrabilits
Cette tape utilise directement les donnes
prcdentes. L'objectif de la phase d'analyse est de trouver les
vulnrabilits au niveau du rseau, des systmes, et des applications
de la cible. Ces failles se trouvent dans des bases publiques (comme
bugtraq qui est la liste la plus connue) et sur des sites de groupe de
pirates. Cette recherche aboutit l'tablissement d'une liste des
vulnrabilits utilisables contre les machines de la cible.
Dans le cas o de nombreuses machines sont tester, nous pouvons
utiliser un scanner de vulnrabilits (comme Nessus). Il s'agit d'un
logiciel qui automatise la dcouverte de vulnrabilits. Celles-ci
sont maintenues au sein d'une base qui peut tre mise jour
on-line. Ce type d'application est trs utile mais a ses limites. En
effet, un tel scanner peut remonter de fausses alertes ou,
l'inverse, ne pas dtecter certaines vulnrabilits. Il pourra,
nanmoins, complter notre liste de failles qui nous sert dans la
dernire tape.
L'exploitation des vulnrabilits
Ces failles sont exploites en utilisant des outils disponibles
sur Internet ou dvelopps pour l'occasion (en C ou en Perl la plupart
du temps). Cette dernire phase pourra aboutir la compromission
d'une machine. L'exploitation est trs spcifique et dpend videmment
des vulnrabilits dcouvertes.
Conclusion
Cet article s'est focalis sur la recherche d'informations sur la
cible dans l'objectif d'un test d'intrusion externe (via
Internet). Cette phase d'approche est sensiblement la mme chaque
test contrairement l'attaque en elle-mme. En ce qui concerne les
tests d'intrusion internes, la mthodologie reste identique mais le
nombre de vulnrabilits est souvent plus important et les techniques
d'attaque plus nombreuses.
Eric Detoisien -
ede@global-secure.fr
Frdric Raynal -
pappy@miscmag.com
|