mercredi 14 avril 2010

[DISCOVERY PHASE] Rock it!

Tout bon test d'intrusion devrait commencer par une phase de découverte. Les tests se déroulent sur des durées très courtes (en général, quelques jours) et le seul moyen de s'imprégner de la cible, c'est d'apprendre à la connaître. Mais voilà, où aller dans le temps imparti ? Il y a certainement des choses à automatiser.


Pourquoi ce post ?

Une phase de découverte est une étape que l'on réalisera systématiquement. Et il y a des tests récurrents et avouons-le, autant cette phase de découverte est importante, autant on a qu'une hâte pendant un "TI" comme disent les habitués, c'est de passer à l'attaque ! Alors je propose ici de donner les pistes pour se constituer un script dédié à la phase de découverte.
Dans le même temps, on donne en fait une synthèse des outils de découverte qui nous sont bien utiles tous les jours :)
NB : En fait, il existe certainement déjà des outils qui font ça. Cependant, je vous propose ici ma version selon mon retour d'expérience.

Et ce post est particulier dans le sens où il est ouvert : vos avis sont les bienvenus (comme toujours d'ailleurs tant qu'ils sont constructifs ;).


Y a quoi au programme ?

1/ Que se passe-t-il en couche 3 ?

On commence ici par analyser les requêtes ICMP. Qu'est ce qui est autorisé ou non ? Du ping aux requêtes TSTAMP en passant par le traceroute ICMP, un bon filtrage de la cible est requis sinon, nous serons en mesure de cartographier la cible. Rien de compliqué ici puisque les outils en question sont bien connus (Ping, Traceroute, Sing, etc.) mais utilisons nous bien les options de ces outils ?

2/ Qui est notre cible ?

Internet recèle souvent des informations très intéressantes sur notre cible. En vrac, nous pouvons citer :
  • les requêtes de type WHOIS (ex : Dmitry) ;
  • les scripts permettant de rechercher des noms/emails d'employés tels que theHarvester ;
  • les scripts permettant de récupérer les documents (malencontreusement ?) égarés sur le Net tels que metagoofil ;
  • A compléter avec les recherches Google : je vous renvoie vers le site de référence à ce sujet, le site de Johnny LONG.

3/ Les requêtes DNS

Très importantes pour trouver de nouvelles machines ou pour mener certaines attaques, ces requêtes devraient être prise en compte. Les outils ne manquent pas, voici ma sélection :

  • dnsenum ;
# perl dnsenum.pl --enum -f dns.txt cible
  • fierce
# perl fierce.pl -dns cible

4/ On passe aux requêtes UDP et TCP

On ne peut pas passer à côté de celui là, je parle du scan de port ! Pour le coup, il existe des tonnes d'outils mais si nous ne devons en citer qu'un seul, c'est bien NMAP (et NASL pour faire plaisir à l'agent M. ;)).

En plus de réaliser un scan TCP et un scan UDP que nous utiliserons avec l'option -oG pour approfondir avec l'outil AMAP. Nous n'oublions pas HTTPRINT pour les services WEB.

Pour compléter, nous pouvons aussi utiliser SinFP qui approche une démarche différente pour fournir des résultats supplémentaires.


5/ Tests sur l'architecture

Les premiers tests permettent de déterminer différents équipements déjà :
  • les routeurs (ex : avec Traceroute) ;
  • les pare-feux (filtrage ICMP / UDP / TCP) ;
  • les serveurs DNS (requêtes DNS paramètre NS) ;
  • les serveurs de messagerie (requêtes DNS paramètre MX) ;
  • présence d'autres machines (e. g. requêtes DNS) ;
  • découverte des services présents (e g. scan TCP et UDP) ;
  • etc.

A cela, nous pouvons ajouter la découverte d'autres équipements comme les load-balancers (ex : avec le script lbd.sh) ;


6/ Tests WEB

De nouveau, voici une petite sélection pour mieux comprendre l'application WEB :
  • Trouver de nouveaux répertoires et nouvelles pages (ex : list-urls.py) ;
  • Vérifier la sécurité des communications SSL si implémenté (e. g. commandes openssl) ;
  • Vérifier les méthodes autorisées (ex : metoscan) ;
  • Etc.

Nous pouvons compléter avec des classiques comme Nikto mais personnellement, je préfère Wikto qui permet de faire pas mal de choses. Bon, il est un peu violent quand même ;)

Voilà un ensemble de tests qui devraient nous permettre de récupérer pas mal d'information sur notre cible. Après, comme toujours, il faut savoir s'adapter.
Je crois que nous sommes prêts pour passer aux choses sérieuses !!!

Have fun!

Aucun commentaire:

Locations of visitors to this page