mirror of
https://github.com/nmap/nmap.git
synced 2025-12-06 04:31:29 +00:00
2063 lines
197 KiB
Groff
2063 lines
197 KiB
Groff
'\" t
|
|
.\" Title: nmap
|
|
.\" Author: [see the "Auteur" section]
|
|
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
|
.\" Date: 17/01/2017
|
|
.\" Manual: [FIXME: manual]
|
|
.\" Source: [FIXME: source]
|
|
.\" Language: French
|
|
.\"
|
|
.TH "NMAP" "1" "17/01/2017" "[FIXME: source]" "[FIXME: manual]"
|
|
.\" -----------------------------------------------------------------
|
|
.\" * Define some portability stuff
|
|
.\" -----------------------------------------------------------------
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.\" http://bugs.debian.org/507673
|
|
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
|
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
.ie \n(.g .ds Aq \(aq
|
|
.el .ds Aq '
|
|
.\" -----------------------------------------------------------------
|
|
.\" * set default formatting
|
|
.\" -----------------------------------------------------------------
|
|
.\" disable hyphenation
|
|
.nh
|
|
.\" disable justification (adjust text to left margin only)
|
|
.ad l
|
|
.\" -----------------------------------------------------------------
|
|
.\" * MAIN CONTENT STARTS HERE *
|
|
.\" -----------------------------------------------------------------
|
|
.SH "NOM"
|
|
nmap \- Outil d\*(Aqexploration r\('eseau et scanneur de ports/s\('ecurit\('e
|
|
.SH "SYNOPSIS"
|
|
.HP \w'\fBnmap\fR\ 'u
|
|
\fBnmap\fR [\fITypes\ de\ scans\fR...] [\fIOptions\fR] {\fIsp\('ecifications\ des\ cibles\fR}
|
|
.SH "DESCRIPTION"
|
|
.PP
|
|
Nmap (\(Fo\ \&Network Mapper\ \&\(Fc) est un outil open source d\*(Aqexploration r\('eseau et d\*(Aqaudit de s\('ecurit\('e\&. Il a \('et\('e con\(,cu pour rapidement scanner de grands r\('eseaux, mais il fonctionne aussi tr\(`es bien sur une cible unique\&. Nmap innove en utilisant des paquets IP bruts (raw packets) pour d\('eterminer quels sont les h\(^otes actifs sur le r\('eseau, quels services (y compris le nom de l\*(Aqapplication et la version) ces h\(^otes offrent, quels syst\(`emes d\*(Aqexploitation (et leurs versions) ils utilisent, quels types de dispositifs de filtrage/pare\-feux sont utilis\('es, ainsi que des douzaines d\*(Aqautres caract\('eristiques\&. Nmap est g\('en\('eralement utilis\('e pour les audits de s\('ecurit\('e mais de nombreux gestionnaires des syst\(`emes et de r\('eseau l\*(Aqappr\('ecient pour des t\(^aches de routine comme les inventaires de r\('eseau, la gestion des mises \(`a jour planifi\('ees ou la surveillance des h\(^otes et des services actifs\&.
|
|
.PP
|
|
Le rapport de sortie de Nmap est une liste des cibles scann\('ees ainsi que des informations compl\('ementaires en fonction des options utilis\('ees\&. L\*(Aqinformation centrale de la sortie est la
|
|
\(Fo\ \&table des ports int\('eressants\ \&\(Fc\&. Cette table liste le num\('ero de port et le protocole, le nom du service et son \('etat\&. L\*(Aq\('etat est soit
|
|
ouvert (open),
|
|
filtr\('e (filtered),
|
|
ferm\('e (closed)\ \& ou
|
|
non\-filtr\('e (unfiltered)\&.
|
|
Ouvert
|
|
indique que l\*(Aqapplication de la machine cible est en \('ecoute de paquets/connexions sur ce port\&.
|
|
Filtr\('e
|
|
indique qu\*(Aqun pare\-feu, un dispositif de filtrage ou un autre obstacle r\('eseau bloque ce port, emp\(^echant ainsi Nmap de d\('eterminer s\*(Aqil s\*(Aqagit d\*(Aqun port
|
|
ouvert
|
|
ou
|
|
ferm\('e\&. Les ports
|
|
ferm\('es
|
|
n\*(Aqont pas d\*(Aqapplication en \('ecoute, bien qu\*(Aqils puissent quand m\(^eme s\*(Aqouvrir n\*(Aqimporte quand\&. Les ports sont consid\('er\('es comme
|
|
non\-filtr\('es
|
|
lorsqu\*(Aqils r\('epondent aux paquets de tests (probes) de Nmap, mais Nmap ne peut d\('eterminer s\*(Aqils sont ouverts ou ferm\('es\&. Nmap renvoie \('egalement les combinaisons d\*(Aq\('etats
|
|
ouverts|filtr\('e
|
|
et
|
|
ferm\('es|filtr\('e
|
|
lorsqu\*(Aqil n\*(Aqarrive pas \(`a d\('eterminer dans lequel des deux \('etats possibles se trouve le port\&. La table des ports peut aussi comprendre des d\('etails sur les versions des logiciels si la d\('etection des services est demand\('ee\&. Quand un scan du protocole IP est demand\('e (\fB\-sO\fR), Nmap fournit des informations sur les protocoles IP support\('es au lieu de la liste des ports en \('ecoute\&.
|
|
.PP
|
|
En plus de la table des ports int\('eressants, Nmap peut aussi fournir de plus amples informations sur les cibles comme les noms DNS (reverse DNS), deviner les syst\(`emes d\*(Aqexploitation utilis\('es, obtenir le type de mat\('eriel ou les adresses MAC\&.
|
|
.PP
|
|
Un scan classique avec Nmap est pr\('esent\('e dans
|
|
Exemple\ \&1, \(Fo\ \&Un scan Nmap repr\('esentatif\ \&\(Fc
|
|
\&. Les seuls arguments de Nmap utilis\('es dans cet exemple sont
|
|
\fB\-A\fR
|
|
, qui permet la d\('etection des OS et versions de logiciels utilis\('es,
|
|
\fB\-T4\fR
|
|
pour une ex\('ecution plus rapide, et les noms d\*(Aqh\(^ote des cibles\&.
|
|
.PP
|
|
\fBExemple\ \&1.\ \&Un scan Nmap repr\('esentatif\fR
|
|
.sp
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
# nmap \-A \-T4 scanme\&.nmap\&.org playground
|
|
|
|
Starting nmap ( http://www\&.insecure\&.org/nmap/ )
|
|
Interesting ports on scanme\&.nmap\&.org (205\&.217\&.153\&.62):
|
|
(The 1663 ports scanned but not shown below are in state: filtered)
|
|
PORT STATE SERVICE VERSION
|
|
22/tcp open ssh OpenSSH 3\&.9p1 (protocol 1\&.99)
|
|
53/tcp open domain
|
|
70/tcp closed gopher
|
|
80/tcp open http Apache httpd 2\&.0\&.52 ((Fedora))
|
|
113/tcp closed auth
|
|
Device type: general purpose
|
|
Running: Linux 2\&.4\&.X|2\&.5\&.X|2\&.6\&.X
|
|
OS details: Linux 2\&.4\&.7 \- 2\&.6\&.11, Linux 2\&.6\&.0 \- 2\&.6\&.11
|
|
Uptime 33\&.908 days (since Thu Jul 21 03:38:03 2005)
|
|
|
|
Interesting ports on playground\&.nmap\&.org (192\&.168\&.0\&.40):
|
|
(The 1659 ports scanned but not shown below are in state: closed)
|
|
PORT STATE SERVICE VERSION
|
|
135/tcp open msrpc Microsoft Windows RPC
|
|
139/tcp open netbios\-ssn
|
|
389/tcp open ldap?
|
|
445/tcp open microsoft\-ds Microsoft Windows XP microsoft\-ds
|
|
1002/tcp open windows\-icfw?
|
|
1025/tcp open msrpc Microsoft Windows RPC
|
|
1720/tcp open H\&.323/Q\&.931 CompTek AquaGateKeeper
|
|
5800/tcp open vnc\-http RealVNC 4\&.0 (Resolution 400x250; VNC TCP port: 5900)
|
|
5900/tcp open vnc VNC (protocol 3\&.8)
|
|
MAC Address: 00:A0:CC:63:85:4B (Lite\-on Communications)
|
|
Device type: general purpose
|
|
Running: Microsoft Windows NT/2K/XP
|
|
OS details: Microsoft Windows XP Pro RC1+ through final release
|
|
Service Info: OSs: Windows, Windows XP
|
|
|
|
Nmap finished: 2 IP addresses (2 hosts up) scanned in 88\&.392 seconds
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.PP
|
|
La plus r\('ecente version de Nmap peut \(^etre obtenue \(`a l\*(Aqurl
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]
|
|
\&. La plus r\('ecente version du manuel est disponible \(`a
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/man/\fR\m[]
|
|
\&.
|
|
.SH "NOTES DE TRADUCTION"
|
|
.PP
|
|
Cette \('edition Francaise du Guide de r\('ef\('erence de Nmap a \('et\('e traduite \(`a partir de la version [2991] de la
|
|
\m[blue]\fBversion originale en Anglais\fR\m[]\&\s-2\u[1]\d\s+2
|
|
par Romuald THION
|
|
<romuald\&.thion@insa\-lyon\&.fr>
|
|
et 4N9e Gutek
|
|
<4n9e@futurezone\&.biz>\&. Elle a \('et\('e relue et corrig\('ee par Ghislaine Landry
|
|
<g\-landry@rogers\&.com>\&. Ce travail peut \(^etre modifi\('e et redistribu\('e selon les termes de la license
|
|
\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&.
|
|
.PP
|
|
Mise a jour au 19 dec 2007\&.
|
|
.SH "R\('ESUM\('E DES OPTIONS"
|
|
.PP
|
|
Ce r\('esum\('e des options est affich\('e quand Nmap est ex\('ecut\('e sans aucun argument; la plus r\('ecente version est toujours disponible sur
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/data/nmap.usage.txt\fR\m[]
|
|
\&. Il sert d\*(Aqaide\-m\('emoire des options les plus fr\('equemment utilis\('ees, mais ne remplace pas la documentation bien plus d\('etaill\('ee de la suite de ce manuel\&. Les options obscures n\*(Aqy sont pas incluses\&.
|
|
.PP
|
|
.if n \{\
|
|
.RS 4
|
|
.\}
|
|
.nf
|
|
Nmap 4\&.50 (insecure\&.org)
|
|
Utilisation: nmap [Type(s) de scan] [Options] {sp\('ecifications des cibles}
|
|
|
|
SP\('ECIFICATIONS DES CIBLES:
|
|
Les cibles peuvent \(^etre sp\('ecifi\('ees par des noms d\*(Aqh\(^otes, des adresses IP, des adresses de r\('eseaux, etc\&.
|
|
Exemple: scanme\&.nmap\&.org, microsoft\&.com/24, 192\&.168\&.0\&.1; 10\&.0\-255\&.0\-255\&.1\-254
|
|
\-iL <inputfilename>: Lit la liste des h\(^otes/r\('eseaux cibles \(`a partir du fichier
|
|
\-iR <num hosts>: Choisit les cibles au hasard
|
|
\-\-exclude <host1[,host2][,host3],\&.\&.\&.>: Exclut des h\(^otes/r\('eseaux du scan
|
|
\-\-excludefile <exclude_file>: Exclut des h\(^otes/r\('eseaux des cibles \(`a partir du fichier
|
|
|
|
D\('ECOUVERTE DES H\(^OTES:
|
|
\-sL: List Scan \- Liste simplement les cibles \(`a scanner
|
|
\-sP: Ping Scan \- Ne fait que d\('eterminer si les h\(^otes sont en ligne \-P0: Consid\(`ere que tous les h\(^otes sont en ligne \-\- \('evite la d\('ecouverte des h\(^otes
|
|
\-PN: Consid\('erer tous les h\(^otes comme \('etant connect\('es \-\- saute l\*(Aq\('etape de d\('ecouverte des h\(^otes
|
|
\-PS/PA/PU [portlist]: D\('ecouverte TCP SYN/ACK ou UDP des ports en param\(`etre
|
|
\-PE/PP/PM: D\('ecouverte de type requ\(^ete ICMP echo, timestamp ou netmask
|
|
\-PO [num de protocole]: Ping IP (par type)
|
|
\-n/\-R: Ne jamais r\('esoudre les noms DNS/Toujours r\('esoudre [r\('esout les cibles actives par d\('efaut]
|
|
\-\-dns\-servers <serv1[,serv2],\&.\&.\&.>: Sp\('ecifier des serveurs DNS particuliers
|
|
|
|
TECHNIQUES DE SCAN:
|
|
\-sS/sT/sA/sW/sM: Scans TCP SYN/Connect()/ACK/Window/Maimon
|
|
\-sN/sF/sX: Scans TCP Null, FIN et Xmas
|
|
\-sU: Scan UDP
|
|
\-\-scanflags <flags>: Personnalise les flags des scans TCP
|
|
\-sI <zombie host[:probeport]>: Idlescan (scan passif)
|
|
\-sO: Scan des protocoles support\('es par la couche IP
|
|
\-b <ftp relay host>: Scan par rebond FTP
|
|
\-\-traceroute: D\('etermine une route vers chaque h\(^ote
|
|
\-\-reason: Donne la raison pour laquelle tel port apparait \(`a tel \('etat
|
|
|
|
SP\('ECIFICATIONS DES PORTS ET ORDRE DE SCAN:
|
|
\-p <plage de ports>: Ne scanne que les ports sp\('ecifi\('es
|
|
Exemple: \-p22; \-p1\-65535; \-pU:53,111,137,T:21\-25,80,139,8080
|
|
\-F: Fast \- Ne scanne que les ports list\('es dans le fichier nmap\-services
|
|
\-r: Scan s\('equentiel des ports, ne m\('elange pas leur ordre
|
|
\-\-top\-ports <nombre>: Scan <nombre> de ports parmis les plus courants
|
|
\-\-port\-ratio <ratio>: Scan <ratio> pourcent des ports les plus courants
|
|
|
|
D\('ETECTION DE SERVICE/VERSION:
|
|
\-sV: Teste les ports ouverts pour d\('eterminer le service en \('ecoute et sa version
|
|
\-\-version\-light: Limite les tests aux plus probables pour une identification plus rapide
|
|
\-\-version\-intensity <niveau>: De 0 (l\('eger) \(`a 9 (tout essayer)
|
|
\-\-version\-all: Essaie un \(`a un tous les tests possibles pour la d\('etection des versions
|
|
\-\-version\-trace: Affiche des informations d\('etaill\('ees du scan de versions (pour d\('ebogage)
|
|
|
|
SCRIPT SCAN:
|
|
\-sC: \('equivalent de \-\-script=safe,intrusive
|
|
\-\-script=<lua scripts>: <lua scripts> est une liste de r\('epertoires ou de scripts s\('epar\('es par des virgules
|
|
\-\-script\-args=<n1=v1,[n2=v2,\&.\&.\&.]>: passer des arguments aux scripts
|
|
\-\-script\-trace: Montre toutes les donn\('ees envoy\('ees ou recues
|
|
\-\-script\-updatedb: Met \(`a jour la base de donn\('ees des scripts\&. Seulement fait si \-sC ou \-\-script a \('et\('e aussi donn\('e\&.
|
|
|
|
D\('ETECTION DE SYST\(`EME D\*(AqEXPLOITATION:
|
|
\-O: Active la d\('etection d\*(AqOS
|
|
\-\-osscan\-limit: Limite la d\('etection aux cibles prom\('eteuses \-\-osscan\-guess: D\('etecte l\*(AqOS de fa\(,con plus agressive
|
|
\-\-osscan\-guess: Devine l\*(AqOS de facon plus agressive
|
|
|
|
TEMPORISATION ET PERFORMANCE:
|
|
Les options qui prennent un argument de temps sont en milisecondes a moins que vous ne sp\('ecifiiez \*(Aqs\*(Aq
|
|
(secondes), \*(Aqm\*(Aq (minutes), ou \*(Aqh\*(Aq (heures) \(`a la valeur (e\&.g\&. 30m)\&.
|
|
|
|
\-T[0\-5]: Choisit une politique de temporisation (plus \('elev\('ee, plus rapide)
|
|
\-\-min\-hostgroup/max\-hostgroup <msec>: Tailles des groupes d\*(Aqh\(^otes \(`a scanner en parall\(`ele
|
|
\-\-min\-parallelism/max\-parallelism <nombre>: Parall\('elisation des paquets de tests (probes)
|
|
\-\-min_rtt_timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Sp\('ecifie le temps d\*(Aqaller\-retour des paquets de tests
|
|
\-\-min_rtt_timeout/max\-rtt\-timeout/initial\-rtt\-timeout <msec>: Sp\('ecifie le temps d\*(Aqaller\-retour des paquets de tests
|
|
\-\-min\-rtt\-timeout/max\-rtt\-timeout/initial\-rtt\-timeout <time>: Pr\('ecise
|
|
le round trip time des paquets de tests\&.
|
|
\-\-max\-retries <tries>: Nombre de retransmissions des paquets de tests des scans de ports\&.
|
|
\-\-host\-timeout <msec>: D\('elai d\*(Aqexpiration du scan d\*(Aqun h\(^ote \-\-scan\-delay/\-\-max_scan\-delay <msec>: Ajuste le d\('elai de retransmission entre deux paquets de tests
|
|
\-\-scan\-delay/\-\-max\-scan\-delay <time>: Ajuste le delais entre les paquets de tests\&.
|
|
|
|
\('EVASION PARE\-FEU/IDS ET USURPATION D\*(AqIDENTIT\('E
|
|
\-f; \-\-mtu <val>: Fragmente les paquets (en sp\('ecifiant \('eventuellement la MTU)
|
|
\-D <decoy1,decoy2[,ME],\&.\&.\&.>: Obscurci le scan avec des leurres
|
|
\-S <IP_Address>: Usurpe l\*(Aqadresse source
|
|
\-e <iface>: Utilise l\*(Aqinterface r\('eseau sp\('ecifi\('ee
|
|
\-g/\-\-source\-port <portnum>: Utilise le num\('ero de port comme source
|
|
\-\-data\-length <num>: Ajoute des donn\('ees au hasard aux paquets \('emis
|
|
\-\-ip\-options <options>: Envoi des paquets avec les options IP sp\('ecifi\('ees\&.
|
|
\-\-ttl <val>: Sp\('ecifie le champ time\-to\-live IP
|
|
\-\-spoof\-mac <adresse MAC, pr\('efixe ou nom du fabriquant>: Usurpe une adresse MAC
|
|
\-\-badsum: Envoi des paquets TCP/UDP avec une somme de controle erronn\('ee\&.
|
|
|
|
SORTIE:
|
|
\-oN/\-oX/\-oS/\-oG <file>: Sortie dans le fichier en param\(`etre des r\('esultats du scan au format normal, XML, s|<rIpt kIddi3 et Grepable, respectivement
|
|
\-oA <basename>: Sortie dans les trois formats majeurs en m\(^eme temps
|
|
\-v: Rend Nmap plus verbeux (\-vv pour plus d\*(Aqeffet)
|
|
\-d[level]: S\('electionne ou augmente le niveau de d\('ebogage (significatif jusqu\*(Aq\(`a 9)
|
|
\-\-packet\-trace: Affiche tous les paquets \('emis et re\(,cus
|
|
\-\-iflist: Affiche les interfaces et les routes de l\*(Aqh\(^ote (pour d\('ebogage)
|
|
\-\-log\-errors: Journalise les erreurs/alertes dans un fichier au format normal
|
|
\-\-append\-output: Ajoute la sortie au fichier plut\(^ot que de l\*(Aq\('ecraser
|
|
\-\-resume <filename>: Reprend un scan interrompu
|
|
\-\-stylesheet <path/URL>: Feuille de styles XSL pour transformer la sortie XML en HTML
|
|
\-\-webxml: Feuille de styles de r\('ef\('erences de Insecure\&.Org pour un XML plus portable
|
|
\-\-no_stylesheet: Nmap n\*(Aqassocie pas la feuille de styles XSL \(`a la sortie XML
|
|
|
|
DIVERS:
|
|
\-6: Active le scan IPv6
|
|
\-A: Active la d\('etection du syst\(`eme d\*(Aqexploitation et des versions
|
|
\-\-datadir <dirname>: Sp\('ecifie un dossier pour les fichiers de donn\('ees de Nmap
|
|
\-\-send\-eth/\-\-send\-ip: Envoie des paquets en utilisant des trames Ethernet ou des paquets IP bruts
|
|
\-\-privileged: Suppose que l\*(Aqutilisateur est enti\(`erement privil\('egi\('e \-V: Affiche le num\('ero de version
|
|
\-\-unprivileged: Suppose que l\*(Aqutilisateur n\*(Aqa pas les privil\(`eges d\*(Aqusage des raw socket
|
|
\-h: Affiche ce r\('esum\('e de l\*(Aqaide
|
|
|
|
EXEMPLES:
|
|
nmap \-v \-A scanme\&.nmap\&.org
|
|
nmap \-v \-sP 192\&.168\&.0\&.0/16 10\&.0\&.0\&.0/8
|
|
nmap \-v \-iR 10000 \-P0 \-p 80
|
|
|
|
.fi
|
|
.if n \{\
|
|
.RE
|
|
.\}
|
|
.sp
|
|
.SH "SP\('ECIFICATION DES CIBLES"
|
|
.PP
|
|
Tout ce qui n\*(Aqest pas une option (ou l\*(Aqargument d\*(Aqune option) dans la ligne de commande de Nmap est consid\('er\('e comme une sp\('ecification d\*(Aqh\(^ote cible\&. Le cas le plus simple est de sp\('ecifier une adresse IP cible ou un nom d\*(Aqh\(^ote \(`a scanner\&.
|
|
.PP
|
|
\ \& Si vous d\('esirez scanner un r\('eseau entier d\*(Aqh\(^otes cons\('ecutifs, Nmap supporte l\*(Aqadressage du style CIDR\&. Vous pouvez ajouter /
|
|
\fInumbits\fR
|
|
\(`a une adresse IP ou \(`a un nom d\*(Aqh\(^ote de r\('ef\('erence et Nmap scannera toutes les adresses IP dont les
|
|
\fInumbits\fR
|
|
bits de poids fort sont les m\(^emes que la cible de r\('ef\('erence\&. Par exemple, 192\&.168\&.10\&.0/24 scannerait les 256 h\(^otes entre 192\&.168\&.10\&.0 (en binaire:
|
|
11000000 10101000 00001010 00000000) et 192\&.168\&.10\&.255 (en binaire:11000000 10101000 00001010 11111111) inclusivement\&. 192\&.168\&.10\&.40/24 ferait donc aussi la m\(^eme chose\&. \('Etant donn\('e que l\*(Aqh\(^ote scanme\&.nmap\&.org est \(`a l\*(Aqadresse IP 205\&.217\&.153\&.62, scanme\&.nmap\&.org/16 scannerait les 65 536 adresses IP entre 205\&.217\&.0\&.0 et 205\&.217\&.255\&.255\&. La plus petite valeur autoris\('ee est /1 qui scanne la moiti\('e d\*(AqInternet\&. La plus grande valeur autoris\('ee est 32, ainsi Nmap ne scanne que la cible de r\('ef\('erence car tous les bits de l\*(Aqadresse sont fix\('es\&.
|
|
.PP
|
|
La notation CIDR est concise mais pas toujours des plus pratiques\&. Par exemple, vous voudriez scanner 192\&.168\&.0\&.0/16 mais \('eviter toutes les adresses se terminant par \&.0 ou \&.255 car se sont souvent des adresses de diffusion (broadcast)\&. Nmap permet de le faire gr\(^ace \(`a l\*(Aqadressage par intervalles\&. Plut\(^ot que de sp\('ecifier une adresse IP normale, vous pouvez sp\('ecifier pour chaque octet de l\*(AqIP une liste d\*(Aqintervalles s\('epar\('es par des virgules\&. Par exemple, 192\&.168\&.0\-255\&.1\-254 \('evitera toutes les adresses se terminant par \&.0 ou \&.255\&. Les intervalles ne sont pas limit\('es aux octets finals: 0\-255\&.0\-255\&.13\&.37 ex\('ecutera un scan de toutes les adresses IP se terminant par 137\&.37\&. Ce genre de sp\('ecifications peut s\*(Aqav\('erer utile pour des statistiques sur Internet ou pour les chercheurs\&.
|
|
.PP
|
|
Les adresses IPv6 ne peuvent \(^etre sp\('ecifi\('ees que par une adresse IPv6 pleinement qualifi\('ee ou un nom d\*(Aqh\(^ote\&. L\*(Aqadressage CIDR ou par intervalles n\*(Aqest pas g\('er\('e avec IPv6 car les adresses ne sont que rarement utiles\&.
|
|
.PP
|
|
Nmap accepte les sp\('ecifications de plusieurs h\(^otes \(`a la ligne de commande, sans qu\*(Aqelles soient n\('ecessairement de m\(^eme type\&. La commande
|
|
\fBnmap scanme\&.nmap\&.org 192\&.168\&.0\&.0/8 10\&.0\&.0,1,3\-7\&.0\-255\fR
|
|
fait donc ce \(`a quoi vous vous attendez\&.
|
|
.PP
|
|
M\(^eme si les cibles sont souvent sp\('ecifi\('ees dans les lignes de commandes, les options suivantes sont \('egalement disponibles pour s\('electionner des cibles :
|
|
.PP
|
|
\fB\-iL <inputfilename>\fR(Lit la liste des h\(^otes/r\('eseaux cibles depuis le fichier)
|
|
.RS 4
|
|
Lit les sp\('ecifications des cibles depuis le fichier
|
|
\fIinputfilename\fR\&. Il est souvent maladroit de passer une longue liste d\*(Aqh\(^otes \(`a la ligne de commande\&. Par exemple, votre serveur DHCP pourrait fournir une liste de 10 000 baux que vous souhaiteriez scanner\&. Ou alors voudriez scanner toutes les adresses IP
|
|
\fIsauf\fR
|
|
celles des baux DHCP pour identifier les h\(^otes qui utilisent des adresses IP statiques non\-autoris\('ees\&. G\('en\('erez simplement la liste des h\(^otes \(`a scanner et passez ce fichier comme argument de l\*(Aqoption
|
|
\fB\-iL\fR\&. Les entr\('ees peuvent \(^etre sp\('ecifi\('ees dans n\*(Aqimporte quel des formats accept\('es par la ligne de commande de Nmap (adresses IP, noms d\*(Aqh\(^otes, CIDR, IPv6 ou par intervalles)\&. Les entr\('ees doivent \(^etre s\('epar\('ees par un ou plusieurs espaces, tabulations ou retours chariot\&. Vous pouvez utiliser un tiret (\-) comme nom de fichier si vous souhaitez que Nmap lise les h\(^otes depuis l\*(Aqentr\('ee standard\&.
|
|
.RE
|
|
.PP
|
|
\fB\-iR <num hosts>\fR(Choisit des cibles au hasard)
|
|
.RS 4
|
|
Pour des \('etudes \(`a l\*(Aq\('echelle d\*(AqInternet ou autres, vous pourriez d\('esirer de choisir vos cibles au hasard\&. L\*(Aqargument\ \&
|
|
\fInum hosts\fR
|
|
indique \(`a Nmap combien d\*(AqIPs il doit g\('en\('erer\&. Les IPs \(`a \('eviter, comme les plages d\*(Aqadresses priv\('ees, multicast ou non allou\('ees sont automatiquement \('evit\('ees\&. On peut aussi utiliser l\*(Aqargument
|
|
0
|
|
pour effectuer un scan sans fin\&. Rappelez\-vous bien que certains administrateurs de r\('eseau s\*(Aqirritent lorsqu\*(Aqon scanne leur r\('eseau sans permission et peuvent porter plainte\&. Utilisez cette option \(`a vos risques et p\('erils! Un jour de pluie o\(`u vous ne savez pas quoi faire, essayez la commande
|
|
\fBnmap \-sS \-PS80 \-iR 0 \-p 80\fR
|
|
pour trouver des serveurs Web au hasard sur lesquels fureter\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-exclude <host1[,host2][,host3],\&.\&.\&.>\fR (Exclut des h\(^otes/des r\('eseaux des cibles)
|
|
.RS 4
|
|
Sp\('ecifie une liste de cibles s\('epar\('ees par des virgules \(`a exclure du scan, m\(^eme si elles font partie de la plage r\('eseau que vous avez sp\('ecifi\('ee\&. La liste que vous donnez en entr\('ee utilise la syntaxe Nmap habituelle, elle peut donc inclure des noms d\*(Aqh\(^otes, des blocs CIDR, des intervalles, etc\&. Ceci peut \(^etre utile quand le r\('eseau que vous voulez scanner comprend des serveurs \(`a haute disponibilit\('e, des syst\(`emes reconnus pour r\('eagir d\('efavorablement aux scans de ports ou des sous\-r\('eseaux administr\('es par d\*(Aqautres personnes\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-excludefile <exclude_file>\fR (Exclut des h\(^otes/des r\('eseaux des cibles depuis le fichier)
|
|
.RS 4
|
|
Cette option offre les m\(^emes fonctionnalit\('es que l\*(Aqoption
|
|
\fB\-\-exclude\fR, \(`a la diff\('erence qu\*(Aqici les cibles \(`a exclure sont sp\('ecifi\('ees dans le fichier
|
|
\fIexclude_file\fR
|
|
au lieu de la ligne de commande\&. Les cibles sont s\('epar\('ees entre elles dans le fichier par des retours chariot, des espaces ou des tabulations\&.
|
|
.RE
|
|
.SH "D\('ECOUVERTE DES H\(^OTES"
|
|
.PP
|
|
Une des toutes premi\(`eres \('etapes dans la reconnaissance d\*(Aqun r\('eseau est de r\('eduire un ensemble (quelques fois \('enorme) de plages d\*(AqIP \(`a une liste d\*(Aqh\(^otes actifs ou int\('eressants\&. Scanner tous les ports de chacune des IP est lent et souvent inutile\&. Bien s\(^ur, ce qui rend un h\(^ote int\('eressant d\('epend grandement du but du scan\&. Les administrateurs de r\('eseau peuvent \(^etre uniquement int\('eress\('es par les h\(^otes o\(`u un certain service est actif tandis que les auditeurs de s\('ecurit\('e peuvent s\*(Aqint\('eresser \(`a tout \('equipement qui dispose d\*(Aqune adresse IP\&. Alors que l\*(Aqadministrateur se satisferait d\*(Aqun ping ICMP pour rep\('erer les h\(^otes de son r\('eseau, l\*(Aqauditeur pourrait utiliser un ensemble vari\('e de douzaines de paquets de tests (probes) dans le but de contourner les restrictions des pare\-feux\&.
|
|
.PP
|
|
Parce que les besoins de d\('ecouverte des h\(^otes sont si diff\('erents, Nmap propose une grande panoplie d\*(Aqoptions pour individualiser les techniques utilis\('ees\&. La d\('ecouverte d\*(Aqh\(^ote est souvent appel\('ee \(Fo scan ping \(Fc (ping scan), mais celle\-ci va bien au del\(`a d\*(Aqune simple requ\(^ete echo ICMP associ\('ee \(`a l\*(Aqincontournable outil
|
|
ping\&. Les utilisateurs peuvent enti\(`erement \('eviter l\*(Aq\('etape scan ping en listant simplement les cibles (\fB\-sL\fR), en d\('esactivant le scan ping(\fB\-P0\fR) ou alors en d\('ecouvrant le r\('eseau avec des combinaisons de tests TCP SYN/ACK, UDP et ICMP\&. Le but de ces tests est de solliciter une r\('eponse des cibles qui prouvera qu\*(Aqune adresse IP est effectivement active (utilis\('ee par un h\(^ote ou un \('equipement r\('eseau)\&. Sur de nombreux r\('eseaux, seul un petit pourcentage des adresses IP sont actives \(`a un moment donn\('e\&. Ceci est particuli\(`erement courant avec les plages d\*(Aqadresses priv\('ees (d\('efinies par la sainte RFC 1918) comme 10\&.0\&.0\&.0/8\&. Ce r\('eseau comprend 16 millions d\*(AqIPs, mais il s\*(Aqest d\('ej\(`a vu utilis\('e par des entreprises disposant de moins d\*(Aqun millier de machines\&. La d\('ecouverte des h\(^otes permet de trouver ces machines dans l\*(Aqimmensit\('e de cet oc\('ean d\*(Aqadresses IP\&.
|
|
.PP
|
|
Lorsqu\*(Aqaucune option de d\('ecouverte n\*(Aqest sp\('ecifi\('ee, Nmap envoie un paquet TCP ACK sur le port 80 ainsi qu\*(Aqune requ\(^ete d\*(Aqecho ICMP \(`a chaque machine cible\&. Une exception \(`a cette r\(`egle est qu\*(Aqun scan ARP est utilis\('e pour chaque cible du r\('eseau Ethernet local\&. Pour les utilisateurs UNIX non\-privil\('egi\('es, un paquet SYN est utilis\('e \(`a la place du ACK en utilisant l\*(Aqappel syst\(`eme\ \&
|
|
\fBconnect()\fR\&. Ces options par d\('efaut sont \('equivalentes \(`a la combinaison d\*(Aqoption
|
|
\fB\-PA \-PE\fR\&. Cette m\('ethode de d\('ecouverte des h\(^otes est souvent suffisante lors de scans de r\('eseaux locaux, mais un ensemble plus complet de tests de d\('ecouverte est recommand\('e pour les audits de s\('ecurit\('e\&.
|
|
.PP
|
|
Les options suivantes contr\(^olent la d\('ecouverte des h\(^otes\&.
|
|
.PP
|
|
\fB\-sL\fR (Liste simplement)
|
|
.RS 4
|
|
Cette forme d\('eg\('en\('er\('ee de d\('ecouverte d\*(Aqh\(^otes liste simplement chaque h\(^ote du(des) r\('eseau(x) sp\('ecifi\('e(s), sans envoyer aucun paquet aux cibles\&. Par d\('efaut, Nmap utilise toujours la r\('esolution DNS inverse des h\(^otes pour conna\(^itre leurs noms\&. Il est souvent \('etonnant de constater combien ces simples informations peuvent \(^etre utiles\&. Par exemple,
|
|
fw\&.chi\&.playboy\&.com
|
|
est le pare\-feu du bureau de Chicago de Playboy Enterprises\&. Nmap rend \('egalement compte du nombre total d\*(Aqadresses IP \(`a la fin de son rapport\&. Cette simple liste est un bon test pour vous assurer que vos adresses IP cibles sont les bonnes\&. Si jamais ces noms de domaines ne vous disent rien, il vaudrait mieux s\*(Aqarr\(^eter l\(`a afin d\*(Aq\('eviter de scanner le r\('eseau de la mauvaise entreprise\&.
|
|
.sp
|
|
Comme l\*(Aqid\('ee est de simplement afficher une liste des cibles, les options de fonctionnalit\('es plus haut niveau comme le scan de ports, la d\('etection du syst\(`eme d\*(Aqexploitation ou la d\('ecouverte des h\(^otes ne peuvent pas \(^etre combin\('ees avec la liste simple\&. Si vous voulez juste d\('esactiver la d\('ecouverte des h\(^otes mais quand m\(^eme effectuer des op\('erations de plus haut niveau, lisez sur l\*(Aqoption
|
|
\fB\-P0\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sP\fR(Scan ping)
|
|
.RS 4
|
|
Cette option indique \(`a Nmap de n\*(Aqeffectuer
|
|
\fIque\fR
|
|
le scan ping (la d\('ecouverte des h\(^otes), puis d\*(Aqafficher la liste des h\(^otes disponibles qui ont r\('epondu au scan\&. Aucun autre test (comme le scan des ports ou la d\('etection d\*(AqOS) n\*(Aqest effectu\('e\&. Ce scan est l\('eg\(`erement plus intrusif que la simple liste, et peut souvent \(^etre utilis\('e dans le m\(^eme but\&. Il permet un survol d\*(Aqun r\('eseau cible sans trop attirer l\*(Aqattention\&. Savoir combien d\*(Aqh\(^otes sont actifs est plus pr\('ecieux pour un attaquant que la simple liste de chaque IP avec son nom d\*(Aqh\(^ote\&.
|
|
.sp
|
|
Les gestionnaires des syst\(`emes appr\('ecient \('egalement cette option\&. Elle peut facilement \(^etre utilis\('ee pour compter le nombre de machines disponibles sur un r\('eseau ou pour contr\(^oler la disponibilit\('e d\*(Aqun serveur\&. Cette option est souvent appel\('ee \(Fo balayage ping \(Fc (ping sweep)\&. Elle est plus fiable que sonder par ping l\*(Aqadresse de diffusion (broadcast) car beaucoup d\*(Aqh\(^otes ne r\('epondent pas \(`a ces requ\(^etes\&.
|
|
.sp
|
|
L\*(Aqoption
|
|
\fB\-sP\fR
|
|
envoie une requ\(^ete d\*(Aqecho ICMP et un paquet TCP sur le port par d\('efaut (80)\&. Lorsqu\*(Aqex\('ecut\('ee par un utilisateur non\-privil\('egi\('e, un paquet SYN est envoy\('e (en utilisant l\*(Aqappel syst\(`eme
|
|
\fBconnect()\fR) sur le port 80 de la cible\&. Lorsqu\*(Aqun utilisateur privil\('egi\('e essaie de scanner des cibles sur un r\('eseau local Ethernet, des requ\(^etes ARP (\fB\-PR\fR) sont utilis\('ees \(`a moins que l\*(Aqoption
|
|
\fB\-\-send\-ip\fRsoit sp\('ecifi\('ee\&. L\*(Aqoption
|
|
\fB\-sP\fR
|
|
peut \(^etre combin\('ee avec chacun des tests de d\('ecouverte des h\(^otes (les options
|
|
\fB\-P*\fR, sauf
|
|
\fB\-P0\fR) pour une plus grand flexibilit\('e\&. D\(`es qu\*(Aqun test de ce type est utilis\('e avec un num\('ero de port, il est pr\('epond\('erante sur les tests par d\('efaut (ACK et requ\(^ete echo)\&. Quand des pare\-feux restrictifs sont pr\('esents entre la machine ex\('ecutant Nmap et le r\('eseau cible, il est recommand\('e d\*(Aqutiliser ces techniques avanc\('ees\&. Sinon des h\(^otes peuvent \(^etre oubli\('es quand le pare\-feu rej\(`ete les paquets ou leurs r\('eponses\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PN\fR (Pas de scan ping)
|
|
.RS 4
|
|
Cette option \('evite compl\(`etement l\*(Aq\('etape de d\('ecouverte des h\(^otes de Nmap\&. En temps normal, Nmap utilise cette \('etape pour d\('eterminer quelles sont les machines actives pour effectuer un scan approfondi\&. Par d\('efaut, Nmap n\*(Aqexamine en profondeur, avec le scan des ports ou la d\('etection de version, que les machines qui sont actives\&. D\('esactiver la d\('etection des h\(^otes avec l\*(Aqoption
|
|
\fB\-P0\fRconduit Nmap \(`a effectuer les scans demand\('es sur
|
|
\fItoutes\fR
|
|
les adresses IP cibles sp\('ecifi\('ees\&. Ainsi, si une adresse IP de classe B (/16) est sp\('ecifi\('ee \(`a la ligne de commande, toutes les 65 536 adresses IP seront scann\('ees\&. Le deuxi\(`eme caract\(`ere dans l\*(Aqoption
|
|
\fB\-P0\fR
|
|
est bien un z\('ero et non pas la lettre O\&. La d\('ecouverte des h\(^otes est \('evit\('ee comme avec la liste simple, mais au lieu de s\*(Aqarr\(^eter et d\*(Aqafficher la liste des cibles, Nmap continue et effectue les fonctions demand\('ees comme si chaque adresse IP \('etait active\&. Pour les machines sur un reseau local en ethernet, un scan ARP scan sera quand m\(^eme effectu\('e (\(`a moins que \-\-send\-ip ne soit sp\('ecifi\('e) parceque Nmap a besoin de l\*(Aqadresse MAC pour les scans ulterieurs\&. Cette option s\*(Aqappelait P0 (avec un z\('ero) auparavant, mais a \('et\('e renomm\('ee afin d\*(Aq\('eviter la confusion avec le Ping par protocoles PO (lettre O)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PS [portlist]\fR(Ping TCP SYN)
|
|
.RS 4
|
|
Cette option envoie un paquet TCP vide avec le drapeau (flag) SYN activ\('e\&. La destination par d\('efaut de ce paquet est le port 80 (configurable \(`a la compilation en changeant la d\('efinition DEFAULT_TCP_PROBE_PORT dans
|
|
nmap\&.h\ \& ), mais un autre port peut \(^etre sp\('ecifi\('e en param\(`etre (ex\&.:\ \&
|
|
\fB\-PS22,23,25,80,113,1050,35000\fR), auquel cas les paquets de tests (probes) seront envoy\('es en parall\(`ele sur chaque port cible\&.
|
|
.sp
|
|
Le drapeau SYN fait croire que vous voulez \('etablir une connexion sur le syst\(`eme distant\&. Si le port de destination est ferm\('e, un paquet RST (reset) est renvoy\('e\&. Si le port s\*(Aqav\(`ere \(^etre ouvert, la cible va entamer la seconde \('etape de l\*(Aq\('etablissement de connexion TCP en 3 temps (TCP 3\-way\-handshake) en r\('epondant par un paquet TCP SYN/ACK\&. La machine ex\('ecutant Nmap avortera alors la connexion en cours d\*(Aq\('etablissement en r\('epondant avec un paquet RST au lieu d\*(Aqun paquet ACK qui finaliserait normalement l\*(Aq\('etablissement de la connexion\&. Le paquet RST est envoy\('e par le noyau (kernel) de la machine ex\('ecutant Nmap en r\('eponse au paquet SYN/ACK inattendu; ce n\*(Aqest pas Nmap lui\-m\(^eme qui l\*(Aq\('emet\&.
|
|
.sp
|
|
Nmap ne tient pas compte si le port est r\('eellement ouvert ou ferm\('e\&. Les paquets RST ou SYN/ACK \('evoqu\('es pr\('ec\('edemment indiquent tout deux que l\*(Aqh\(^ote est disponible et r\('eceptif\&.
|
|
.sp
|
|
Sur les syst\(`emes UNIX, seuls les utilisateurs privil\('egi\('es
|
|
root
|
|
sont g\('en\('eralement capables d\*(Aqenvoyer et de recevoir des paquets TCP bruts (raw packets)\&. Pour les utilisateurs non\-privil\('egi\('es, Nmap contourne cette restriction avec l\*(Aqappel syst\(`eme connect() utilis\('e sur chaque port de la cible\&. Ceci revient \(`a envoyer un paquet SYN sur l\*(Aqh\(^ote cible pour \('etablir une connexion\&. Si connect() r\('eussi ou \('echoue avec ECONNREFUSED, la pile TCP/IP sous\-jacente doit avoir re\(,cu soit un SYN/ACK soit un RST et l\*(Aqh\(^ote est alors consid\('er\('e comme \('etant actif\&. Si la tentative de connexion est toujours en cours jusqu\*(Aq\(`a l\*(Aqexpiration du d\('elai d\*(Aq\('etablissement, l\*(Aqh\(^ote est consid\('er\('e comme \('etant inactif\&. Cette technique est aussi utilis\('ee pour les connexions IPv6, du fait que les paquets bruts IPv6 ne sont pas encore support\('es par Nmap\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PA [portlist]\fR(Ping TCP ACK)
|
|
.RS 4
|
|
Le ping TCP ACK ressemble fortement aux tests SYN pr\('ec\('edemment \('evoqu\('es\&. \(`A la diff\('erence que, comme on l\*(Aqimagine bien, le drapeau TCP ACK est utilis\('e \(`a la place du drapeau SYN\&. Un tel paquet ACK acquitte normalement la r\('eception de donn\('ees dans une connexion TCP pr\('ec\('edemment \('etablie, or ici cette connexion n\*(Aqexiste pas\&. Ainsi, l\*(Aqh\(^ote distant devrait syst\('ematiquement r\('epondre par un paquet RST qui trahirait son existence\&.
|
|
.sp
|
|
L\*(Aqoption
|
|
\fB\-PA\fR
|
|
utilise le m\(^eme port par d\('efaut que le test SYN (80), mais peut aussi prendre une liste de ports de destination dans le m\(^eme format\&. Si un utilisateur non\-privil\('egi\('e essaie cette option, ou si une cible IPv6 est sp\('ecifi\('ee, la technique connect() pr\('ec\('edemment \('evoqu\('ee est utilis\('ee\&. Cette technique est imparfaite car connect() envoie un paquet SYN et pas un ACK\&.
|
|
.sp
|
|
La raison pour laquelle Nmap offre \(`a la fois les tests SYN et ACK est de maximiser les chances de contourner les pare\-feux\&. De nombreux administrateurs configurent leurs routeurs et leurs pare\-feux pour bloquer les paquets entrants SYN sauf ceux destin\('es aux services publics comme les sites Web de l\*(Aqentreprise ou le serveur de messagerie\&. Ceci emp\(^eche les autres connexions entrantes dans l\*(Aqorganisation, tout en permettant un acc\(`es complet en sortie \(`a l\*(AqInternet\&. Cette approche sans \('etat de connexion est peu consommatrice des ressources des pare\-feux/routeurs et est largement support\('ee dans les dispositifs de filtrage mat\('eriels ou logiciels\&. Le pare\-feu logiciel Linux Netfilter/iptables par exemple propose l\*(Aqoption
|
|
\fB\-\-syn\fR
|
|
qui implante cette approche sans \('etat (stateless)\&. Quand de telles r\(`egles de pare\-feu sont mises en place, les paquets de tests SYN (
|
|
\fB\-PS\fR) seront certainement bloqu\('es lorsqu\*(Aqenvoy\('es sur des ports ferm\('es\&. Dans ces cas l\(`a, les tests ACK contournent ces r\(`egles, prenant ainsi toute leur saveur\&.
|
|
.sp
|
|
Un autre type courant de pare\-feux utilise des r\(`egles avec \('etat de connexion (statefull) qui jettent les paquets inattendus\&. Cette fonctionnalit\('e \('etait \(`a la base fr\('equente sur les pare\-feux haut\-de\-gamme, mais elle s\*(Aqest r\('epandue avec le temps\&. Le pare\-feu Linux Netfilter/iptables supporte ce m\('ecanisme gr\(^ace \(`a l\*(Aqoption
|
|
\fB\-\-state\fR
|
|
qui cat\('egorise les paquets selon les \('etats de connexion\&. Un test SYN marchera certainement mieux contre ces syst\(`emes, car les paquets ACK sont g\('en\('eralement consid\('er\('es comme inattendus ou bogu\('es et rejet\('es\&. Une solution \(`a ce dilemme est d\*(Aqenvoyer \(`a la fois des paquets de tests SYN et ACK en utilisant conjointement les options
|
|
\fB\-PS\fR
|
|
et
|
|
\fB\-PA\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PU [portlist]\fR(Ping UDP)
|
|
.RS 4
|
|
Une autre option de d\('ecouverte des h\(^otes est le ping UDP, qui envoie un paquet UDP vide (\(`a moins que l\*(Aqoption \ \&
|
|
\fB\-\-data\-length\fR
|
|
ne soit utilis\('ee) aux ports sp\('ecifi\('es\&. La liste des ports est \('ecrite dans le m\(^eme format que les options
|
|
\fB\-PS\fR
|
|
et
|
|
\fB\-PA\fR
|
|
pr\('ec\('edemment \('evoqu\('ees\&. Si aucun port n\*(Aqest sp\('ecifi\('e, le port par d\('efaut est le 31338\&. Cette valeur par d\('efaut peut \(^etre modifi\('ee \(`a la compilation en changeant la d\('efinition DEFAULT_UDP_PROBE_PORT dans le fichier
|
|
nmap\&.h\&. Un num\('ero de port tr\(`es peu courant est utilis\('e par d\('efaut, car envoyer des paquets sur un port ouvert n\*(Aqest que peu souhaitable pour ce type de scan particulier\&.
|
|
.sp
|
|
Lorsqu\*(Aqon atteint un port ferm\('e sur la cible, le test UDP s\*(Aqattend \(`a recevoir un paquet ICMP \(Fo port unreachable \(Fc en retour\&. Ceci indique \(`a Nmap que la machine est active et disponible\&. De nombreuses autres erreurs ICMP, comme \(Fo host/network unreachable \(Fc ou \(Fo TTL exceeded \(Fc indiquent un h\(^ote inactif ou inaccessible\&. Une absence de r\('eponse est \('egalement interpr\('et\('ee de la sorte\&. Si un port ouvert est atteint, la majorit\('e des services ignorent simplement ce paquet vide et ne r\('epondent rien\&. Ceci est la raison pour laquelle le port par d\('efaut du test est le 31338, qui n\*(Aqa que tr\(`es peu de chances d\*(Aq\(^etre utilis\('e\&. Tr\(`es peu de services, comme chargen, r\('epondront \(`a un paquet UDP vide, d\('evoilant ainsi \(`a Nmap leur pr\('esence\&.
|
|
.sp
|
|
L\*(Aqavantage principal de ce type de scan est qu\*(Aqil permet de contourner les pare\-feux et dispositifs de filtrage qui n\*(Aqobservent que TCP\&. Les routeurs sans\-fil Linksys BEFW11S4 par exemple sont de ce type\&. L\*(Aqinterface externe de cet \('equipement filtre tous les ports TCP par d\('efaut, mais les paquets de tests UDP se voient toujours r\('epondre par des messages ICMP \(Fo port unreachable \(Fc, rendant ainsi l\*(Aq\('equipement d\('esuet\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PE\fR; \fB\-PP\fR; \fB\-PM\fR(Types de ping ICMP)
|
|
.RS 4
|
|
En plus des inhabituels types de d\('ecouverte des h\(^otes TCP et UDP pr\('ec\('edemment \('evoqu\('es, Nmap peut \('egalement envoyer les paquets standard \('emis par l\*(Aq\('eternel programme
|
|
ping\&. Nmap envoie un paquet ICMP type 8 (echo request) aux adresses IP cibles, attendant un type 0 (echo reply) en provenance des h\(^otes disponibles\&. Malheureusement pour les explorateurs de r\('eseaux, de nombreux h\(^otes et pare\-feux bloquent d\('esormais ces paquets, au lieu d\*(Aqy r\('epondre comme indiqu\('e par la
|
|
\m[blue]\fBRFC 1122\fR\m[]\&\s-2\u[3]\d\s+2\&. Pour cette raison, les scans \(Fo purs ICMP \(Fc sont rarement fiables contre des cibles inconnues d\*(AqInternet\&. Cependant, pour les administrateurs surveillants un r\('eseau local cette approche peut \(^etre pratique et efficace\&. Utilisez l\*(Aqoption
|
|
\fB\-PE\fR
|
|
pour activer ce comportement de requ\(^ete echo\&.
|
|
.sp
|
|
M\(^eme si la requ\(^ete echo est le standard de la requ\(^ete ICMP, Nmap ne s\*(Aqarr\(^ete pas l\(`a, Le standard ICMP (\m[blue]\fBRFC 792\fR\m[]\&\s-2\u[4]\d\s+2) sp\('ecifie \('egalement les requ\(^etes \(Fo timestamp \(Fc, \(Fo information \(Fc et \(Fo adress mask \(Fc, dont les codes sont respectivement 13, 15 et 17\&. Si le but avou\('e de ces requ\(^etes est d\*(Aqobtenir des informations comme le masque r\('eseau ou l\*(Aqheure courante, elles peuvent facilement \(^etre utilis\('ees pour la d\('ecouverte des h\(^otes: un syst\(`eme qui y r\('epond est actif et disponible\&. Nmap n\*(Aqimplante actuellement pas les requ\(^etes d\*(Aqinformations, car elles ne sont que rarement support\('ees\&. La RFC 1122 insiste sur le fait
|
|
\(Fo\ \&qu\*(Aqun h\(^ote ne DEVRAIT PAS implanter ces messages\ \&\(Fc\&. Les requ\(^etes timestamp et masque d\*(Aqadresse peuvent \(^etre \('emises avec les options
|
|
\fB\-PP\fR
|
|
et
|
|
\fB\-PM\fR, respectivement\&. Une r\('eponse timestamp (code ICMP 14) ou masque d\*(Aqadresse (code ICMP 18) r\('ev\(`ele que l\*(Aqh\(^ote est disponible\&. Ces deux requ\(^etes peuvent \(^etre tr\(`es utiles quand les administrateurs bloquent sp\('ecifiquement les requ\(^etes echo mais oublient que les autres requ\(^etes ICMP peuvent \(^etre utilis\('ees dans le m\(^eme but\&.
|
|
.RE
|
|
.PP
|
|
\fB\-PR\fR(Ping ARP)
|
|
.RS 4
|
|
Un des usages les plus courant de Nmap est de scanner un LAN Ethernet\&. Sur la plupart des LANS, particuli\(`erement ceux qui utilisent les plages d\*(Aqadresses priv\('ees de la RFC 1918, la grande majorit\('e des adresses IP sont inutilis\('ees \(`a un instant donn\('e\&. Quand Nmap essaie d\*(Aqenvoyer un paquet IP brut (raw packet) comme une requ\(^ete ICMP echo, le syst\(`eme d\*(Aqexploitation doit d\('eterminer l\*(Aqadresse mat\('erielle (ARP) correspondant \(`a la cible IP pour correctement adresser la trame Ethernet\&. Ceci est souvent lent et probl\('ematique, car les syst\(`emes d\*(Aqexploitation n\*(Aqont pas \('et\('e \('ecrits pour g\('erer des millions de requ\(^etes ARP contre des h\(^otes indisponibles en un court intervalle de temps\&.
|
|
.sp
|
|
Les requ\(^etes ARP sont prises en charge par Nmap qui dispose d\*(Aqalgorithmes optimis\('es pour g\('erer le scan ARP\&. Si Nmap re\(,coit une r\('eponse \(`a ces requ\(^etes, il n\*(Aqa pas besoin de poursuivre avec les ping bas\('es sur IP car il sait d\('ej\(`a que l\*(Aqh\(^ote est actif\&. Ceci rend le scan ARP bien plus rapide et fiable que les scans bas\('es sur IP\&. Ainsi, c\*(Aqest le comportement adopt\('e par d\('efaut par Nmap quand il remarque que les h\(^otes scann\('es sont sur le r\('eseau local\&. M\(^eme si d\*(Aqautres types de ping (comme
|
|
\fB\-PE\fR
|
|
ou
|
|
\fB\-PS\fR) sont sp\('ecifi\('es, Nmap utilise ARP pour chaque cible qui sont sur le m\(^eme sous\-r\('eseau que la machine ex\('ecutant Nmap\&. Si vous ne souhaitez vraiment pas utiliser le scan ARP, utilisez l\*(Aqoption
|
|
\fB\-\-send\-ip\fR
|
|
.RE
|
|
.PP
|
|
\fB\-PO\fR[protolist] (IP Protocol Ping)
|
|
.RS 4
|
|
Une autre otpion de d\('ecouverte d\*(Aqh\(^otes est le Ping IPProto, qui envoie des paquets IP avec les num\('eros de protocole(s) sp\('ecifi\('es dans le champ Protocol de l\*(Aqen\-t\(^ete IP\&. La liste des protocoles prend le m\(^eme format qu\*(Aqavec la liste des ports dans les options de d\('ecouverte en TCP et UDP pr\('esent\('ees pr\('ec\('edement\&. Si aucun protocole n\*(Aqest pr\('ecis\('e, par d\('efaut ce sont des paquets IP multiples ICMP (protocol 1), IGMP (protocol 2), et IP\-in\-IP (protocol 4) qui sont envoy\('es\&. Les protocoles par d\('efaut peuvent \(^etre configur\('es \(`a la compilation en changeant DEFAULT_PROTO_PROBE_PORT_SPEC dans nmap\&.h\&. Notez que pour ICMP, IGMP, TCP (protocol 6), et UDP (protocol 17), les paquets sont envoy\('es avec l\*(Aqen\-t\(^ete suppl\('ementaire cependant que les autres protocoles sont envoy\('es sans donn\('ees suppl\('ementaires en sus de l\*(Aqen\-t\(^ete IP (\(`a moins que l\*(Aqoption \-\-data\-length ne soit sp\('ecifi\('ee)\&.
|
|
.sp
|
|
Cette m\('ethode de d\('ecouverte des h\(^otes recherche les r\('eponses dans le m\(^eme protocole que la requ\(`ete, ou le message ICMP Protocol Unreachable qui signifie que le protocole sp\('ecifi\('e n\*(Aqest pas support\('e par l\*(Aqh\(^ote (ce qui implique indirectement qu\*(Aqil est connect\('e)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-reason\fR(Raisons donn\('ees \(`a l\*(Aq\('etat de l\*(Aqh\(^ote et des ports)
|
|
.RS 4
|
|
Montre les raisons pour lesquelles chaque port est d\('esign\('e par un \('etat sp\('ecifique et un h\(^ote connect\('e ou non\&. Cette option affiche le type de paquet qui \(`a d\('etermin\('e l\*(Aq\('etat du port ou de l\*(Aqh\(^ote\&. Par exemple, un paquet RST en provenance d\*(Aqun port ferm\('e ou un echo relpy pour un h\(^ote connect\('e\&. L\*(Aqinformation que Nmap peut fournir est d\('etermin\('ee par le type de scan ou de ping\&. Le scan SYN et le ping SYN (\-sS et \-PT) sont tr\(`es d\('etaill\('es, mais les TCP connect scan et ping (\-sT) sont limit\('es par l\*(Aqimpl\('ementation de l\*(Aqappel syst\(`eme connect\&. Cette fonctionnalit\('e est automatiquement activ\('ee par le mode de deboguage (\-d) et les r\('esultats sont enregistr\('es dans la sortie XML m\(^eme si cette option n\*(Aqest pas sp\('ecifi\('ee\&.
|
|
.RE
|
|
.PP
|
|
\fB\-n\fR(Pas de r\('esolution DNS)
|
|
.RS 4
|
|
Indique \(`a Nmap de ne
|
|
\fIjamais\fR
|
|
faire la r\('esolution DNS inverse des h\(^otes actifs qu\*(Aqil a trouv\('e\&. Comme la r\('esolution DNS est souvent lente, ceci acc\('el\(`ere les choses\&.
|
|
.RE
|
|
.PP
|
|
\fB\-R\fR(R\('esolution DNS pour toutes les cibles)
|
|
.RS 4
|
|
Indique \(`a Nmap de
|
|
\fItoujours\fRfaire la r\('esolution DNS inverse des adresses IP cibles\&. Normalement, ceci n\*(Aqest effectu\('e que si une machine est consid\('er\('ee comme active\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-dns\-servers <serveur1[,serveur2],\&.\&.\&.>\fR (Serveurs \(`a utiliser pour les requ\(`etes DNS inverses)
|
|
.RS 4
|
|
Par defaut Nmap va essayer de d\('eterminer vos serveurs DNS (pour le r\('esolution rDNS) depuis votre fichier resolv\&.conf (UNIX) ou le registre (Win32)\&. En alternative, vous pouvez utiliser cette option pour sp\('ecifier des serveurs alternatifs\&. Cette option n\*(Aqest pas honor\('ee si vous utilisez
|
|
\fB\-\-system\-dns\fR
|
|
ou un scan IPv6 \&. Utiliser plusieurs serveurs DNS est souvent plus rapide, sp\('ecialement si vous utilisez les serveurs d\('edi\('es pour votre espace d\*(Aqadresses cible\&. Cette option peut aussi am\('eliorer la discretion, comme vos requ\(`etes peuvent \(^etre relay\('ees par n\*(Aqimporte quel serveur DNS r\('ecursif sur Internet\&.
|
|
.sp
|
|
Cette option est aussi utile lors du scan de reseaux priv\('es\&. Parfois seuls quelques serveurs de noms fournissent des informations rDNS propres, et vous pouvez m\(^eme ne pas savoir o\(`u ils sont\&. Vous pouvez scanner le reseau sur le port 53 (peut \(^etre avec une d\('etection de version), puis essayer un list scan (\fB\-sL\fR) sp\('ecifiant chaque serveur de nom un a la fois avec
|
|
\fB\-\-dns\-servers\fR
|
|
jusqu\*(Aqa en trouver un qui fonctionne\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-system_dns\fR(Utilise la r\('esolution DNS du syst\(`eme)
|
|
.RS 4
|
|
Par d\('efaut, Nmap r\('esout les adresses IP en envoyant directement les requ\(^etes aux serveurs de noms configur\('es sur votre machine et attend leurs r\('eponses\&. De nombreuses requ\(^etes (souvent des douzaines) sont effectu\('ees en parall\(`ele pour am\('eliorer la performance\&. Sp\('ecifiez cette option si vous souhaitez utiliser la r\('esolution de noms de votre syst\(`eme (une adresse IP \(`a la fois par le biais de l\*(Aqappel getnameinfo())\&. Ceci est plus lent est rarement utile \(`a moins qu\*(Aqil n\*(Aqy ait une proc\('edure erron\('ee dans le code de Nmap concernant le DNS \-\- nous contacter s\*(Aqil vous pla\(^it dans cette \('eventualit\('e\&. La r\('esolution syst\(`eme est toujours utilis\('ee pour les scans IPv6\&.
|
|
.RE
|
|
.SH "LES BASES DU SCAN DE PORTS"
|
|
.PP
|
|
M\(^eme si le nombre de fonctionnalit\('es de Nmap a consid\('erablement augment\('e au fil des ans, il reste un scanner de ports efficace, et cela reste sa fonction principale\&. La commande de base
|
|
\fBnmap \fR\fB\fItarget\fR\fR\fB \fR
|
|
scanne plus de 1 660 ports TCP de l\*(Aqh\(^ote
|
|
\fItarget\fR\&. Alors que de nombreux autres scanners de ports ont partitionn\('e les \('etats des ports en ouverts ou ferm\('es, Nmap a une granularit\('e bien plus fine\&. Il divise les ports selon six \('etats:
|
|
ouvert (open),
|
|
ferm\('e (closed),
|
|
filtr\('e (filtered),
|
|
non\-filtr\('e (unfiltered),
|
|
ouvert|filtr\('e (open|filtered), et
|
|
ferm\('e|filtr\('e (closed|filtered)\&.
|
|
.PP
|
|
Ces \('etats ne font pas partie des propri\('et\('es intrins\(`eques des ports eux\-m\(^emes, mais d\('ecrivent comment Nmap les per\(,coit\&. Par exemple, un scan Nmap depuis le m\(^eme r\('eseau que la cible pourrait voir le port 135/tcp comme ouvert alors qu\*(Aqun scan au m\(^eme instant avec les m\(^emes options au travers d\*(AqInternet pourrait voir ce m\(^eme port comme
|
|
filtr\('e\&.
|
|
.PP
|
|
\fBLes six \('etats de port reconnus par Nmap \fR
|
|
.PP
|
|
ouvert (open)
|
|
.RS 4
|
|
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\('ecurit\('e savent pertinemment que chaque port ouvert est un boulevard pour une attaque\&. Les attaquants et les pen\-testers veulent exploiter ces ports ouverts, tandis que les administrateurs essaient de les fermer ou de les prot\('eger avec des pare\-feux sans g\(^ener leurs utilisateurs l\('egitimes\&. Les ports ouverts sont \('egalement int\('eressants pour des scans autres que ceux orient\('es vers la s\('ecurit\('e car ils indiquent les services disponibles sur le r\('eseau\&.
|
|
.RE
|
|
.PP
|
|
ferm\('e (closed)
|
|
.RS 4
|
|
Un port ferm\('e est accessible (il re\(,coit et r\('epond aux paquets \('emis par Nmap), mais il n\*(Aqy a pas d\*(Aqapplication en \('ecoute\&. Ceci peut s\*(Aqav\('erer utile pour montrer qu\*(Aqun h\(^ote est actif (d\('ecouverte d\*(Aqh\(^otes ou scan ping), ou pour la d\('etection de l\*(AqOS\&. Comme un port ferm\('e est accessible, il peut \(^etre int\('eressant de le scanner de nouveau plus tard au cas o\(`u il s\*(Aqouvrirait\&. Les administrateurs pourraient d\('esirer bloquer de tels ports avec un pare\-feu, mais ils appara\(^itraient alors dans l\*(Aq\('etat filtr\('e d\('ecrit dans la section suivante\&.
|
|
.RE
|
|
.PP
|
|
filtr\('e (filtered)
|
|
.RS 4
|
|
Nmap ne peut pas toujours d\('eterminer si un port est ouvert car les dispositifs de filtrage des paquets emp\(^echent les paquets de tests (probes) d\*(Aqatteindre leur port cible\&. Le dispositif de filtrage peut \(^etre un pare\-feu d\('edi\('e, des r\(`egles de routeurs filtrants ou un pare\-feu logiciel\&. Ces ports ennuient les attaquants car ils ne fournissent que tr\(`es peu d\*(Aqinformations\&. Quelques fois ils r\('epondent avec un message d\*(Aqerreur ICMP de type 3 code 13 (\(Fo destination unreachable: communication administratively prohibited \(Fc), mais les dispositifs de filtrage qui rejettent les paquets sans rien r\('epondre sont bien plus courants\&. Ceci oblige Nmap \(`a essayer plusieurs fois au cas o\(`u ces paquets de tests seraient rejet\('es \(`a cause d\*(Aqune surcharge du r\('eseau et pas du filtrage\&. Ceci ralenti terriblement les choses\&.
|
|
.RE
|
|
.PP
|
|
non\-filtr\('e (unfiltered)
|
|
.RS 4
|
|
L\*(Aq\('etat non\-filtr\('e signifie qu\*(Aqun port est accessible, mais que Nmap est incapable de d\('eterminer s\*(Aqil est ouvert ou ferm\('e\&. Seul le scan ACK, qui est utilis\('e pour d\('eterminer les r\(`egles des pare\-feux, cat\('egorise les ports dans cet \('etat\&. Scanner des ports non\-filtr\('es avec un autre type de scan, comme le scan Windows, SYN ou FIN peut aider \(`a savoir si un port est ouvert ou pas\&.
|
|
.RE
|
|
.PP
|
|
ouvert|filtr\('e (open|filtered)
|
|
.RS 4
|
|
Nmap met dans cet \('etat les ports dont il est incapable de d\('eterminer l\*(Aq\('etat entre ouvert et filtr\('e\&. Ceci arrive pour les types de scans o\(`u les ports ouverts ne renvoient pas de r\('eponse\&. L\*(Aqabsence de r\('eponse peut aussi signifier qu\*(Aqun dispositif de filtrage des paquets a rejet\('e le test ou les r\('eponses attendues\&. Ainsi, Nmap ne peut s\*(Aqassurer ni que le port est ouvert, ni qu\*(Aqil est filtr\('e\&. Les scans UDP, protocole IP, FIN, Null et Xmas cat\('egorisent les ports ainsi\&.
|
|
.RE
|
|
.PP
|
|
ferm\('e|filtr\('e (closed|filtered)
|
|
.RS 4
|
|
Cet \('etat est utilis\('e quand Nmap est incapable de d\('eterminer si un port est ferm\('e ou filtr\('e\&. Cet \('etat est seulement utilis\('e par le scan Idle bas\('e sur les identifiants de paquets IP\&.
|
|
.RE
|
|
.SH "TECHNIQUES DE SCAN DE PORTS"
|
|
.PP
|
|
Comme un d\('ebutant t\(^achant d\*(Aqeffectuer une r\('eparation automobile, je peux me battre pendant des heures en essayant d\*(Aqutiliser convenablement mes rudimentaires outils (marteau, clefs, etc\&.) pour la t\(^ache \(`a laquelle je me suis attabl\('e\&. Une fois que j\*(Aqai lamentablement \('echou\('e et que j\*(Aqai fait remorquer ma guimbarde par un vrai m\('ecanicien, \(`a chaque fois il farfouille dans sa grosse caisse \(`a outils pour y trouver le parfait bidule qui, d\*(Aqun coup de cuill\(`ere \(`a pot, r\('epare le truc\&. L\*(Aqart du scan de port, c\*(Aqest la m\(^eme chose\&. Les experts connaissent des douzaines de techniques de scan et choisissent la bonne (ou une combinaison) pour une t\(^ache donn\('ee\&. D\*(Aqun autre c\(^ot\('e, les utilisateurs inexp\('eriment\('es et les script kiddies essaient de tout r\('esoudre avec le scan SYN par d\('efaut\&. Comme Nmap est gratuit, la seule barri\(`ere \(`a franchir pour atteindre la ma\(^itrise du scan est la connaissance\&. C\*(Aqest bien mieux que l\*(Aqautomobile, o\(`u il faut une grande exp\('erience pour d\('eterminer que vous avez besoin d\*(Aqune plieuse \(`a tablier hydraulique, mais o\(`u quand bien m\(^eme il faut encore payer des centaines d\*(Aqeuros pour en disposer\&.
|
|
.PP
|
|
La plupart des types de scans ne sont disponibles que pour les utilisateurs privil\('egi\('es\&. Ceci est d\(^u au fait qu\*(Aqils \('emettent et re\(,coivent des paquets bruts (raw), qui n\('ecessitent les droits root sur les syst\(`emes UNIX\&. L\*(Aqutilisation d\*(Aqun compte administrateur est conseill\('e sous Windows, bien que Nmap puisse fonctionner avec des utilisateurs non\-privil\('egi\('es si WinPcap est d\('ej\(`a charg\('e avec l\*(AqOS\&. Ce besoin des droits root \('etait une s\('erieuse restriction quand Nmap a \('et\('e diffus\('e en 1997, car beaucoup d\*(Aqutilisateurs avaient seulement acc\(`es \(`a des comptes Internet partag\('es\&. Maintenant, le monde est diff\('erent\&. Les ordinateurs sont moins chers, bien plus de gens disposent d\*(Aqun acc\(`es 24/24 direct \(`a Internet et les syst\(`emes UNIX de bureau (comme Linux et Mac OS X) sont r\('epandus\&. Une version Windows de Nmap est d\('esormais disponible, permettant ainsi de le lancer sur encore plus de machines\&. Pour toutes ces raisons, les utilisateurs ont bien moins besoin de lancer Nmap depuis des comptes Internet limit\('es\&. Ceci est heureux, car les options privil\('egi\('es rendent Nmap bien plus puissant et flexible\&.
|
|
.PP
|
|
Si Nmap essaie de produire des r\('esultats pr\('ecis, il faut garder \(`a l\*(Aqesprit que toute sa perspicacit\('e est bas\('ee sur les paquets renvoy\('es par les machines cibles (ou les pare\-feux qui les prot\(`egent)\&. De tels h\(^otes ne sont pas toujours dignes de confiance et peuvent r\('epondre dans le but de d\*(Aqinduire Nmap en erreur\&. Les h\(^otes qui ne respectent pas les RFCs et ne r\('epondent pas comme ils devraient sont encore plus courants\&. Les scans FIN, Null et Xmas sont les plus sensibles \(`a ce probl\(`eme\&. Ces points sont sp\('ecifiques \(`a certains types de scan et sont donc abord\('es dans leur section propre de la documentation\&.
|
|
.PP
|
|
Cette section documente la douzaine de techniques de scan de ports g\('er\('ees par Nmap\&. Les m\('ethodes ne peuvent pas \(^etre utilis\('es simultan\('ement, except\('e le scan UDP (\fB\-sU\fR) qui peut \(^etre combin\('e avec chacun des types de scan TCP\&. A titre d\*(Aqaide m\('emoire, les options de type de scan sont de la forme
|
|
\fB\-s\fR\fB\fIC\fR\fR\fB \fR, o\(`u
|
|
\fIC\fRest un caract\(`ere pr\('epond\('erant dans le nom du scan, souvent le premier\&. La seule exception est le d\('esuet scan par rebond FTP (\fB\-b\fR)\&. Par d\('efaut, Nmap effectue un scan SYN, bien qu\*(Aqil y substitue un scan connect() si l\*(Aqutilisateur ne dispose pas des droits suffisants pour envoyer des paquets bruts (qui requi\(`erent les droits root sous UNIX) ou si des cibles IPv6 sont sp\('ecifi\('ees\&. Des scans list\('es dans cette section, les utilisateurs non\-privil\('egi\('es peuvent seulement ex\('ecuter les scans connect() et le scan par rebond FTP\&.
|
|
.PP
|
|
\fB\-sS\fR(Scan TCP SYN)
|
|
.RS 4
|
|
Le scan SYN est celui par d\('efaut et le plus populaire pour de bonnes raisons\&. Il peut \(^etre ex\('ecut\('e rapidement et scanner des milliers de ports par seconde sur un r\('eseau rapide lorsqu\*(Aqil n\*(Aqest pas entrav\('e par des pare\-feux\&. Le scan SYN est relativement discret et furtif, vu qu\*(Aqil ne termine jamais les connexions TCP\&. Il marche \('egalement contre toute pile respectant TCP, au lieu de d\('ependre des particularit\('es environnementales sp\('ecifiques comme les scans Fin/Null/Xmas, Maimon ou Idle le sont\&. Il permet de plus une diff\('erentiation fiable entre les \('etats
|
|
ouvert,
|
|
ferm\('e
|
|
et
|
|
filtr\('e\&.
|
|
.sp
|
|
Cette technique est souvent appel\('ee le scan demi\-ouvert (half\-open scanning), car il n\*(Aq\('etabli pas pleinement la connexion TCP\&. Il envoie un paquet SYN et attend sa r\('eponse, comme s\*(Aqil voulait vraiment ouvrir une connexion\&. Une r\('eponse SYN/ACK indique que le port est en \('ecoute (ouvert), tandis qu\*(Aqune RST (reset) indique le contraire\&. Si aucune r\('eponse n\*(Aqest re\(,cue apr\(`es plusieurs essais, le port est consid\('er\('e comme \('etant filtr\('e\&. Le port l\*(Aqest \('egalement si un message d\*(Aqerreur \(Fo unreachable ICMP (type 3, code 1,2, 3, 9, 10 ou 13) \(Fc est re\(,cu\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sT\fR(Scan TCP connect())
|
|
.RS 4
|
|
Le scan TCP connect() est le type de scan par d\('efaut quand le SYN n\*(Aqest pas utilisable\&. Tel est le cas lorsque l\*(Aqutilisateur n\*(Aqa pas les privil\(`eges pour les paquets bruts (raw packets) ou lors d\*(Aqun scan de r\('eseaux IPv6\&. Plut\(^ot que d\*(Aq\('ecrire des paquets bruts comme le font la plupart des autres types de scan, Nmap demande au syst\(`eme d\*(Aqexploitation qui l\*(Aqex\('ecute d\*(Aq\('etablir une connexion au port de la machine cible gr\(^ace \(`a l\*(Aqappel syst\(`eme
|
|
connect()\&. C\*(Aqest le m\(^eme appel syst\(`eme haut\-niveau qui est appel\('e par les navigateurs Web, les clients P2P et la plupart des applications r\('eseaux qui veulent \('etablir une connexion\&. Cet appel fait partie de l\*(Aqinterface d\*(Aqapplication connue sous le nom de \(Fo Berkeley Sockets API \(Fc\&. Au lieu de lire les r\('eponses brutes sur le support physique, Nmap utilise cette application API pour obtenir l\*(Aq\('etat de chaque tentative de connexion\&.
|
|
.sp
|
|
Si le scan SYN est disponible, il vaut mieux l\*(Aqutiliser\&. Nmap a bien moins de contr\(^oles sur l\*(Aqappel syst\(`eme haut niveau \ \&
|
|
connect()
|
|
que sur les paquets bruts, ce qui le rend moins efficace\&. L\*(Aqappel syst\(`eme compl\(`ete les connexions ouvertes sur les ports cibles au lieu de les annuler lorsque la connexion est \(`a demie ouverte, comme le fait le scan SYN\&. Non seulement c\*(Aqest plus long et demande plus de paquets pour obtenir la m\(^eme information, mais de plus la probabilit\('e que les cibles activent la connexion est plus grande\&. Un IDS d\('ecent le fera, mais la plupart des machines ne disposent pas de ce syst\(`eme d\*(Aqalarme\&. De nombreux services sur les syst\(`emes UNIX standards noteront cette connexion dans le journal, accompagn\('e d\*(Aqun message d\*(Aqerreur sibyllin si Nmap ouvre puis referme la connexion sans n\*(Aqenvoyer aucune donn\('ee\&. Les services r\('eseaux les plus piteux risquent m\(^eme de tomber en panne, mais c\*(Aqest assez rare\&. Un administrateur qui verrait un tas de tentatives de connexions dans ses journaux en provenance d\*(Aqune seule machine devrait se rendre compte qu\*(Aqil a \('et\('e scann\('e\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sU\fR(Scan UDP)
|
|
.RS 4
|
|
M\(^eme si les services les plus connus d\*(AqInternet son bas\('es sur le protocole TCP, les services
|
|
\m[blue]\fBUDP\fR\m[]\&\s-2\u[5]\d\s+2
|
|
sont aussi largement utilis\('es\&. DNS, SNMP ou DHCP (ports 53, 161/162 et 67/68) sont les trois exemples les plus courants\&. Comme le scan UDP est g\('en\('eralement plus lent et plus difficile que TCP, certains auditeurs de s\('ecurit\('e les ignorent\&. C\*(Aqest une erreur, car les services UDP exploitables sont courants et les attaquants eux ne les ignoreront pas\&. Par chance, Nmap peut aider \(`a r\('epertorier les ports UDP\&.
|
|
.sp
|
|
Le scan UDP est activ\('e avec l\*(Aqoption\fB\-sU\fR\&. Il peut \(^etre combin\('e avec un scan TCP, comme le scan SYN (\ \&
|
|
\fB\-sS\fR), pour v\('erifier les deux protocoles lors de la m\(^eme ex\('ecution de Nmap\&.
|
|
.sp
|
|
Le scan UDP envoie un en\-t\(^ete UDP (sans donn\('ees) \(`a chaque port vis\('e\&. Si un message ICMP \(Fo port unreachable (type 3, code 3) \(Fc est renvoy\('e, le port est alors
|
|
ferm\('e\&. Les autres messages d\*(Aqerreur \(Fo unreachable ICMP (type 3, codes 1, 2, 9, 10, or 13) \(Fc rendront le port
|
|
filtr\('e\&. \(`A l\*(Aqoccasion, il arrive qu\*(Aqun service r\('epond par un paquet UDP, prouvant que le port est dans l\*(Aq\('etat
|
|
ouvert\&. Si aucune r\('eponse n\*(Aqest renvoy\('ee apr\(`es plusieurs essais, le port est consid\('er\('e comme \('etant
|
|
ouvert|filtr\('e\&. Cela signifie que le port peut \(^etre soit ouvert, soit qu\*(Aqun dispositif de filtrage bloque les communications\&. Le scan de versions (\ \&
|
|
\fB\-sV\fR) peut \(^etre utilis\('e pour diff\('erencier les ports ouverts de ceux filtr\('es\&.
|
|
.sp
|
|
Une des grandes difficult\('es avec le scan UDP est de l\*(Aqex\('ecuter rapidement\&. Les ports ouverts et filtr\('es ne renvoient que rarement des r\('eponses, laissant Nmap expirer son d\('elai de retransmission au cas o\(`u les paquets se soient perdus\&. Les ports ferm\('es posent encore un plus grand probl\(`eme: ils renvoient normalement une erreur ICMP \(Fo port unreachable \(Fc\&. Mais \(`a la diff\('erence des paquets RST renvoy\('es par les ports TCP ferm\('es en r\('eponse \(`a un scan SYN ou \(`a un connect(), de nombreux h\(^otes limitent par d\('efaut la cadence d\*(Aq\('emission de ces messages\&. Linux et Solaris \('etant particuli\(`erement stricts \(`a ce sujet\&. Par exemple, le kernel 2\&.4\&.20 limite cette cadence des destinations inaccessibles (\(Fo destination unreachable \(Fc) \(`a un par seconde (cf\&.net/ipv4/icmp\&.c)\&.
|
|
.sp
|
|
Nmap d\('etecte cette limitation de fr\('equence et s\*(Aqy ralenti conform\('ement afin d\*(Aq\('eviter de saturer le r\('eseau avec des paquets inutiles que la machine cible rejettera\&. Malheureusement, une limitation \(`a la Linux d\*(Aqun paquet par seconde fera qu\*(Aqun scan des 65 536 ports prendra plus de 18 heures\&. Les id\('ees pour acc\('el\('erer les scans UDP incluent le scan des cibles en parall\(`ele, ne scanner que les ports les plus courants en premier, scanner derri\(`ere le pare\-feu et utiliser l\*(Aqoption
|
|
\fB\-\-host\-timeout\fRpour \('eviter les h\(^otes les plus lents\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sN\fR; \fB\-sF\fR; \fB\-sX\fR (Scans TCP Null, FIN et Xmas)
|
|
.RS 4
|
|
Ces trois types de scans (d\*(Aqautres sont possibles en utilisant l\*(Aqoption
|
|
\fB\-\-scanflags\fR
|
|
d\('ecrite dans la section suivante) exploitent une subtile faille de la
|
|
\m[blue]\fBRFC TCP\fR\m[]\&\s-2\u[6]\d\s+2
|
|
pour diff\('erencier les ports entre
|
|
ouverts
|
|
et
|
|
ferm\('es\&. La page 65 indique que
|
|
\(Fo\ \&si le port [de destination] est dans l\*(Aq\('etat ferm\('e\&.\&.\&. un segment ne contenant pas le drapeau RST provoque l\*(Aq\('emission d\*(Aqun paquet RST comme r\('eponse\&.\ \&\(Fc\&. La page suivante indique que pour les paquets envoy\('es \(`a des ports sans aucun des drapeaux SYN, RST ou ACK activ\('es:
|
|
\(Fo\ \&il est peut vraisemblable que cela arrive, mais si cela est le cas, il faut rejeter le segment\&.\ \&\(Fc
|
|
.sp
|
|
Pour les syst\(`emes respectant ce texte de la RFC, chaque paquet ne contenant ni SYN, ni RST, ni ACK se voit renvoy\('e un RST si le port est ferm\('e et aucune r\('eponse si le port est ouvert\&. Tant qu\*(Aqaucun de ces drapeaux n\*(Aqest utilis\('e, toute combinaison des trois autres (FIN, PSH et URG) son valides\&. Nmap exploite cela avec les trois types de scans:
|
|
.PP
|
|
Scan Null (\fB\-sN\fR)
|
|
.RS 4
|
|
N\*(Aqactive aucun des bits (les drapeaux de l\*(Aqen\-t\(^ete TCP vaut 0)\&.
|
|
.RE
|
|
.PP
|
|
Scan FIN (\fB\-sF\fR)
|
|
.RS 4
|
|
N\*(Aqactive que le bit FIN\&.
|
|
.RE
|
|
.PP
|
|
Scan Xmas (\fB\-sX\fR)
|
|
.RS 4
|
|
Active les drapeaux FIN, PSH et URG, illuminant le paquet comme un arbre de No\(:el (NDT: la fracture cognitive entre la culture anglo\-saxonne et fran\(,caise se ressent fortement dans cette traduction\&.\&.\&.)\&.
|
|
.RE
|
|
.sp
|
|
Ces trois types de scan ont exactement le m\(^eme comportement, sauf pour les drapeaux TCP utilis\('es dans des paquets de tests (probes packets)\&. Si un RST est re\(,cu, le port est consid\('er\('e comme \('etant
|
|
ferm\('e, tandis qu\*(Aqune absence de r\('eponse signifiera qu\*(Aqil est dans l\*(Aq\('etat
|
|
ouvert|filtr\('e\&. Le port est marqu\('e comme \ \&
|
|
filtr\('e
|
|
si un message d\*(Aqerreur ICMP \(Fo unreachable (type 3, code 1, 2, 3, 9, 10 ou 13) \(Fc est re\(,cu\&.
|
|
.sp
|
|
L\*(Aqavantage principal de ces types de scans est qu\*(Aqils peuvent furtivement traverser certains pare\-feux ou routeurs filtrants sans \('etat de connexion (non\-statefull)\&. Un autre avantage est qu\*(Aqils sont m\(^eme un peu plus furtifs que le scan SYN\&. N\*(Aqy comptez pas trop dessus cependant \-\- la plupart des IDS modernes sont configur\('es pour les d\('etecter\&. L\*(Aqinconv\('enient majeur est que tous les syst\(`emes ne respectent pas la RFC 793 \(`a la lettre\&. Plusieurs syst\(`emes renvoient des RST aux paquets quelque soit l\*(Aq\('etat du port de destination, qu\*(Aqil soit ouvert ou pas\&. Ceci fait que tous les ports sont consid\('er\('es commeferm\('e\&. Les plus connus des syst\(`emes qui ont ce comportement sont Microsoft Windows, plusieurs \('equipements Cisco, BSDI et IBM OS/400\&. Ce type de scan fonctionne cependant tr\(`es bien contre la plupart des syst\(`emes bas\('es sur UNIX\&. Un autre d\('esagr\('ement de ce type de scan et qu\*(Aqils ne peuvent pas distinguer les ports
|
|
ouvertsde certains autres qui sont
|
|
filtr\('es, vous laissant face \(`a un laconique
|
|
ouvert|filtr\('e\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sA\fR(Scan TCP ACK)
|
|
.RS 4
|
|
Ce type de scan est diff\('erent des autres abord\('es jusqu\*(Aqici, dans le sens o\(`u ils ne peuvent pas d\('eterminer si un port est\ \&
|
|
ouvert(ni m\(^eme
|
|
ouvert|filtr\('e)\&. Il est utilis\('e pour \('etablir les r\(`egles des pare\-feux, d\('eterminant s\*(Aqils sont avec ou sans \('etats (statefull/stateless) et quels ports sont filtr\('es\&.
|
|
.sp
|
|
Le scan ACK n\*(Aqactive que le drapeau ACK des paquets (\(`a moins que vous n\*(Aqutilisiez l\*(Aqoption
|
|
\fB\-\-scanflags\fR)\&. Les syst\(`emes non\-filtr\('es r\('eagissent en retournant un paquet RST\&. Nmap consid\(`ere alors le port comme
|
|
non\-filtr\('e, signifiant qu\*(Aqil est accessible avec un paquet ACK, mais sans savoir s\*(Aqil est r\('eellement\ \&
|
|
ouvert
|
|
ou
|
|
ferm\('e\&. Les ports qui ne r\('epondent pas ou renvoient certains messages d\*(Aqerreur ICMP (type 3, code 1, 2, 3, 9, 10, ou 13), sont consid\('er\('es comme
|
|
filtr\('es\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sW\fR(Scan de fen\(^etre TCP)
|
|
.RS 4
|
|
Le scan de fen\(^etre TCP est exactement le m\(^eme que le scan ACK \(`a la diff\('erence pr\(`es qu\*(Aqil exploite un d\('etail de l\*(Aqimpl\('ementation de certains syst\(`emes pour identifier les ports ferm\('es des autres, au lieu de toujours afficher
|
|
non\-filtr\('elorsqu\*(Aqun RST est renvoy\('e\&. Sur certains syst\(`emes, les ports ouverts utilisent une taille de fen\(^etre TCP positive (m\(^eme pour les paquets RST), tandis que les ports ferm\('es ont une fen\(^etre de taille nulle\&. Ainsi, au lieu de toujours afficher
|
|
non\-filtr\('e
|
|
lorsqu\*(Aqun RST est re\(,cu, le scan de fen\(^etre indique que le port est
|
|
ouvert
|
|
ou
|
|
ferm\('e
|
|
selon que la taille de fen\(^etre TCP de ce paquet RST est respectivement positive ou nulle\&.
|
|
.sp
|
|
Ce scan repose sur un d\('etail d\*(Aqimpl\('ementation d\*(Aqune minorit\('e de syst\(`emes Internet, vous ne pouvez donc pas toujours vous y fier\&. Les syst\(`emes qui ne le supportent pas vont certainement se voir consid\('er\('es leurs ports comme
|
|
ferm\('es\&. Bien s\(^ur, il se peut que la machine n\*(Aqait effectivement aucun port ouvert\&. Si la plupart des ports scann\('es sont
|
|
ferm\('es
|
|
mais que quelques\-uns courants, comme le 22, 25 ou le 53, sont\ \&
|
|
filtr\('es, le syst\(`eme est vraisemblablement pr\('edispos\('e \(`a ce type de scan\&. Quelquefois, les syst\(`emes ont le comportement exactement inverse\&. Si votre scan indique que 1 000 ports sont ouverts et que 3 seulement sont ferm\('es ou filtr\('es, ces trois derniers sont certainement ceux qui sont ouverts\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sM\fR(Scan TCP Maimon)
|
|
.RS 4
|
|
Le scan Maimon est nomm\('e ainsi d\*(Aqapr\(`es celui qui l\*(Aqa d\('ecouvert, Uriel Maimon\&. Il a d\('ecrit cette technique dans le num\('ero 49 de Phrack Magazine (Novembre 1996)\&. Nmap, qui inclut cette technique, a \('et\('e publi\('e deux num\('eros plus tard\&. Cette technique est la m\(^eme que les scans NUll, FIN et Xmas, \(`a la diff\('erence pr\(`es que le paquet de test est ici un FIN/ACK\&. Conform\('ement \(`a la RFC 793 (TCP), un paquet RST devrait \(^etre renvoy\('e comme r\('eponse \(`a un tel paquet, et ce, que le port soit ouvert ou non\&. Uriel a cependant remarqu\('e que de nombreux syst\(`emes bas\('es sur BSD rejettent tout bonnement le paquet si le port est ouvert\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-scanflags\fR(Scan TCP personnalis\('e)
|
|
.RS 4
|
|
Les utilisateurs r\('eellement experts de Nmap ne veulent pas se limiter aux seuls types de scans propos\('es\&. L\*(Aqoption
|
|
\fB\-\-scanflags\fRvous permet de cr\('eer votre propre type de scan en sp\('ecifiant vos propres combinaisons de drapeaux TCP\&. Laisser courir votre imagination, tout en contournant les syst\(`emes de d\('etection d\*(Aqintrusion dont les vendeurs n\*(Aqont fait qu\*(Aqajouter des r\(`egles sp\('ecifiques d\*(Aqapr\(`es la documentation Nmap!
|
|
.sp
|
|
L\*(Aqargument de l\*(Aqoption
|
|
\fB\-\-scanflags\fR
|
|
peut \(^etre soit un nombre comme 9 (PSH et FIN), mais l\*(Aqutilisation des noms symboliques est plus facile\&. M\('elanger simplement les drapeaux
|
|
URG,
|
|
ACK,
|
|
PSH,
|
|
RST,
|
|
SYN
|
|
et
|
|
FIN\&. Par exemple,
|
|
\fB\-\-scanflags URGACKPSHRSTSYNFIN\fR
|
|
les activent tous, bien que cela ne soit pas tr\(`es utile pour effectuer un scan\&. L\*(Aqordre dans lequel les drapeaux sont sp\('ecifi\('es n\*(Aqa pas d\*(Aqimportance\&.
|
|
.sp
|
|
En sus de la sp\('ecification des drapeaux d\('esir\('es, vous pouvez sp\('ecifier \('egalement un type de scan TCP (comme
|
|
\fB\-sA\fR
|
|
ou
|
|
\fB\-sF\fR)\&. Ce type de scan de base indique \(`a Nmap comment interpr\('eter les r\('eponses\&. Par exemple, un scan SYN consid\(`ere que l\*(Aqabsence de r\('eponse indique qu\*(Aqun port est
|
|
filtr\('e, tandis qu\*(Aqun scan FIN consid\(`erera la m\(^eme absence comme un port
|
|
ouvert|filtr\('e\&. Nmap se comportera de la m\(^eme fa\(,con que le type de scan de base, \(`a la diff\('erence pr\(`es qu\*(Aqil utilisera les drapeaux TCP que vous avez sp\('ecifi\('e \(`a la place\&. Si vous n\*(Aqen sp\('ecifiez pas, le type de scan SYN par d\('efaut sera utilis\('e\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sI <zombie host[:probeport]>\fR(Scan passif \-\- idlescan)
|
|
.RS 4
|
|
Cette m\('ethode de scan avanc\('e permet de faire un v\('eritable scan de port TCP en aveugle, (dans le sens o\(`u aucun paquet n\*(Aqest envoy\('e directement \(`a la cible depuis votre vraie adresse IP)\&. En effet, la technique employ\('ee consiste \(`a r\('ecolter des informations sur les ports ouverts de la cible en utilisant un exploit bas\('e sur la pr\('edictibilit\('e de la g\('en\('eration des identifiants de fragmentation IP de l\*(Aqh\(^ote relais (le zombie)\&. Les syst\(`emes IDS consid\('ereront que le scan provient de la machine zombie que vous avez sp\('ecifi\('e (qui doit remplir certains crit\(`eres)\&. Le m\('ecanisme de cette incroyable technique est trop complexe pour \(^etre expliqu\('e en d\('etail dans ce guide; un papier informel a \('et\('e post\('e pour rendre compte de tous ces d\('etails:\m[blue]\fB\%https://nmap.org/book/idlescan.html\fR\m[]\&.
|
|
.sp
|
|
En plus de son incroyable furtivit\('e (en raison du caract\(`ere aveugle de la technique), ce type de scan permet de d\('eterminer les relations de confiance entre les machines\&. La liste des ports ouverts est \('etablie
|
|
\fIdu point de vue de l\*(Aqh\(^ote zombie\&.\fR
|
|
Ainsi, vous pouvez essayer de scanner une cible en utilisant diff\('erents zombies pour lesquels vous pensez qu\*(Aqil existe une relation de confiance entre eux et la cible (d\*(Aqapr\(`es les r\(`egles des dispositifs de filtrage)\&.
|
|
.sp
|
|
Vous pouvez ajouter les deux points (:) suivis d\*(Aqun num\('ero de port de l\*(Aqh\(^ote zombie si vous souhaitez tester les changements d\*(Aqidentifiants IP sur un port particulier du zombie\&. Par d\('efaut, Nmap utilisera le port utilis\('e pour les pings tcp (le port 80)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sO\fR(Scan du protocole IP)
|
|
.RS 4
|
|
Le scan du protocole IP permet de d\('eterminer quels protocoles IP (TCP, ICMP, IGMP, etc\&.) sont support\('es par les cibles\&. Ce n\*(Aqest donc pas techniquement un scan de ports, car Nmap essaie les diff\('erents num\('eros de protocoles IP \(`a la place des num\('eros de ports TCP ou UDP\&. Ce scan permet n\('eanmoins d\*(Aqutiliser l\*(Aqoption
|
|
\fB\-p\fR
|
|
pour s\('electionner les num\('eros de protocoles \(`a scanner \-\- le rapport de Nmap \('etant toujours dans le style habituel des tables de ports \-\- et utilise le m\(^eme moteur de scan utilis\('e pour le scan de ports\&. Ainsi, cette technique est suffisamment proche du scan de port pour \(^etre pr\('esent\('e ici\&.
|
|
.sp
|
|
Au del\(`a de son int\('er\(^et propre, le scan de protocoles illustre la puissance des logiciels en libre acc\(`es\&. L\*(Aqid\('ee de base est assez simple: je n\*(Aqavais m\(^eme pas particuli\(`erement pens\('e \(`a l\*(Aqajouter ni re\(,cu de requ\(^ete me demandant une telle fonctionnalit\('e\&. En fait, \(`a l\*(Aq\('et\('e 2000, Gerhard Rieger a eu cette id\('ee et a \('ecrit un excellent programme de correction pour l\*(Aqimplanter; il l\*(Aqa ensuite envoy\('e \(`a la liste de distribution nmap\-hackers\&. Je l\*(Aqai par la suite ajout\('e \(`a l\*(Aqarbre de d\('eveloppement de Nmap et j\*(Aqai publi\('e la nouvelle version le lendemain m\(^eme\&. Tr\(`es peu de logiciels commerciaux peuvent se targuer d\*(Aqavoir des utilisateurs si enthousiastes concevant et proposant leur propres am\('eliorations!
|
|
.sp
|
|
Le scan de protocole fonctionne d\*(Aqune fa\(,con similaire du scan UDP\&. Au lieu de parcourir les champs de num\('ero de port des paquets UDP, il envoie des paquets d\*(Aqen\-t\(^etes IP et parcours les 8 bits du champ protocole IP\&. Les en\-t\(^etes son g\('en\('eralement vides, ne contenant pas de donn\('ees ni m\(^eme l\*(Aqen\-t\(^ete du protocole sollicit\('e\&. Les trois seules exceptions \('etant TCP, UDP et ICMP\&. Un en\-t\(^ete exact de ces protocoles est inclus, sinon certains syst\(`emes refusent de les \('emettre et Nmap dispose d\('ej\(`a des fonctions permettant de construire ces en\-t\(^etes\&. Au lieu de scruter les messages ICMP \(Fo port unreachable \(Fc, comme pour le scan UDP, le scan de protocole attend de recevoir les messages ICMP \(Fo\fIprotocol\fRunreachable \(Fc\&. D\(`es que Nmap re\(,coit une r\('eponse d\*(Aqun protocole en provenance de la cible, Nmap consid\(`ere ce protocole comme
|
|
ouvert\&. Une erreur ICMP \(Fo protocol unreachable \(Fc (type 3, code 2) fait en sorte que le port est consid\('er\('e comme \('etant
|
|
ferm\('e\&. Les autres messages d\*(Aqerreur ICMP \(Fo unreachable (type 3, code 1, 3, 9, 10, or 13) \(Fc font en sorte que le port est consid\('er\('e comme \('etant
|
|
filtr\('e
|
|
(tout en prouvant que le protocole ICMP est quant \(`a lui
|
|
ouvert)\&. Si aucune r\('eponse n\*(Aqest re\(,cue apr\(`es plusieurs transmissions, le protocole est consid\('er\('e comme \('etant
|
|
ouvert|filtr\('e\&.
|
|
.RE
|
|
.PP
|
|
\fB\-b <ftp relay host>\fR(Scan par rebond FTP)
|
|
.RS 4
|
|
Une caract\('eristique int\('eressante du protocole FTP (\m[blue]\fBRFC 959\fR\m[]\&\s-2\u[7]\d\s+2) est qu\*(Aqil supporte les connexions par proxy ftp (proxy ftp connections, ainsi nomm\('ees dans la RFC)\&. Ceci permet \(`a un utilisateur de se connecter \(`a un serveur FTP, puis de demander qu\*(Aqun fichier soit envoy\('e \(`a un tiers serveur FTP\&. Une telle fonctionnalit\('e est propre \(`a \(^etre d\('etourn\('ee \(`a tous les niveaux, c\*(Aqest pourquoi la plupart des serveurs ont cess\('e de la supporter\&. Un des d\('etournements possible de cette caract\('eristique conduit le serveur FTP \(`a scanner les ports d\*(Aqautres h\(^otes\&. Demandez simplement au serveur FTP d\*(Aqenvoyer un fichier \(`a chaque port int\('eressant de votre cible, et il se chargera d\*(Aqeffectuer le scan\&. Le message d\*(Aqerreur permettra de savoir si le port est ouvert ou non\&. C\*(Aqest un tr\(`es bon moyen de contourner les pare\-feux car les serveurs FTP des organisations sont souvent situ\('es de telle fa\(,con \(`a avoir plus d\*(Aqacc\(`es aux h\(^otes du r\('eseau internes que toute autre machine Internet\&. Nmap supporte le scan par rebond FTP avec l\*(Aqoption
|
|
\fB\-b\fR\&. Cette option prend un argument du type
|
|
\fIusername\fR:\fIpassword\fR@\fIserver\fR:\fIport\fR\&.
|
|
\fIServer\fR
|
|
est le nom ou l\*(Aqadresse IP d\*(Aqun serveur FTP vuln\('erable\&. Comme pour une adresse URL traditionnelle, vous pouvez omettre
|
|
\fIusername\fR:\fIpassword\fR, (user:
|
|
anonymous, password:
|
|
\-wwwuser@) pour acc\('eder de mani\(`ere anonyme\&. Le num\('ero de port (et les deux points) peuvent \(^etre \('egalement omis si le port FTP par d\('efaut (21) est utilis\('e par le serveur
|
|
\fIserver\fR\&.
|
|
.sp
|
|
Cette vuln\('erabilit\('e \('etait tr\(`es r\('epandue en 1997 quand Nmap a \('et\('e publi\('e mais a largement \('et\('e corrig\('ee depuis\&. Il existe encore quelques serveurs vuln\('erables qui tra\(^inent, autant les essayer si rien d\*(Aqautre ne marche (!!!)\&. Si votre but est de contourner un pare\-feu, scannez le r\('eseau cible pour trouver un port 21 ouvert (ou un serveur FTP sur tout autre port en activant la d\('etection de version), essayez ensuite pour chacun d\*(Aqentre eux le scan par rebond FTP\&. Nmap vous indiquera si chaque h\(^ote y est vuln\('erable ou pas\&. Si vous voulez juste essayer de masquer vos attaques, vous n\*(Aqavez pas besoin (et m\(^eme en fait, vous ne devriez pas) vous limiter aux h\(^otes du r\('eseau cible\&. Avant de vous lancer dans un scan sur des adresses Internet au hasard, \(`a la recherche de serveurs FTP vuln\('erables, pensez bien que les gestionnaires des syst\(`emes n\*(Aqappr\('ecieront pas trop que vous d\('etourniez leurs serveurs \(`a cet effet\&.
|
|
.RE
|
|
.SH "SP\('ECIFICATIONS DES PORTS ET ORDRE DU SCAN"
|
|
.PP
|
|
En plus de toutes les m\('ethodes de scan abord\('ees pr\('ec\('edemment, Nmap propose des options permettant la sp\('ecification des ports \(`a scanner ainsi que l\*(Aqordre (au hasard ou s\('equentiel) dans lequel le scan doit se faire\&. Par d\('efaut, Nmap scanne tous les ports jusqu\*(Aqau 1 024 inclusivement ainsi que les ports sup\('erieurs list\('es dans le fichier
|
|
nmap\-servicespour le ou les protocoles demand\('es)\&.
|
|
.PP
|
|
\fB\-p <port ranges>\fR(Ne scanne que les ports sp\('ecifi\('es)
|
|
.RS 4
|
|
Cette option sp\('ecifie quels ports vous voulez scanner et remplace le comportement par d\('efaut\&. Les ports peuvent \(^etre sp\('ecifi\('es un \(`a un ou par plages (s\('epar\('es par des tirets, notamment 1\-1023)\&. Les valeurs de d\('ebut ou de fin des plages peuvent \(^etre omises, de sorte que Nmap utilisera les ports 1 et 65 535, respectivement\&. Ainsi, vous pouvez sp\('ecifier
|
|
\fB\-p\-\fR
|
|
pour scanner tous les ports de 1 \(`a 65 535\&. Le scan du port 0 est autoris\('e si sp\('ecifi\('e explicitement\&. Pour ce qui est du scan du protocole IP (\fB\-sO\fR), cette option sp\('ecifie les num\('eros de protocoles que vous souhaitez scanner (0\-255)\&.
|
|
.sp
|
|
Lorsque vous scannez \(`a la fois des ports TCP et UDP, vous pouvez sp\('ecifier un protocole particulier en pr\('efixant les num\('eros de ports par
|
|
T:
|
|
(pour TCP) ou
|
|
U:
|
|
(pour UDP)\&. Le qualificateur reste actif \(`a moins que vous n\*(Aqen indiquiez un autre\&. Par exemple, l\*(Aqargument
|
|
\fB\-p U:53,111,137,T:21\-25,80,139,8080\fRscannerait les ports UDP num\('eros 53 111 et 137 et les ports TCP de 21 \(`a 25 inclusivement, 80, 139 et 8080\&. Notez que si vous voulez \(`a la fois scanner TCP et UDP, vous devez sp\('ecifier
|
|
\fB\-sU\fR
|
|
et au moins un type de scan TCP (comme
|
|
\fB\-sS\fR,
|
|
\fB\-sF\fR
|
|
ou
|
|
\fB\-sT\fR)\&. Si aucun qualificateur de protocole n\*(Aqest sp\('ecifi\('e, les num\('eros de ports sont alors valables pour tous les protocoles\&.
|
|
.RE
|
|
.PP
|
|
\fB\-F\fR(Scan rapide (limite aux ports connus)
|
|
.RS 4
|
|
Cette option indique que vous souhaitez seulement scanner les ports list\('es dans le fichier
|
|
nmap\-services
|
|
fourni avec Nmap (ou le fichier des protocoles avec l\*(Aqoption
|
|
\fB\-sO\fR)\&. Ceci est bien plus rapide que de scanner les 65 535 ports d\*(Aqun h\(^ote\&. Comme cette liste contient beaucoup de ports TCP (plus de 1 200), la diff\('erence de vitesse avec le comportement par d\('efaut (environ 1 650 ports) est relativement n\('egligeable\&. Par contre, la diff\('erence peut \(^etre \('enorme si vous sp\('ecifiez votre propre mini\-fichier
|
|
nmap\-services
|
|
en utilisant l\*(Aqoption
|
|
\fB\-\-datadir\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-r\fR(Ne m\('elange pas les ports)
|
|
.RS 4
|
|
Par d\('efaut, Nmap m\('elange au hasard l\*(Aqordre des ports (sauf que certains ports couramment accessibles sont plac\('es vers le d\('ebut de la liste pour des raisons d\*(Aqefficacit\('e)\&. Ce m\('elange est normalement souhaitable, mais vous pouvez sp\('ecifier l\*(Aqoption
|
|
\fB\-r\fR
|
|
pour effectuer un scan de port s\('equentiel\&.
|
|
.RE
|
|
.SH "D\('ETECTION DE SERVICES ET DE VERSIONS"
|
|
.PP
|
|
Supposons que Nmap vous ai signal\('e que les ports 25/tcp, 80/tcp et 53/udp d\*(Aqune machine distante sont ouverts\&. En utilisant sa base de donn\('ees
|
|
nmap\-servicesd\*(Aqenviron 2 200 services bien connus, Nmap indique que ces ports correspondent probablement \(`a un serveur de messagerie (SMTP), un serveur Web (HTTP) et un serveur de noms (DNS), respectivement\&. Cette consultation est souvent pertinente \-\- une vaste majorit\('e des d\('emons \('ecoutant sur le port 25, \('etant bien des serveurs de messagerie\&. Cependant, en s\('ecurit\('e, il ne faudrait pas trop parier l\(`a\-dessus ! Les gens peuvent lancer des services sur des ports bizarres et ils le font effectivement\&.
|
|
.PP
|
|
M\(^eme si Nmap a raison, et que les serveurs hypoth\('etiques du dessus sont bien des serveurs SMTP, HTTP et DNS, ce n\*(Aqest pas tr\(`es utile\&. Lors d\*(Aqaudit de s\('ecurit\('e (ou bien lors de simples inventaires de r\('eseau) de votre entreprise ou de clients, vous voulez r\('eellement savoir de quels serveurs de messagerie et de noms il s\*(Aqagit, ainsi que leurs versions\&. Conna\(^itre avec pr\('ecision le num\('ero de version aide consid\('erablement \(`a d\('eterminer \(`a quels exploits un serveur est vuln\('erable\&. La d\('etection de version vous permet d\*(Aqobtenir une telle information\&.
|
|
.PP
|
|
Apr\(`es avoir d\('ecouvert les ports TCP ou UDP par une des m\('ethodes de scan, la d\('etection de version interroge ces ports pour savoir quelle version tourne actuellement\&. La base de donn\('ees
|
|
nmap\-service\-probes
|
|
contient les tests \(`a effectuer selon les services, ainsi que les cha\(^ines de caract\(`eres auxquelles comparer les r\('eponses\&. Nmap essaie de d\('eterminer le protocole (p\&. ex\&.: ftp, ssh, telnet, http), le nom de l\*(Aqapplication (p\&. ex\&.: ISC Bind, Appache httpd, Solaris telnetd), le num\('ero de version, le nom d\*(Aqh\(^ote, le type d\*(Aq\('equipement (p\&. ex\&.: imprimante, routeur), la famille d\*(AqOS (p\&. ex\&.: Windows, Linux) et quelquefois des d\('etails divers (p\&. ex\&.: si un serveur X accepte ou non des connexions, la version du protocole SSH, le nom d\*(Aqutilisateur KaZaA)\&. Bien s\(^ur, la plupart des services ne fournissent pas autant d\*(Aqinformations\&. Si Nmap a \('et\('e compil\('e avec le support de OpenSSL, il se connectera aux serveurs SSL pour d\('eduire le service \('ecoutant derri\(`ere la couche de cryptage\&. Quand des services RPC sont d\('ecouverts, la moulinette RPC de Nmap (\fB\-sR\fR) est automatiquement utilis\('ee pour d\('eterminer le programme RPC et sa version\&. Des ports peuvent rester dans l\*(Aq\('etat
|
|
ouvert|filtr\('e\ \& lorsqu\*(Aqun scan de ports UDP a \('et\('e incapable de d\('eterminer si le port \('etait ouvert ou ferm\('e\&. La d\('etection de version tentera d\*(Aqobtenir une r\('eponse de ces ports (comme s\*(Aqils \('etaient ouverts), et changera l\*(Aq\('etat \(`a ouvert si elle y parvient\&. Les ports TCP
|
|
ouverts|filtr\('e
|
|
sont trait\('es de la m\(^eme fa\(,con\&. Notez que l\*(Aqoption\fB\-A\fRde Nmap active notamment la d\('etection de version\&. Un papier documentant le fonctionnement, l\*(Aqutilisation et la personnalisation de la d\('etection de version est disponible \(`a
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/vscan/\fR\m[]\&.
|
|
.PP
|
|
Lorsque Nmap re\(,coit une r\('eponse d\*(Aqun service mais ne parvient pas \(`a le faire correspondre \(`a un service de sa base de donn\('ees, il affiche une empreinte et une adresse URL o\(`u vous pouvez l\*(Aqenvoyer si vous \(^etes s\(^ur de ce qui tourne sur ce port\&. Prendre quelques minutes pour faire cette soumission permettra \(`a tout le monde de b\('en\('eficier de votre d\('ecouverte\&. Gr\(^ace \(`a ces soumissions, Nmap dispose d\*(Aqenviron 3 000 empreintes de r\('ef\('erence li\('ees \(`a plus de 350 protocoles, comme smtp, ftp et http\&.
|
|
.PP
|
|
La d\('etection de version est activ\('ee et contr\(^ol\('ee gr\(^ace aux options suivantes:
|
|
.PP
|
|
\fB\-sV\fR(D\('etection de version)
|
|
.RS 4
|
|
Active la d\('etection de version, tel que discut\('e ci\-dessus\&. Autrement, vous pouvez utiliser l\*(Aqoption
|
|
\fB\-A\fR\ \& pour activer \(`a la fois la d\('etection de version et celle du syst\(`eme d\*(Aqexploitation\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-allports(tous les ports)\fR(N\*(Aqexclut aucun port de la d\('etection de version)
|
|
.RS 4
|
|
Par d\('efaut, la d\('etection de version de Nmap \('evite le port TCP 9100 car certaines imprimantes impriment tout bonnement tout ce qui est envoy\('e sur ce port, ce qui conduit \(`a l\*(Aqimpression de douzaines de pages de requ\(^etes HTTP, des requ\(^etes de sessions SSL en binaire, etc\&. (ce qui est particuli\(`erement furtif)\&. Ce comportement peut \(^etre chang\('e en modifiant ou en supprimant la directive\ \&
|
|
Exclude
|
|
du fichier
|
|
nmap\-service\-probes, ou en sp\('ecifiant l\*(Aqoption
|
|
\fB\-\-allports\fR
|
|
pour scanner tous les ports sans tenir compte d\*(Aqaucune directive
|
|
Exclude\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-intensity <intensity>\fR(S\('electionne l\*(Aqintensit\('e du scan de version)
|
|
.RS 4
|
|
Lors d\*(Aqun scan de version (\fB\-sV\fR), Nmap envoie une s\('erie de paquets de tests, \(`a chacun duquel est associ\('e une valeur de raret\('e allant de 1 \(`a 9\&. Les tests aux basses valeurs sont efficaces pour une grande vari\('et\('e de services courants, tandis que les hautes valeurs indiquent ceux qui ne sont que rarement utiles\&. Le niveau d\*(Aqintensit\('e sp\('ecifie quels tests doivent \(^etre effectu\('es\&. Plus la valeur est haute, plus le service a de chances d\*(Aq\(^etre correctement identifi\('e\&. Cependant, ces scans\-ci sont plus longs\&. La valeur d\*(Aqintensit\('e doit \(^etre comprise entre 0 et 9, la valeur par d\('efaut \('etant le 7\&. Quand un test est inscrit sur le port cible par le biais de la directive
|
|
nmap\-service\-probesports, ce test est tent\('e quelque soit le niveau d\*(Aqintensit\('e\&. Cela permet de s\*(Aqassurer que les tests DNS seront toujours tent\('es sur chaque port 53 ouvert, les tests SSL sur chaque 443, etc\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-light\fR(Active le mode l\('eger)
|
|
.RS 4
|
|
Il s\*(Aqagit d\*(Aqun raccourci pour
|
|
\fB\-\-version\-intensity 2\fR\&. Ce mode l\('eger rend le scan de version bien plus rapide, mais il est un peu moins susceptible d\*(Aqidentifier les services\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-all\fR(Essaie chaque test possible)
|
|
.RS 4
|
|
Il s\*(Aqagit d\*(Aqun raccourci pour\fB\-\-version\-intensity 9\fRfor\(,cant chaque test unitaire \(`a \(^etre test\('e contre chaque port\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-version\-trace\fR(Trace l\*(Aqactivit\('e du scan de version)
|
|
.RS 4
|
|
Ceci force Nmap \(`a afficher un nombre consid\('erable d\*(Aqinformations de d\('ebogage \(`a propos de ce que fait le scan de version\&. Il s\*(Aqagit d\*(Aqun sous\-ensemble de ce que vous obtenez avec l\*(Aqoption
|
|
\fB\-\-packet\-trace\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-sR\fR(Scan RPC)
|
|
.RS 4
|
|
Cette m\('ethode fonctionne conjointement avec les diff\('erentes m\('ethodes de scan de Nmap\&. Il prend tous les ports TCP/UDP ouverts et les submerge avec les commandes NULL du programme SunRPC dans le but de d\('eterminer s\*(Aqil s\*(Aqagit de ports RPC, et le cas \('ech\('eant, de quel programme et quel num\('ero de version il s\*(Aqagit\&. Vous pouvez aussi obtenir les m\(^emes informations avec
|
|
\fBrpcinfo \-p\fR, et ce, m\(^eme si le mapper de port (portmapper) de la cible se trouve derri\(`ere un pare\-feu (ou prot\('eg\('e par des wrappers TCP)\&. Les leurres ne fonctionnent pas avec le scan RPC\&. Cette option est automatiquement activ\('ee par le scan de version (\fB\-sV\fR)\&. Comme la d\('etection de version inclus le scan RPC, et est bien plus compl\(`ete, on a rarement besoin de l\*(Aqoption
|
|
\fB\-sR\fR\&.
|
|
.RE
|
|
.SH "NMAP SCRIPTING ENGINE (NSE)"
|
|
.PP
|
|
Le moteur de scripts de Nmap (Nmap Scripting Engine \-NSE) allie l\*(Aqefficacit\('e avec laquelle Nmap traite le r\('eseau avec la souplesse d\*(Aqun langage l\('eger comme Lua, fournissant ainsi une infinit\('e d\*(Aqopportunit\('es\&. Une documentation plus compl\(`ete du NSE (y compris ses API) peut \(^etre obtenue sur
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/nse\fR\m[]\&. Le but du NSE est de fournir \(`a Nmap une infrastructure flexible afin d\*(Aq\('etendre ses capacit\('es et ainsi offrir \(`a ses utilisateurs une facon simple de cr\('eer leurs propres tests personnalis\('es\&. Le cadre d\*(Aqusage du NSE englobe (mais encore une fois n\*(Aqest pas limit\('e \(`a) :
|
|
.PP
|
|
\fID\('etection de version \('evolu\('ee \fR(cat\('egorie
|
|
version) \- Alors que Nmap propose d\('eja son syst\(`eme de d\('etection de Service et de Version qui est in\('egal\('e en termes d\*(Aqefficacit\('e et de couverture, cette puissance trouve sa limite lorsqu\*(Aqil s\*(Aqagit de services qui demandent des tests plus complexes\&. La version 2 du Protocole Skype par exemple peut \(^etre identifi\('e en envoyant deux paquets de tests pour lesquels le syst\(`eme n\*(Aqest pas pr\('evu d\*(Aqorigine: un simple script NSE peut alors faire le travail et mettre ainsi \(`a jour les informations sur le service tournant sur le port\&.
|
|
.PP
|
|
\fID\('etection de Malware\fR
|
|
(cat\('egories
|
|
malware
|
|
et
|
|
backdoor)\- Que ce soit les attaquants ou les vers, ils laissent souvent des portes d\('erob\('ees, par exemple sous la forme de serveurs SMTP \('ecoutant sur des ports inhabituels, le plus souvent utilis\('es par les spammers pour le relais de leurs mails, ou sous forme de serveur FTP donnant des acc\(`es \(`a des donn\('ees critiques aux crackers\&. Quelques lignes de code Lua peut aider \(`a identifier facilement ces pi\(`eges\&.
|
|
.PP
|
|
\fID\('etection de vuln\('erabilit\('es\fR
|
|
(cat\('egorie
|
|
vulnerability)\- Le NSE permet de d\('etecter les risques allant par exemple des mots de passe par d\('efaut sur Apache au test de capacit\('e d\*(Aqagir en tant que relais pour un serveur SMTP concernant les mails en provenance de domaines divers\&.
|
|
.PP
|
|
\fID\('ecouverte du R\('eseau et Collecte d\*(AqInformations\fR
|
|
(cat\('egories
|
|
safe,
|
|
intrusive
|
|
et
|
|
discovery) \- En vous fournissant un langage de scripts et une API r\('eseau asynchrone vraiment efficace d\*(Aqune part et la collecte d\*(Aqinformations durant les \('etapes ult\('erieures du scan d\*(Aqautre part, le NSE est concu pour \('ecrire des programmes clients adapt\('es aux services en \('ecoute sur la machine cible\&. Ces clients peuvent collecter des informations comme : liste des partages NFS/SMB/RPC disponibles, le nombre de canaux d\*(Aqun r\('eseau IRC ou les utilisateurs actuellement connect\('es\&.
|
|
.PP
|
|
Afin de refl\('eter ces diff\('erents usages et pour simplifier le choix des scripts \(`a employer, chaque script contient un champ qui l\*(Aqassocie a une ou plusieurs de ces cat\('egories\&. Pour maintenir le lien entre scripts et cat\('egories un fichier appel\('e script\&.db est install\('e avec les scripts distribu\('es\&. Ainsi si par exemple vous voulez voir si une machine est infect\('ee par un ver Nmap vous donne un script que vous pouvez facilement utiliser par la commande
|
|
nmap \-\-script=malware ip\-cible
|
|
afin d\*(Aqanalyser les r\('esultats apr\(`es coup\&.Les scripts de version sont syst\('ematiquement lanc\('es de facon implicite lorsqu\*(Aqun scan de scripts est invoqu\('e\&. Le fichier
|
|
script\&.db
|
|
est lui m\(^eme un script Lua et peut \(^etre mis \(`a jour via l\*(Aqoption
|
|
\fB\-\-script\-updatedb\fR\&.
|
|
.PP
|
|
Un script NSE est simplement un code Lua qui a (parmis quelques champs d\*(Aqinformation comme le nom, l\*(Aqidentifiant et la cat\('egorie) 2 fonctions: un test dans le cas o\(`u le script en particulier doit \(^etre lanc\('e contre une cible et un port sp\('ecifiques (appel\('es hostrule et portrule respectivement) et une action qui doit \(^etre men\('ee si le test est positif\&. Les scripts ont acces \(`a la plupart des informations collect\('ees par Nmap durant les \('etapes pr\('ec\('edentes\&. Pour chaque h\(^ote ceci inclus l\*(Aqadresse IP, le nom de l\*(Aqh\(^ote et (si disponible) le syst\(`eme d\*(Aqexploitation\&. Si un script est destin\('e \(`a un port en particulier, il a acc\(`es au num\('ero du port, son protocole (tcp, udp ou ssl), le service tournant derri\(`ere ce port et des informations optionnelles en provenance d\*(Aqun scan de version\&. Par convention les scripts NSE ont une extension \&.nse\&. Toutefois vous n\*(Aqavez pas besoin de suivre cette recommandation pour le moment, ceci pouvant changer dans l\*(Aqavenir\&. Nmap donnera une mise en garde si un fichier a une autre extension\&. Une documentation plus exhaustive sur le NSE comprenant une description de son API peut \(^etre obtenue sur
|
|
\m[blue]\fB\%http://insecure.org/nmap/nse/\fR\m[]\&.
|
|
.PP
|
|
\fB\-sC\fR
|
|
.RS 4
|
|
effectue un scan de scripts en utilisant la cat\('egorie de scripts par d\('efaut\&. Cette option est \('equivalente \(`a
|
|
\-\-script=safe,intrusive
|
|
.RE
|
|
.PP
|
|
\fB\-\-script <cat\('egories|r\('epertoire|nom|all>\fR
|
|
.RS 4
|
|
Lance un scan de scripts (comme
|
|
\fB\-sC\fR) avec les scripts que vous avez choisi plut\(^ot que ceux par d\('efaut\&. Les arguments peuvent \(^etre des cat\('egories de scripts, des scripts uniques ou des r\('epertoires contenant des scripts qui doivent \(^etre lanc\('es contre les h\(^otes cibles \(`a la place des scripts par d\('efaut\&. Nmap va essayer d\*(Aqinterpr\('eter les arguments d\*(Aqabord comme des cat\('egories puis comme des noms de fichiers ou des r\('epertoires\&. Les chemins absolus sont interpret\('es tels quels, les chemins relatifs sont recherch\('es dans les endroits suivants :
|
|
\-\-datadir/; $(NMAPDIR)/; ~user/nmap/
|
|
(non cherch\('e sous Windows);
|
|
NMAPDATADIR/ ou \&./\&. A scripts/
|
|
les sous r\('epertoires sont aussi essay\('es dans chacun d\*(Aqeux\&. Donnez l\*(Aqargument
|
|
all
|
|
pour ex\('ecuter tous les scripts de la base de donn\('ees de Nmap\&.
|
|
.sp
|
|
Si un r\('epertoire est pr\('ecis\('e et trouv\('e, Nmap charge tous les scripts NSE (chaque fichier se terminant par \&.nse) dans ce r\('epertoire\&. L\*(Aqextension nse est obligatoire\&. Nmap ne fait pas de recherche r\('ecursive dans les sous r\('epertoires \('eventuels pour trouver les scripts\&. Lorsque des noms de scripts individuels sont sp\('ecifi\('es, l\*(Aqextension est facultative\&.
|
|
.sp
|
|
Les scripts de Nmap sont stock\('es dans un r\('epertoire scripts du r\('epertoire de donn\('ees par d\('efaut de Nmap\&. Les scripts sont index\('es dans une base de donn\('ees dans
|
|
scripts/script\&.db\&. La base de donn\('ees liste tous les scripts dans chaque cat\('egorie\&. Un seul script peut \(^etre dans plusieurs cat\('egories\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-script\-args=<name1=value1,name2={name3=value3},name4=value4>\fR
|
|
.RS 4
|
|
vous permet de passer des arguments aux scripts NSE\&. Les arguments sont pass\('es sous la forme de paires
|
|
name=value
|
|
\&. L\*(Aqarguments fourni est interpr\('et\('e et stock\('e dans une table Lua \(`a laquelle tous les scripts ont acc\(`es\&. Les noms sont pris comme des cha\(^ines (qui doivent \(^etre des valeurs alphanum\('eriques) et utilis\('es comme des cl\('es dans la table
|
|
argument\-table\&. Les valeurs sont soit des cha\(^ines soit des tables elles m\(^emes (encadr\('ees par\*(Aq{\*(Aq et \*(Aq}\*(Aq)\&. Les sous tables permettent de supplanter les arguments pour des scripts sp\('ecifiques (c\*(Aqest \(`a dire lorsque vous souhaitez fournir diff\('erents couples login/password pour des scripts diff\('erents)\&. Par exemple vous pouvez passer les arguments s\('epar\('es par des virgules :
|
|
user=bar,password=foo, and anonFTP={password=nobody@foobar\&.com}\&. Si vous souhaitez outrepasser une option d\*(Aqun script, vous devriez indexer la sous table avec l\*(Aqidentifiant du script \('etant donn\('e que c\*(Aqest la seule facon qu\*(Aqa le script de connaitre ses arguments particuliers\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-script\-trace\fR
|
|
.RS 4
|
|
Cette option fait ce que fait
|
|
\fB\-\-packet\-trace\fR
|
|
, juste une couche OSI au dessus\&. Si cette option est sp\('ecifi\('ee toutes les communications entrantes et sortantes en provenance d\*(Aqun script sont affich\('ees\&. Les informations affich\('ees incluent le protocole de communication, la source, la cible et les donn\('ees transmises\&. Si plus de 5% du traffic n\*(Aqest pas imprimable, alors la sortie se fait au format hexad\('ecimal\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-script\-updatedb\fR
|
|
.RS 4
|
|
met \(`a jour la base de donn\('ees de scripts qui contient les correspondances des cat\('egories avec les noms de fichiers\&. La base de donn\('ees est un script Lua qui est interpr\('et\('e pour choisir les scripts en fonction des cat\('egories pass\('ees en arguments \(`a
|
|
\fB\-\-script\fR
|
|
\&. Ceci devrait \(^etre lanc\('e si vous avez chang\('e le champ categories d\*(Aqun script, si vous avez ajout\('e de nouveaux scripts ou si vous en avez retir\('e du r\('epertoire
|
|
scripts/
|
|
\&.
|
|
.RE
|
|
.SH "TIMING ET PERFORMANCES"
|
|
.PP
|
|
L\*(Aqune des priorit\('es les plus importantes dans le d\('eveloppement de Nmap a toujours \('et\('e la performance\&. Un scan par d\('efaut (\fBnmap \fR\fB\fIhostname\fR\fR\fB \fR) d\*(Aqun h\(^ote sur mon r\('eseau local prend un cinqui\(`eme de seconde\&. Il s\*(Aqagit donc de tr\(`es peu de temps mais les minutes s\*(Aqaccumulent lorsque vous scannez des dizaines ou des centaines de milliers d\*(Aqh\(^otes\&. De plus, certains scans tels que le scan UDP et la d\('etection de version peuvent accro\(^itre le temps global du scan de fa\(,con significative\&. De plus, certains pare\-feux limitent le taux de r\('eponses dans leur configuration\&. Bien que Nmap utilise un fonctionnement en parall\(`ele et beaucoup d\*(Aqautres algorithmes avanc\('es afin d\*(Aqacc\('el\('erer ces scans, l\*(Aqutilisateur garde le contr\(^ole total sur le fonctionnement de Nmap\&. Les utilisateurs confirm\('es choisissent avec une grande attention leurs commandes afin d\*(Aqobtenir seulement les informations dont ils ont besoin en un minimum de temps\&.
|
|
.PP
|
|
Les techniques permettant d\*(Aqaffiner les temps de scan sont entre autres d\*(Aq\('eviter les tests non essentiels et d\*(Aqavoir les versions les plus r\('ecentes de Nmap (les augmentations de performance sont fr\('equentes)\&. Optimiser ses param\(`etres de temps en temps peut ainsi faire toute la diff\('erence\&. Ces options sont d\('ecrites ci\-dessous\&.
|
|
.PP
|
|
\fB\-\-min\-hostgroup <millisecondes>\fR; \fB\-\-max\-hostgroup <millisecondes>\fR (Ajuste la quantit\('e du groupe de scans en parall\(`ele)
|
|
.RS 4
|
|
Nmap peut scanner des ports ou faire un scan de version sur de multiples h\(^otes en parall\(`ele\&. Pour ce faire, Nmap divise la plage des adresses IP des cibles en groupe puis scanne ces groupes un \(`a la fois\&. En g\('en\('eral, scanner un grand nombre de groupes am\('eliore l\*(Aqefficacit\('e de la proc\('edure\&. En contrepartie, les r\('esultats ne peuvent \(^etre fournis que lorsque tout le groupe d\*(Aqh\(^otes a \('et\('e scann\('e\&. Par cons\('equent, si Nmap a commenc\('e avec un groupe de 50, l\*(Aqutilisateur ne recevra aucun r\('esultat tant que les premiers 50 h\(^otes ne seront pas termin\('es (exception faite des informations donn\('ees en mode verbeux)\&.
|
|
.sp
|
|
Par d\('efaut, Nmap adopte un compromis dans son approche de ce conflit\&. Il commence avec une quantit\('e aussi petite que 5 groupes de fa\(,con \(`a obtenir rapidement les premiers r\('esultats et augmente ensuite la quantit\('e de groupes jusqu\*(Aq\(`a un maximum de1 024\&. Les valeurs exactes par d\('efaut d\('ependent des options configur\('ees\&. Par soucis d\*(Aqefficacit\('e, Nmap utilise une quantit\('e de groupes plus grande lorsqu\*(Aqil s\*(Aqagit de scans UDP ou sur peu de ports en TCP\&.
|
|
.sp
|
|
Lorsqu\*(Aqun maximum est sp\('ecifi\('e en quantit\('e de groupes avec l\*(Aqoption
|
|
\fB\-\-max\-hostgroup\fR, Nmap ne va jamais d\('epasser cette valeur\&. Sp\('ecifiez une quantit\('e minimale avec l\*(Aqoption
|
|
\fB\-\-min\-hostgroup\fR
|
|
et Nmap tentera de garder la quantit\('e de groupes au\-dessus de cette valeur\&. Nmap devra peut\-\(^etre utiliser des groupes plus petits que ceux que vous demandez s\*(Aqil n\*(Aqy a plus assez d\*(Aqh\(^otes cibles sur une interface donn\('ee par rapport au minimum que vous avez sp\('ecifi\('e Les deux valeurs doivent \(^etre d\('etermin\('es pour de conserver la quantit\('e de groupes dans une plage sp\('ecifique, quoique ceci ne soit que rarement souhait\('e\&.
|
|
.sp
|
|
Le premier usage de ces options est de sp\('ecifier un minimum assez grand pour que le scan entier se fasse plus vite\&. Un choix fr\('equent est 256 pour scanner un r\('eseau de Classe C\&. S\*(Aqil s\*(Aqagit d\*(Aqun scan incluanrt beaucoup de ports, d\('epasser cette valeur n\*(Aqaidera pas \(`a grand chose\&. S\*(Aqil s\*(Aqagit de scans sur peu de ports, une quantit\('e de groupes de 2 048 ou plus peut faciliter la proc\('edure\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-min\-parallelism <nombre>\fR; \fB\-\-max\-parallelism\*(Aq <nombre>\fR (Ajuste la mise en parall\(`ele des paquets de test, probes)
|
|
.RS 4
|
|
Ces options permettent de contr\(^oler le nombre total de probes id\('eal pour un groupe d\*(Aqh\(^otes\&. Elles permettent de scanner des ports et de d\('ecouvrir des h\(^otes (host discovery)\&. Par d\('efaut, Nmap calcule un parall\('elisme id\('eal et variable bas\('e sur les performances du r\('eseau\&. Si des paquets sont rejet\('es, Nmap ralentit sa cadence en permettant moins de probes simultan\('es\&. Le nombre id\('eal de probes augmente graduellement en m\(^eme temps que le r\('eseau d\('emontre ses performances\&. Ces options fixent les limites maximales et minimales selon cette variable\&. Par d\('efaut, le parall\('elisme id\('eal peut chuter \(`a 1 si le r\('eseau s\*(Aqav\(`ere trop faible et monter \(`a plusieurs centaines dans des conditions parfaites\&.
|
|
.sp
|
|
L\*(Aqusage habituel consiste \(`a r\('egler l\*(Aqoption
|
|
\fB\-\-min\-parallelism\fR
|
|
\(`a une valeur sup\('erieure \(`a 1 pour acc\('el\('erer les scans sur des r\('eseaux de faible performance\&. Il est risqu\('e de trop modifier cette option puisqu\*(Aq\('etablir une valeur trop \('elev\('ee peut affecter la pr\('ecision des r\('esultats\&. Modifier cette option r\('eduit aussi la capacit\('e de Nmap \(`a contr\(^oler le parall\('elisme de fa\(,con dynamique selon les conditions du r\('eseau\&. Une valeur de 10 peut \(^etre raisonnable bien que je n\*(Aqajuste personnellement celle\-ci qu\*(Aqen dernier ressort\&.
|
|
.sp
|
|
L\*(Aqoption
|
|
\fB\-\-max\-parallelism\fR
|
|
est parfois r\('egl\('ee \(`a 1 afin d\*(Aq\('eviter d\*(Aqenvoyer plus d\*(Aqun probe en m\(^eme temps vers les h\(^otes\&. Ceci peut \(^etre int\('eressant en combinaison avec l\*(Aqoption
|
|
\fB\-\-scan\-delay\fR
|
|
(on verra plus tard), bien que cette option serve d\('ej\(`a elle\-m\(^eme \(`a cet effet\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-min_rtt_timeout <millisecondes>\fR, \fB\-\-max\-rtt\-timeout <millisecondes>\fR, \fB\-\-initial\-rtt\-timeout <millisecondes>\fR (Ajuste la dur\('ee de vie des paquets de test, probe timeouts)
|
|
.RS 4
|
|
Nmap conserve une valeur de dur\('ee de vie qui d\('etermine combien de temps il devra attendre avant d\*(Aqenvoyer une r\('eponse \(`a un probe avant de l\*(Aqabandonner ou de le renvoyer\&. Cette valeur est calcul\('ee en fonction du temps de r\('eponse des probes pr\('ec\('edents\&. Si le temps de latence du r\('eseau est significatif et variable, ce d\('elai d\*(Aqinactivit\('e ou cette dur\('ee de vie, peut augmenter jusqu\*(Aq\(`a plusieurs secondes\&. Elle est \('egalement de niveau \('elev\('e et peut rester ainsi pendant un bon moment lorsque Nmap scanne des h\(^otes sans r\('eponse\&.
|
|
.sp
|
|
Ces options acceptent des valeurs en millisecondes\&. Sp\('ecifier un
|
|
\fB\-\-max\-rtt\-timeout\fR
|
|
et un
|
|
\fB\-\-initial\-rtt\-timeout\fR
|
|
plus bas que ceux par d\('efaut peuvent raccourcir le temps de scan de fa\(,con significative\&. C\*(Aqest particuli\(`erement vrai pour les scans sans ping pr\('ealable (\fB\-P0\fR) et ceux contre des r\('eseaux tr\(`es filtr\('es\&. Toutefois, ne soyez pas trop agressif\&. Le scan peut se finir en un temps plus significatif si, au contraire, vous sp\('ecifiez des valeurs tellement basses que les dur\('ees de vie des probes sont termin\('ees et ceux\-ci renvoy\('es alors que leurs r\('eponses sont en fait encore en transit\&.
|
|
.sp
|
|
Si tous les h\(^otes sont sur un r\('eseau local, 100 millisecondes est une valeur de
|
|
\fB\-\-max\-rtt\-timeout\fR
|
|
seront suffisantes\&. Si vous etes face a un routage, mesurez d\*(Aqabord le temps de r\('eponse d\*(Aqun h\(^ote sur le r\('eseau \e l\*(Aqaide du ping ICMP de Nmap ou d\*(Aqun autre outil, comme hping2 qui est plus \(`a m\(^eme de passer un pare\-feu si le paquet est sp\('ecialement forg\('e\&. Regardez les dur\('ees de transit sur 10 paquets ou plus\&. Vous pouvez doubler cette valeur pour
|
|
\fB\-\-initial\-rtt\-timeout\fR
|
|
et tripler ou quadrupler le
|
|
\fB\-\-max\-rtt\-timeout\fR\&. G\('en\('eralement, je ne r\(`egle pas le rtt maximum \(`a moins de 100ms, et ce, quelles que soient les mesures de ping\&. De plus, je n\*(Aqexc\(`ede pas 1 000ms\&.
|
|
.sp
|
|
\fB\-\-min_rtt_timeout\fR
|
|
est une option rarement utilis\('ee qui peut s\*(Aqav\('erer utile lorsqu\*(Aqun r\('eseau est si lent que m\(^eme les r\('eglages par d\('efaut de Nmap sont trop agressifs\&. Comme Nmap ne r\('eduit le d\('elai d\*(Aqinactivit\('e au minimum que lorsque le r\('eseau semble suffisamment rapide, ce genre de besoin est inhabituel et devrait \(^etre rapport\('e en tant que proc\('edure erron\('ee \(`a la liste de d\('eveloppement de nmap\-dev\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-max\-retries <nombreessais>\fR (Sp\('ecifie le nombre maximum de retransmisison des paquets de test (probes))
|
|
.RS 4
|
|
Quand Nmap ne re\(,coit pas de r\('eponse \(`a un paquet de test sur un port, cela peut signifier que le port est filtr\('e\&. Ou simplement que la r\('eponse s\*(Aqest perdue sur le r\('eseau\&. Il est \('egalement possible que l\*(Aqh\(^ote cible ait limit\('e son taux d\*(Aq\('emission ce qui a temporairement bloqu\('e la r\('eponse\&. Pour ces raisons, Nmap recommence l\*(Aq\('emission du paquet de test\&. Si Nmap d\('etecte que le r\('eseau est peu fiable, il peut essayer de re\-\('emettre le paquet plus de fois encore avant de s\*(Aqarr\(^eter\&. Si cette technique am\('eliore la fiabilit\('e, elle ralonge la dur\('ee du scan\&. Quand la performance est un facteur critique, les scans peuvent \(^etre acc\('el\('er\('es en limitant le nombre de retransmissions autoris\('e\&. Vous pouvez m\(^eme sp\('ecifier
|
|
\fB\-\-max\-retries 0\fR
|
|
pour \('eviter toute retransmission, bien que cela ne soit pas trop recommand\('e\&.
|
|
.sp
|
|
Le param\('etrage par d\('efaut (sans politique
|
|
\fB\-T\fR
|
|
sp\('ecifi\('ee) est d\*(Aqautoriser jusqu\*(Aq\(`a dic retransmissions\&. Si le r\('eseau a l\*(Aqair fiable et que les h\(^otes cibles ne limitent pas leur taux d\*(Aq\('emission, Nmap ne fait g\('en\('eralement qu\*(Aqune seule retransmission\&. Ainsi, r\('eduire
|
|
\fB\-\-max\-retries\fR
|
|
\(`a une valeur basse comme trois n\*(Aqaffecte pas la plupart des scans\&. Une telle valeur peut acc\('el\('erer significativement les scans pour des h\(^otes lents (qui limitent leurs \('emissions)\&. G\('en\('eralement, vous perdez des informations si Nmap cesse de scanner un port trop t\(^ot, mais cela peut \(^etre pr\('ef\('erable \(`a laisser
|
|
\fB\-\-host\-timeout\fR
|
|
expirer et perdre alors toutes les informations concernant la cible\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-host\-timeout <millisecondes>\fR (Abandon des h\(^otes cibles trop lents)
|
|
.RS 4
|
|
Certains h\(^otes prennent du temps
|
|
\fIlong\fR
|
|
\(`a scanner, tout simplement\&. Ceci peut \(^etre d\(^u \(`a du mat\('eriel ou \(`a des logiciels r\('eseau peu performants ou inefficaces, \(`a un taux de paquets limit\('e ou \(`a un pare\-feu restrictif\&. Le faible pourcentage de h\(^otes lents scann\('es peut ralentir le temps de scan tout entier\&. Il est donc parfois pr\('ef\('erable d\*(Aq\('ecarter temporairement ces h\(^otes du scan initial\&. Ceci peut \(^etre fait en sp\('ecifiant
|
|
\fB\-\-host\-timeout\fR
|
|
avec le nombre de millisecondes maximales que vous \(^etes pr\(^et \(`a attendre\&. Je choisis souvent 1 800 000 secondes pour m\*(Aqassurer que Nmap ne perde pas plus d\*(Aqune demi\-heure sur un seul h\(^ote\&. Notez que Nmap peut \(^etre en train de scanner d\*(Aqautres h\(^otes en m\(^eme temps durant cette demi\-heure, ce n\*(Aqest donc pas une perte compl\(`ete\&. Un h\(^ote qui d\('epasse cette valeur est abandonn\('e\&. Pas de listage des ports, de d\('etection d\*(AqOS ou de d\('etection de version dans les r\('esultats pour celui\-ci\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-scan\-delay <millisecondes>\fR; \fB\-\-max_scan\-delay <millisecondes>\fR (Ajuste le d\('elai entre les paquets de test)
|
|
.RS 4
|
|
Cette option force Nmap \(`a attendre d\*(Aqobtenir au moins la valeur donn\('ee en millisecondes entre chaque probe qu\*(Aqil envoie sur un h\(^ote donn\('e\&. C\*(Aqest particuli\(`erement utile en cas de limitation de nombre de paquets (taux limite)\&. Les machines Solaris (parmi beaucoup d\*(Aqautres) vont habituellement r\('epondre \(`a des paquets de test d\*(Aqun scan UDP par seulement un message ICMP par seconde\&. Tout ce qui est envoy\('e au\-del\(`a par Nmap serait inutile\&. Un
|
|
\fB\-\-scan\-delay\fR
|
|
de 1 000 gardera Nmap \(`a ce taux suffisamment lent\&. Nmap essaie de d\('etecter le taux limite et d\*(Aqajuster le d\('elai en cons\('equence, mais il ne fait pas de mal de le pr\('eciser si vous savez d\('ej\(`a quelle valeur est la meilleure\&.
|
|
.sp
|
|
Une autre utilisation de
|
|
\fB\-\-scan\-delay\fR
|
|
est d\*(Aq\('eviter les d\('etections \('eventuelles des syst\(`emes de d\('etection et de pr\('evention d\*(Aqintrusion (IDS/IPS) bas\('ees sur ce genre de r\(`egle\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-defeat\-rst\-ratelimit\fR
|
|
.RS 4
|
|
Beaucoup d\*(Aqh\(^otes utilisent depuis longtemps un filtrage pour r\('eduire le nombre de messages d\*(Aqerreur ICMP (comme les erreurs de ports inaccessibles) qu\*(Aqils envoient\&. Certains syst\(`emes appliquent a pr\('esent des limitations similaires aux paquets RST (reset) qu\*(Aqils g\('en\(`erent\&. Ceci peut ralentir Nmap dramaticalement \('etant donn\('e qu\*(Aqil ajuste son timing pour refl\('eter ces limitations\&. Vous pouvez dire a Nmap d\*(Aqignorer ces limitations (pour les scans de ports comme le SYN scan qui
|
|
\fIne traitent pas\fR
|
|
les ports muets comme \('etant
|
|
ouverts) en sp\('ecifiant
|
|
\fB\-\-defeat\-rst\-ratelimit\fR\&.
|
|
.sp
|
|
Utiliser cette option peut r\('eduire la pr\('ecision, puisque certains ports apparaitront comme muets parcequ\*(AqNmap n\*(Aqattend alors pas assez longtemps une r\('eponse RST qui serait limit\('ee\&. Dans le cas d\*(Aqun SYN scan, l\*(Aqabsence de r\('eponse se traduit par un port marqu\('e
|
|
filtr\('e
|
|
plutot que
|
|
ferm\('e
|
|
quand des paquets RST sont recus\&. Cette option est utile quand vous n\*(Aqavez besoin que des ports ouverts, et que distinguer des
|
|
ferm\('es
|
|
ou des
|
|
filtr\('es
|
|
ne vaut pas le temps suppl\('ementaire que cela suppose\&.
|
|
.RE
|
|
.PP
|
|
\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (R\('egler un profil de comportement au niveau du d\('elai)
|
|
.RS 4
|
|
Bien que les contr\(^oles avanc\('es et pr\('ecis du d\('elai dont il est fait mention dans les sections pr\('ec\('edentes soient pr\('ecis et efficaces, certains peuvent les trouver compliqu\('es\&. Qui plus est, choisir les valeurs appropri\('ees peut parfois prendre plus de temps que le scan que vous essayez d\*(Aqoptimiser\&. De ce fait, Nmap offre une approche plus simple, avec six profils de timing\&. Vous pouvez les sp\('ecifier gr\(^ace \(`a l\*(Aqoption
|
|
\fB\-T\fR
|
|
et aux num\('eros (0 \(`a 5) ou aux noms correspondants\&. Les noms des profils sont paranoid (0), sneaky (1), polite (2), normal (3), agressive (4), et insane (5)\&. Les deux premiers sont pour \('eviter les IDS\&. Le profile \(Fo Polite \(Fc ralentit le scan afin d\*(Aqutiliser moins de bande passante et moins de ressources sur la machine cible\&. Le profil \(Fo Normal \(Fc est celui par d\('efaut et donc
|
|
\fB\-T3\fR
|
|
ne fait rien\&. Le profil \(Fo Agressive \(Fc acc\('el\(`ere les scans, partant du principe que vous travaillez sur un r\('eseau suffisamment rapide et efficace\&. Enfin, le profil \(Fo Insane \(Fc suppose que vous \(^etes sur un r\('eseau extraordinairement rapide ou que vous \(^etes pr\(^et \(`a sacrifier un peu de pr\('ecision pour plus de vitesse\&.
|
|
.sp
|
|
Ces profils permettent \(`a l\*(Aqutilisateur de sp\('ecifier \(`a quel point il souhaite \(^etre agressif tout en laissant Nmap choisir les valeur ad\('equates\&. Les profils effectuent aussi quelques ajustements que les options avanc\('ees ne permettent pas encore\&. Par exemple,
|
|
\fB\-T4\fR
|
|
emp\(^eche la variation dynamique du d\('elai de d\('epasser 10ms pour les ports TCP et
|
|
\fB\-T5\fR
|
|
met cette valeur \(`a 5 millisecondes\&. Les profils peuvent \(^etre utilis\('es en combinaison avec les options avanc\('ees en autant que le profil est pr\('ecis\('e en premier\&. Dans le cas contraire, les valeurs normalis\('ees pour le profil risquent d\*(Aq\('ecraser celles que vous sp\('ecifiez\&. Je vous recommande d\*(Aqutiliser
|
|
\fB\-T4\fR
|
|
lorsque vous scannez des r\('eseaux plus ou moins rapides, efficaces et modernes\&. Utilisez cette option (en d\('ebut de ligne de commande) m\(^eme si vous ajoutez des options avanc\('ees afin de b\('en\('eficier des petites am\('eliorations li\('ee \(`a cette option\&.
|
|
.sp
|
|
Si vous travaillez sur une connexion large bande ou Ethernet, je vous recommande toujours d\*(Aqutiliser
|
|
\fB\-T4\fR\&. Certains aiment utiliser
|
|
\fB\-T5\fR
|
|
quoique ce soit, \(`a mon avis, trop agressif\&. Les gens utilisent parfois
|
|
\fB\-T2\fR
|
|
parce qu\*(Aqils pensent que le rsique que les h\(^otes tombent en panne soit moins grand ou parce qu\*(Aqils se consid\(`erent comme respectueux d\*(Aqune fa\(,con g\('en\('erale\&. Souvent ils ne r\('ealisent pas \(`a quel point l\*(Aqoption
|
|
\fB\-T Polite\fR
|
|
est lente en r\('ealit\('e\&. Leur scan peut prendre dix fois plus de temps qu\*(Aqun scan par d\('efaut\&. Les machines qui tombent en panne et les probl\(`emes li\('es \(`a la bande passante sont rares avec les options de scan par d\('efaut (\fB\-T3\fR)\&. C\*(Aqest pourquoi je les recommande habituellement pour les scanneurs pr\('ecautionneux\&. Le fait de ne pas faire de d\('etection de version est bien plus efficace pour limiter ces probl\(`emes que de jouer sur les valeurs de timing\&.
|
|
.sp
|
|
Bien que les options
|
|
\fB\-T0\fR
|
|
et
|
|
\fB\-T1\fR
|
|
puissent \(^etre utiles pour \('eviter les alertes des IDS, elles prendront un temps \('enorme pour scanner des milliers de machines ou de ports\&. Lorsqu\*(Aqil s\*(Aqagit de tels scans, vous devriez r\('egler les valeurs exactes de timing dont vous avez besoin plut\(^ot que de vous appuyer sur les options
|
|
\fB\-T0\fR
|
|
et
|
|
\fB\-T1\fR
|
|
et les valeurs qui y sont associ\('ees\&.
|
|
.sp
|
|
Les effets principaux de
|
|
\fBT0\fR
|
|
sont de mettre les scans en s\('erie de fa\(,con \(`a ce que seul un port ne soit scann\('e \(`a la fois, puis d\*(Aqattendre 5 minutes entre chaque envoi de probe\&.
|
|
\fBT1\fR
|
|
et
|
|
\fBT2\fR
|
|
sont semblables mais n\*(Aqattendent que 15 secondes et 0,4 secondes, Respectivement, entre chaque probe\&.
|
|
\fBT3\fR
|
|
est le profil par d\('efaut de Nmap et comporte la mise en parall\(`ele\&.
|
|
\fBT4\fR
|
|
est l\*(Aq\('equivalent de
|
|
\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR
|
|
et met le d\('elai maximum de scan TCP \(`a 10 millisecondes\&.
|
|
\fBT5\fR
|
|
fait la m\(^eme chose que
|
|
\fB\-\-max\-rtt\-timeout 300 \-\-min_rtt_timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 900000\fR
|
|
tout en mettant le d\('elai maximum de scan TCP \(`a 5 millisecondes\&.
|
|
.RE
|
|
.SH "TIMING ET PERFORMANCES"
|
|
.PP
|
|
L\*(Aqune des priorit\('es les plus importantes dans le d\('eveloppement de Nmap a toujours \('et\('e la performance\&. Un scan par d\('efaut (\fBnmap \fR\fB\fIhostname\fR\fR\fB \fR) d\*(Aqun h\(^ote sur mon r\('eseau local prend un cinqui\(`eme de seconde\&. Il s\*(Aqagit donc de tr\(`es peu de temps mais les minutes s\*(Aqaccumulent lorsque vous scannez des dizaines ou des centaines de milliers d\*(Aqh\(^otes\&. De plus, certains scans tels que le scan UDP et la d\('etection de version peuvent accro\(^itre le temps global du scan de fa\(,con significative\&. De plus, certains pare\-feux limitent le taux de r\('eponses dans leur configuration\&. Bien que Nmap utilise un fonctionnement en parall\(`ele et beaucoup d\*(Aqautres algorithmes avanc\('es afin d\*(Aqacc\('el\('erer ces scans, l\*(Aqutilisateur garde le contr\(^ole total sur le fonctionnement de Nmap\&. Les utilisateurs confirm\('es choisissent avec une grande attention leurs commandes afin d\*(Aqobtenir seulement les informations dont ils ont besoin en un minimum de temps\&.
|
|
.PP
|
|
Les techniques permettant d\*(Aqaffiner les temps de scan sont entre autres d\*(Aq\('eviter les tests non essentiels et d\*(Aqavoir les versions les plus r\('ecentes de Nmap (les augmentations de performance sont fr\('equentes)\&. Optimiser ses param\(`etres de temps en temps peut ainsi faire toute la diff\('erence\&. Ces options sont d\('ecrites ci\-dessous\&.
|
|
.PP
|
|
\fB\-\-min\-hostgroup <millisecondes>\fR; \fB\-\-max\-hostgroup <millisecondes>\fR (Ajuste la quantit\('e du groupe de scans en parall\(`ele)
|
|
.RS 4
|
|
Nmap peut scanner des ports ou faire un scan de version sur de multiples h\(^otes en parall\(`ele\&. Pour ce faire, Nmap divise la plage des adresses IP des cibles en groupe puis scanne ces groupes un \(`a la fois\&. En g\('en\('eral, scanner un grand nombre de groupes am\('eliore l\*(Aqefficacit\('e de la proc\('edure\&. En contrepartie, les r\('esultats ne peuvent \(^etre fournis que lorsque tout le groupe d\*(Aqh\(^otes a \('et\('e scann\('e\&. Par cons\('equent, si Nmap a commenc\('e avec un groupe de 50, l\*(Aqutilisateur ne recevra aucun r\('esultat tant que les premiers 50 h\(^otes ne seront pas termin\('es (exception faite des informations donn\('ees en mode verbeux)\&.
|
|
.sp
|
|
Par d\('efaut, Nmap adopte un compromis dans son approche de ce conflit\&. Il commence avec une quantit\('e aussi petite que 5 groupes de fa\(,con \(`a obtenir rapidement les premiers r\('esultats et augmente ensuite la quantit\('e de groupes jusqu\*(Aq\(`a un maximum de1 024\&. Les valeurs exactes par d\('efaut d\('ependent des options configur\('ees\&. Par soucis d\*(Aqefficacit\('e, Nmap utilise une quantit\('e de groupes plus grande lorsqu\*(Aqil s\*(Aqagit de scans UDP ou sur peu de ports en TCP\&.
|
|
.sp
|
|
Lorsqu\*(Aqun maximum est sp\('ecifi\('e en quantit\('e de groupes avec l\*(Aqoption
|
|
\fB\-\-max\-hostgroup\fR, Nmap ne va jamais d\('epasser cette valeur\&. Sp\('ecifiez une quantit\('e minimale avec l\*(Aqoption
|
|
\fB\-\-min\-hostgroup\fR
|
|
et Nmap tentera de garder la quantit\('e de groupes au\-dessus de cette valeur\&. Nmap devra peut\-\(^etre utiliser des groupes plus petits que ceux que vous demandez s\*(Aqil n\*(Aqy a plus assez d\*(Aqh\(^otes cibles sur une interface donn\('ee par rapport au minimum que vous avez sp\('ecifi\('e Les deux valeurs doivent \(^etre d\('etermin\('es pour de conserver la quantit\('e de groupes dans une plage sp\('ecifique, quoique ceci ne soit que rarement souhait\('e\&.
|
|
.sp
|
|
Le premier usage de ces options est de sp\('ecifier un minimum assez grand pour que le scan entier se fasse plus vite\&. Un choix fr\('equent est 256 pour scanner un r\('eseau de Classe C\&. S\*(Aqil s\*(Aqagit d\*(Aqun scan incluanrt beaucoup de ports, d\('epasser cette valeur n\*(Aqaidera pas \(`a grand chose\&. S\*(Aqil s\*(Aqagit de scans sur peu de ports, une quantit\('e de groupes de 2 048 ou plus peut faciliter la proc\('edure\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-min\-parallelism <millisecondes>\fR; \fB\-\-max\-parallelism\*(Aq <millisecondes>\fR (Ajuste la mise en parall\(`ele des paquets de test, probes)
|
|
.RS 4
|
|
Ces options permettent de contr\(^oler le nombre total de probes id\('eal pour un groupe d\*(Aqh\(^otes\&. Elles permettent de scanner des ports et de d\('ecouvrir des h\(^otes (host discovery)\&. Par d\('efaut, Nmap calcule un parall\('elisme id\('eal et variable bas\('e sur les performances du r\('eseau\&. Si des paquets sont rejet\('es, Nmap ralentit sa cadence en permettant moins de probes simultan\('es\&. Le nombre id\('eal de probes augmente graduellement en m\(^eme temps que le r\('eseau d\('emontre ses performances\&. Ces options fixent les limites maximales et minimales selon cette variable\&. Par d\('efaut, le parall\('elisme id\('eal peut chuter \(`a 1 si le r\('eseau s\*(Aqav\(`ere trop faible et monter \(`a plusieurs centaines dans des conditions parfaites\&.
|
|
.sp
|
|
L\*(Aqusage habituel consiste \(`a r\('egler l\*(Aqoption
|
|
\fB\-\-min\-parallelism\fR
|
|
\(`a une valeur sup\('erieure \(`a 1 pour acc\('el\('erer les scans sur des r\('eseaux de faible performance\&. Il est risqu\('e de trop modifier cette option puisqu\*(Aq\('etablir une valeur trop \('elev\('ee peut affecter la pr\('ecision des r\('esultats\&. Modifier cette option r\('eduit aussi la capacit\('e de Nmap \(`a contr\(^oler le parall\('elisme de fa\(,con dynamique selon les conditions du r\('eseau\&. Une valeur de 10 peut \(^etre raisonnable bien que je n\*(Aqajuste personnellement celle\-ci qu\*(Aqen dernier ressort\&.
|
|
.sp
|
|
L\*(Aqoption
|
|
\fB\-\-max\-parallelism\fR
|
|
est parfois r\('egl\('ee \(`a 1 afin d\*(Aq\('eviter d\*(Aqenvoyer plus d\*(Aqun probe en m\(^eme temps vers les h\(^otes\&. Ceci peut \(^etre int\('eressant en combinaison avec l\*(Aqoption
|
|
\fB\-\-scan\-delay\fR
|
|
(on verra plus tard), bien que cette option serve d\('ej\(`a elle\-m\(^eme \(`a cet effet\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-min_rtt_timeout <millisecondes>\fR, \fB\-\-max\-rtt\-timeout <millisecondes>\fR, \fB\-\-initial\-rtt\-timeout <millisecondes>\fR (Ajuste la dur\('ee de vie des paquets de test, probe timeouts)
|
|
.RS 4
|
|
Nmap conserve une valeur de dur\('ee de vie qui d\('etermine combien de temps il devra attendre avant d\*(Aqenvoyer une r\('eponse \(`a un probe avant de l\*(Aqabandonner ou de le renvoyer\&. Cette valeur est calcul\('ee en fonction du temps de r\('eponse des probes pr\('ec\('edents\&. Si le temps de latence du r\('eseau est significatif et variable, ce d\('elai d\*(Aqinactivit\('e ou cette dur\('ee de vie, peut augmenter jusqu\*(Aq\(`a plusieurs secondes\&. Elle est \('egalement de niveau \('elev\('e et peut rester ainsi pendant un bon moment lorsque Nmap scanne des h\(^otes sans r\('eponse\&.
|
|
.sp
|
|
Ces options acceptent des valeurs en millisecondes\&. Sp\('ecifier un
|
|
\fB\-\-max\-rtt\-timeout\fR
|
|
et un
|
|
\fB\-\-initial\-rtt\-timeout\fR
|
|
plus bas que ceux par d\('efaut peuvent raccourcir le temps de scan de fa\(,con significative\&. C\*(Aqest particuli\(`erement vrai pour les scans sans ping pr\('ealable (\fB\-P0\fR) et ceux contre des r\('eseaux tr\(`es filtr\('es\&. Toutefois, ne soyez pas trop agressif\&. Le scan peut se finir en un temps plus significatif si, au contraire, vous sp\('ecifiez des valeurs tellement basses que les dur\('ees de vie des probes sont termin\('ees et ceux\-ci renvoy\('es alors que leurs r\('eponses sont en fait encore en transit\&.
|
|
.sp
|
|
Si tous les h\(^otes sont sur un r\('eseau local, 100 millisecondes est une valeur de
|
|
\fB\-\-max\-rtt\-timeout\fR
|
|
seront suffisantes\&. Si vous etes face a un routage, mesurez d\*(Aqabord le temps de r\('eponse d\*(Aqun h\(^ote sur le r\('eseau \e l\*(Aqaide du ping ICMP de Nmap ou d\*(Aqun autre outil, comme hping2 qui est plus \(`a m\(^eme de passer un pare\-feu si le paquet est sp\('ecialement forg\('e\&. Regardez les dur\('ees de transit sur 10 paquets ou plus\&. Vous pouvez doubler cette valeur pour
|
|
\fB\-\-initial\-rtt\-timeout\fR
|
|
et tripler ou quadrupler le
|
|
\fB\-\-max\-rtt\-timeout\fR\&. G\('en\('eralement, je ne r\(`egle pas le rtt maximum \(`a moins de 100ms, et ce, quelles que soient les mesures de ping\&. De plus, je n\*(Aqexc\(`ede pas 1 000ms\&.
|
|
.sp
|
|
\fB\-\-min_rtt_timeout\fR
|
|
est une option rarement utilis\('ee qui peut s\*(Aqav\('erer utile lorsqu\*(Aqun r\('eseau est si lent que m\(^eme les r\('eglages par d\('efaut de Nmap sont trop agressifs\&. Comme Nmap ne r\('eduit le d\('elai d\*(Aqinactivit\('e au minimum que lorsque le r\('eseau semble suffisamment rapide, ce genre de besoin est inhabituel et devrait \(^etre rapport\('e en tant que proc\('edure erron\('ee \(`a la liste de d\('eveloppement de nmap\-dev\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-max\-retries <nombreessais>\fR (Sp\('ecifie le nombre maximum de retransmisison des paquets de test (probes))
|
|
.RS 4
|
|
Quand Nmap ne re\(,coit pas de r\('eponse \(`a un paquet de test sur un port, cela peut signifier que le port est filtr\('e\&. Ou simplement que la r\('eponse s\*(Aqest perdue sur le r\('eseau\&. Il est \('egalement possible que l\*(Aqh\(^ote cible ait limit\('e son taux d\*(Aq\('emission ce qui a temporairement bloqu\('e la r\('eponse\&. Pour ces raisons, Nmap recommence l\*(Aq\('emission du paquet de test\&. Si Nmap d\('etecte que le r\('eseau est peu fiable, il peut essayer de re\-\('emettre le paquet plus de fois encore avant de s\*(Aqarr\(^eter\&. Si cette technique am\('eliore la fiabilit\('e, elle ralonge la dur\('ee du scan\&. Quand la performance est un facteur critique, les scans peuvent \(^etre acc\('el\('er\('es en limitant le nombre de retransmissions autoris\('e\&. Vous pouvez m\(^eme sp\('ecifier
|
|
\fB\-\-max\-retries 0\fR
|
|
pour \('eviter toute retransmission, bien que cela ne soit pas trop recommand\('e\&.
|
|
.sp
|
|
Le param\('etrage par d\('efaut (sans politique
|
|
\fB\-T\fR
|
|
sp\('ecifi\('ee) est d\*(Aqautoriser jusqu\*(Aq\(`a dic retransmissions\&. Si le r\('eseau a l\*(Aqair fiable et que les h\(^otes cibles ne limitent pas leur taux d\*(Aq\('emission, Nmap ne fait g\('en\('eralement qu\*(Aqune seule retransmission\&. Ainsi, r\('eduire
|
|
\fB\-\-max\-retries\fR
|
|
\(`a une valeur basse comme trois n\*(Aqaffecte pas la plupart des scans\&. Une telle valeur peut acc\('el\('erer significativement les scans pour des h\(^otes lents (qui limitent leurs \('emissions)\&. G\('en\('eralement, vous perdez des informations si Nmap cesse de scanner un port trop t\(^ot, mais cela peut \(^etre pr\('ef\('erable \(`a laisser
|
|
\fB\-\-host\-timeout\fR
|
|
expirer et perdre alors toutes les informations concernant la cible\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-host\-timeout <millisecondes>\fR (Abandon des h\(^otes cibles trop lents)
|
|
.RS 4
|
|
Certains h\(^otes prennent du temps
|
|
\fIlong\fR
|
|
\(`a scanner, tout simplement\&. Ceci peut \(^etre d\(^u \(`a du mat\('eriel ou \(`a des logiciels r\('eseau peu performants ou inefficaces, \(`a un taux de paquets limit\('e ou \(`a un pare\-feu restrictif\&. Le faible pourcentage de h\(^otes lents scann\('es peut ralentir le temps de scan tout entier\&. Il est donc parfois pr\('ef\('erable d\*(Aq\('ecarter temporairement ces h\(^otes du scan initial\&. Ceci peut \(^etre fait en sp\('ecifiant
|
|
\fB\-\-host\-timeout\fR
|
|
avec le nombre de millisecondes maximales que vous \(^etes pr\(^et \(`a attendre\&. Je choisis souvent 1 800 000 secondes pour m\*(Aqassurer que Nmap ne perde pas plus d\*(Aqune demi\-heure sur un seul h\(^ote\&. Notez que Nmap peut \(^etre en train de scanner d\*(Aqautres h\(^otes en m\(^eme temps durant cette demi\-heure, ce n\*(Aqest donc pas une perte compl\(`ete\&. Un h\(^ote qui d\('epasse cette valeur est abandonn\('e\&. Pas de listage des ports, de d\('etection d\*(AqOS ou de d\('etection de version dans les r\('esultats pour celui\-ci\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-scan\-delay <millisecondes>\fR; \fB\-\-max_scan\-delay <millisecondes>\fR (Ajuste le d\('elai entre les paquets de test)
|
|
.RS 4
|
|
Cette option force Nmap \(`a attendre d\*(Aqobtenir au moins la valeur donn\('ee en millisecondes entre chaque probe qu\*(Aqil envoie sur un h\(^ote donn\('e\&. C\*(Aqest particuli\(`erement utile en cas de limitation de nombre de paquets (taux limite)\&. Les machines Solaris (parmi beaucoup d\*(Aqautres) vont habituellement r\('epondre \(`a des paquets de test d\*(Aqun scan UDP par seulement un message ICMP par seconde\&. Tout ce qui est envoy\('e au\-del\(`a par Nmap serait inutile\&. Un
|
|
\fB\-\-scan\-delay\fR
|
|
de 1 000 gardera Nmap \(`a ce taux suffisamment lent\&. Nmap essaie de d\('etecter le taux limite et d\*(Aqajuster le d\('elai en cons\('equence, mais il ne fait pas de mal de le pr\('eciser si vous savez d\('ej\(`a quelle valeur est la meilleure\&.
|
|
.sp
|
|
Une autre utilisation de
|
|
\fB\-\-scan\-delay\fR
|
|
est d\*(Aq\('eviter les d\('etections \('eventuelles des syst\(`emes de d\('etection et de pr\('evention d\*(Aqintrusion (IDS/IPS) bas\('ees sur ce genre de r\(`egle\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-defeat\-rst\-ratelimit\fR
|
|
.RS 4
|
|
Beaucoup d\*(Aqh\(^otes utilisent depuis longtemps un filtrage pour r\('eduire le nombre de messages d\*(Aqerreur ICMP (comme les erreurs de ports inaccessibles) qu\*(Aqils envoient\&. Certains syst\(`emes appliquent a pr\('esent des limitations similaires aux paquets RST (reset) qu\*(Aqils g\('en\(`erent\&. Ceci peut ralentir Nmap dramaticalement \('etant donn\('e qu\*(Aqil ajuste son timing pour refl\('eter ces limitations\&. Vous pouvez dire a Nmap d\*(Aqignorer ces limitations (pour les scans de ports comme le SYN scan qui
|
|
\fIne traitent pas\fR
|
|
les ports muets comme \('etant
|
|
ouverts) en sp\('ecifiant
|
|
\fB\-\-defeat\-rst\-ratelimit\fR\&.
|
|
.sp
|
|
Utiliser cette option peut r\('eduire la pr\('ecision, puisque certains ports apparaitront comme muets parcequ\*(AqNmap n\*(Aqattend alors pas assez longtemps une r\('eponse RST qui serait limit\('ee\&. Dans le cas d\*(Aqun SYN scan, l\*(Aqabsence de r\('eponse se traduit par un port marqu\('e
|
|
filtr\('e
|
|
plutot que
|
|
ferm\('e
|
|
quand des paquets RST sont recus\&. Cette option est utile quand vous n\*(Aqavez besoin que des ports ouverts, et que distinguer des
|
|
ferm\('es
|
|
ou des
|
|
filtr\('es
|
|
ne vaut pas le temps suppl\('ementaire que cela suppose\&.
|
|
.RE
|
|
.PP
|
|
\fB\-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane>\fR (R\('egler un profil de comportement au niveau du d\('elai)
|
|
.RS 4
|
|
Bien que les contr\(^oles avanc\('es et pr\('ecis du d\('elai dont il est fait mention dans les sections pr\('ec\('edentes soient pr\('ecis et efficaces, certains peuvent les trouver compliqu\('es\&. Qui plus est, choisir les valeurs appropri\('ees peut parfois prendre plus de temps que le scan que vous essayez d\*(Aqoptimiser\&. De ce fait, Nmap offre une approche plus simple, avec six profils de timing\&. Vous pouvez les sp\('ecifier gr\(^ace \(`a l\*(Aqoption
|
|
\fB\-T\fR
|
|
et aux num\('eros (0 \(`a 5) ou aux noms correspondants\&. Les noms des profils sont paranoid (0), sneaky (1), polite (2), normal (3), agressive (4), et insane (5)\&. Les deux premiers sont pour \('eviter les IDS\&. Le profile \(Fo Polite \(Fc ralentit le scan afin d\*(Aqutiliser moins de bande passante et moins de ressources sur la machine cible\&. Le profil \(Fo Normal \(Fc est celui par d\('efaut et donc
|
|
\fB\-T3\fR
|
|
ne fait rien\&. Le profil \(Fo Agressive \(Fc acc\('el\(`ere les scans, partant du principe que vous travaillez sur un r\('eseau suffisamment rapide et efficace\&. Enfin, le profil \(Fo Insane \(Fc suppose que vous \(^etes sur un r\('eseau extraordinairement rapide ou que vous \(^etes pr\(^et \(`a sacrifier un peu de pr\('ecision pour plus de vitesse\&.
|
|
.sp
|
|
Ces profils permettent \(`a l\*(Aqutilisateur de sp\('ecifier \(`a quel point il souhaite \(^etre agressif tout en laissant Nmap choisir les valeur ad\('equates\&. Les profils effectuent aussi quelques ajustements que les options avanc\('ees ne permettent pas encore\&. Par exemple,
|
|
\fB\-T4\fR
|
|
emp\(^eche la variation dynamique du d\('elai de d\('epasser 10ms pour les ports TCP et
|
|
\fB\-T5\fR
|
|
met cette valeur \(`a 5 millisecondes\&. Les profils peuvent \(^etre utilis\('es en combinaison avec les options avanc\('ees en autant que le profil est pr\('ecis\('e en premier\&. Dans le cas contraire, les valeurs normalis\('ees pour le profil risquent d\*(Aq\('ecraser celles que vous sp\('ecifiez\&. Je vous recommande d\*(Aqutiliser
|
|
\fB\-T4\fR
|
|
lorsque vous scannez des r\('eseaux plus ou moins rapides, efficaces et modernes\&. Utilisez cette option (en d\('ebut de ligne de commande) m\(^eme si vous ajoutez des options avanc\('ees afin de b\('en\('eficier des petites am\('eliorations li\('ee \(`a cette option\&.
|
|
.sp
|
|
Si vous travaillez sur une connexion large bande ou Ethernet, je vous recommande toujours d\*(Aqutiliser
|
|
\fB\-T4\fR\&. Certains aiment utiliser
|
|
\fB\-T5\fR
|
|
quoique ce soit, \(`a mon avis, trop agressif\&. Les gens utilisent parfois
|
|
\fB\-T2\fR
|
|
parce qu\*(Aqils pensent que le rsique que les h\(^otes tombent en panne soit moins grand ou parce qu\*(Aqils se consid\(`erent comme respectueux d\*(Aqune fa\(,con g\('en\('erale\&. Souvent ils ne r\('ealisent pas \(`a quel point l\*(Aqoption
|
|
\fB\-T Polite\fR
|
|
est lente en r\('ealit\('e\&. Leur scan peut prendre dix fois plus de temps qu\*(Aqun scan par d\('efaut\&. Les machines qui tombent en panne et les probl\(`emes li\('es \(`a la bande passante sont rares avec les options de scan par d\('efaut (\fB\-T3\fR)\&. C\*(Aqest pourquoi je les recommande habituellement pour les scanneurs pr\('ecautionneux\&. Le fait de ne pas faire de d\('etection de version est bien plus efficace pour limiter ces probl\(`emes que de jouer sur les valeurs de timing\&.
|
|
.sp
|
|
Bien que les options
|
|
\fB\-T0\fR
|
|
et
|
|
\fB\-T1\fR
|
|
puissent \(^etre utiles pour \('eviter les alertes des IDS, elles prendront un temps \('enorme pour scanner des milliers de machines ou de ports\&. Lorsqu\*(Aqil s\*(Aqagit de tels scans, vous devriez r\('egler les valeurs exactes de timing dont vous avez besoin plut\(^ot que de vous appuyer sur les options
|
|
\fB\-T0\fR
|
|
et
|
|
\fB\-T1\fR
|
|
et les valeurs qui y sont associ\('ees\&.
|
|
.sp
|
|
Les effets principaux de
|
|
\fBT0\fR
|
|
sont de mettre les scans en s\('erie de fa\(,con \(`a ce que seul un port ne soit scann\('e \(`a la fois, puis d\*(Aqattendre 5 minutes entre chaque envoi de probe\&.
|
|
\fBT1\fR
|
|
et
|
|
\fBT2\fR
|
|
sont semblables mais n\*(Aqattendent que 15 secondes et 0,4 secondes, Respectivement, entre chaque probe\&.
|
|
\fBT3\fR
|
|
est le profil par d\('efaut de Nmap et comporte la mise en parall\(`ele\&.
|
|
\fBT4\fR
|
|
est l\*(Aq\('equivalent de
|
|
\fB\-\-max\-rtt\-timeout 1250 \-\-initial\-rtt\-timeout 500 \-\-max\-retries 6\fR
|
|
et met le d\('elai maximum de scan TCP \(`a 10 millisecondes\&.
|
|
\fBT5\fR
|
|
fait la m\(^eme chose que
|
|
\fB\-\-max\-rtt\-timeout 300 \-\-min_rtt_timeout 50 \-\-initial\-rtt\-timeout 250 \-\-max\-retries 2 \-\-host\-timeout 900000\fR
|
|
tout en mettant le d\('elai maximum de scan TCP \(`a 5 millisecondes\&.
|
|
.RE
|
|
.SH "\('EVITEMENT DE PARE-FEUX/IDS ET MYSTIFICATION"
|
|
.PP
|
|
Beaucoup de pionniers d\*(AqInternet envisageaient un r\('eseau global ouvert avec un espace d\*(Aqadressage IP universel permettant des connexions virtuelles entre n\*(Aqimporte quel noeuds\&. Ceci permet aux h\(^otes d\*(Aqagir en v\('eritables relais, recevant et renvoyant l\*(Aqinformation les uns aux autres\&. Les gens pourraient acc\('eder \(`a l\*(Aqensemble de leur syst\(`eme domestique du bureau, en changeant les r\('eglages de climatisation ou en d\('everrouillant leur porte pour les premiers invit\('es\&. Cette vision d\*(Aqune connectivit\('e universelle a \('et\('e \('etouff\('ee par la r\('eduction de l\*(Aqespace d\*(Aqadressage et les consid\('erations de s\('ecurit\('e\&. Au d\('ebut des ann\('ees 90, les organisations commenc\(`erent \(`a d\('eployer des pare\-feux dans le but explicite de r\('eduire la connectivit\('e\&. De gigantesques r\('eseaux furent cern\('es et coup\('es (NdT : le texte original dit
|
|
\(Fo\ \&barr\('es par un cordon de police\ \&\(Fc) d\*(AqInternet non filtr\('e par des proxies applicatifs, la conversion des adresses r\('eseau (network address translation) et les filtrages de paquets\&. Le flux d\*(Aqinformation libre c\('eda la place \(`a une r\('egulation stricte de canaux de communication approuv\('es et du contenu qui y transitait\&.
|
|
.PP
|
|
Les outils d\*(Aqobstruction du r\('eseau comme les pare\-feux peuvent rendre la cartographie d\*(Aqun r\('eseau beaucoup trop difficile\&. Ce fait ne va pas aller en s\*(Aqarrangeant puisque l\*(Aq\('etouffement de toute possibilit\('e de reconnaissance est souvent un point cl\('e de l\*(Aqimpl\('ementation des interfaces\&. Nonobstant, Nmap offre un certain nombre de fonctionnalit\('es afin d\*(Aqaider \(`a comprendre ces r\('eseaux complexes ainsi que de s\*(Aqassurer que les filtres agissent comme ils sont cens\('es le faire\&. Il supporte m\(^eme des m\('ecanismes pour contourner les d\('efenses \('etablies de fa\(,con trop faibles\&. Une des meilleures m\('ethodes pour mieux comprendre votre r\('eseau et la s\('ecurit\('e qui y est d\('eploy\('ee est de tenter de la contourner\&. Mettez\-vous \(`a la place de l\*(Aqattaquant et d\('eployez les techniques de cette section contre vos r\('eseaux\&. Lancez un scan \(Fo FTP bounce \(Fc, un \(Fo Idle scan \(Fc, une attaque par fragmentation, ou tentez d\*(Aq\('etablir un tunnel \(`a travers un de vos propres proxies\&.
|
|
.PP
|
|
Outre le fait de restreindre l\*(Aqactivit\('e du r\('eseau, les compagnies surveillent de plus en plus le trafic \(`a l\*(Aqaide de syst\(`emes de d\('etection d\*(Aqintrusion (IDS)\&. Tous les principaux IDSs sont pr\('evus pour d\('etecter les scans de Nmap parce que les scans sont parfois pr\('ecurseurs d\*(Aqattaques\&. Beaucoup de ces produits ont r\('ecemment migr\('e vers des syst\(`emes de
|
|
\fIpr\('evention\fR
|
|
et d\*(Aqintrusion (IPS) qui bloquent de fa\(,con active un trafic suppos\('e malveillant\&. Malheureusement pour les administrateurs de r\('eseau et les distributeurs d\*(AqIDS, la fiabilit\('e de d\('etection de mauvaises intentions par analyse des donn\('ees de paquets demeure un probl\(`eme\&. Les attaquants, avec de la patience, un certain niveau d\*(Aqexpertise et certaines quelques fonctions de Nmap, peuvent traverser un IDS sans \(^etre d\('etect\('es\&. Dans le m\(^eme temps, les administrateurs doivent composer avec un grand nombre de fausses alertes (false positive) qui bloquent et signalent une activit\('e innocente\&.
|
|
.PP
|
|
De temps en temps, les gens sugg\(`erent que Nmap ne devrait pas offrir de possibilit\('es de contourner les r\(`egles des pare\-feux ou de tromper les IDSs\&. Ils font valoir que ces fonctionnalit\('es sont utilis\('ees par les attaquants de la m\(^eme fa\(,con que les administrateurs les utilisent pour renforcer leur s\('ecurit\('e\&. Le probl\(`eme avec cette logique est que ces m\('ethodes seront toujours utilis\('ees par les attaquants, qui ne feront que trouver d\*(Aqautres outils ou corriger ces fonctions sur Nmap\&. Dans le m\(^eme temps, les administrateurs trouveront plus de difficult\('es \(`a faire leur travail\&. D\('eployer seulement des serveurs FTP modernes et corrig\('es est une d\('efense bien plus efficace que d\*(Aqemp\(^echer la distribution d\*(Aqoutils permettant les attaques \(Fo FTP Bounce \(Fc\&.
|
|
.PP
|
|
Il n\*(Aqy a pas de m\('ethode miracle (ni d\*(Aqoption dans Nmap) pour d\('etecter et tromper les pare\-feux et les syst\(`emes IDS\&. Cela demande un niveau de connaissances et de l\*(Aqexp\('erience\&. Un tutoriel est pr\('evu pour ce guide de r\('ef\('erence qui ne fait que lister les options relatives \(`a ces sujets et ce qu\*(Aqelles font\&.
|
|
.PP
|
|
\fB\-f\fR (fragmentation de paquets); \fB\-\-mtu\fR (utiliser le MTU sp\('ecifi\('e)
|
|
.RS 4
|
|
L\*(Aqoption
|
|
\fB\-f\fR
|
|
force le scan demand\('e (y compris les scans de type ping) \(`a utiliser des paquets IP fragment\('es en petits paquets\&. L\*(Aqid\('ee est de partager l\*(Aqen\-t\(^ete TCP en plusieurs paquets pour rendre plus difficile la d\('etection de ce que vous faites par les dispositifs de filtrage de paquets, les syst\(`emes de d\('etection et d\*(Aqintrusion et autres syst\(`emes ennuyeux\&. Il faudra cependant faire attention ! Certains programmes ont du mal \(`a g\('erer ces petits paquets\&. Les anciens sniffers comme Sniffit souffraient d\*(Aqerreurs de segmentation imm\('ediatement apr\(`es avoir re\(,cu le premier fragment\&. Sp\('ecifiez cette option une fois, et Nmap partage les paquets en 8 bytes ou moins apr\(`es l\*(Aqen\-t\(^ete IP\&. Par exemple, un en\-t\(^ete de 20 bytes sera fragment\('e en 3 paquets\&. Deux avec 8 bytes d\*(Aqen\-t\(^ete TCP et un avec les 4 derniers\&. Bien entendu, chaque paquet a son en\-t\(^ete IP\&. Sp\('ecifiez encore
|
|
\fB\-f\fR
|
|
pour utiliser 16 bytes par fragment (ceci r\('eduit le nombre de fragments)\&. Vous pouvez aussi sp\('ecifier votre propre taille d\*(Aqoffset avec l\*(Aqoption
|
|
\fB\-\-mtu\fR\&. Par contre, ne sp\('ecifiez pas
|
|
\fB\-f\fR
|
|
si vous utilisez
|
|
\fB\-\-mtu\fR\&. L\*(Aqoffset doit \(^etre un multiple de 8\&. Bien que les paquets fragment\('es ne tromperont pas les filtrages de paquets et les pare\-feux, tenant compte de tous les fragments IP, comme l\*(Aqoption CONFIG_IP_ALWAYS_DEFRAG dans le noyau Linux, certains r\('eseaux ne peuvent supporter la perte de performance que cela entra\(^ine et de ce fait laisse ceci d\('esactiv\('e\&. D\*(Aqautres ne peuvent pas l\*(Aqactiver parce que les fragments peuvent prendre diff\('erentes routes au sein de leur r\('eseau\&. Certains syst\(`emes source d\('efragmentent les paquets sortant dans le noyau\&. Linux, avec le module de connection \(Fo tracking iptables \(Fc est un tr\(`es bon exemple\&. Faites donc ce genre de scan avec un sniffer comme Ethereal tournant en m\(^eme temps afin de vous assurer que les paquets envoy\('es sont bien fragment\('es\&. Si votre syst\(`eme d\*(Aqexploitation causait des probl\(`emes, essayez l\*(Aqoption
|
|
\fB\-\-send\-eth\fR
|
|
pour contourner la couche IP et envoyer des trames en raw Ethernet\&.
|
|
.RE
|
|
.PP
|
|
\fB\-D <decoy1 [,decoy2][,ME],\&.\&.\&.>\fR (Dissimuler un scan avec des leurres)
|
|
.RS 4
|
|
Engendrez un scan avec des leurres, ce qui fait croire \(`a l\*(Aqh\(^ote distant que les h\(^otes que vous avez sp\('ecifi\('e ex\('ecutent eux aussi un scan contre lui\&. Un IDS fera \('etat d\*(Aqun scan de 5 \(`a 10 ports depuis des adresses IP diff\('erentes, dont la v\(^otre, sans pouvoir faire la diff\('erence entre les leurres et la v\('eritable origine\&. Bien que ceci puisse \(^etre rep\('er\('e par la tracabilit\('e des routeurs, le renvoi de r\('eponses (response\-dropping), et d\*(Aqautres m\('ecanismes actifs, ceci reste une technique g\('en\('eralement efficace pour cacher votre adresse IP\&.
|
|
.sp
|
|
S\('eparez chaque leure par une virgule et vous pourrez utiliser de fa\(,con facultative
|
|
ME
|
|
en tant que l\*(Aqun des leurres pour repr\('esenter la position de votre v\('eritable adresse IP\&. Si vous mettez
|
|
ME
|
|
en sixi\(`eme position ou apr\(`es, certains syst\(`emes de d\('etection de scans de ports (comme l\*(Aqexcellent scanlogd de Solar Designer) sont incapables de voir votre adresse IP\&. Si vous n\*(Aqutilisez pas
|
|
ME, Nmap vous placera \(`a une position al\('eatoire\&.
|
|
.sp
|
|
Notez que les h\(^otes que vous utilisez comme leurres devraient \(^etre r\('eellement actifs; sinon, vous risquez d\*(Aqinonder votre cible par des SYN\&. Sans compter qu\*(Aqil serait tr\(`es facile de d\('eterminer quel h\(^ote est en train de scanner si en fait un seul est actif sur le r\('eseau\&. Vous pourriez utiliser des adresses IP plut\(^ot que des noms afin de ne pas appara\(^itre dans les logs des serveurs de nom du r\('eseau\&.
|
|
.sp
|
|
Les leurres sont utilis\('es autant dans la phase initiale de scan ping (utilisant les ICMP, SYN, ACK, ou quoi que ce soit) que dans la phase proprement dite de scan de ports\&. Les leurres sont aussi utilis\('es pendant la d\('etection d\*(AqOS distant (\fB\-O\fR)\&. Les leurres ne fonctionnent pas avec la d\('etection de version ou un scan de type TCP connect()\&.
|
|
.sp
|
|
Il est inutile d\*(Aqutiliser trop de leurres car cela pourrait ralentir votre scan et potentiellement le rendre moins pr\('ecis\&. Enfin, certains FAI peuvent filtrer vos paquets usurp\('es (spoof\('es) toutefois beaucoup ne le font pas du tout\&.
|
|
.RE
|
|
.PP
|
|
\fB\-S <IP_Address>\fR (Usurper votre adresse source)
|
|
.RS 4
|
|
Dans certaines circonstances, Nmap n\*(Aqest pas capable de d\('eterminer votre adresse source ( Nmap vous avisera le cas \('ech\('eant)\&. Dans cette situation, utilisez
|
|
\fB\-S\fR
|
|
avec l\*(Aqadresse IP de l\*(Aqinterface avec laquelle vous souhaitez envoyer les paquets\&.
|
|
.sp
|
|
Un autre usage possible de ce drapeau est d\*(Aqusurper (spoofer) le scan afin de faire croire \(`a la cible que
|
|
\fIquelqu\*(Aqun d\*(Aqautre\fR
|
|
est en train de les scanner\&. Imaginez une compagnie constamment scann\('ee pas un concurrent ! L\*(Aqoption
|
|
\fB\-e\fR
|
|
est g\('en\('eralement requise pour ce genre d\*(Aqusage et
|
|
\fB\-P0\fR
|
|
est \(`a conseiller quoi qu\*(Aqil en soit\&.
|
|
.RE
|
|
.PP
|
|
\fB\-e <interface>\fR (Utiliser l\*(Aqinterface pr\('ecis\('ee)
|
|
.RS 4
|
|
Avise Nmap sur quelle interface envoyer et recevoir les paquets\&. Nmap devrait pouvoir la d\('etecter automatiquement mais il vous le dira si ce n\*(Aqest pas le cas\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-source\-port <portnumber>;\fR \fB\-g <portnumber>\fR (Usurper le num\('ero du port source)
|
|
.RS 4
|
|
L\*(Aqune des erreurs de configuration les plus surprenantes est de faire confiance au trafic sur la base du port d\*(Aqo\(`u il provient\&. Il est facile de comprendre pourquoi une telle situation se produit\&. Un administrateur va r\('egler un tout nouveau pare\-feu et \(^etre noy\('e sous les plaintes des utilisateurs dont les applications ne fonctionnent plus\&. En particulier, les DNS peuvent \(^etre cass\('es parce que les r\('eponses UDP DNS depuis les serveurs externes ne peuvent plus entrer sur le r\('eseau\&. Le FTP est un autre exemple\&. Dans les transferts actifs en FTP, le serveur distant essaie d\*(Aq\('etablir une connexion en retour vers le client afin de transf\('erer le fichier demand\('e\&.
|
|
.sp
|
|
La solution s\('ecuris\('ee pour ce probl\(`eme existe, souvent sous la forme de proxies applicatifs ou de modules de filtrage de protocoles au niveau du pare\-feu\&. Malheureusement, il existe aussi des solutions faciles non s\('ecuris\('ees\&. En remarquant que les r\('eponses DNS viennent du port 53 et le FTP actif du port 20, beaucoup d\*(Aqadministrateurs sont tomb\('es dans le pi\(`ege de seulement permettre le trafic entrant depuis ces ports\&. Ils imaginent souvent qu\*(Aqaucun attaquant n\*(Aqaura not\('e et pens\('e exploiter de telles failles de pare\-feux\&. Dans d\*(Aqautres cas, l\*(Aqadministrateur va consid\('erer que c\*(Aqest une solution \(`a court terme jusqu\*(Aq\(`a ce qu\*(Aqil impl\('emente une solution plus s\('ecuris\('ee\&. Ils oublient par la suite d\*(Aqeffectuer la mise \(`a jour de s\('ecurit\('e\&.
|
|
.sp
|
|
Les administrateurs de r\('eseau surcharg\('es de travail ne sont pas les seuls \(`a tomber dans ce pi\(`ege\&. Beaucoup de produits sont pens\('es avec ce genre de r\(`egle mal s\('ecuris\('ee\&. M\(^eme Microsoft en a \('et\('e coupable\&. Les filtres IPsec, fournis avec Windows 2000 et Windows XP, contiennent une r\(`egle implicite qui autorise tout trafic depuis le port 88 (Kerberos) en TCP ou UDP\&. Dans un autre cas bien connu, les versions du pare\-feu Zone Alarm personal firewall jusqu\*(Aq\(`a 2\&.1\&.25 permettaient tout paquet UDP provenant du port 53 (DNS) ou 67 (DHCP)\&.
|
|
.sp
|
|
Nmap propose les options
|
|
\fB\-g\fR
|
|
et
|
|
\fB\-\-source\-port\fR
|
|
qui sont \('equivalentes pour exploiter ces faiblesses\&. Fournissez simplement un num\('ero de port et Nmap enverra les paquets depuis ce port si possible\&. Nmap doit utiliser certains num\('eros de port afin que certains tests de d\('etection d\*(AqOS fonctionnent correctement\&. De plus, les requ\(^etes DNS ignorent le drapeau
|
|
\fB\-\-source\-port\fR
|
|
parce que Nmap se fonde sur un syst\(`eme de biblioth\(`eques pour les traiter\&. La plupart des scans TCP, y compris le SYN scan, supportent enti\(`erement l\*(Aqoption comme le fait aussi le scan UDP\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-data\-length <number>\fR (Ajoute des donn\('ees al\('eatoires aux paquets envoy\('es)
|
|
.RS 4
|
|
Normalement, Nmap envoie des paquets minimalistes contenant seulement un en\-t\(^ete\&. Donc ces paquets TCP ne font g\('en\('eralement que 40 bytes et les ICMP echo request seulement 28 bytes\&. Cette option indique \(`a Nmap d\*(Aqajouter le nombre donn\('e de bytes al\('eatoires \(`a la plupart des paquets qu\*(Aqil envoie\&. Les paquets de la d\('etection d\*(AqOS (\fB\-O\fR) ne sont pas affect\('es, contrairement \(`a la plupart des paquets de ping et de scan de port\&. Cette proc\('edure ralentit bien entendu les choses mais permet toutefois de faire passer un scan pour un peu moins suspect\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-ip\-options <S|R [route]|L [route]|T|U \&.\&.\&. >;>\fR \fB\-\-ip\-options <hex string>>\fR (Envoie des paquets avec les options IP sp\('ecifi\('ees)
|
|
.RS 4
|
|
Le
|
|
\m[blue]\fBprotocole IP\fR\m[]\&\s-2\u[8]\d\s+2
|
|
offre plusieurs options pouvant \(^etre plac\('ees dans l\*(Aqent\(^ete des paquets\&. Contrairement aux options TCP habituelles, les options IP sont rarement rencontr\('ees pour des raisons pratiques et de s\('ecurit\('e\&. En fait, beaucoup de routeurs Internet bloquent les options les plus dangereuses comme le routage de source\&. CEpendant les options peuvent s\*(Aqav\('erer utiles dans certains cases for determining and manipulating the network route to cas de machines cibles\&. Par exemple vous pouvez \(^etre en mesure d\*(Aqutiliser l\*(Aqenregistrement de routage pour d\('eterminer un chemin vers une cible quand bien m\(^eme une approche plus traditionnelle de Traceroute \('echouerait\&. Ou si vos paquets sont rejett\('es par un pare\-feu, vous pouvez sp\('ecifier une autre route avec des options plus ou moins vagues de routage\&.
|
|
.sp
|
|
La facon la plus puissante de sp\('ecifier ces options IP est simplement de passer ces valeurs en argument \(`a
|
|
\fB\-\-ip\-options\fR\&. Faites pr\('ec\('eder chaque nombre h\('exad\('ecimal par
|
|
\ex
|
|
puis les deux chiffres\&. Vous pouvez r\('ep\(`eter certains charact\(`eres en les s\('eparant par un asterisk suivit du nombre de r\('ep\('etions\&. Par exemple,
|
|
\ex01\ex07\ex04\ex00*36\ex01
|
|
est une chaine h\('exa contenant 36 NUL bytes\&.
|
|
.sp
|
|
Nmap propose aussi un mechanisme de raccourcis pour sp\('ecifier ces options\&. Donnez simplement la lettre
|
|
R,
|
|
T, ou
|
|
U
|
|
pour demander l\*(Aqenregistrement de routage, de timestamp, ou les deux simultanement, respectivement\&. Un routage strict ou plus vague peut \(^etre sp\('ecifi\('e avec un
|
|
L
|
|
ou un
|
|
S
|
|
suivit d\*(Aqun espace et d\*(Aqune liste s\('epar\('ee d\*(Aqespaces d\*(Aqadresses IP\&.
|
|
.sp
|
|
Si vous souhaitez voir les options dans les paquets envoy\('es et recus, sp\('ecifiez
|
|
\fB\-\-packet\-trace\fR\&. Pour plus d\*(Aqinformation et d\*(Aqexemples de l\*(Aqutilisation des options IP avec Nmap, voir
|
|
\m[blue]\fB\%http://seclists.org/nmap-dev/2006/q3/0052.html\fR\m[]\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-badsum\fR (Envoyer des paquets avec des sommes de contr\(^ole TCP/UDP erronn\('ees)
|
|
.RS 4
|
|
Demande a Nmap d\*(Aqutiliser une somme de contr\(^ole TCP ou UDP erronn\('ee pour les paquets envoy\('es aux h\(^otes cibles\&. Comme virtuellement toutes les piles IP des h\(^otes rejettent ces paquets, toute r\('eponse recue doivent venir d\*(Aqun pare\-feu ou d\*(Aqun IDS qui ne se pr\('eoccuppe pas de v\('erifier les sommes de contr\(^ole\&. Pour plus de d\('etails sur cette technique, voir
|
|
\m[blue]\fB\%https://nmap.org/p60-12.txt\fR\m[]
|
|
.RE
|
|
.PP
|
|
\fB\-\-ttl <value>\fR (R\(`egle la valeur du champ IP de dur\('ee de vie (time\-to\-live))
|
|
.RS 4
|
|
R\(`egle le champ IPv4 du time\-to\-live dans les paquets envoy\('es \(`a la valeur donn\('ee\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-randomize\-hosts\fR (Met les h\(^otes dans un ordre al\('eatoire)
|
|
.RS 4
|
|
Indique \(`a Nmap de m\('elanger tous les groupes contenant jusqu\*(Aq\(`a 8 096 h\(^otes avant de les scanner\&. Ceci peut rendre les scans moins \('evidents pour de nombreux syst\(`emes de surveillance r\('eseau, sp\('ecialement si vous le combinez \(`a des options de d\('elai lentes\&. Si vous souhaitez m\('elanger des groupes de taille plus importante, augmentez la valeur PING_GROUP_SZ dans
|
|
nmap\&.h
|
|
et recompilez\&. Une autre solution serait de g\('en\('erer la liste des IP cibles avec un scan de listage (list scan,
|
|
\fB\-sL \-n \-oN \fR\fB\fIfilename\fR\fR\fB \fR), le m\('elanger \(`a l\*(Aqaide d\*(Aqun script Perl, puis fournir la liste compl\(`ete \(`a Nmap avec
|
|
\fB\-iL\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-spoof\-mac <mac address, prefix, or vendor name>\fR (Usurpation d\*(Aqadresses MAC)
|
|
.RS 4
|
|
Demande \(`a Nmap d\*(Aqutiliser l\*(Aqadresse MAC sp\('ecifi\('ee pour l\*(Aqensemble des trames en raw Ethernet qu\*(Aqil envoie\&. Cette option implique
|
|
\fB\-\-send\-eth\fR
|
|
pour s\*(Aqassurer que Nmap envoie vraiment des paquets au niveau Ethernet\&. Le MAC donn\('e peut prendre plusieurs formes\&. S\*(Aqil s\*(Aqagit seulement de la cha\(^ine
|
|
\(Fo\ \&0\ \&\(Fc, Nmap choisit une adresse MAC totalement al\('eatoire pour la session\&. Si la cha\(^ine est un nombre hexad\('ecimal (avec les paires de nombres \('eventuellement s\('epar\('ees par les deux points), Nmap utilisera ceci comme adresse MAC\&. Si moins de 12 chiffres sont sp\('ecifi\('es, Nmap remplit le reste avec des valeurs al\('eatoires\&. Si l\*(Aqargument n\*(Aqest ni 0 ni une cha\(^ine hexad\('ecimale, Nmap recherche dans sa base de donn\('ees
|
|
nmap\-mac\-prefixes
|
|
un nom de fournisseur contenant la cha\(^ine en question (non sensible \(`a la casse)\&. Si une correspondance est trouv\('ee, Nmap utilise le num\('ero OUI du distributeur (un pr\('efixe de 3 bytes) et utilise les 3 bytes restants de fa\(,con al\('eatoire\&. Des exemples de valeurs
|
|
\fB\-\-spoof\-mac\fR
|
|
valides sont
|
|
Apple,
|
|
0,
|
|
01:02:03:04:05:06,
|
|
deadbeefcafe,
|
|
0020F2
|
|
et
|
|
Cisco\&.
|
|
.RE
|
|
.SH "COMPTES RENDUS"
|
|
.PP
|
|
Tout outil de s\('ecurit\('e n\*(Aqest vraiment utile qu\*(Aqen fonction des comptes rendus qu\*(Aqil g\('en\(`ere\&. Des tests aussi complexes soient\-ils et des algorithmes n\*(Aqont finalement qu\*(Aqune faible valeur s\*(Aqils ne sont pas pr\('esent\('es et organis\('es de fa\(,con compr\('ehensible\&. \('Etant donn\('e que les utilisateurs emploient Nmap et d\*(Aqautres Logiciels de diverses fa\(,cons, il n\*(Aqy a pas un format qui puisse convenir \(`a tout le monde\&. Nmap propose donc plusieurs formats, y compris le mode interactif permettant d\*(Aq\(^etre directement intelligible et le XML pour une meilleure portabilit\('e entre logiciels (parsing)\&.
|
|
.PP
|
|
Outre le fait de proposer diff\('erents formats de sortie, Nmap comporte des options permettant aussi bien de contr\(^oler la verbosit\('e des comptes rendus que le d\('eboggage\&. Les diff\('erents types de sorties peuvent \(^etre envoy\('es \(`a des comptes rendus normalis\('es ou \(`a des fichiers sp\('ecifiques, dont le contenu peut s\*(Aqagr\('ementer des scans successifs ou remplacer un contenu pr\('ec\('edent\&. Ces fichiers de sortie peuvent aussi \(^etre utilis\('es pour reprendre un scan temporairement suspendu\&.
|
|
.PP
|
|
Nmap rend les r\('esultats disponibles en 5 formats diff\('erents\&. Le format par d\('efaut est appel\('e
|
|
interactive output\&. Il est envoy\('e en sortie standard (stdout)\&. On trouve aussi le
|
|
normal output, qui est semblable \(`a
|
|
interactive
|
|
\(`a ceci pr\(`es qu\*(Aqil affiche moins d\*(Aqinformations de fonctionnement et d\*(Aqalertes \('etant donn\('e qu\*(Aqil est plut\(^ot destin\('e \(`a \(^etre analys\('e \(`a la fin des scans au lieu de fa\(,ccon interactive\&.
|
|
.PP
|
|
La sortie au format XML est l\*(Aqune des plus importante qui peut \(^etre converti en HTML\&. Elle est facilement trait\('ee par des programmes tiers comme les interfaces graphiques pour Nmap, ou import\('ee au sein de bases de donn\('ees\&.
|
|
.PP
|
|
Les deux autres formats restants sont le simple
|
|
grepable output, qui inclus la plupart des informations concernant une cible dans une seule ligne, et le
|
|
sCRiPt KiDDi3 0utPUt
|
|
pour les utilisateurs qui se prennent au s\('erieux |<\-r4d\&.
|
|
.PP
|
|
Alors que le format interactif repr\('esente la sortie par d\('efaut et ne n\('ecessite pas d\*(Aqoption de ligne de commande particuli\(`ere, les quatre autres options de format utilisent la m\(^eme syntaxe\&. Ils prennent un argument qui repr\('esente le nom du fichier dans lequel les r\('esultats devraient \(^etre inscrits\&. Des formats multiples peuvent \(^etre sp\('ecifi\('es mais chaque format ne devrait \(^etre sp\('ecifi\('e qu\*(Aqune seule fois\&. Par exemple, vous pourriez souhaiter sauvegarder une sortie de type normal (normal output) pour votre propre usage tout en sauvegardant un XML du m\(^eme scan pour une analyse par un programme\&. Vous pouvez le faire \(`a l\*(Aqaide des options
|
|
\fB\-oX myscan\&.xml \-oN myscan\&.nmap\fR\&. Bien que ce chapitre utilise des noms de fichier simples, notamment
|
|
myscan\&.xml, \(`ades fins pratiques, des noms plus explicites sont en g\('en\('eral recommand\('es\&. Le choix des noms rel\(`eve des pr\('ef\('erences personnelles, toutefois pour ma part, j\*(Aqen utilise de longs contenant la date du scan ainsi qu\*(Aqun mot ou deux d\('ecrivant le scan\&. Je les enregistre ensuite dans un r\('epertoire nomm\('e selon la compagnie pour laquelle je suis en train d\*(Aqeffectuer le scan\&.
|
|
.PP
|
|
M\(^eme si ces options sauvegardent les r\('esultats dans des fichiers, Nmap continue \(`a fournir la sortie interactive en stdout comme d\*(Aqhabitude\&. Par exemple, la commande
|
|
\fBnmap \-oX myscan\&.xml target\fR
|
|
g\('en\(`ere un fichier XML intitul\('e
|
|
myscan\&.xml
|
|
tout en donnant la sortie standard avec le m\(^eme r\('esultat interactif qu\*(Aqil aurait donn\('e si l\*(Aqoption
|
|
\fB\-oX\fR
|
|
n\*(Aqavait pas \('et\('e sp\('ecifi\('ee du tout\&. Vous pouvez changer cette proc\('edure en entrant un tiret en argument sur l\*(Aqun des types de format\&. Ceci force Nmap \(`a d\('esactiver la sortie interactive et d\*(Aqinscrire \(`a la place les r\('esultats dans le format que vous avez sp\('ecifi\('e pour le flux de sortie standard\&. Par cons\('equent, la commande
|
|
\fBnmap \-oX \- target\fR
|
|
enverra seulement une sortie XML en stdout\&. Les erreurs s\('erieuses sont susceptibles d\*(Aq\(^etre inscrites dans le flux normal d\*(Aqerreur, le stderr\&.
|
|
.PP
|
|
Contrairement \(`a certains arguments de Nmap, l\*(Aqespace entre le drapeau de l\*(Aqoption fichier (comme
|
|
\fB\-oX\fR) et le nom de fichier ou le tiret est obligatoire\&. Si vous l\*(Aqomettez et entrez des arguments tels que
|
|
\fB\-oG\-\fR
|
|
ou
|
|
\fB\-oXscan\&.xml\fR, une fonction de compatibilit\('e d\*(Aqarri\(`ere\-plan de Nmap forcera la cr\('eation de formats de type
|
|
\fInormal format\fR
|
|
comme fichiers de sortie nomm\('es
|
|
G\-
|
|
et
|
|
Xscan\&.xml, respectivement\&.
|
|
.PP
|
|
Nmap offre en outre l\*(Aqoption de contr\(^oler la verbosit\('e du scan et d\*(Aqajouter les r\('esultats les uns \(`a la suite des autres dans un m\(^eme fichier plut\(^ot que d\*(Aq\('ecraser les r\('esultats pr\('ec\('edants\&. Toutes ces options sont d\('ecrites ci\-dessous\&.
|
|
.PP
|
|
\fBFormats de Sortie sur Nmap\fR
|
|
.PP
|
|
\fB\-oN <filespec>\fR (sortie Normale)
|
|
.RS 4
|
|
Demande que le format
|
|
normal output
|
|
soit appliqu\('e au fichier donn\('e\&. Tel que d\('ecrit ci\-dessus, cette proc\('edure diff\(`ere l\('eg\(`erement d\*(Aqune sortie de type
|
|
interactive output\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oX <filespec>\fR (sortie XML)
|
|
.RS 4
|
|
Demande que le format
|
|
XML output
|
|
soit donn\('e au fichier sp\('ecifi\('e\&. Nmap contient une d\('efinition de type de document (DTD) qui permet le traitement XML des r\('esultats de Nmap\&. Bien que ce soit d\*(Aqabord pens\('e aux fins d\*(Aqutilisation de programmation, cette proc\('edure peut aussi aider \(`a interpr\('eter la sortie XML de Nmap\&. Le DTD d\('efinit les \('el\('ements l\('egaux du format et \('enum\(`ere souvent les attributs et les valeurs qu\*(Aqils peuvent prendre\&. La derni\(`ere version est toujours disponible sur
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/data/nmap.dtd\fR\m[]\&.
|
|
.sp
|
|
Le XML offre un format stable facilement traitable au moyen d\*(Aqun logiciel\&. Des outils de traitement XML sont offerts gratuitement dans tous les grands langages de programmation, y compris C/C++, Perl, Python et Java\&. Des gens ont m\(^eme \('ecrit des outils sp\('ecifiques dans ces langages destin\('es au support de traitement des sorties de Nmap\&. Notons comme exemples le
|
|
\m[blue]\fBNmap::Scanner\fR\m[]\&\s-2\u[9]\d\s+2
|
|
et le
|
|
\m[blue]\fBNmap::Parser\fR\m[]\&\s-2\u[10]\d\s+2
|
|
en Perl CPAN\&. Dans la plupart des cas o\(`u une application tierce doit interagir avec Nmap, le XML est le format privil\('egi\('e\&.
|
|
.sp
|
|
Les sorties XML font r\('ef\('erence \(`a une feuille de style XSL qui peut \(^etre utilis\('ee dans le but de formater les r\('esultats au format HTML\&. La fa\(,con la plus simple d\*(Aqutiliser ceci est de charger la sortie XML dans un navigateur Web, comme Firefox ou IE\&. Par d\('efaut, cette d\('emarche ne pourra \(^etre appliqu\('ee qu\*(Aq\(`a partir dela machine sur laquelle vous utilisez Nmap (ou une machine configur\('ee de fa\(,con semblable) en raison du chemin syst\(`eme vers
|
|
nmap\&.xsl
|
|
cod\('e en dur\&. Utilisez l\*(Aqoption
|
|
\fB\-\-webxml\fR
|
|
ou
|
|
\fB\-\-stylesheet\fR
|
|
pour une fa\(,con de g\('en\('erer un fichier XML portable qui rendra un format HTML sur toute machine connect\('ee au Web\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oS <filespec>\fR (s0r713 ScRipT KIdd|3)
|
|
.RS 4
|
|
Le format de sortie Script kiddie est similaire \(`a la sortie interactive, sauf qu\*(Aqil est post\-trait\('e de fa\(,con \(`a mieux coller au style l33t HaXXorZ qui s\*(Aqint\('eresse \(`a Nmap soit les lettres majuscules et le contenu unique de sa prononciation\&. Les gens d\('enu\('es d\*(Aqhumour devraient r\('ealiser que cette option est surtout une moquerie envers les script kiddies avant de me descendre en flammes en m\*(Aqaccusant de
|
|
\(Fo\ \&les aider\ \&\(Fc\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oG <filespec>\fR (sortie Grepable)
|
|
.RS 4
|
|
Ce format de sortie vit ses derniers instants de support parce qu\*(Aqil devient d\('esuet\&. Le format XML est bien plus puissant et presque aussi pratique pour les utilisateurs exp\('eriment\('es\&. Le XML est un standard pour lequel des douzaines d\*(Aqexcellents outils de traitement sont disponibles alors que le format de sortie grepable est mon propre bidouillage\&. Le XML est \('evolutif afin de supporter les fonctions ult\('erieures de Nmap au rythme o\(`u elles sont disponibles alors que j\*(Aqomets souvent ces fonctions pour les sorties grepables par manque de place\&.
|
|
.sp
|
|
Toutefois, le format de sortie grepable reste toujours populaire\&. C\*(Aqest un format simple qui liste chaque h\(^ote sur une seule ligne et peut \(^etre facilement trait\('e \(`a l\*(Aqaide d\*(Aqoutils uniformis\('es sous UNIX, notamment grep, awk, cut, sed, diff et Perl\&. Je l\*(Aqutilise m\(^eme souvent pour certains tests en ligne de commande\&. Trouver tous les h\(^otes ayant le port ssh ouvert ou tournant sous Solaris ne prend qu\*(Aqun simple grep pour identifier l\*(Aqh\(^ote, envoy\('e sur un awk ou trait\('e pour afficher le champ d\('esir\('e\&.
|
|
.sp
|
|
Le format Grepable consiste en une suite de commentaires (des lignes commen\(,cant par un di\(`eze (#) et des lignes cibles\&. Une ligne cible inclus une combinaison de 6 champs \('etiquet\('es, s\('epar\('es par des tabulations et suivis d\*(Aqun s\('eparatif\&. Les champs sont
|
|
Host,
|
|
Ports,
|
|
Protocols,
|
|
Ignored State,
|
|
OS,
|
|
Seq Index,
|
|
IPID
|
|
et
|
|
Status\&.
|
|
.sp
|
|
Le plus important de ces champs est g\('en\('eralement
|
|
Ports
|
|
qui donne les d\('etails sur chaque port consid\('er\('e\&. C\*(Aqest une liste d\*(Aqentr\('ees s\('epar\('ees par une virgule\&. Chaque entr\('ee de port repr\('esente un port consid\('er\('e et prend la forme de 7 sous\-champs s\('epar\('es d\*(Aqune barre oblique (/) \&. Ces sous\-champs sont les suivants :
|
|
Port number,
|
|
State,
|
|
Protocol,
|
|
Owner,
|
|
Service,
|
|
SunRPC info
|
|
et
|
|
Version info\&.
|
|
.sp
|
|
Comme pour le format XML, cette page\-manuel ne permet pas de documenter de fa\(,con exhaustive l\*(Aqensemble de ce format\&. Une vision plus d\('etaill\('ee est disponible sur
|
|
\m[blue]\fB\%http://www.unspecific.com/nmap-oG-output\fR\m[]\&.
|
|
.RE
|
|
.PP
|
|
\fB\-oA <basename>\fR (sortie en tous formats)
|
|
.RS 4
|
|
\(`A votre convenance, vous pouvez sp\('ecifier
|
|
\fB\-oA \fR\fB\fIbasename\fR\fR\fB \fR
|
|
pour stocker les r\('esultats de scans en format normal, XML et grepable, et ce, en une seule fois\&. Ils sont stock\('es dans
|
|
\fIbasename\fR\&.nmap,
|
|
\fIbasename\fR\&.xml et
|
|
\fIbasename\fR\&.gnmap, respectivement\&. Comme pour la plupart des programmes, vous pouvez ajouter en pr\('efixe au nom de fichier un chemin d\*(Aqacc\(`es, comme
|
|
~/nmaplogs/foocorp/
|
|
sous UNIX ou
|
|
c:\ehacking\esco
|
|
sous Windows\&.
|
|
.RE
|
|
.PP
|
|
\fBoptions de verbosit\('e et d\('eboggage\fR
|
|
.PP
|
|
\fB\-v\fR (Augmenter le niveau de verbosit\('e)
|
|
.RS 4
|
|
Augmente le niveau de verbosit\('e, for\(,cant Nmap \(`a afficher plus d\*(Aqinformations sur le scan qu\*(Aqil effectue\&. Les ports ouverts sont indiqu\('es au fur et \(`a mesure o\(`u ils sont trouv\('es ainsi qu\*(Aqune \('evaluation du temps qui reste \(`a scanner si Nmap pense que cela prendra quelques minutes\&. Utilisez cette option deux fois pour encore plus de verbosit\('e\&. L\*(Aqutiliser plus de deux fois n\*(Aqa aucun effet\&.
|
|
.sp
|
|
La plupart des changements modifient seulement la sortie interactive et certains touchent aussi les sorties normales et les script kiddies\&. Les autres sorties sont con\(,cues de fa\(,con \(`a traiter par une machine, c\*(Aqest pourquoi Nmap peut donner des d\('etails importants par d\('efaut dans ces formats sans pour autant fatiguer un utilisateur humain\&. Toutefois, il y a quelques modifications dans les autres modes pour lesquels les tailles de sorties peuvent \(^etre r\('eduites substantiellement par omission de quelques d\('etails\&. Par exemple, une ligne comment\('ee dans le format grepable qui fournit une liste de tous les ports scann\('es n\*(Aqest affich\('ee que dans le mode verbeux parce que cela peut s\*(Aqav\('erer tr\(`es long\&.
|
|
.RE
|
|
.PP
|
|
\fB\-d [level]\fR (Augmenter ou r\('egler le niveau de d\('eboggage)
|
|
.RS 4
|
|
Quand m\(^eme le mode verbeux ne donne pas assez d\*(Aqinformations pour vous, le d\('eboggage est l\(`a pour vous noyer sous encore plus de donn\('ees! Comme avec l\*(Aqoption de verbosit\('e (\fB\-v\fR), le d\('eboggage est mis en place avec un drapeau de ligne de commande (\fB\-d\fR) et le niveau de d\('eboggage peut \(^etre augment\('e en le sp\('ecifiant plusieurs fois\&. Autrement, vous pouvez d\('efinir un niveau de d\('eboggage en donnant un argument \(`a
|
|
\fB\-d\fR\&. Par exemple,
|
|
\fB\-d9\fR
|
|
d\('efinit le niveau 9\&. C\*(Aqest le plus haut niveau et fournira des milliers de lignes \(`a moins que vous ne lanciez un scan tr\(`es simple avec tr\(`es peu de ports et de cibles\&.
|
|
.sp
|
|
La sortie de d\('eeboggage est utile lorsqu\*(Aqune proc\('edure erron\('ee est soup\(,conn\('ee dans Nmap ou si vous d\('esirez simplement savoir ce que fait Nmap et pourquoi\&. Comme cette fonctionnalit\('e est surtout faite pour les d\('eveloppeurs, les lignes de d\('eboggage ne sont pas toujours tres explicites\&. Vous pouvez obtenir quelque chose comme :
|
|
Timeout vals: srtt: \-1 rttvar: \-1 to: 1000000 delta 14987 ==> srtt: 14987 rttvar: 14987 to: 100000\&. Si vous ne comprenez pas une ligne, vos seuls recours sont de l\*(Aqignorer, la chercher dans le code source ou obtenir de l\*(Aqaide sur la liste de d\('eveloppement (nmap\-dev)\&. Certaines sont quand m\(^eme assez explicites, mais les messages deviennent de plus en plus obscures au fur et \(`a mesure o\(`u le niveau de d\('eboggage est \('elev\('e\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-packet\-trace\fR (Trace les paquets et les donn\('ees envoy\('es et re\(,cus)
|
|
.RS 4
|
|
Force Nmap \(`a afficher un r\('esum\('e de chaque paquet envoy\('e ou re\(,cu\&. C\*(Aqest souvent utilis\('e pour le d\('eboggage mais c\*(Aqest aussi une bonne fa\(,con pour les nouveaux utilisateurs de mieux comprendre ce que Nmap fait en arri\(`ere\-lan\&. Afin d\*(Aq\('eviter d\*(Aqafficher des milliers de lignes, vous pouvez sp\('ecifier un nombre limit\('e de ports \(`a scanner, notamment
|
|
\fB\-p20\-30\fR\&. Si vous ne vous pr\('eoccupez que de ce que fait le sous\-syst\(`eme de d\('etection de version, utilisez plut\(^ot
|
|
\fB\-\-version\-trace\fR
|
|
\(`a la place\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-open\fR (Montre seulement les ports ouverts (ou potentiellement ouverts))
|
|
.RS 4
|
|
Il arrive que vous ne soyez interress\('e que par les ports sur lesquels vous pouvez effectivment vous connecter (\('etat
|
|
<term>open</term>), et ne voulez pas de r\('esultats pollu\('es par ceux qui sont
|
|
<term>closed</term>,
|
|
<term>filtered</term>, et
|
|
<term>closed|filtered</term>
|
|
\&. La personnalisation est en g\('en\('eral faite apr\(`es le scan en utilisant des outils comme grep, awk, ou Perl, mais cette fonctionnalit\('e a \('et\('e ajout\('ee \(`a cause d\*(Aqun grand nombre de demandes \(`a cet \('egard\&. Sp\('ecifiez
|
|
\fB\-\-open\fR
|
|
pour voir seulement les ports
|
|
<term>open</term>,
|
|
<term>open|filtered</term>, et
|
|
<term>unfiltered</term>\&. Ces trois \('etats sont trait\('es pour ce qu\*(Aqils sont normalement, ce qui signifie que
|
|
<term>open|filtered</term>
|
|
et
|
|
<term>unfiltered</term>
|
|
peuvent \(^etre regroup\('es dans le comptage si il y en a un grand nombre\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-log\-errors\fR (Journalise les erreurs/alertes dans un fichier en mode normal)
|
|
.RS 4
|
|
Les alertes et erreurs affich\('ees par Nmap vont habituellement uniquement sur l\*(Aq\('ecran (sortie interactive), laissant un eventuel fichier de sortie qui aurait \('et\('e sp\('ecifi\('e en ordre\&. Mais quand vous souhaitez quand m\(^eme voir ces messages dans le fichier de sortie que vous avez sp\('ecifi\('e, ajoutez cette option\&. C\*(Aqest utile quand vous ne regardez pas l\*(Aqaffichage interactif ou si vous essayez de debogger un probleme\&. Le message apparait quand m\(^eme \(`a l\*(Aq\('ecran\&. Ceci ne marchera pas pour la plupart des erreurs dues \(`a une ligne de commande erronn\('ee, \('etant donn\('e que Nmap n\*(Aqaura pas encore ouvert de fichier de sortie a ce stade\&. De plus, certains messages d\*(Aqalerte/erreurs utilisent un syst\(`eme diff\('erent qui n\*(Aqest pas encore support\('e par cette option\&. Une alternative \(`a cette option est de rediriger l\*(Aqaffichage interactif (flux d\*(Aqerreurs standard inclus) vers un fichier\&. Tandis que la plupart des shells UNIX permettent ceci facilement, cela peut s\*(Aqav\('erer difficile sous Windows\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-iflist\fR (Dresse la liste des interfaces et des routes)
|
|
.RS 4
|
|
Affiche la liste des interfaces et des routes syst\(`eme telles que d\('etect\('ees par Nmap\&. C\*(Aqest utile pour le d\('eboggage li\('e aux probl\(`emes de cheminement ou de d\('etermination des interfaces (comme lorsque Nmap traite une connexion PPP en tant qu\*(AqEthernet)\&.
|
|
.RE
|
|
.PP
|
|
\fBOptions de sortie diverses\fR
|
|
.PP
|
|
\fB\-\-append\-output\fR (Ajouter au fichier plut\(^ot que de l\*(Aq\('ecraser)
|
|
.RS 4
|
|
Lorsque vous sp\('ecifiez un fichier pour un format de sortie comme
|
|
\fB\-oX\fR
|
|
ou
|
|
\fB\-oN\fR, ce fichier est \('ecras\('e par d\('efaut\&. Si vous pr\('ef\('erez garder le contenu existant du fichier et rajouter les nouveaux r\('esultats, sp\('ecifiez l\*(Aqoption
|
|
\fB\-\-append\-output\fR\&. Tout fichier de sortie sp\('ecifi\('e dans cette configuration de session de Nmap se verra agr\('ement\('e des nouveaux r\('esultats plut\(^ot qu\*(Aq\('ecras\('e\&. Cela ne fonctionne pas tr\(`es bien pour les donn\('ees de scan au format XML (\fB\-oX\fR) dont le fichier r\('esultant ne sera pas vraiment correct et devra \(^etre rectifi\('e \(`a la main\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-resume <filename>\fR (Reprendre un scan abandonn\('e)
|
|
.RS 4
|
|
Certaines sessions importantes de Nmap peuvent prendre beaucoup de temps \-\- de l\*(Aqordre de plusieurs jours\&. De tels scans ne sont pas toujours men\('es \(`a terme\&. Des restrictions peuvent emp\(^echer Nmap d\*(Aq\(^etre utilis\('e pendant les heures de travail, soit parce que le r\('eseau peut s\*(Aq\('ecrouler, la machine sur laquelle Nmap tourne peut subir une r\('einitialisation voulue ou non ou Nmap lui m\(^eme peut tomber en panne\&. L\*(Aqadministrateur qui utilise Nmap peut l\*(Aqannuler pour toute autre raison de toutes fa\(,cons, en appuyant sur
|
|
ctrl\-C\&. Recommencer tout le scan \(`a partir du d\('ebut peut \(^etre ind\('esirable\&. Heureusement, si le format normal (\fB\-oN\fR) ou grepable (\fB\-oG\fR) a \('et\('e conserv\('e, l\*(Aqutilisateur peut demander \(`a Nmap de reprendre le scan sur la cible qu\*(Aqil traitait au moment d\*(Aq\(^etre arr\(^et\('e\&. Sp\('ecifiez simplement l\*(Aqoption
|
|
\fB\-\-resume\fR
|
|
avec le nom du fichier de sortie normal/grepable en argument\&. Aucun autre argument n\*(Aqest autoris\('e puisque Nmap va chercher dans le fichier de sortie en question sa configuration pr\('ec\('edente\&. Appelez donc simplement Nmap de cette fa\(,con :
|
|
\fBnmap \-\-resume \fR\fB\fIlogfilename\fR\fR\fB \fR\&. Nmap ajoutera les nouveaux r\('esultats aux donn\('ees d\('ej\(`a pr\('esentes dans le fichier en question lors de la pr\('ec\('edente ex\('ecution\&. Le red\('emarrage n\*(Aqest pas possible \(`a partir d\*(Aqun format XML parce que combiner les deux sessions dans un m\(^eme fichier XML serait difficile\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-stylesheet <path or URL>\fR (D\('efini la feuille de style XSL pour transformer la sortie XML)
|
|
.RS 4
|
|
Nmap dispose d\*(Aqune feuille de style XSL nomm\('ee
|
|
nmap\&.xsl
|
|
afin de visionner ou transcrire la sortie XML en HTML\&. La sortie XML comprend une directive
|
|
xml\-stylesheet
|
|
qui pointe sur
|
|
nmap\&.xml
|
|
o\(`u il a \('et\('e initialement install\('e par Nmap (o\(`u dans le r\('epertoire courant sous Windows)\&. Chargez simplement la sortie XML de Nmap dans un navigateur \(`a jour et il devrait retrouver
|
|
nmap\&.xsl
|
|
depuis le syst\(`eme de fichiers puis utilisez\-le pour obtenir le compte rendu des r\('esultats\&. Si vous pr\('ef\('erez utiliser une feuille de style diff\('erente, sp\('ecifiez l\(`a en argument \(`a
|
|
\fB\-\-stylesheet\fR\&. Vous devez donner le chemin ou l\*(Aqadresse URL compl\(`ete\&.
|
|
\fB\-\-stylesheet http://www\&.insecure\&.org/nmap/data/nmap\&.xsl\fR
|
|
est une utilisation classique qui indique au navigateur de charger la derni\(`ere version de la feuille de style de Insecure\&.Org\&. Cette proc\('edure rend plus facile le visionnage des r\('esultats sur une machine qui ne dispose pas de Nmap (et donc de
|
|
nmap\&.xsl) \&. Par cons\('equent, l\*(Aqadresse URL est souvent plus utile toutefois le nmap\&.xsl local est utilis\('e par d\('efaut pour des raisons de confidentialit\('e\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-webxml\fR (Charge la feuille de style depuis Insecure\&.org)
|
|
.RS 4
|
|
Cette option est seulement un alias pour
|
|
\-\-stylesheet http://insecure\&.org/nmap/data/nmap\&.xsl\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-no_stylesheet\fR (Ne pas d\('eclarer de feuille de style XSL pour le XML)
|
|
.RS 4
|
|
Sp\('ecifiez cette option pour emp\(^echer Nmap d\*(Aqassocier toute feuille de style XSL avec les sorties XML\&. La directive
|
|
xml\-stylesheet
|
|
est omise\&.
|
|
.RE
|
|
.SH "OPTIONS DIVERSES"
|
|
.PP
|
|
Cette section d\('ecrit quelques options plus ou moins importantes qui ne trouvent pas vraiment leur place ailleurs\&.
|
|
.PP
|
|
\fB\-6\fR (Activer le scan en IPv6)
|
|
.RS 4
|
|
Depuis 2002, Nmap a propos\('e le support IPv6 pour ses fonctionnalit\('es les plus populaires\&. En particulier les ping scan (TCP seulement), connect() scan et d\('etection de version qui supportent l\*(AqIPv6\&. La synthaxe de la commande est la m\(^eme qu\*(Aqhabituellement, sauf que vous pr\('ecisez aussi l\*(Aqoption
|
|
\fB\-6\fR
|
|
\&. Bien s\(^ur, vous devez utiliser la synthaxe IPv6 si vous sp\('ecifiez une adresse plut\(^ot qu\*(Aqun nom d\*(Aqh\(^ote\&. Une adresse doit ressembler \(`a
|
|
3ffe:7501:4819:2000:210:f3ff:fe03:14d0, c\*(Aqest pourquoi les noms d\*(Aqh\(^otes sont recommand\('es\&. Les r\('esultats de sortie ressemblent \(`a ceux obtenus habituellement avec la notation IPv6 sur la ligne
|
|
\(Fo\ \&interesting ports\ \&\(Fc
|
|
\&.
|
|
.sp
|
|
Bien qu\*(Aqon ne puisse pas dire que l\*(AqIPv6 ait boulevers\('e le monde, son utilisation reste notable dans certains pays (particuli\(`erement en Asie)\&. De plus, la plupart des syst\(`emes d\*(Aqexploitation modernes le supportent\&. Pour utiliser Nmap avec des IPv6, la source et la cible du scan doivent \(^etre configur\('ees pour l\*(AqIPv6\&. Si votre fournisseur d\*(Aqacc\(`es Internet (comme dans la plupart des cas) ne vous a pas allou\('e d\*(Aqadresse IPv6, des tunnels libres sont disponibles et fonctionnent tr\(`es bien avec Nmap\&. J\*(Aqen ai utilis\('e un que Hurricane Electric fournit sur
|
|
\m[blue]\fB\%http://ipv6tb.he.net/\fR\m[]\&. Les tunnels 6to4 sont aussi une autre approche libre et populaire\&.
|
|
.RE
|
|
.PP
|
|
\fB\-A\fR (option de scan agressif)
|
|
.RS 4
|
|
Cette option active des options agressives suppl\('ementaires avanc\('ees\&. Je n\*(Aqai pas vraiment d\('etermin\('e ce que cela signifie jusqu\*(Aq\(`a pr\('esent\&. Pour le moment, ceci active la d\('etection d\*(AqOS (\fB\-O\fR) et le scan de version (\fB\-sV\fR)\&. Davantage de fonctions peuvent \(^etre ajout\('ees dans le futur\&. L\*(Aqid\('ee est d\*(Aqactiver un panel complet d\*(Aqoptions de scan sans que les gens aient \(`a se rappeler d\*(Aqun grand nombre de drapeaux\&. Cette option ne fait qu\*(Aqactiver des options sans aucun r\('eglage d\*(Aqoptions de d\('elai (comme
|
|
\fB\-T4\fR) ou de verbosit\('e (\fB\-v\fR) que vous pourriez par ailleurs souhaiter\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-datadir <directoryname>\fR (Indique l\*(Aqemplacement personnalis\('e des fichiers de donn\('ees pour Nmap)
|
|
.RS 4
|
|
Nmap obtient certaines informations pendant son fonctionnement depuis les fichiers
|
|
nmap\-service\-probes,
|
|
nmap\-services,
|
|
nmap\-protocols,
|
|
nmap\-rpc,
|
|
nmap\-mac\-prefixes
|
|
et
|
|
nmap\-os\-fingerprints\&. Nmap, dans un premier temps, recherche ces fichiers dans un r\('epertoire indiqu\('e avec l\*(Aqoption
|
|
\fB\-\-datadir\fR
|
|
(si elle existe)\&. Tout fichier non trouv\('e \(`a cet emplacement sera cherch\('e dans l\*(Aqemplacement sp\('ecifi\('e par la variable d\*(Aqenvironnement NMAPDIR \&. Puis vient
|
|
~/\&.nmap
|
|
pour les UIDs v\('eritables et proprement dits (syst\(`emes POSIX seulement) ou l\*(Aqemplacement de l\*(Aqex\('ecutable Nmap (Win32 seulement), et enfin un emplacement comme
|
|
/usr/local/share/nmap
|
|
ou
|
|
/usr/share/nmap
|
|
\&. En dernier ressort, Nmap va chercher dans le r\('epertoire courant\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-servicedb <fichier services>\fR (sp\('ecifier un fichier de services sp\('ecifique)
|
|
.RS 4
|
|
Demande \(`a Nmap d\*(Aqutiliser le fichier de services pr\('ecis\('e plutot que le fichier
|
|
nmap\-services
|
|
fournis\&. Utiliser cette option force aussi l\*(Aqusage d\*(Aqun scan rapide (\fB\-F\fR)\&. Voir la description de
|
|
\fB\-\-datadir\fR
|
|
pour plus d\*(Aqinformations sur les fichiers de donn\('ees de Nmap\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-versiondb <fichier empreintes de services>\fR (sp\('ecifier un fichier d\*(Aqempreintes de services sp\('ecifique)
|
|
.RS 4
|
|
Demande \(`a Nmap d\*(Aqutiliser le fichier d\*(Aqempreintes de services pr\('ecis\('e plutot que le fichier
|
|
nmap\-services\-probes
|
|
fournis\&. Utiliser cette option force aussi l\*(Aqusage d\*(Aqun scan rapide (\fB\-F\fR)\&. Voir la description de
|
|
\fB\-\-datadir\fR
|
|
pour plus d\*(Aqinformations sur les fichiers de donn\('ees de Nmap\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-send\-eth\fR (Utiliser l\*(Aqenvoi par raw Ethernet)
|
|
.RS 4
|
|
Demande \(`a Nmap d\*(Aqenvoyer les paquets \(`a la couche raw Ethernet (liaison donn\('ees) plut\(^ot que sur la couche plus \('elev\('ee IP (r\('eseau)\&. Par d\('efaut, Nmap choisit celui qui convient le mieux \(`a la plateforme sur laquelle il tourne\&. Les raw sockets (couche IP) sont en g\('en\('eral plus efficaces sur les machines UNIX, alors que les trames Ethernet frames sont obligatoires pour Windows depuis que Microsoft a d\('esactiv\('e le support des raw sockets\&. Nmap utilise toujours des paquets en raw IP sous UNIX en d\('epit de cette option quand il n\*(Aqy a pas d\*(Aqautre choix (par exemple, une connexion non Ethernet)\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-send\-ip\fR (Envoyer au niveau raw IP)
|
|
.RS 4
|
|
Demande \(`a Nmap d\*(Aqenvoyer les paquets par le biais des sockets raw IP plut\(^ot que d\*(Aqenvoyer des trames de niveau inf\('erieur en Ethernet\&. C\*(Aqest le compl\('ement de l\*(Aqoption
|
|
\fB\-\-send\-eth\fR
|
|
discut\('e pr\('ec\('edement\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-privileged\fR (Suppose que l\*(Aqutilisateur a des privil\(`eges)
|
|
.RS 4
|
|
Dit \(`a Nmap de supposer simplement qu\*(Aqil a les privil\(`eges suffisants pour effectuer des envois en raw socket, intercepter des paquets et des op\('erations similaires qui, habituellement, n\('ecessitent des privil\(`eges root sur les syst\(`emes UNIX\&. Par d\('efaut, Nmap quitte si de telles op\('erations sont tent\('ees mais que le geteuid() n\*(Aq\('equivaut pas \(`a z\('ero\&.
|
|
\fB\-\-privileged\fR
|
|
est utile avec les capacit\('es des noyaux Linux et des syst\(`emes similaires pouvant \(^etre configur\('es pour permettre \(`a des utilisateurs non privil\('egi\('es d\*(Aqaccomplir des scans avec des raw\-packets\&. Assurez\-vous de bien fournir cette option avant tout autre pour les options qui n\('ecessitent des privil\(`eges (SYN scan, d\('etection de syst\(`eme d\*(Aqexploitation, etc\&.)\&. La variable NMAP_PRIVILEGED peut \(^etre utilis\('ee comme \('equivalent alternatif \(`a
|
|
\fB\-\-privileged\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-unprivileged\fR (Suppose que l\*(Aqutilisateur n\*(Aqa pas les privil\(`eges d\*(Aqutiliser les raw sockets)
|
|
.RS 4
|
|
Cette option est l\*(Aqoppos\('ee de
|
|
\fB\-\-privileged\fR\&. Elle pr\('ecise \(`a Nmap de faire comme si l\*(Aq utilisateur n\*(Aqavait pas les privil\(`egues de raw sockets et de sniffing\&. C\*(Aqest utile dans un environnement de tests, de deboggage, ou si les op\('erations en raw sur le reseau ne sont pas disponibles pour une tierce raison\&. La variable d\*(Aqenvironnement NMAP_UNPRIVILEGED peut \(^etre utilis\('ee comme alternative \(`a
|
|
\fB\-\-unprivileged\fR\&.
|
|
.RE
|
|
.PP
|
|
\fB\-\-release\-memory\fR (Lib\('erer la m\('emoire avant de quitter)
|
|
.RS 4
|
|
Cette option n\*(Aqest utile que dans le cadre du deboggage de fuites de m\('emoire\&. Elle force Nmap a lib\('erer la m\('emoire allou\('ee juste avant de quitter de facon a rep\('erer les v\('eritables fuites de m\('emoire\&. En temps normal Nmap ne fait pas ceci \('etant donn\('e que l\*(AqOS le fait de toutes facons \(`a la fin du processus\&.
|
|
.RE
|
|
.PP
|
|
\fB\-V\fR; \fB\-\-version\fR (Affiche le num\('ero de version)
|
|
.RS 4
|
|
Donne le num\('ero de version de Nmap et quitte\&.
|
|
.RE
|
|
.PP
|
|
\fB\-h\fR; \fB\-\-help\fR (Affiche le sommaire d\*(Aqaide)
|
|
.RS 4
|
|
Affiche un petit \('ecran d\*(Aqaide avec les options les plus courantes \&. Lancer Nmap sans aucun argument fait la m\(^eme chose\&.
|
|
.RE
|
|
.SH "INTERACTION \(`A LA VOL\('EE"
|
|
.PP
|
|
Au cours de l\*(Aqex\('ecution de Nmap, toutes les touches press\('ees sont captur\('ees\&. Ceci permet d\*(Aqinteragir avec le programme sans l\*(Aqarr\(^eter et le relancer\&. Certaines touches sp\('eciales changeront les options tandis que les autres touches afficheront un message d\*(Aq\('etat parlant du scan en cours\&. La convention est que
|
|
\fIles minuscules baissent\fR
|
|
le niveau d\*(Aqaffichage et que
|
|
\fIles majuscules l\*(Aqaugmentent\fR\&.
|
|
.PP
|
|
\fBv\fR / \fBV\fR
|
|
.RS 4
|
|
Augmente / Baisse la verbosit\('e
|
|
.RE
|
|
.PP
|
|
\fBd\fR / \fBD\fR
|
|
.RS 4
|
|
Augmente / Baisse le niveau de d\('eboggage
|
|
.RE
|
|
.PP
|
|
\fBp\fR / \fBP\fR
|
|
.RS 4
|
|
Active / D\('esactive le tra\(,cage des paquets
|
|
.RE
|
|
.PP
|
|
\fB?\fR (aide)
|
|
.RS 4
|
|
Affiche un ecran d\*(Aqaide durant l\*(Aqexecution\&.
|
|
.RE
|
|
.PP
|
|
N\*(Aqimporte quoi d\*(Aqautre
|
|
.RS 4
|
|
Affiche un message d\*(Aq\('etat qui se lit comme suit :
|
|
.sp
|
|
Stats: 0:00:08 elapsed; 111 hosts completed (5 up), 5 undergoing Service Scan
|
|
.sp
|
|
Service scan Timing: About 28\&.00% done; ETC: 16:18 (0:00:15 remaining)
|
|
.RE
|
|
.SH "EXEMPLES"
|
|
.PP
|
|
Voici quelques exemples d\*(Aqutilisation de Nmap, du plus simple au un peu plus complexe et \('esot\('erique\&. De v\('eritables adresses IP et noms de domaine sont utilis\('es pour rendre les choses plus concr\(`etes\&. Vous devez les substituer avec celles de
|
|
\fIvotre propre r\('eseau\&.\fR\&. Bien que je ne crois pas que scanner les prots d\*(Aqautres r\('eseaux soit ou devrait \(^etre ill\('egal, certains administrateurs de r\('eseau n\*(Aqappr\('ecient pas les scans non sollicit\('es de leur r\('eseau et peuvent s\*(Aqen plaindre\&. La meilleure approche est donc d\*(Aqobtenir d\*(Aqabord leur autorisation\&.
|
|
.PP
|
|
Pour des raisons de tests, vous avez l\*(Aqautorisation de scanner l\*(Aqh\(^ote
|
|
scanme\&.nmap\&.org\&. Cette permission inclus seulement les scans avec Nmap et non pas l\*(Aqessai d\*(Aqexploits ou d\*(Aqattaques de Denis de Service\&. Afin de pr\('eserver la bande passante, veuillez ne lancer qu\*(Aqune douzaine de scans sur cet h\(^ote au maximum par jour\&. En cas d\*(Aqabus de ce libre service de cible de scan, il serait ferm\('e et Nmap afficherait le message suivant :
|
|
Failed to resolve given hostname/IP: scanme\&.nmap\&.org\&. Ces permissions s\*(Aqappliquent aussi \(`a l\*(Aqh\(^ote
|
|
scanme2\&.nmap\&.org, \(`a
|
|
scanme3\&.nmap\&.org, et ainsi de suite, m\(^eme si ces h\(^otes n\*(Aqexistent pr\('esentement pas\&.
|
|
.PP
|
|
\fBnmap \-v scanme\&.nmap\&.org\fR
|
|
.PP
|
|
Cette option scanne tous les ports r\('eserv\('es TCP sur la machine
|
|
scanme\&.nmap\&.org
|
|
\&. L\*(Aqoption
|
|
\fB\-v\fR
|
|
active le mode verbeux\&.
|
|
.PP
|
|
\fBnmap \-sS \-O scanme\&.nmap\&.org/24\fR
|
|
.PP
|
|
Lance un scan furtif (stealth SYN scan) contre chaque machine active parmi les 255 machines du r\('eseau de
|
|
\(Fo\ \&classe C\ \&\(Fc
|
|
sur lequel Scanme r\('eside\&. Il essaie aussi de d\('eterminer le syst\(`eme d\*(Aqexploitation sur chaque h\(^ote actif\&. Cette d\('emarche n\('ecessite les privil\(`eges de root puisqu\*(Aqon utilise un SYN scan et une d\('etection d\*(AqOS\&.
|
|
.PP
|
|
\fBnmap \-sV \-p 22,53,110,143,4564 198\&.116\&.0\-255\&.1\-127\fR
|
|
.PP
|
|
Lance une recherche des h\(^otes et un scan TCP dans la premi\(`ere moiti\('e de chacun des 255 sous\-r\('eseaux \(`a 8 bits dans l\*(Aqespace d\*(Aqadressage de classe B 198\&.116 Cela permet de d\('eterminer si les syst\(`emes font tourner sshd, DNS, pop3d, imapd ou le port 4564\&. Pour chacun de ces ports qui sont ouverts, la d\('etection de version est utilis\('ee pour d\('eterminer quelle application est actuellement lanc\('ee\&.
|
|
.PP
|
|
\fBnmap \-v \-iR 100000 \-P0 \-p 80\fR
|
|
.PP
|
|
Demande \(`a Nmap de choisir 100 000 h\(^otes de fa\(,con al\('eatoire et de les scanner dans le but de trouver les serveurs Web (port 80)\&. L\*(Aq\('enum\('eration des h\(^otes est d\('esactiv\('ee avec
|
|
\fB\-P0\fR
|
|
puisque envoyer en premier lieu quelques probes pour d\('eterminer si un h\(^ote est actif est inutile lorsque vous ne cherchez \(`a tester qu\*(Aqun port sur chaque h\(^ote\&.
|
|
.PP
|
|
\fBnmap \-PN \-p80 \-oX logs/pb\-port80scan\&.xml \-oG logs/pb\-port80scan\&.gnmap 216\&.163\&.128\&.20/20\fR
|
|
.PP
|
|
Cette proc\('edure scanne 4 096 adresses IP \(`a la recherche de serveurs Web (sans les pinguer au pr\('ealable) et sauvegarde la sortie en format grepable et XML\&.
|
|
.PP
|
|
\fBhost \-l company\&.com | cut \-d \-f 4 | nmap \-v \-iL \-\fR
|
|
.PP
|
|
Effectue un transfert de zone DNS afin de trouver les h\(^otes au sein de company\&.com et ensuite fournir les adresses IP \(`a Nmap\&. Les commandes ci\-dessus concerne mon GNU/Linux \-\- les autres syst\(`emes ont d\*(Aqautres commandes pour effectuer les transferts de zone\&.
|
|
.SH "BOGUES"
|
|
.PP
|
|
Comme son auteur, Nmap n\*(Aqest pas parfait\&. Mais vous pouvez aider \(`a l\*(Aqam\('eliorer en envoyant les rapports de bogues ou m\(^eme en \('ecrivant des programmes de correction\&. Si Nmap ne satisfait pas \(`a vos attentes, mettez\-le d\*(Aqabord \(`a jour en utilisant la derni\(`ere version disponible sur
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]\&. Si le probl\(`eme persiste, faites quelques recherches afin de d\('eterminer s\*(Aqil a d\('ej\(`a \('et\('e remarqu\('e et signal\('e\&. Essayez pour cela de mettre l\*(Aqerreur en argument sur Google ou parcourez les archives de Nmap\-dev sur
|
|
\m[blue]\fB\%http://seclists.org/\fR\m[]\&. Lisez ce manuel en entier quoiqu\*(Aqil en soit\&. Si rien ne semble fonctionner, envoyez un rapport de bogue \(`a
|
|
<dev@nmap\&.org>\&. Veillez \(`a inclure tout ce que vous avez appris au sujet de ce bogue ainsi que la version de Nmap concern\('ee et le syst\(`eme d\*(Aqexploitation que vous utilisez\&. Les rapports de probl\(`emes et les questions sur l\*(Aqutilisation de Nmap envoy\('es \(`a dev@nmap\&.org ont plus de chance de trouver une r\('eponse que ceux envoy\('es \(`a Fyodor directement\&.
|
|
.PP
|
|
Les codes de programmes de correction destin\('es \(`a r\('egler des bogues sont encore meilleurs que les rapports de bogues\&. Les instructions de base pour cr\('eer des fichiers de programmes de correction avec vos modifications sont disponibles sur
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/data/HACKING\fR\m[]\&. Les programmes de correction peuvent \(^etre envoy\('es \(`a nmap\-dev (recommand\('e) ou \(`a Fyodor directement\&.
|
|
.SH "AUTEUR"
|
|
.PP
|
|
Fyodor
|
|
<fyodor@nmap\&.org>
|
|
(\m[blue]\fB\%http://www.insecure.org\fR\m[])
|
|
.PP
|
|
Traduction fran\(,caise :
|
|
.PP
|
|
Romuald THION
|
|
<romuald\&.thion@insa\-lyon\&.fr>
|
|
4N9e Gutek
|
|
<4n9e@futurezone\&.biz>
|
|
Relecture et corrections : Ghislaine Landry
|
|
<g\-landry@rogers\&.com>
|
|
.PP
|
|
Bien qu\*(Aqun soin particulier ait \('et\('e apport\('e \(`a cette traduction, il est possible que certaines erreurs s\*(Aqy soient gliss\('ees\&. Le cas \('ech\('eant, n\*(Aqh\('esitez pas \(`a communiquer avec les traducteurs\&. La traduction ne remplace pas au texte original (version anglaise), tout particuli\(`erement en ce qui concerne les dispositions l\('egales\&. Une erreur d\*(Aqinterpr\('etation dans cette traduction ne peut, en aucun cas, se substituer \(`a ces dispositions\&. Insecure\&.Com LLC n\*(Aqassume aucune responsabilit\('e en ce qui a trait aux erreurs \('eventuelles de traduction ou d\*(Aqinterpr\('etation\&.
|
|
.PP
|
|
Des centaines de personnes ont apport\('e de pr\('ecieuses contributions \(`a Nmap au cours des ann\('ees\&. Celles\-ci sont d\('etaill\('ees dans le fichier
|
|
CHANGELOG
|
|
qui est distribu\('e avec Nmap mais aussi disponible sur
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/changelog.html\fR\m[]\&.
|
|
.SH "DISPOSITIONS L\('EGALES"
|
|
.SS "Droits d\*(Aqauteur et licence"
|
|
.PP
|
|
Le Nmap Security Scanner est sous droits d\*(Aqauteur (C) 1996\-2005 Insecure\&.Com LLC\&. Nmap est aussi une marque d\('epos\('ee de Insecure\&.Com LLC\&. Ce programme est un logiciel libre; vous pouvez le redistribuer ou le modifier selon les termes de la licence GNU General Public License comme publi\('ee par la Free Software Foundation; Version 2\&. Cela garantit vos droits d\*(Aqutilisation, de modification et de redistribution de ce logiciel, et ce, sous certaines conditions\&. Si vous souhaitez inclure la technologie Nmap dans un logiciel propri\('etaire, nous nous r\('eservons le droit de vendre d\*(Aqautres licences (communiquez avec
|
|
<sales@insecure\&.com>)\&. Beaucoup de distributeurs de scanners de s\('ecurit\('e ont d\('ej\(`a acquis une licence pour les technologies Nmap, notamment la d\('ecouverte d\*(Aqh\(^ote, le scan de ports, le d\('etection du syst\(`eme d\*(Aqexploitation et la d\('etection de service ou de version\&.
|
|
.PP
|
|
Notez que la licence GPL comporte d\*(Aqimportantes restrictions relativement aux
|
|
\(Fo\ \&travaux d\('eriv\('es\ \&\(Fc, bien qu\*(Aqelle ne donne pas de d\('etails suffisants quant \(`a la d\('efinition de ceux\-ci\&. Afin d\*(Aq\('eviter toute incompr\('ehension, nous consid\('erons une application comme constituant un
|
|
\(Fo\ \&travail d\('eriv\('e\ \&\(Fc
|
|
dans le cadre de cette licence au cas o\(`u elle correspondrait \(`a l\*(Aqun de ces termes :
|
|
.sp
|
|
.RS 4
|
|
.ie n \{\
|
|
\h'-04'\(bu\h'+03'\c
|
|
.\}
|
|
.el \{\
|
|
.sp -1
|
|
.IP \(bu 2.3
|
|
.\}
|
|
Int\(`egre le code source de Nmap
|
|
.RE
|
|
.sp
|
|
.RS 4
|
|
.ie n \{\
|
|
\h'-04'\(bu\h'+03'\c
|
|
.\}
|
|
.el \{\
|
|
.sp -1
|
|
.IP \(bu 2.3
|
|
.\}
|
|
Lis ou inclus les fichiers d\('epos\('es de Nmap, comme
|
|
nmap\-os\-fingerprints
|
|
ou
|
|
nmap\-service\-probes\&.
|
|
.RE
|
|
.sp
|
|
.RS 4
|
|
.ie n \{\
|
|
\h'-04'\(bu\h'+03'\c
|
|
.\}
|
|
.el \{\
|
|
.sp -1
|
|
.IP \(bu 2.3
|
|
.\}
|
|
Ex\('ecute Nmap et traite les r\('esultats (par opposition \(`a une simple ex\('ecution en syst\(`eme essentiel ou en menu applicatif, qui ne fait qu\*(Aqafficher les sorties brutes de Nmap et, de ce fait, ne sont pas des travaux d\('eriv\('es\&.)
|
|
.RE
|
|
.sp
|
|
.RS 4
|
|
.ie n \{\
|
|
\h'-04'\(bu\h'+03'\c
|
|
.\}
|
|
.el \{\
|
|
.sp -1
|
|
.IP \(bu 2.3
|
|
.\}
|
|
Int\(`egre/Inclus/Concat\(`ene Nmap dans un installeur ex\('ecutable propri\('etaire, comme ceux produits par InstallShield\&.
|
|
.RE
|
|
.sp
|
|
.RS 4
|
|
.ie n \{\
|
|
\h'-04'\(bu\h'+03'\c
|
|
.\}
|
|
.el \{\
|
|
.sp -1
|
|
.IP \(bu 2.3
|
|
.\}
|
|
Lie \(`a une librairie ou \(`a un programme ex\('ecutable qui fait l\*(Aqune des proc\('edures ci\-dessus\&.
|
|
.RE
|
|
.PP
|
|
Le terme
|
|
\(Fo\ \&Nmap\ \&\(Fc
|
|
doit \(^etre pris comme incluant aussi toute portion ou travail d\('eriv\('e de Nmap\&. Cette liste n\*(Aqest pas exhaustive; elle est simplement con\(,cue de fa\(,con \(`a clarifier notre interpr\('etation des travaux d\('eriv\('es au moyen de quelques exemples connus\&. Ces restrictions s\*(Aqappliquent seulement lorsque vous redistribuez Nmap\&. Par exemple, rien ne vous emp\(^eche d\*(Aq\('ecrire et de vendre une interface graphique propri\('etaire pour Nmap\&. Distribuez\-la seulement en entier et assurez\-vous de diriger les gensvers le lien
|
|
\m[blue]\fB\%http://www.insecure.org/nmap/\fR\m[]
|
|
de fa\(,con \(`a t\('el\('echarger Nmap\&.
|
|
.PP
|
|
Nous ne consid\('erons pas ce document comme \('etant un ajout \(`a la licence GPL, mais simplement une clarification de la fa\(,con dont nous interpr\('etons
|
|
\(Fo\ \&les travaux d\('eriv\('es\ \&\(Fc
|
|
qui s\*(Aqappliquent \(`a notre produit Nmap sous licence GPL\&. Ceci est semblable \(`a la fa\(,con dont Linus Torvalds a annonc\('e son interpr\('etation des
|
|
\(Fo\ \& travaux d\('eriv\('es\ \&\(Fc
|
|
qui s\*(Aqappliquent aux modules du noyau Linux\&. Notre interpr\('etation fait seulement r\('ef\('erence \(`a Nmap; nous ne parlons d\*(Aqaucun autre produit sous GPL\&.
|
|
.PP
|
|
Si vous avez des questions \(`a propos des restrictions de la licence GPL et de l\*(Aqutilisation de Nmap dans le cadre des travaux non\-GPL, nous serions heureux de vous aider\&. Tel que mentionn\('e ci\-dessus, nous offrons une autre licence afin d\*(Aqint\('egrer Nmap au sein d\*(Aqapplications propri\('etaires\&. Ces contrats ont \('et\('e vendus \(`a de nombreux distributeurs du domaine de la s\('ecurit\('e et comportent g\('en\('eralement une licence perp\('etuelle tout en fournissant un support, des mises \(`a jour prioritaires et une aide au d\('eveloppement constant de la technologie Nmap\&. Veuillez envoyer un courriel \(`a
|
|
<sales@insecure\&.com>
|
|
pour obtenir plus d\*(Aqinformations\&.
|
|
.PP
|
|
Comme exception particuli\(`ere \(`a la licence GPL, Insecure\&.Com LLC permet de lier le code de ce programme \(`a toute version de la librairie OpenSSL, qui est distribu\('ee sous une licence identique \(`a celle sp\('ecifi\('ee dans le fichier Copying\&.OpenSSL ci\-inclus, et de distribuer les combinaisons de liens incluant les deux\&. Vous devez observer le GNU GPL dans tous ses aspects pour toute portion du code utilis\('ee autre que OpenSSL\&. Si vous modifiez ce fichier, vous pouvez \('etendre cette exception \(`a votre version du fichier mais vous n\*(Aq\(^etes toutefois pas oblig\('e de le faire\&.
|
|
.PP
|
|
Si vous recevez ces fichiers avec une licence \('ecrite ou un contrat \('etablissant les termes autres que ceux mentionn\('es ci\-dessus, cette autre licence prend la pr\('es\('eance sur ces commentaires\&.
|
|
.SS "Licence Creative Commons pour cette documentation de Nmap"
|
|
.PP
|
|
Ce guide de r\('ef\('erence Nmap est d\('epos\('e par 2005 Insecure\&.Com LLC\&. Il est ainsi sous licence 2\&.5 de la licence
|
|
\m[blue]\fBCreative Commons Attribution License\fR\m[]\&\s-2\u[2]\d\s+2\&. Ceci vous permez de redistribuer et modifier ce travail comme bon vous semble, tant que vous citez la source originale\&. Autrement, vous pouvez consid\('erer ce document comment tombant sous le coup de la m\(^eme licence que Nmap lui\-m\(^eme\&.
|
|
.SS "Disponibilit\('e du code source et contribution communautaire"
|
|
.PP
|
|
La source est fournie avec ce programme car nous croyons que les utilisateurs ont le droit de savoir exactement ce qu\*(Aqun programme va faire avant d\*(Aq\(^etre lanc\('e\&. Cela vous permet aussi de v\('erifier ce logiciel relativement \(`a d\*(Aq\('eventuelles vuln\('erabilit\('es (aucune n\*(Aqa \('et\('e trouv\('ee \(`a ce jour)\&.
|
|
.PP
|
|
Le code source vous permet aussi d\*(Aqutiliser Nmap sur de nouvelles plateformes, de r\('egler des bogues et d\*(Aqajouter de nouvelles fonctionnalit\('es\&. Vous \(^etes fortement encourag\('es \(`a pr\('esenter vos modifications \(`a
|
|
<fyodor@nmap\&.org>
|
|
dans le but de les int\('egrer dans la distribution principale\&. Lorsque vous envoyez ces changements \(`a Fyodor ou \(`a l\*(Aqune des listes de d\('eveloppement d\*(AqInsecure\&.Org, il est recommand\('e que vous c\('ediez \(`a Fyodor et \(`a Insecure\&.Com LLC le droit illimit\('e et non exclusif de r\('eutiliser, de modifier et de conc\('eder de nouveau une licence pour le code\&. Nmap sera toujours disponible en Open Source et ce, principalement en raison de l\*(Aqimpossibilit\('e de conc\('eder de nouveau une licence pour le code, ce qui a occasionn\('e des probl\(`emes d\('evastateurs pour d\*(Aqautres projets de d\('eveloppement libres (comme KDE et NASM)\&. Nous conc\('edons aussi occasionnellement une licence pour le code \(`a des tierces parties, tel que d\('ecrit ci\-dessus\&. Si vous souhaitez sp\('ecifier une condition de licence \(`a votre contribution, indiquez\-le simplement au moment de nous l\*(Aqenvoyer\&.
|
|
.SS "Pas de garanties"
|
|
.PP
|
|
Ce programme est distribu\('e dans l\*(Aqespoir qu\*(Aqil sera utile, mais SANS AUCUNE GARANTIE; sans m\(^eme la garantie implicite de VALEUR MARCHANDE ou DE FONCTIONNEMENT POUR UNE UTILISATION PARTICULI\(`ERE\&. Consultez la licence GNU General Public License pour obtenir plus de d\('etails sur
|
|
\m[blue]\fB\%http://www.gnu.org/copyleft/gpl.html\fR\m[]
|
|
ou sur le fichier COPYING inclus avec Nmap\&.
|
|
.PP
|
|
Il faut \('egalement noter que Nmap est reconnu pour avoir occasionnellement fait tomber en panne des applications mal \('ecrites, des piles TCP/IP, et m\(^eme des syst\(`emes d\*(Aqexploitation\&. Bien que ce soit extr\(^emement rare, il est important de le garder en t\(^ete\&.
|
|
\fINmap ne doit jamais \(^etre lanc\('e contre des syst\(`emes d\*(Aqimportance critique\fR
|
|
\(`a moins que vous ne soyez pr\(^ets \(`a en payer le prix\&. Nous acceptons ici que Nmap puisse faire tomber en panne vos syst\(`emes ou r\('eseaux et nous nous d\('egageons de toute responsabilit\('e pour tout dommage ou probl\(`eme que Nmap pourrait causer\&.
|
|
.SS "Usage inappropri\('e"
|
|
.PP
|
|
De part le faible risque de tomber en panne et de quelques piratages \('electroniques au moyen de Nmap aux fins de reconnaissance avant attaque des syst\(`emes, certains administrateurs sont d\('esormais m\('econtents et peuvent se plaindre lorsque leur syst\(`eme est scann\('e\&. C\*(Aqest pourquoi il est souvent pr\('ef\('erable de demander d\*(Aqabord la permission avant d\*(Aqeffectuer le scan d\*(Aqun r\('eseau, et ce, aussi simple soit\-il\&.
|
|
.PP
|
|
Nmap ne devrait jamais \(^etre install\('e avec des privil\(`eges sp\('eciaux (par exemple, suid root) pour des raisons de s\('ecurit\('e\&.
|
|
.SS "Logiciels Tierce Partie"
|
|
.PP
|
|
Ce produit comporte un logiciel d\('evelopp\('e par la
|
|
\m[blue]\fBApache Software Foundation\fR\m[]\&\s-2\u[11]\d\s+2\&. Une version modifi\('ee de la librairie de capture de paquets Libpcap
|
|
\m[blue]\fBde chez tcpdump\fR\m[]\&\s-2\u[12]\d\s+2
|
|
est distribu\('ee en accompagnement de Nmap\&. La version Windows de Nmap emploie la version d\('eriv\('ee de Libpcap
|
|
\m[blue]\fBWinPcap library\fR\m[]\&\s-2\u[13]\d\s+2\&. Le support des expressions r\('eguli\(`eres est assur\('e par la librairie
|
|
\m[blue]\fBPCRE\fR\m[]\&\s-2\u[14]\d\s+2, qui consiste en un logiciel open source \('ecrit par Philip Hazel\&. Certaines fonctions r\('eseau utilisent la librairie r\('eseau
|
|
\m[blue]\fBLibdnet\fR\m[]\&\s-2\u[15]\d\s+2
|
|
\('ecrite par Dug Song\&. Une version modifi\('ee est distribu\('ee avec Nmap\&. Nmap peut \('eventuellement pointer sur l\*(Aqoutil de cryptographie
|
|
\m[blue]\fBOpenSSL cryptography toolkit\fR\m[]\&\s-2\u[16]\d\s+2
|
|
pour le support de d\('etection de version dans le cas du SSL\&. Tous les logiciels tierce partie d\('ecrits dans ce paragraphe peuvent \(^etre de nouveau distribu\('es sous les licences de type BSD\&.
|
|
.SS "Classification et contr\(^ole des exportations depuis les \('Etats\-Unis (US Export Control Classification)"
|
|
.PP
|
|
Contr\(^ole des exportations : Insecure\&.Com LLC pense que Nmap tombe sous la juridiction de l\*(AqUS ECCN (export control classification number), num\('ero 5D992\&. Cette cat\('egorie est appel\('ee
|
|
\(Fo\ \&Information Security software not controlled by 5D002\ \&\(Fc, logiciel de s\('ecurit\('e et d\*(Aqinformations non contr\(^ol\('e par le chapitre 5D002\&. La seule restriction de cette classification concerne l\*(Aqanti\-terrorisme qui s\*(Aqapplique \(`a la plupart des biens et des valeurs export\('es vers des pays sensibles comme l\*(AqIran et la Cor\('ee du Nord\&. C\*(Aqest pourquoi l\*(Aqexportation de Nmap ne requiert aucune licence particuli\(`ere, permis, ou autre autorisation gouvernementale\&.
|
|
.SH "NOTES"
|
|
.IP " 1." 4
|
|
version originale en Anglais
|
|
.RS 4
|
|
\%http://www.insecure.org/nmap/man/
|
|
.RE
|
|
.IP " 2." 4
|
|
Creative Commons Attribution License
|
|
.RS 4
|
|
\%http://creativecommons.org/licenses/by/2.5/
|
|
.RE
|
|
.IP " 3." 4
|
|
RFC 1122
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc1122.txt
|
|
.RE
|
|
.IP " 4." 4
|
|
RFC 792
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc792.txt
|
|
.RE
|
|
.IP " 5." 4
|
|
UDP
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc768.txt
|
|
.RE
|
|
.IP " 6." 4
|
|
RFC TCP
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc793.txt
|
|
.RE
|
|
.IP " 7." 4
|
|
RFC 959
|
|
.RS 4
|
|
\%http://www.rfc-editor.org/rfc/rfc959.txt
|
|
.RE
|
|
.IP " 8." 4
|
|
protocole IP
|
|
.RS 4
|
|
\%http://www.ietf.org/rfc/rfc0791.txt
|
|
.RE
|
|
.IP " 9." 4
|
|
Nmap::Scanner
|
|
.RS 4
|
|
\%http://sourceforge.net/projects/nmap-scanner/
|
|
.RE
|
|
.IP "10." 4
|
|
Nmap::Parser
|
|
.RS 4
|
|
\%http://www.nmapparser.com
|
|
.RE
|
|
.IP "11." 4
|
|
Apache Software Foundation
|
|
.RS 4
|
|
\%http://www.apache.org
|
|
.RE
|
|
.IP "12." 4
|
|
de chez tcpdump
|
|
.RS 4
|
|
\%http://www.tcpdump.org
|
|
.RE
|
|
.IP "13." 4
|
|
WinPcap library
|
|
.RS 4
|
|
\%http://www.winpcap.org
|
|
.RE
|
|
.IP "14." 4
|
|
PCRE
|
|
.RS 4
|
|
\%http://www.pcre.org
|
|
.RE
|
|
.IP "15." 4
|
|
Libdnet
|
|
.RS 4
|
|
\%http://libdnet.sourceforge.net
|
|
.RE
|
|
.IP "16." 4
|
|
OpenSSL cryptography toolkit
|
|
.RS 4
|
|
\%http://www.openssl.org
|
|
.RE
|