Backtrack 101-3-nmap + nse


La série Backtrack 101 a pour objectif de faire découvrir aux débutants plusieurs outils distribués avec Backtrack Linux. Ainsi, en suivant ces articles, un débutant peut participer aux jeux du hackfest et commencer son apprentissage des techniques de test de pénétration.


Dans ce premier article, nous allons parler d'un outil bien connu nommé nmap. Nous parlerons aussi de certaines fonctionnalités plus avancées et moins connues disponibles avec nmap soit nse.

Site officiel du projet: http://nmap.org/

Synopsie:


L'outil nmap est ce que l'on appelle un scanner de ports. Un tel outil permet d'apprendre plusieurs informations sur une cible potentiel. Il va de soit que nmap est généralement utilisé avant une attaque dans le but de faire une reconnaissance de la cible potentielle. Il est cependant important de noter que cet outil possède plusieurs fonctionnalités moins connues et pourtant très utiles!

Comment est-ce que ça fonctionne?


L'idée générale d'un scanner est de tenter de communiquer avec un port sur une cible. Selon la réponse obtenue de la cible, le scanner sera en mesure de détecter l'état des ports sur l'ordinateur distant. La personne ayant initié le scanner sera donc en mesure d'obtenir de l'information au sujet des services fonctionnant sur la cible.

Les bases


Un scan avec nmap peut être très simple... Mais aussi très compliqué. Nous allons commencer avec le scan par défaut à l'aide de la commande:

root@bt/# nmap 192.168.1.1

Voici le résultat de l'exécution de cette commande dans mon environnement de test:

Suite à l'exécution du scan, il est possible d'apprendre que les ports 22, 53, 80 et 111 sont ouvert sur cette machine. Par contre, il est important de savoir que le service identifié dans la section à ce nom peut ne pas être le bon. Effectivement, le service est identifié en utilisant les numéros de ports connus. Pour obtenir plus d'informations sur les services, il serait possible d'utiliser la commande:

root@bt/# nmap -sV 192.168.1.1

L'exécution de cette commande est un peu plus lente, mais tel que le montre l'image suivante, les informations obtenues sont des plus intéressantes!

Lors d'un scan avec l'option -sV, nmap se branchera aux différents services pour comparer les réponses fournies par ces services avec les informations présentes dans la base de données de l'application. Cela permet donc à l'outil de déterminer avec un niveau de précision parfois choquant les services et leur version, fonctionnant sur un port donné. L'utilisation de l'option -sV permet, entre autre, d'apprendre la vraie nature d'un service fonctionnant sur un port non standard, configuration habituelle pour ssh tel que montré par la figure ci-dessous qui montre la découverte d'un service ssh sur le port 443:

En regardant le résultat, on peut aussi avoir une bonne idée du système d'exploitation fonctionnant sur la cible. Cependant, on peut utiliser l'option -A qui permet d'activier les fonctionnalités de détection de système d'exploitation tout en activant les fonctionnalités de détection des informations sur les services. Voici ce à quoi ressemble un scan effectué avec l'option -A dans mon environnement de tests:

On peut y apprendre que le système d'exploitation devrait être Linux avec un kernel entre 2.6.32 à 2.6.35 ce qui correspond définitivement aux informations données par la commande uname -a sur le serveur de test tel que le montre la figure suivante:

La seule ombre au tableau pour ces méthodes de scan est la présence d'IDS et d'IPS sur un réseau qui détectera très facillement qu'un scan est en cours. Ainsi, dans l'éventualité où un analyste compétent analyse vraiment les informations fournies par les sondes de détection d'intrusion, un éventuel pirate pourrait se faire prendre s'il utilisait ces options.

Évasion d'IDS et d'IPS


Beaucoup de mauvaises informations circulent sur Internet au sujet de l'évasion d'IDS et d'IPS lors d'un scan réseau. Premièrement, je tiens à éliminer deux légendes urbaines:

1- Un scan lent ne sera pas détecté (option -T0)

