Les pages MAN de nmap
Par Charles-Christian Croix le lundi, octobre 4 2004, 12:52 - Technologic - Lien permanent
NOM
nmap - Outil d'exploration réseau et analyseur de sécurité
SYNOPSIS
nmap [Type(s) de scan] [Options]
DESCRIPTION
Nmap a été conçu pour que les administrateurs systèmes et les curieux puissent analyser de grands réseaux pour déterminer les hôtes actifs et les services offerts. nmap supporte un grand nombre de techniques d'analyse : UDP, TCP connect(), TCP SYN (mi ouvert), ftp proxy (attaque par rebond), Reverse-ident, ICMP (balayage de ping), FIN, bal ayage de ACK, Xmas Tree, balayage de SYN, Protocoles IP, et Null scan. Voir la section Types de scans pour plus de détails. Nmap offre également des caractéristiques avancées comme la détection du système d'exploitation dis tant via l'empreinte TCP/IP, l'analyse furtive, le délai dynamique et les calculs de retransmission, l'analyse par allèle, détection de hôtes inactifs via des pings par allèles, l'analyse avec leurres, la détection des ports filtrés, analyse directe (sans portmapper) des RCP, l'analyse avec fragmentation, et une notation puissante pour désigner les hôtes et les ports.
Des efforts significatifs ont été consacrés pour que nmap soit utilisable par des utilisateurs non-root. Mal heureusement, la plupart des interfaces noyaux critiques (comme les raw sockets) requièrent les privilèges root. Nmap devrait donc être lancé en tant que root autant que possible (mais pas en setuid root, évidemment).
Le résultat de l'exécution de nmap est habituellement une liste de ports intéressants sur les machines analysées. Nmap donne pour chaque port le nom du service, le numéro, l'état et le protocole. L'état peut être « open », « fil tered » ou « unfiltered ». « Open » signifie que la machine cible accepte les connexions sur ce port. « Fil tered » signifie qu'un pare-feu, un filtre ou un autre obstacle réseau protège le port et empêche nmap de détecter si le port est ouvert. « Unfiltered » signifie que le port est fermé et qu'aucun pare-feu n'a interféré avec nmap. Les ports « Unfiltered » sont les plus courants et ne sont affichés que lorsque la majorité des ports analysés sont dans l'état « filtered ».
En fonction des options utilisées, nmap peut aussi rap porter les caractéristiques suivantes du système d'exploitation distant : type de système d'exploitation, séquencement TCP, noms des utilisateurs qui ont lancé les programmes qui écoutent sur chaque port, le nom DNS, et d'autres choses encore.
OPTIONS
Les options ayant du sens ensemble peuvent généralement être combinées. Certaines options sont spécifiques à cer tains modes d'analyses. nmap essaye de détecter et de prévenir l'utilisateur en cas de combinaisons d'options démentes ou non supportées.
Si vous êtes impatient, vous pouvez passer directement à la section des exemples à la fin, qui illustre l'usage courant. Vous pouvez aussi lancer nmap -h pour un bref rappel de toutes les options.
TYPES DE SCANS
-sS TCP SYN scan : Cette technique est souvent appelée scan « mi ouvert », parce qu'on ouvre une connexion TCP incomplète. On envoie un paquet SYN, comme pour une véritable ouverture de connexion et on attend une réponse. Un SYN ou ACK indique que le port est sous écoute, en revanche un RST signifie que personne n'écoute sur ce port. Si un SYN ou ACK est reçu, un RST est immédiatement envoyé pour interrompre la connexion. Le principal avantage de cette technique est que peu de sites l'archiveront. dans leurs logs. Malheureusement vous avez besoin des privilèges root pour construire ces paquets SYN sur mesure. C'est le scan par défaut pour les util isateurs qui ont les privilèges root.
-sT TCP connect() scan : C'est la forme la plus simple de scan TCP. L'appel système connect() fournit par votre système d'exploitation est utilisé pour ouvrir une connexion sur tous les ports intéressants de la cible. Si le port est sur écoute, connect() réussira, sinon le port est injoignable. Le principal avantage de cette tech nique est qu'elle ne nécessite pas de privilèges particuliers. Presque tous les utilisateurs de toutes les machines Unix sont libres d'utiliser cet appel système.
Ce type de scan est facilement détectable par l'hôte cible puisque les logs de la cible mon treront un ensemble de connexions et de messages d'erreurs pour les services qui ont accepté la con nexion qui a été immédiatement coupée. C'est le scan par défaut pour les utilisateurs normaux (non root).
-sF -sX -sN Stealth FIN, Xmas Tree, ou Null scan modes : Par fois même un SYN scan n'est pas suffisamment dis cret. Certains pare-feux et filtreurs de paquets regardent les SYNs vers les ports interdits, et des programmes comme Synlogger et Courtney peuvent détecter ces scans. En revanche, ces scans avancés devrait pourvoir passer sans problèmes.
L'idée est qu'un port fermé est requis pour répon dre au paquet de test par un RST, alors que les ports ouverts doivent ignorer les paquets en ques tion (voir RFC 793 pp 64). Le FIN scan utilise un paquet FIN nu comme testeur, alors que le scan Xmas tree active les drapeaux URG et PUSH du paquet FIN. Le scan Null, désactive tous les drapeaux. Mal heureusement Microsoft (comme d'habitude) a décidé d'ignorer complètement le standard et de faire les choses à sa façon. C'est pourquoi ce type de scan ne fonctionne pas contre les systèmes sous Win dows95/NT. Le côté positif est que c'est un bon moyen de distinguer deux plates-formes. Si le scan trouve des ports ouverts, vous savez que la machine cible n'est pas sous Windows. Si un -sF,-sX, ou -sN scan montre tous les ports fermés, et qu'un scan SYN (-sS) montre tous les ports ouverts, la machine cible fonctionne probablement sous Windows. Ceci est moins utile depuis que nmap a son propre détecteur de système d'exploitation intégré. D'autres systèmes ont le même problème que Win dows : Cisco, BSDI, HP/UX, MVS, et IRIX. La plu part envoient des resets depuis les ports ouverts au lieu d'ignorer le paquet.
-sP Ping scanning : Parfois vous voulez juste savoir quels sont les hôtes actifs d'un réseau. Nmap peut le faire pour vous en envoyant des paquets d'écho ICMP à chaque adresse IP du réseau spécifié. Les hôtes qui répondent sont actifs. Malheureusement, certains sites comme microsoft.com, bloquent les paquets d'écho. Toutefois nmap peut aussi envoyer un paquet TCP ack au port 80 (par défaut). Si vous recevez un RST en retour, la machine est active. Une troisième technique consiste à envoyer un paquet SYN et d'attendre un RST ou un SYN/ACK. Pour les utilisateurs non-root, la méthode con nect() est utilisée.
Par défaut (pour les utilisateurs root), nmap utilise la technique ICMP et ACK en parallèle. Vous pouvez changer l'option -P décrite plus tard.
Remarquez que le ping est fait par défaut de toutes façons et seuls les hôtes qui répondent sont analysés. N'utilisez cette option que si vous voulez faire un balayage de ping sans faire d'anal yse de ports.
-sU UDP scans : Cette méthode est utilisée pour déter miner les ports UDP (User Datagram Protocol, RFC 768) qui sont ouverts sur l'hôte Cette technique consiste à envoyer un paquet udp de 0 octet à chaque port de la machine cible. Si on reçoit un message ICMP « port unreachable », alors le port est fermé. Autrement nous supposons qu'il est ouvert.
Certaines personne pensent que l'analyse UDP est inutile. J'ai pour habitude de leur rappeler le trou récent dans rcpbind sous Solaris. Rpcbind peut dissimuler un port UDP non documenté quelque part au dessus de 32 770. Comme découvrir un tel port sans scanner UDP ? Il y a aussi le programme cDc Back Orifice backdoor qui cache un port UDP configurable sur les machines Windows. Sans même mentionner tous les services courants qui utilisent UDP tels que snmp, tftp, NFS, etc.
Malheureusement l'analyse UDP peut être partic ulièrement longue puisque la plupart des hôtes implémente une suggestion de la RFC 1812 (section 4.3.2.8) pour limiter le débit des messages d'erreurs ICMP. Par exemple, le noyau Linux (dans net/ipv4/icmp.h) limite la génération de message « destination unreachable » à 80 pour 4 secondes, avec une pénalité de 1/4 secondes si ce nombre est dépassé. Solaris a des limites encore plus strictes (à peu près 2 messages par seconde) et l'analyse nécessite encore plus de temps. Nmap détecte cette limite de débit et ralentit plutôt que d'inonder inutilement le réseau avec des paquets qui seront ignorés par la machine cible.
Comme d'habitude, Microsoft a ignoré la suggestion RFC et n'a pas implémenté de limitation de taux dans les machines Win95 et NT. C'est pourquoi nous pouvons analyser les 65K ports d'une machine Win dows très rapidement. Wahoo !
-sO IP protocol scans : Cette méthode est utilisée pour déterminer les protocoles IP supportés par l'hôte. La technique consiste à envoyer des paquets IP bruts sans entête de protocole à chaque protocole spécifié sur la machine cible. Si nous recevons un message ICMP « protocol unreachable », alors le protocole n'est pas utilisé. Autrement nous sup posons qu'il est ouvert. Remarquez que certains hôtes (AIX, HP-UX, Digital UNIX) et les pare-feux peuvent ne pas renvoyer les messages « protocol unreachable », faisant apparaître ouverts tous les protocoles.
Comme cette technique est très similaire à l'anal yse des ports UDP, la limitation du débit ICMP peut aussi apparaître. Mais comme le champ protocole d'IP n'a que 8 bits, il y a au plus 256 protocoles, donc la durée restera raisonnable.
-sI
En plus d'être extraordinairement furtive (grâce à sa nature aveugle), ce scan permet de s'affranchir des relations de confiance entre machines fondées sur l'IP. La liste de ports montre les ports ouverts tels que les voit l'hôte zombie. Aussi, vous pouvez essayer de scanner une cible en utilisant différents zombies à qui elle fait confiance (via les règles de filtrage des rou teurs/paquets). Évidemment cette information est cruciale pour orienter l'attaque. Autrement votre test de pénétration va consommer des ressources considérables appartenant au système intermédiaire, pour s'apercevoir en fin de compte qu'il n'y a pas de relation de confiance entre l'hôte cible et l'IP de la machine zombie.
Vous pouvez ajouter un deux-point suivi par le numéro de port si vous voulez tester un port parti culier sur l'hôte zombie pour les changement IPID. Autrement Nmap utilisera le port qu'il utilise par défaut pour les pings TCP.
-sA ACK scan : C'est une technique avancée qui est utilisé pour découvrir les règles des pare-feux et pour savoir si on a affaire à un pare-feu ou un simple filtreur de paquets qui bloquent les paquets SYN entrant.
Ce type d'analyse envoie un paquet ACK (avec un numéro d'acquittement/séquence aléatoire) aux ports spécifiés. Si un RST vient en retour, les ports sont classés comme non filtrés. Si rien ne revient (ou alors un message ICMP « unreachable »), les ports sont classés comme filtrés . Remarquez que nmap n'affiche pas les ports non filtrés. Aussi, si aucun port n'est affiché dans la sortie, c'est souvent un signe que tous les tests ont fonctionné (et retourné RSTs). Ce scan ne montrera évidement jamais de port ouvert.
-sW Window scan : C'est une analyse avancée très simi laire au ACK scan, sauf qu'il peut parfois détecter aussi bien des ports ouverts que filtrés/non filtrés grâce à une anomalie dans la taille de la fenêtre TCP rapportée par certains systèmes. Parmi les systèmes vulnérables se trouvent certaines ver sions de AIX, Amiga, BeOS, BSDI, Cray, Tru64 UNIX, DG/UX, OpenVMS, Digital UNIX, FreeBSD, HP-UX, OS/2, IRIX, MacOS, NetBSD, OpenBSD, OpenStep, QNX, Rhap sody, SunOS 4.X, Ultrix, VAX, et VxWorks. Voir les archives de la liste de diffusion nmap-hackers pour une liste exhaustive.
-sR RPC scan. Cette méthode fonctionne en combinaison avec diverses méthodes d'analyse de port de nmap. Il prend tous les ports TCP/UDP ouverts et les inonde de commandes SunRPC NULL pour déterminer ceux qui sont des ports RPC, et si c'est le cas, le programme et son numéro de version qui les servent. Vous pouvez obtenir la même information que 'rpcinfo -p' même si le portmapper cible est derrière un pare-feu (ou protégé par un wrapper TCP). Les leurres ne fonctionnent pour le moment pas avec les scans RCP, et je dois ajouter le sup port pour les leurres dans les scans UPD RCP.
-sL scan-liste. Cette méthode génère une liste d'IP/nom sans les pinger ou les scanner. La résolution de nom DNS sera réalisée sauf si vous utilisez -n.
-b
L'argument passé à l'option -b est l'hôte que vous voulez utiliser comme proxy, dans la notation URL standard. Le format est : username:pass word@server:port. Tout sauf server est optionnel. Pour déterminer les serveurs qui sont vulnérables à cette attaque, vous pouvez voir mon article dans Phrack 51. Une version mise à jour est disponible à l'URL http://www.insecure.org/nmap.
OPTIONS GÉNÉRALES Aucune n'est nécessaire, mais certaines peuvent être très utiles.
-P0 Ne pas essayer de ping sur les hôtes avant de les analyser. Cela permet l'analyse des réseaux qui ne permettent pas les requêtes ou les réponses ICMP à travers leurs pare-feux. Microsoft.com en est un exemple, et vous devez toujours utiliser -P0 ou -PT80 pour faire une analyse de port sur microsoft.com.
-PT Utilise TCP "ping" pour déterminer les hôtes act ifs. Au lieu d'envoyer une requête d'écho ICMP et d'attendre une réponse, nous envoyons des paquets TCP ACK dans le réseau cible (ou contre une machine) et attendons des réponses pour conclure. Les hôtes devraient répondre par un RST. Cette option préserve l'efficacité des scan des hôtes qui sont actifs mais autorise l'analyse des hôtes/réseaux qui bloquent les paquets de ping. Pour les utilisateurs non root, nous utilisons con nect(). Pour spécifier le port de destination du test utilisez -PT
-PS Cette option utilise des paquets SYN (demande de connexion) à la place des paquets ACK pour les utilisateurs ROOT. Les hôtes actifs devrait répon dre par un RST (ou, rarement par un SYN | ACK).
-PI Cette option utilise un véritable paquet ping (requête d'écho ICMP). Il recherche les hôtes act ifs et aussi regarde les adresses de diffusion des sous-réseaux. Il y a des adresses IP qui sont joignable de l'extérieur et qui sont traduites en une diffusion de paquet entrant dans un réseau. Ça devrait être supprimé, si découvert, car ça permet un grand nombre d'attaques de déni de service.
-PP utilise un paquet ICMP de requête d'estampille tem porelle (code 13) pour déterminer les hôtes qui écoutent.
-PM Fait la même chose que -PI et -PP sauf qu'il utilise une requête de masque de sous-réseau (ICMP code 17).
-PB C'est le ping par défaut. Il utilise les balayages ACK ( -PT ) et ICMP ( -PI ) en parallèle. De cette manière, vous pouvez passer les pare-feux qui ne filtrent que l'un des deux types de paquets.
-O Cette option active l'identification de l'hôte dis tant via l'empreinte TCP/IP. Autrement dit, nmap utilise un ensemble de techniques pour détecter les subtilités dans la pile réseau du système d'exploitation de l'ordinateur que vous êtes en train d'analyser. Il utilise ces informations pour créer une « empreinte » qui est comparée avec sa base de données d'empreintes connues (le fichier nmap-os-fingerprints) pour retrouver le type de système que vous êtes en train d'analyser.
Si Nmap est incapable de deviner le système d'exploitation de la machine, et que les conditions sont bonnes (par exemple, au moins un port est ouvert) Nmap fournira une URL que vous pourrez utiliser pour soumettre si vous connaissez avec certitude le nom du système d'exploitation à qui appartient cette nouvelle empreinte. Vous con tribuerez ainsi à augmenter le nombre de systèmes d'exploitations détectable par nmap et la la précision de la détection. Si vous laissez une adresse IP dans le formulaire, la machine pourra être analysée lorsque nous ajouterons l'empreinte (pour valider que ça marche).
L'option -O active aussi plusieurs autres tests. L'un d'entre eux est la mesure de « uptime » (durée écoulée depuis le dernier redémarrage du système), qui utilise l'estampille TCP (RFC 1323) pour deviner la date du dernier redémarrage de la machine. Ceci n'est rapporté que pour les machines qui fournissent cette information.
Un autre test activé par -O est la classification de la prédiction de la séquence TCP. C'est une mesure qui décrit approximativement la difficulté d'établir une connexion TCP forgée contre l'hôte distant. C'est utile pour exploiter les relations de confiances fondées sur l'IP source (rlogin, firewall filters, etc) ou pour cacher la source d'une attaque. La valeur réelle de la difficulté est calculée sur un échantillon et peut fluctuer. Il est généralement plus approprié d'utiliser une classification par nom tel que « worthy challenge » ou « trivial joke ». Ceci n'est rapporté dans la sortie normale qu'avec l'option -v.
Si le mode verbeux (-v) est activé en même temps que -O, la génération de séquence IPID est aussi rapportée. La plupart des machines appartiennent à la classe incrémentale, ce qui signifie qu'elle incrémente le champ ID dans l'entête IP pour chaque paquet envoyé. Ce qui les rend vulnérables à la collecte d'information avancée et aux attaques par usurpation.
-I Active l'analyse TCP reverse ident. Dave Goldsmith dans un message à Bugtraq en 1996, a fait remarquer que le protocole ident (rfc 1413) autorise la découverte du nom d'utilisateur qui possède un processus connecté via TCP, même si le processus n'est pas à l'instigateur de la connexion. Vous pouvez ainsi vous connecter au port http et utiliser identd pour découvrir si le serveur tourne sous root. Ceci ne peut être fait qu'avec une con nexion TCP complète sur le port cible (i.e. l'option d'analyse -sT). Quand -I est utilisé, l'identd de l'hôte distant est interrogé pour chaque port ouvert trouvé. Évidemment ça ne fonc tionne pas si l'hôte n'utilise pas identd.
-f Cette option oblige les analyses FIN, XMAS, ou NULL à utiliser de petit paquets IP fragmentés. L'idée est de partager l'entête TCP en plusieurs paquets pour rendre leurs détections plus difficile par les filtres et les systèmes de détection d'intrusion, et les autres enquiquineurs qui tentent de détecter ce que vous êtes en train de faire. Faites atten tion avec ceci, certains programmes ont des diffi cultés avec ces petits paquets. Mon sniffer favori plante immédiatement lorsqu'il reçoit le premier fragment de 36 octets. Cette option est inefficace contre les filtreurs de paquets et les pare-feux qui réassemblent les fragments IP (comme l'option CONFIG_IP_ALWAYS_DEFRAG dans le noyau Linux), cer tains réseaux ne peuvent pas supporter cette perte de performance et ne réassemblent pas les paquets.
Remarquez que je n'ai pas encore fait fonctionner cette option sur tous les systèmes. Ça marche par faitement sur les machines Linux, FreeBSD et OpenBSD et certaines personnes m'ont rapporté leurs succès avec d'autres saveurs d'Unix.
-v Mode verbeux. C'est une option hautement recom mandée qui fournit beaucoup d'informations sur ce que vous êtes en train de faire. Vous pouvez l'utiliser deux fois pour un effet plus important. Utiliser -d une paire de fois si vous voulez vrai ment devenir fou avec le défilement de l'écran !
-h Cette option affiche un bref récapitulatif des options de nmap. Comme vous l'avez sans doute remarqué, cette page de manuel n'est pas vraiment un « bref récapitulatif ». :)
-oN
-oX
-oG
-oA
-oS
—resume
—append_output indique à Nmap d'écrire à la fin des fichiers de sortie au lieu de les écraser.
-iL
-iR Cette option indique à Nmap de générer ses propres hôtes à analyser par tirage aléatoire :). Ça ne finit jamais. Ça peut être utile pour un échantil lon d'Internet pour estimer diverses choses. Si vous vous ennuyez, essayez nmap -sS -iR -p 80 pour rechercher des serveurs web à regarder.
-p
Lorsque vous scannez les ports TCP et UPD vous pou vez spécifier un protocole particulier en préfixant les numéros de ports par « T » : ou « U : ». L'effet du spécificateur dure jusqu'à ce que vous en spécifiez un autre. Par exemple, l'argument « -p U:53,111,137,T:21-25,80,139,8080 » scannera les ports UDP 53, 111 et 137 ainsi que les ports TCP mentionnés. Remarquez que pour scanner UDP et TCP, vous devez spécifier -sU et au moins une analyse TCP (telle que -sS, -sF ou -sT). Si aucune spécifi cation de protocole n'est indiquée, les numéros de ports sont ajoutés à tous les protocoles.
-F Fast scan mode. Spécifie que vous ne voulez analyser que les ports listés dans le fichier des services livré avec nmap (ou le fichier des protocoles pour -sO). C'est évidemment plus rapide que d'analyser les 65535 ports d'un hôte.
-D
Séparez chaque hôte-leurre par des virgules, et vous pouvez optionnellement utiliser 'ME' (Moi) comme l'un des leurres pour représenter la position que vous voulez utiliser pour votre adresse. Si vous utilisez 'ME' au delà de la 6ème position, la plupart des détecteurs de scan (même l'excellent scanlogd de Solar Designer) seront incapables de voir votre adresse IP. Si vous n'utilisez pas 'ME', nmap choisira une position aléatoire.
Remarquez que les hôtes leurres doivent être actifs ou vous risquez accidentellement de faire une inon dation SYN sur vos cibles. Il est aussi presque facile de déterminer qui est en train de scanner si seul une seule machine est active sur le réseau. Vous pouvez vouloir utiliser des adresses IP à la place des noms (ainsi les réseaux leurres ne vous verront pas dans les logs du serveurs de nom).
Remarquez également que quelques détecteurs (stupi des) de scan bloqueront les hôtes qui tentent des scans de ports. Aussi vous pouvez par inadvertance bloquer l'accès des machines leurres à la machine cible. Ceci peut provoquer de grave problèmes aux machines cibles si le leurre s'avère être sa passerelle internet ou même « localhost ». Il faut donc utiliser prudemment cette option. La vraie morale de cette histoire est que les détecteurs de scan ne doivent pas prendre de mesures contre les machines qui semblent les analyser, car il se peut que ce soit des leurres !
Les leurres sont utilisés pour le scan initial (en utilisant ICMP, SYN, ACK, ou autre chose) et pen dant la véritable phase de scan. Les leurres sont aussi utilisés pendant la détection de l'hôte dis tant ( -O ).
Il ne faut pas oublier que d'utiliser un trop grand nombre de leurres peut ralentir le scan et même le rendre imprécis. De plus certains fournisseurs d'accès à Internet (FAI) filtreront vos paquets usurpés, bien que la plupart n'applique aucune restriction sur les paquets usurpés.
-S
Une autre utilisation possible de ce drapeau est d'usurper le scan pour faire croire aux cibles que quelqu'un d'autre les scanne. Imaginez une entreprise qui se croit régulièrement scannée par un concurrent ! Ce n'est pas l'utilisation première ni le but principal de ce drapeau. Je pense que c'est juste une possibilité intéressante pour les personnes qui sont au courant avant qu'elles n'en accusent d'autres de les scanner. -e est généralement requis pour ce type d'utilisation.
-e
-g
Sachez qu'il y a une petite pénalité de performance sur certains scans si vous utilisez cette option, parce que j'enregistre parfois des informations utiles dans le numéro de port source.
—data_length
-n Dit à Nmap de ne JAMAIS faire de résolution DNS inverse sur une adresse IP active. Comme DNS est souvent lent, ça peut aider à accélérer les choses.
-R Dit à Nmap de TOUJOURS faire la résolution DNS inverse des adresses IP cibles. Normalement ceci n'est fait que pour les machines vivantes.
-r Dit à Nmap DE NE PAS changer aléatoirement l'ordre dans lequel les ports seront analysés.
—randomize_hosts Dit à nmap de mélanger chaque groupe comprenant jusqu'à 2048 hôtes avant de les analyser. Ceci rend les scans moins évidents à de nombreux systèmes de surveillance réseau, particulièrement quand vous le combinez avec des options pour ralen tir le timing (voir ci-dessous).
-M
OPTIONS TIMING généralement nmap parvient à s'ajuster correctement aux caractéristiques du réseau et à analyser aussi vite que possible tout en minimisant la probabilité d'être détecté. Cependant, il y a des cas où les timings par défaut de Nmap ne correspondent pas à vos objectifs. Les options suivantes permettent un contrôle fin des timings :
-T
Paranoid analyse très lentement dans l'espoir d'éviter d'être repéré par les système de détection d'intrusion. Il sérialise tous les scans (pas de scan parallèle) et attend au moins 5 minutes entre les envois de paquets.
Sneaky c'est la même chose, sauf qu'il attend 15 secondes entre les envois de paquets.
Polite essaye de minimiser la charge sur le réseau et de réduire la probabilité de crasher des machines. Il sérialises les test et attend au moins 0,4 secondes entre chaque.
Normal c'est le comportement par défaut de Nmap, qui essaye de s'exécuter aussi vite que possible sans surcharger le réseau ou oublier des hôtes/ports.
Aggressive ajoute un décompte de 5 minutes par hôte et n'attends jamais les réponses individuelles plus de 1.25 secondes.
Insane ne convient qu'aux réseaux ultra-rapides où vous ne risquez par de perdre d'informations. Il ajoute un décompte de 75 secondes et n'attend les réponses individuelles que pendant 0,3 secondes. Il permet de balayer très rapidement les réseaux. Vous pouvez aussi référencer ces modes par numéro (0-5). Par exemple, '-T 0' donne le mode Paranoid et '-T 5' le mode Insane.
Ces modes timings NE devrait PAS être utiliser en combinaison avec les contrôles de bas niveau donnés ci-dessous.
—host_timeout
—max_rtt_timeout
—min_rtt_timeout
—initial_rtt_timeout
—max_parallelism
—scan_delay
SPÉCIFICATION DE CIBLE
Tout ce qui n'est pas une option ou un argument d'option est traité par nmap comme une spécification d'hôte. Le cas le plus simple et une liste de nom d'hôtes ou d'adresse IP sur la ligne de commande. Si vous voulez analyser un sous réseau d'adresses IP vous pouvez ajouter '/mask' au nom d'hôtes mask doit être compris entre 0 (scanner tout internet) et 32 (scanner un seul hôte). Utiliser /24 pour analyser des adresses de classe 'C' et /16 pour la classe 'B'.
Nmap utilise une notation puissante pour spécifier une adresse IP en utilisant des listes/intervalles pour chaque élément. Ainsi vous pouvez analyser tout un réseau de classe B 192.168.*.* en spécifiant '192.168.*.*' ou '192.168.0-255.0-255' ou même '192.168.1-50,51-255.1,2,3,4,5-255'. Et bien sûr, vous pouvez utiliser la notation mask : '192.168.0.0/16'. Elles sont toutes équivalentes Si vous utilisez des astérisques ('*'), souvenez-vous que la plupart des shells nécessitent que vous les précédiez par des anti-slash ou que vous les protégiez par des guillemets.
Une autre chose intéressante à faire et de découper Inter net : au lieu de scanner les hôtes dans une classe 'B', scanner '*.*.5.6-7' pour analyser toutes les adresses IP se terminant par .5.6 ou .5.7. Pour plus d'informations sur la spécification des hôtes à analyser, voyez la sec tion exemples.
EXEMPLES
Voici quelques exemples d'utilisation de nmap du plus sim ple au plus compliqué. Remarquez que les noms et adresses sont utilisées pour rendre les choses plus concrètes. À leur place vous devriez substituer les noms et adresses de votre propre réseau. Je ne pense pas que l'analyse de ports d'autres réseaux soit illégale, ni que l'analyse de ports doit être considérée par les autres comme une attaque. J'ai analysé des centaines de milliers de machines et je n'ai reçu qu'une seule plainte. Mais je ne suis pas juriste et certaines personnes pourraient être ennuyées par les tests de nmap. Aussi demandez préalable ment la permission ou utilisez nmap à vos risques et périls.
nmap -v cible.exemple.com
Cette option analyse tous les ports TCP réservés sur la machine cible.exemple.com . Le -v signifie d'activer le mode verbeux.
nmap -sS -O cible.exemple.com/24
Envoie un scan SYN furtif contre chaque machine active parmi les 255 machines de classe 'C' qui sont sur cible.exemple.com. Il essaye aussi de déterminer quel système d'exploitation fonctionne sur chaque hôte. Ceci nécessite les privilèges root en raison du scan SYN et de la détection de système d'exploitation.
nmap -sX -p 22,53,110,143,4564 198.116.*.1-127
Envoie un scan Xmas tree à la première moitié de chacun des 255 sous-réseaux de l'espace d'adresse de classe B 198.116. Nous sommes en train de tester si les systèmes font fonctionner sshd, DNS, pop3d, imapd, ou port 4564. Remarquez que les scan Xmas ne fonctionnent pas contre les machines Microsoft en raison de leur pile TCP déficiente. Le même problème se produit aussi avec les machines CISCO, IRIX, HP/UX, et BSDI.
nmap -v —randomize_hosts -p 80 '*.*.2.3-5'
Plutôt que de se concentrer sur une plage spécifique d'IP, il est parfois intéressant de découper l'ensemble d'Inter net et d'analyser un petit échantillon de chaque tranche. Cette commande trouve tous les serveurs web sur des machines dont l'adresse IP se termine par .2.3, .2.4 ou .2.5 . Si vous êtes root, vous pouvez aussi ajouter -sS. Vous trouverez plus de machine intéressantes en commençant à 127, aussi vous utiliserez '127-222' à la place de la première astérisque car cette section possède une plus grande densité de machine intéressantes.
host -l company.com | cut '-d ' -f 4 | ./nmap -v -iL -
Fait un transfert DNS pour découvrir les hôtes de com pany.com et utiliser leurs adresses IP pour alimenter nmap. Les commandes ci-dessus sont pour mon ordinateur GNU/Linux. Vous pouvez avoir besoin d'autres comman des/options pour d'autres systèmes d'exploitations.
BOGUES
Bogues ? Quels bogues ? Envoyez-moi tout ce que vous trou verez. Les patchs sont les bienvenus. Souvenez-vous que vous pouvez aussi envoyer les empreintes de nouveaux systèmes d'exploitation pour enrichir la base de données. Si une empreinte appropriée est trouvée, Nmap affichera l'URL à laquelle vous pourrez l'envoyer.
AUTEUR
Fyodor
DISTRIBUTION
La dernière version de nmap peut être obtenu depuis http://www.insecure.org/nmap/
nmap est (C) 1995-2001 par Insecure.Com LLC
libpcap est aussi distribuée avec nmap. Il est copyrighté par Van Jacobson, Craig Leres et Steven McCanne, tous du Lawrence Berkeley National Laboratory, University of Cali fornia, Berkeley, CA. La version distribuée avec nmap peut être modifiée, les sources d'origine sont disponibles à ftp://ftp.ee.lbl.gov/libpcap.tar.Z .
Ce programme est un logiciel libre, vous pouvez le redis tribuer et/ou le modifier sous les termes de la GNU Gen eral Public License telle que publiée par par la Free Software Foundation ; Version 2. Ceci garantit votre droit d'utiliser, modifier et redistribuer Nmap sous certaines conditions. Si cette licence est inacceptable pour vous, Insecure.Org pourrait éventuellement vendre d'autres licences. (contacter fyodor@dhp.com).
Les sources sont fournies avec ce logiciel car nous croyons que les utilisateurs ont le droit de savoir exactement ce que fait un programme avant de le lancer. Ceci vous permet aussi d'auditer le logiciel pour rechercher des trous de sécurité (aucun n'a été trouvé jusqu'à présent).
Le code source vous permet aussi de porter Nmap vers de nouvelles plates-formes, corriger des bogues et ajouter de nouvelles caractéristiques. Vous êtes vivement encouragé à envoyer vos modifications à fyodor@insecure.org pour une éventuelle incorporation dans la distribution principale. En envoyant ces modifications à Fyodor ou à quelqu'un de la liste de diffusion de développement de insecure.org, il est supposé que vous offrez à Fyodor le droit illimité et non exclusif de réutiliser, modifier et relicencier le code. C'est important parce que l'impossibilité de reli cencier le code a provoqué des problèmes dévastateurs dans d'autres projets de logiciel libre (comme KDE et NASM). Nmap sera toujours disponible en Open Source. Si vous désirez spécifier des conditions particulières de licence pour vos contributions, dites-le nous simplement quand vous nous les envoyez.
Ce programme est distribué dans l'espoir d'être utile, mais SANS AUCUNE GARANTIE même la garantie implicite rela tive à la QUALITÉ MARCHANDE ou D'APTITUDE À UNE UTILISA TION PARTICULIÈRE. Voir la licence GPL (c'est le fichier COPYING de la distribution nmap.
Remarque : Nmap a déjà fait planter certaines applica tions, des piles TCP/IP et même des systèmes d'exploita tions mal écrits. Par conséquent Nmap ne devrait jamais être utilisé contre des systèmes qui ont une mission cri tique à moins que vous ne soyez prêt à souffrir d'une éventuelle interruption de service. Nous reconnaissons ici que nmap peut crasher vos systèmes et réseaux mais nous ne sommes pas responsables des dégâts que Nmap pourrait provoquer.
En raison du léger risque de crashs et parce que quelques personnes mal intentionnées utilisent nmap pour les recon naissances préliminaires à une attaque, certains adminis trateurs deviennent furieux et se plaignent quand leurs systèmes sont scannés. C'est pourquoi il est plus sage de demander la permission avant de lancer l'analyse d'un réseau.
Nmap ne devrait jamais être lancé avec des privilèges (par exemple suid root) pour des raisons de sécurité.
Toutes les versions de Nmap postérieures à la 2.0 sont compatibles an 2000. Il n'y a aucune raison de penser que les versions antérieures ont des problèmes, mais nous ne les avons pas testées.
TRADUCTION
Sébastien Blanchet, 2002
RELECTURE
Gérard Delafond