Les pen tests

De SeRoM - Wiki
Aller à : navigation, rechercher


Introduction

le principe d'une attaque informatique commence a etre bien connu : il s'agit, pour le pirate de penetrer un systeme d'information en exploitant des erreurs de configuration, des vulnerabilité, ou encore par social engineering.


En cas de succes (prise de controle totale) , le pirate sera en mesure de :

  • consulter, falsifier des données confidentiel
  • d'installer des programmes lui permettant de revenir plus tard de maniere furtive et plus imple que lors de la premier intrusion
  • d'attaquer d'autre machine depuis les machines compromise
  • porter atteinte a la reputation de l'organisation attaquée ...

les test d'intrusion confrontent les systemes d'informations à des attaques identiques à celles menée par les pirates informatique, une evaluation du niveau de sécurité est ainsi réalisée et des solutions corrective sont proposée.

Les tests d'intrusions sont une demarche iterative comportant generalment les phases suivantes :

  1. recueil d'information sur la cible
  2. Detection des systemes et services, cartographie
  3. recherche et exploitation de vulnérabilités réseaux
  4. recherche et exploitation de vulnérabilités systemes
  5. recherche et exploitation de vulnérabilités applicatives
  6. progression

a l'issue de la derniere phase on reboucle sur la phase2 autant de fois que necessaire lorsque des nouveau systemes ont ete detecté, lorsqu il est possible de faire des rebond de plus en plus profond.

ce qui distingue les tests d'intrusion d'une attaque reels :

  • il n'y a pas de phase d'implementation de charge utiles : cheval de troie, rootkit, ...
  • on ne perturbe pas le fonctionnement de la cible (sauf si accord du client) : pas de deni de service sans prevenir meme si c'est pour faciliter une autre attaque
  • pas de modification de de donnée sur la cible (effacement de log, etc) un simple recueil de preuve pour la redaction est effectué.

Test d'intrusion externe

Receuil d'information sur la cible

en général le client fourni une liste d'adresse ip à tester, aux tester de trouver les informations supplémentaires pour effectuer leur test.

Les Bases WHOIS

