48 0 2MB
Securinets
Software Freedom Day 2011
NMAP
SECURINETS
Club de la sécurité informatique INSAT
NMAP : NETWORK MAPPER
Securinets
Software Freedom Day 2011
NMAP
1) Introduction : Nmap est un scanner de ports open source créé par Fyodor et distribué par Insecure.org. Il est conçu pour détecter les ports ouverts, identifier les services hébergés et obtenir des informations sur le système d’exploitation d’un ordinateur distant. Ce logiciel est devenu une référence pour les administrateurs réseaux car l’audit des résultats de Nmap fournit des indications sur la sécurité d’un réseau. Il est disponible sous Windows, Mac OS X, Linux, BSD et Solaris 2) Découvrons Nmap et Zenmap : i.
Nmap :
* Outil open source * Disponible sous Windows, Mac OS X, Linux, BSD et Solaris * But: exploration réseau et audit de sécurité * Cibles: grands réseau ou aussi cible unique * Objectif: déterminer: - Les hôtes actifs sur le réseau, - Les services (nom de l’application et la version), - Les systèmes d’exploitation et leurs versions, - Les types de dispositifs de filtrage / Pare-feux, … *Résultat de retour: Table des ports, les services qui leurs correspondent et leurs états ( open, closed, filtred, unfiltred) , l’adresse MAC etc...
Les six états de port reconnus par Nmap -Ouvert (open) Une application accepte des connexions TCP ou des paquets UDP sur ce port. Trouver de tels ports est souvent le but principal du scan de ports. Les gens soucieux de la sécurité savent pertinemment que chaque port ouvert est un boulevard pour une attaque. -Fermé (closed) Un port fermé est accessible (il reçoit et répond aux paquets émis par Nmap), mais il n'y a pas d'application en écoute.
Securinets
Software Freedom Day 2011
NMAP
-filtré (filtered) Nmap ne peut pas toujours déterminer si un port est ouvert car les dispositifs de filtrage des paquets empêchent les paquets de tests (probes) d'atteindre leur port cible. Le dispositif de filtrage peut être un pare-feu dédié, des règles de routeurs filtrants ou un pare-feu logiciel. Nmap essaie plusieurs fois au cas où les paquets de tests seraient rejetés à cause d'une surcharge du réseau et pas du filtrage. -non-filtré (unfiltered) L'état non-filtré signifie qu'un port est accessible, mais que Nmap est incapable de déterminer s'il est ouvert ou fermé. Seul le scan ACK, qui est utilisé pour déterminer les règles des pare-feux, catégorise les ports dans cet état. Scanner des ports non-filtrés avec un autre type de scan, comme le scan Windows, SYN ou FIN peut aider à savoir si un port est ouvert ou pas. -ouvert|filtré (open|filtered) Nmap met dans cet état les ports dont il est incapable de déterminer l'état entre ouvert et filtré. Ceci arrive pour les types de scans où les ports ouverts ne renvoient pas de réponse. L'absence de réponse peut aussi signifier qu'un dispositif de filtrage des paquets a rejeté le test ou les réponses attendues. Ainsi, Nmap ne peut s'assurer ni que le port est ouvert, ni qu'il est filtré. Les scans UDP, protocole IP, FIN, Null et Xmas catégorisent les ports ainsi. -fermé|filtré (closed|filtered) Cet état est utilisé quand Nmap est incapable de déterminer si un port est fermé ou filtré. Cet état est seulement utilisé par le scan Idle basé sur les identifiants de paquets IP.
* Syntaxe: Nmap [ Types de scans ...] [ Options ] { spécifications des cibles } *Techniques de scan: -sS(Scan TCP SYN) -sT(Scan TCP connect()) -sU(Scan UDP) -sN; -sF; -sX (Scans TCP Null, FIN et Xmas) -sA(Scan TCP ACK) -sW(Scan de fenêtre TCP)
Securinets
Software Freedom Day 2011
NMAP
-sM(Scan TCP Maimon) -sO(Scan du protocole IP) ...
* Remarque: Depuis 2002, Nmap supporte IPv6 pour les fonctionnalités les plus populaires. Cependant, Nmap ne supporte pas (en version 4.20) UDP. De plus, la notation du masque de sous-réseau n'est pas supportée non plus.
ii.
Zenmap
* Fournit une sortie NMAP+ sortie graphique * Le choix d'un type de scan et d'une cible permet de fournir automatiquement la commande NMAP correspondante * Types de scan à choisir: - Intense scan - Intense scan plus UDP - Intense scan,all ports TCP - Intense scan ,no ping - Ping scan - Quick scan - Quick scan plus - Quick traceroute - Regular scan - Slow comprehensive scan
* Zenmap fournit un résumé du scan effectué (détails de l'hôte: Ports ouverts, ports filtrés, ports fermés, ports scannés, temps d'activité, dernier démarrage....) , une topologie,... Son aspect graphique souligne sa simplicité et sa clarté par rapport à NMAP. * Possibilité de sauvegarder les scans effectués
3) Notre atelier :
i.
Installation de nmap : Pour le mode console :
Securinets
Software Freedom Day 2011
NMAP
Sudo apt-get install nmap Pour le mode graphique (Zenmap) : sudo aptitude install build-essential sudo apt-get install libssl-dev mkdir src cd src wget -c http://nmap.org/dist/nmap-5.00.tar.bz2 bzip2 -cd nmap-5.00.tar.bz2 | tar xvf cd nmap-5.00/ ./configure make sudo make install
Puis on consulte Applications > Internet > Zenmap (as root). Si le mode root n’est pas disponible, on accède au zenmap via la commande sudo zenmap.
ii.
Manipulation de Nmap avec le terminal : a. Détection des machines invisibles dans un réseau local
L’outil Nmap nous permet de scanner un réseau local et d’identifier les hôtes actifs même ceux invisible .En faite une machine qui ne veut pas être localisé sur un Lan peut désactiver la réponse aux paquets ICMP (ping). Dans ce cas elle ne peut pas être détectée car elle refuse de répondre aux requêtes ICMP. Nmap est capable de détecter les machines qui ont bloqué les réponses ICMP.
Dans un réseau local on réalise un scan à l’aide de l’outil « fping ».
On remarque que notre réseau contient 4 hôtes.
Securinets
Software Freedom Day 2011
NMAP
Pour bloquer les réponses ICMP chez l'hôte (192.168.1.5) il suffit d’ouvrir le terminal et de lancer la commande suivante. :
Sur la machine de scan on relance un scan à l'aide de « fping », on remarque que la machine (192.168.1.5) n'est plus détectée
On peut souligner ici que la machine (192.168.1.5) n'est ni alive ni unreashable. Fping ne peut pas décider si elle existe ou pas. Maintenant on lance Nmap pour scanner le réseau : on remarque que Nmap a détecté la machine (192.168.1.5) malgré quelle est considérée invisible dans le réseau.
Si on veut que la machine (192.168.1.5) redevienne visible sur le réseau il suffit de taper la commande :
Securinets
Software Freedom Day 2011
b.
NMAP
Les services possibles avec Nmap :
2-1 : scanner un port spécifique : Pour savoir l'état d'un port spécifique sur une machine du réseau, on tape la commande : nmap -v @ip de la machine -p numéro du port -v: Increase verbosity level (use twice or more for greater effect) -p : Only scan specified ports
2-2 : La commande suivante permet de détecter les ports ouverts, et le système d'exploitation. Il faut lancer la commande depuis un compte root. nmap -v -O -sS -F @ip de la machine -v: Increase verbosity level (use twice or more for greater effect) -O: Enable OS detection -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans -F: Fast mode - Scan fewer ports than the default scan
Securinets
Software Freedom Day 2011
2-3 : scanner un site en ligne : nmap -v google.com Cette option analyse tous les ports TCP réservés sur le serveur google.com . Le -v signifie d'activer le mode verbeux.
NMAP
Securinets
iii.
Software Freedom Day 2011
Manipulation de Zenmap :
On a utilisé un vmware qui contient deux machines virtuelles ubuntu : 192.168.1.7 est l’adresse de hôte. 192.168.1.6 est l’adresse de victime. 1/ effectuons un quick scan sur l’adresse locale :
NMAP
Securinets
Software Freedom Day 2011
Résultats : 4 ports sont ouvertes : ssh, http, callbook , squid-http 2/ effectuons un intense scan qui est plus détaillé :
NMAP
Securinets
Software Freedom Day 2011
NMAP
On peut visionner la sortie de Nmap qui est identique au résultat du commande dans un terminal. Sinon Zenmap nous offre de voir le résultat en une structure bien organisée en choisissant « Détails de l’hôte » :
Securinets
Software Freedom Day 2011
NMAP
3/ On effectue Slow comprehensive scan : On observe que le nombre de ports scannés augmente de 1000 à 2000 ports et que non seulement les ports ouverts sont affichés mais aussi les ports filtrés.
On peut voir les ports découverts dans « Ports/hôtes » :
Securinets
Software Freedom Day 2011
NMAP
4/On effectue le scan sur all TCP : On remarque que il y a 65541 ports scannés.
5/ on effectue un intense scan sur la machine victime : Il n’y a que le port http ouvert et l’adresse mac et le système d’exploitation de la machine victime sont détéctés.
Securinets
Software Freedom Day 2011
6/ On peut aussi consulter la topologie du réseau :
NMAP
Securinets
Software Freedom Day 2011
7/ On peut aussi faire la comparaison entre deux scans : Outils>comparer les résultats
8/ On peut aussi créer un nouveau profil (regroupant des types de scans différents) Profil>new profile or command
NMAP
Securinets
Software Freedom Day 2011
NMAP
Remarque: On peut enregistrer les résultats de scan avec Zenmap en suivant scan>sauvegarder le scan et on peut le ré accéder en suivant scan>ouvrir dans une autre fenêtre. Pour enregistrer en ligne de commande on tape : nmap 192.168.1.3 -sU -oN
Et voilà on obtient deux scans enregistrés par cette commande :
Securinets
Software Freedom Day 2011
NMAP
Comportement de Nmap/Zenmap en présence de pare-feu : Nmap est un outil puissant qui peut détecter l’état des ports. Par défaut le firewall est désactivé et les ports sont ouverts donc les applications communiquent sans protection. Voici un scan d’une distribution non protégée :
Securinets
Software Freedom Day 2011
NMAP
Les ports sont ouverts donc Nmap peut recueillir toutes les informations sur l’application qui est en écoute sur ce port. Par exemple le nom de l’application « Apache http d » ainsi que la version 2.2.9 se qui aide a localiser les failles dans le système.
Par contre si on active le firewall par défaut de linux : iptables le résultat du scan va changer et les risques d’attaques vont diminuer : Si on bloque le trafic entrant de APACHE ( les connexions de l’extérieur ) on utilise la commande Iptables –A INPUT –p tcp -dport 80 –j REJECT On obtient un résultat de scan différent
On remet le firewall à zéro avec la commande : Iptables –F Et si on essaye d’interdire le trafic sortant de Openssh par exemple al aide de la commande Iptables –A OUTPUT –p tcp -dport 22 –j REJECT
Securinets
Software Freedom Day 2011
NMAP
et on laisse le trafic d’apache normal on obtient
Les deux ports sont ouverts. Nmap les détecte et peut avoir les informations comme si le firewall n’est pas là. Une bonne solution pour se protéger des scans est d’installer un bon firewall avec une gestion facile tel que firestarter qui peut tout bloquer et interdire tout :
Securinets
Software Freedom Day 2011
NMAP
Le firewall bloque tout
Conclusion : Nmap reste le meilleur outil open source pour un pentester ou même une simple personne qui veut explorer son réseau local pour connaitre son environnement a savoir les machines de ce réseau et tout les informations utiles sur ces machines commençant par leurs adresses ip jusqu'à leurs ports ouverts , services et même système d’exploitation .