Ceci est faux, la détection sera simplement faite sur une plus longue période de temps. Utiliser cette méthode pour ne pas être détecter reviens à traverser la rue sans prendre garde à la présence des voitures. Bref, on s'en remet à l'expérience de l'analyste dont le travail est d'analyser les informations de détection d'intrusion.

2- Il est possible d'arriver à une évasion efficace à 100%

Ceci est aussi faux. Si vous y arrivez, soit la configuration de votre systèmes IDS/IPS n'est pas correcte, soit la personne assise à la console n'est pas suffisament expérimentée ou ne fait pas suffisament de surveillance.

Je n'ai pas essayé l'ensemble des options d'évasion des systèmes IDS/IPS présentes dans l'outil nmap. Par contre, mes observations personnelles m'apportent à croire que, de manière générale, le meilleur choix possible pour se dissimuler à un tel système est d'utiliser l'option -f disponible dans nmap. La commande pourrait être utilisée avec un scan normal par exemple:

root@bt/# nmap -f 192.168.1.1

L'option pourrait aussi être utilisée dans un scan incluant les options de détection de services. L'option -f activera la fragmentation des paquets envoyés à la cible. Cette fragmentation rendra beaucoup plus difficile l'analyse de ces paquet par une sonde de détection d'intrusion. Selon mes expérimentations personnelles, c'est l'option de nmap qui soulevera le moins d'alertes, et surtout le moins d'alertes parlantes pour un analyste sans expérience, sur une console de détection d'intrusion. Il demeurera néanmoins toujours possible pour une personne compétente de détecter qu'un scan a eu lieu sur le réseau.

Utilisation de scripts avec NSE


Une fonctionnalité beaucoup moins connue de l'outil nmap est la possibilité d'utiliser le Nmap Script Engine. NSE permet aux utilisateurs de l'outil d'avoir accès aux fonctionnalités "core" d'nmap dans le but de produire des tests personnalisés. Cela a l'avantage de permettre une personnalisation complète de ces tests. Plusieurs scripts déjà écrits sont disponibles avec la distribution Backtrack. Ces scripts sont à l'emplacement:

/usr/local/share/nmap/scripts

Une visite dans ce répertoire permet de se rendre compte de la multitute de scripts disponible avec Backtrack. Pour les besoins de la démonstration, nous utiliserons le script http-methods.nse. Pour savoir exactement ce que fait un script et comment l'utiliser, il suffit de l'ouvrir et de lire la documentation du script choisi. Dans le cas actuel, il est possible d'apprendre que ce script permet d'apprendre quelles sont les méthodes HTTP supportées par un serveur tel que le montre la figure:

Ainsi, pour lancer l'exécution de ce script, il suffirait de lancer la commande:

root@bt/# nmap --script=http-methods.nse --script-args http-methods.retest=1 192.168.1.1

Suite à l'exécution du script, voici le résultat dans notre environnement de test:

On peut donc voir que les méthodes HTTP GET, HEAD, POST et OPTIONS sont activées sur le système cible. Ceci n'est qu'un seul script, vous devriez prendre le temps de regarder les différents scripts présents dans le dossier des scripts dans le but de connaître les différentes possibilités des scripts déjà présents sur Backtrack

Mot de la fin


Ainsi, tel qu'on a été en mesure de l'observer, nmap peut, lorsque bien maîtrisé, devenir un outil important, pour tout ceux qui font des tests d'intrusions. Cependant, sa maîtrise demande un certain apprentissage sans lequel son utilisation est limitée. Il est aussi important de noter qu'il est possible pour un utilisateur d'écrire lui-même ses scripts à utiliser avec NSE. L'écriture de script pour NSE fera l'objet d'un autre article.

Vous avez aimez cet article?


Vous aimeriez lire un article sur un outil qui ne vous est pas famillier? Laissez simplement le nom de l'outil en commentaire, s'il est disponible dans Backtrack, un article sera écrit sur l'outil en question.

La série Backtrack 101 a pour objectif de faire découvrir aux débutants plusieurs outils distribués avec Backtrack Linux. Ainsi, en suivant ces articles, un débutant peut facillement participer aux jeux du hackfest et commencer son apprentissage des techniques de test de pénétration.