base repertoriant tous les sous reseaux et leur propriétaire respectif, permet dans un premier temps, de verifier que les adresse ip corresponde bien aux clients. la recherche dans les base whois sont totalment furtive du point de vue de la cible (aucune requete directe vers la cible n'est effectuée ).

exemple d'info que l'on peut obtenir :

WHOIS mobistar

  Domain:      mobistar
  Status:      REGISTERED
  Registered:  Thu Jun 20 1996
  Licensee:
  Not shown, please visit www.dns.be for webbased whois.
  Agent Technical Contacts:
  First Name:    DNS
  Last Name:     Master
  Company Name:  Mobistar
  Language:      en
  Street:        rue Colonel Bourg, 149
  Location:      1140 Evere
  Country:       Belgium
  Phone:         +32.27459207
  Fax:           +32.27459461
  Email:         dnsmaster@mail.mobistar.be
  Agent:
  Name:      MOBISTAR SA
  Website:   http://www.mobistar.be
  Nameservers:
  dns1.mobistar.be (212.65.63.10)
  dns2.mobistar.be (212.65.63.145)
  ns.global-ip.net


cela permet entre autre de recuperer les adresse des serveurs dns du domaine, ce qui va permettre de passer a l'étape suivante.

Les bases DNS

Si les dns identifiées sont mutualisé, nous pouvons faire des requetes sur ceux ci en deumeurant encore relativement furtif du point de vue de la cible. si les serveur dns sont heberger chez le client, on recupere quelque fois certain enregistrement de l'adressage interne. l'ideal etant de recuperer l'intégralité des enregistrement DNS concernant le domaine (exemple yoopi.com), en effectuant un transfer de zone AXFR

host -l yoopi.com ns0.pistolet.net
yoopi.com mail is handled by 10 hermes.yooopi.com

la requete ci dessus a permis d'identifier hermes comme server de messagerie.

tous les server enregistrer seront ainsi reveler : server mail, ftp, web, ...

cependant le transfer de zone est rarement autorisé vu le nombre d'information qu'il revele. si le transfer de zone ne marche pas esseyons de recuperer certain enregistrement en specifiant des types de servers, par exemple :

 host -t MX yoopi.com ns0.pistolet.net


il existe un outils : dnsdigger, permettant d'automatiser cela en partant d'un dictionnaire de nom courant.


Les moteurs de recherche

Les moteurs de recherche permettent d'obtenir beaucoup d'information sur une cible : nom de certain client, nom d'employé, ...

  • recherche sur google
  • recherche sur le site de la cible
  • recheche dans des newsgroup (à partir d'email de la cible)

tous cela peux fournir des informations utiles en cas de social engineering.

Détection des systèmes et cartographie

a partir de ce stade, nous ne somme plus furtif car nous allons effectuer des requetes directement sur les systemes cible.

Routage

pour determiner les machines située entre les servers cible et nous meme, nous allons etudier le routage des paquets, pour cela nous allons utilisé l'utilitaire :

 traceroute

il existe different type de traceroute : celui d'unix est UDP par defaut et celui de windows est ICMP par defaut

lorsqu'une adresse ip repond a un ping, mais que ni un traceroute UDP , ni ICMP ne repondent, il se pourrait qu'il y ai un firewall qui serait placer devant la cible et qui filtre les paquets ...

il faut alors utiliser un traceroute TCP sur un port TCP ouvert. il s'agit de la technique dite du Firewalking

exemple de firewalking :

 hping -S -p 25 192.168.1.23 -t 15

le server, si il a un port SMTP (25) ouvert recevra un paquet SYN, et repondra avec un paquets SYN-ACK (voir article PEN TEST Page 29 du misc 11 pour plus d'info).

en utilisant des technique identiqueet en recoupant des scan, il sera possible d'identifier l'adresse interne du router Internet ainsi que l'adresse du firewall.

Routage SMTP

l'envoi d'un mail à une adresse inexistante du domaine provoque souvent le retour d'un mail d'erreur contenant des informations interessantes dans ses header.

exemple d'information que l'on peux recueillir :

  • si le server est equipper d'un antispam ... ?
  • la version du service smtp permet de decouvrir le programme utilisé (exemple : Exchange 2003 SP3 )
  • le server interne ainsi que son adresse ip ...
  • permet de voir si la passerelle anti virus laisse passé des executable ...


Web bug et server hostile

cette étape ne se fait qu'avec l'accord du client, et consiste à envoyer un message contenant un web bug (une image invisible provquant une connection http vers l'exterieure par exemple) ou une piece attaché hostile, et/ou à lui demander de se connecter à un server hostile preparer dans ce but et generalment heberger chez le tester.

cela va permettre de recueillir d'avantage d'information (notamment l'adresse de son proxy HTTP)

Exploitation des en-tete

en effectuant certaines requetes http sur les servers web, par exemple, il est possible de provoquer le renvoie de certaine requetes HTTP . Ces requetes peuvent parfois reveler le nom de machine ou l'adresse interne de server web. (ce qui nous sera utile par la suite pour notre plan d adressage et pour lancer des attaque ultérieurement.


Le PortScan

C'est la méthode de découverte la moin discrete mais la plu indispensable. elle consiste a balayer la cible pour voire quel port sont ouvert pour chaque protocole supporté sur les machines. voir L'art du portscan.

nous utiliseront le plus souvent pour commencer, le SYN Scan (consiste a envoyer un syn sans jamais envoyer d'ack ) car il est relativement furtif, et ne laisse pas de trace dans les logs contrairement au connect scan qui etablit une connection TCP complète.

 nmap -vv -sS -sV -P0 -p  1-65535 -oN nmap-tcpscan-result.txt 192.168.1.1 

permet de faire un syn scan sur tous les port de la victime, et ensuite esseyer de determiner le service et l'info/version des port ouvert, et de placer le resultat dans un fichier txt.

en scannant les differentes adresse trouvé, nous allons finir par detecter les server mail et web , ...

identification des systemes

nmap possede 2 option, une documenté : -O et une autre non documenté : -osscan_guess, permettant d'effectuer une identification de l'os par fingerprinting

exemple rajoutons cela :


 nmap -vv -sS -sV -P0 -O -osscan_guess -p  1-65535 -oN nmap-tcpscan-result.txt 192.168.1.1 

permettra meme de reconnaitre des appareille de type router cisco + version d'IOS, ...

autre outils de fingerprinting : Xprobe ike-scan (permetront d'identifier les firewall + version, ...

il est maintenant temps d'effectuer un petit plan d'adressage (schema) pour y voir plus clair et de passer a la suite (sauf si vous faite partie de la NSA ou du MOSAD et qui vous utilisé votre 0-DAY personel pour eclater le firewall :D .

Recherche et exploitation de vulnérabilité Réseau

Règles de filtrage

Il est important d'identifier les règle de filtrage configurée sur le router et sur le firewall afin d'esseyer de les outrepasser. Le resultat des scan du router et du firewall ainsi que des machine située derriere, indique quel port sont filtré ou non, il est possible d en deduire les regles de filtrage.

utilitaire : nmap en TCP et UDP

pour ce qui est dess port UDP il faudra parfois complèter ces scan par des test manuel complementaire (envoie de packet UDP applicatif pour provoquer une reponse) .

effectuer une synthese des regles presumée .

Tentative d'outrepassement des equipements de filtrage

a ce stade il est necessaire de prevenir immédiatement le client des faille critiques decouverte. il y a eu beaucoup de technique pour outrepasser les firewall, mais actuelment il devient extremement difficile d'outrepasser un bon firewall ...

voici des exemple de technique qui ont pu permettre d'en outrepasser dans le passé .

  • connection avec des port source connu (HTTP,DNS,...)
  • attaque dns : dns spoofing, dns poisoning,...
  • utilisation d'option tcp non standar (flag SYN-FIN)
  • ip spoofing
  • Fragmentation de packet ( tiny fragments, fragment overlapping)
  • TCP session hijacking
  • ARP spoofing

toute ces technique conserve leur interet une fois le firewall franchi car elle sont extremement puissante sur un LAN, il est donc interessant de les connaitre.

une autre methode pour explorer le reseau interne est l'utilisation de proxie applicatif mal configurée, exemmple : si le proxy HTTP sortant du client accepte les connection exterieure vous pouvez vous connecter sur celui ci et effectuer des requete vers des serveur interne.

Recherche et exploitation de vulnerabilité systeme

nous incluons egalment ici, certain service reseau de bas niveau et les protocol courant d'internet : SMTP, POP3, HTTP, SSL, SSH, etc).

une fois l'identification des services sur les systeme cible (y compris la version et le niveau de patch exact), il est possible de determiner quelle sont les vulnerabilité potentiels dont ils risque de souvrir.

il est aussi possible d'utiliser des scanner de vulnerabilité tel que nessus . qui pourra permettre de donner un tour d'horizon et completer notre liste de vulnerabilité au cas ou on en n'aurait oublier.

Les vulnerabilité systeme proviennent tout d'abord d'erreur de programmation. depuis ces dernieres année, 3 grandes famille de vulnerabilité de ce type ont ete decouverte :

  1. Les buffer overflow (stack overflow)
  2. Les format string
  3. les heap overflow (malloc() et double free())

la recupération de exploits relatif aux vulnérabilités détectées sur la cible peut se faire par des moyens différents :

  • Lecture des avertissement de securité : CERT, CVE, BID, ... ces publications explique la nature des vulnérabilités, il faut alors reconstruire l exploit sois meme.
  • suivi des listes de diffusions, newsgroups, channel irc securité, ... permette souvent d'obtenir de precieux renseignement.
  • analyse des correctifs : permet d'en deduire l'original...
  • Recherche personnel : attention, la plupart des bufferoberflow provoque un deni de service (DOS) du service visé, voire de l'os dans sont ensemble..., si le shell code n'a pas l'effet desirer (il vaut donc mieux prevenir le client avant l'exploitation de ce genre de faille.

une fois que l'attaquant a obtenu un shell sur le server, il pourra upploader ses outils afin d'elever ses droits pour passer root et prendre le controle total du server.

pour finir il reste les attaque de force brute sur les service tel que telnet, SSH, HTTP, SNMP, ... en cas de mot de passe trop faible ou contenu dans un dictionnaire, cela peut permettre de prendre le controle de service ou du server dans son ensemble ... .

Recherche et exploitation de vulnerabilité applicative

ce sont les vulnérabilité les plus exploitée ( il est plus rare de tomber sur de grosse vulnérabilité réseau ... et les vulnerabilité systeme sont moin nombreuse elles aussi, et souvent vite corriger)

raison : les service qui tourne, ont souvent été dévelopé par des gens interne a l'entreprise, qui n'ont souvent aucune formation au dévelopment sécurisé et ne s'imagine pas a quel point il est facile d'utilisé leur code pour faire faire a leur application, une tache qui n'etait pas prevue.

exemple : le cas d'une application web : dans ce cas, l'attaquant peut à priori envoyer tous ce qu'il veut au server web sur les port HTTP et/ou HTTPS . (contrairement aux idée recue , SSL ne suffit pas a proteger une application web, le chiffrement SSL (sans utilisation de certificat, ) ne concerne que la confidentialité mais ne protege pas des intrusion)

l'outils Whisker effectue une recherche, des repertoire et fichier existant sur le server web, a l'aide d'une base de connaissance. exemple : il trouvera les repertoire suivant : /include, /lib, /manual, /php, /cgi-bin ...

on remarque par exemple, qu'ici il y a un repertoire /php , il semble que php soit installer en tant que CGI sur le server, grave erreur, cela permet de fournir n'importe quel chemin de fichier sur le serveur PHP qui va en afficher le contenu !

de plus il est possible d'executer des commande sur le serveur. à l'aide de ces 2 possibilité, il est possible de recuperer la base de donnée contenant les compte utilisateur de l'application et aussi le compte admin ... Il nous suffit alors de nous connecter à l'url /admin pour avoir le controle total de l'application ... game over


Progression

une fois le controle d'un equipement obtenu, le but du tester est de rebondir vers un autre equipement afin de progresser dans la DMZ voir dnas le reseau du client...


Test d'intrusion interne sous windows

en construction

Test sur les infrastructure telecom

en construction

Test de penetration automatisé

Nessus