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 :

  1. phase d'approche : rcupration d'informations sur le rseau cible ;
  2. phase d'analyse : dtermination, l'aide des rsultats obtenus l'tape prcdente, des vulnrabilits potentielles et des outils ncessaires leur exploitation ;
  3. 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 :

  1. les serveurs DNS ayant autorit sur le domaine pigeons.fr ;
  2. les coordonnes des contacts administratifs et techniques lis Pigeon et Cie  ;
  3. 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



frederic.raynal@security-labs.org

Last modified : Tuesday August 6 2002 -- 18:27

 
French  Tous les documents prsents sur ce site sont soumis la GNU Free Documentation License.
 
English  All available documents on these pages are under the GNU Free Documentation License