SSH, OpenSSL, Iptables, RSYNC, RAID, VPN

 Charge moyenne sur 1mn : 0.62 Charge moyenne sur 5mn : 0.61 Charge moyenne sur 15mn : 0.61


Comment faire pour protéger un réseau, une transmission, des données ?

Utiliser un pare-feu, un anti-virus, sauvegarder son système régulièrement, utiliser un système de disque sécurisé pour vos données. Utiliser les protocoles sécurisés tel que HTTPs, FTPs, IMAPs, POPs, SMTPs





Blocs utilisateurs du site : Infos du compte / droits utilisateurs / récapitulatif

Identifiez-vous

Authentifiez-vous avec votre compte ZW3B et profitez des services membres.

Identifiant :
Mot de passe :
  
  

Nmap - Techniques de scan réseau

  • Nmap - Techniques de scan réseau
Scanner de sécurité gratuit, scanner de ports et outil d'exploration de réseau. Les techniques du scan de ports...

Informations

Dates
  • Publication : 2008
  • Modification : Vendredi 25 septembre 2020

Les techniques du scan de ports

La plupart des types de scans ne sont disponibles que pour les utilisateurs privilégiés. Ceci est dû au fait qu'ils émettent et reçoivent des paquets bruts (raw), qui nécessitent les droits root sur les systèmes UNIX. L'utilisation d'un compte administrateur est conseillé sous Windows, bien que Nmap puisse fonctionner avec des utilisateurs non-privilégiés si WinPcap est déjà chargé avec l'OS. Ce besoin des droits root était une sérieuse restriction quand Nmap a été diffusé en 1997, car beaucoup d'utilisateurs avaient seulement accès à des comptes Internet partagés. Maintenant, le monde est différent. Les ordinateurs sont moins chers, bien plus de gens disposent d'un accès 24/24 direct à Internet et les systèmes UNIX de bureau (comme Linux et Mac OS X) sont répandus. Une version Windows de Nmap est désormais 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és. Ceci est heureux, car les options privilégiés rendent Nmap bien plus puissant et flexible.

Si Nmap essaie de produire des résultats précis, il faut garder à l'esprit que toute sa perspicacité est basée sur les paquets renvoyés par les machines cibles (ou les pare-feux qui les protègent). De tels hôtes ne sont pas toujours dignes de confiance et peuvent répondre dans le but de brouiller ou d'enduire Nmap d'erreurs. Les hôtes qui ne respectent pas les RFCs et ne répondent pas comme ils devraient sont encore plus courants. Les scans FIN, Null et Xmas sont les plus sensibles à ce problème. Ces points sont spécifiques à certains types de scan et sont donc abordés dans leur section propre de la documentation.

Cette section documente la douzaine de techniques de scan de ports gérées par Nmap. Les méthodes ne peuvent pas être utilisés simultanément, excepté le scan UDP (-sU) qui peut être combiné avec chacun des types de scan TCP. A titre d'aide mémoire, les options de type de scan sont de la forme -sC, où Cest un caractère prépondérant dans le nom du scan, souvent le premier. La seule exception est le désuet scan par rebond FTP (-b). Par défaut, Nmap effectue un scan SYN, bien qu'il y substitue un scan connect() si l'utilisateur ne dispose pas des droits suffisants pour envoyer des paquets bruts (qui requièrent les droits root sous UNIX) ou si des cibles IPv6 sont spécifiées. Des scans listés dans cette section, les utilisateurs non-privilégiés peuvent seulement exécuter les scans connect() et le scan par rebond FTP.


-sS (Scan TCP SYN)

Le scan SYN est celui par défaut et le plus populaire pour de bonnes raisons. Il peut être exécuté rapidement et scanner des milliers de ports par seconde sur un réseau rapide lorsqu'il n'est pas entravé par des pare-feux. Le scan SYN est relativement discret et furtif, vu qu'il ne termine jamais les connexions TCP. Il marche également contre toute pile respectant TCP, au lieu de dépendre des particularités environnementales spécifiques comme les scans Fin/Null/Xmas, Maimon ou Idle le sont. Il permet de plus une différentiation fiable entre les états ouvert, fermé et filtré.

Cette technique est souvent appelée le scan demi-ouvert (half-open scanning), car il n'établi pas pleinement la connexion TCP. Il envoie un paquet SYN et attend sa réponse, comme s'il voulait vraiment ouvrir une connexion. Une réponse SYN/ACK indique que le port est en écoute (ouvert), tandis qu'une RST (reset) indique le contraire. Si aucune réponse n'est reçue après plusieurs essais, le port est considéré comme étant filtré. Le port l'est également si un message d'erreur " unreachable ICMP (type 3, code 1,2, 3, 9, 10 ou 13) " est reçu.

-sT (Scan TCP connect())

Le scan TCP connect() est le type de scan par défaut quand le SYN n'est pas utilisable. Tel est le cas lorsque l'utilisateur n'a pas les privilèges pour les paquets bruts (raw packets) ou lors d'un scan de réseaux IPv6. Plutôt que d'écrire des paquets bruts comme le font la plupart des autres types de scan, Nmap demande au système d'exploitation qui l'exécute d'établir une connexion au port de la machine cible grâce à l'appel système connect(). C'est le même appel système haut-niveau qui est appelé par les navigateurs Web, les clients P2P et la plupart des applications réseaux qui veulent établir une connexion. Cet appel fait partie de l'interface d'application connue sous le nom de " Berkeley Sockets API ". Au lieu de lire les réponses brutes sur le support physique, Nmap utilise cette application API pour obtenir l'état de chaque tentative de connexion.

Si le scan SYN est disponible, il vaut mieux l'utiliser. Nmap a bien moins de contrôles sur l'appel système haut niveau connect() que sur les paquets bruts, ce qui le rend moins efficace. L'appel système complète les connexions ouvertes sur les ports cibles au lieu de les annuler lorsque la connexion est à demie ouverte, comme le fait le scan SYN. Non seulement c'est plus long et demande plus de paquets pour obtenir la même information, mais de plus la probabilité que les cibles activent la connexion est plus grande. Un IDS décent le fera, mais la plupart des machines ne disposent pas de ce système d'alarme. De nombreux services sur les systèmes UNIX standards noteront cette connexion dans le journal, accompagné d'un message d'erreur sibyllin si Nmap ouvre puis referme la connexion sans n'envoyer aucune donnée. Les services réseaux les plus piteux risquent même de tomber en panne, mais c'est assez rare. Un administrateur qui verrait un tas de tentatives de connexions dans ses journaux en provenance d'une seule machine devrait se rendre compte qu'il a été scanné.


-sU(Scan UDP)

Même si les services les plus connus d'Internet son basés sur le protocole TCP, les services UDP sont aussi largement utilisés. DNS, SNMP ou DHCP (ports 53, 161/162 et 67/68) sont les trois exemples les plus courants. Comme le scan UDP est généralement plus lent et plus difficile que TCP, certains auditeurs de sécurité les ignorent. C'est une erreur, car les services UDP exploitables sont courants et les attaquants eux ne les ignoreront pas. Par chance, Nmap peut aider à répertorier les ports UDP.

Le scan UDP est activé avec l'option-sU. Il peut être combiné avec un scan TCP, comme le scan SYN ( -sS), pour vérifier les deux protocoles lors de la même exécution de Nmap.

Le scan UDP envoie un en-tête UDP (sans données) à chaque port visé. Si un message ICMP " port unreachable (type 3, code 3) " est renvoyé, le port est alors fermé. Les autres messages d'erreur " unreachable ICMP (type 3, codes 1, 2, 9, 10, or 13) " rendront le port filtré. A l'occasion, il arrive qu'un service répond par un paquet UDP, prouvant que le port est dans l'état ouvert. Si aucune réponse n'est renvoyée après plusieurs essais, le port est considéré comme étant ouvert|filtré. Cela signifie que le port peut être soit ouvert, soit qu'un dispositif de filtrage bloque les communications. Le scan de versions ( -sV) peut être utilisé pour différencier les ports ouverts de ceux filtrés.

Une des grandes difficultés avec le scan UDP est de l'exécuter rapidement. Les ports ouverts et filtrés ne renvoient que rarement des réponses, laissant Nmap expirer son délai de retransmission au cas où les paquets se soient perdus. Les ports fermés posent encore un plus grand problème: ils renvoient normalement une erreur ICMP " port unreachable ". Mais à la différence des paquets RST renvoyés par les ports TCP fermés en réponse à un scan SYN ou à un connect(), de nombreux hôtes limitent par défaut la cadence d'émission de ces messages. Linux et Solaris étant particulièrement stricts à ce sujet. Par exemple, le kernel 2.4.20 limite cette cadence des destinations inaccessibles (" destination unreachable ") à un par seconde (cf.net/ipv4/icmp.c).

Nmap détecte cette limitation de fréquence et s'y ralenti conformément afin d'éviter de saturer le réseau avec des paquets inutiles que la machine cible rejettera. Malheureusement, une limitation à la Linux d'un paquet par seconde fera qu'un scan des 65 536 ports prendra plus de 18 heures. Les idées pour accélérer les scans UDP incluent le scan des cibles en parallèle, ne scanner que les ports les plus courants en premier, scanner derrière le pare-feu et utiliser l'option --host-timeout pour éviter les hôtes les plus lents.

-sN; -sF; -sX (Scans TCP Null, FIN et Xmas)

Ces trois types de scans (d'autres sont possibles en utilisant l'option --scanflags décrite dans la section suivante) exploitent une subtile faille de la RFC TCP pour différencier les ports entre ouverts et fermés. La page 65 indique que si le port [de destination] est dans l'état fermé... un segment ne contenant pas le drapeau RST provoque l'émission d'un paquet RST comme réponse. La page suivante indique que pour les paquets envoyés à des ports sans aucun des drapeaux SYN, RST ou ACK activés: il est peut vraisemblable que cela arrive, mais si cela est le cas, il faut rejeter le segment.

Pour les systèmes respectant ce texte de la RFC, chaque paquet ne contenant ni SYN, ni RST, ni ACK se voit renvoyé un RST si le port est fermé et aucune réponse si le port est ouvert. Tant qu'aucun de ces drapeaux n'est utilisé, toute combinaison des trois autres (FIN, PSH et URG) son valides. Nmap exploite cela avec les trois types de scans:

Scan Null (-sN) : N'active aucun des bits (les drapeaux de l'en-tête TCP vaut 0). Scan FIN (-sF) : N'active que le bit FIN. Scan Xmas (-sX) : Active les drapeaux FIN, PSH et URG, illuminant le paquet comme un arbre de Noël (NDT: la fracture cognitive entre la culture anglo-saxonne et française se ressent fortement dans cette traduction...).

Ces trois types de scan ont exactement le même comportement, sauf pour les drapeaux TCP utilisés dans des paquets de tests (probes packets). Si un RST est reçu, le port est considéré comme étant fermé, tandis qu'une absence de réponse signifiera qu'il est dans l'état ouvert|filtré. Le port est marqué comme filtré si un message d'erreur ICMP " unreachable (type 3, code 1, 2, 3, 9, 10 ou 13) " est reçu.

L'avantage principal de ces types de scans est qu'ils peuvent furtivement traverser certains pare-feux ou routeurs filtrants sans état de connexion (non-statefull). Un autre avantage est qu'ils sont même un peu plus furtifs que le scan SYN. N'y comptez pas trop dessus cependant -- la plupart des IDS modernes sont configurés pour les détecter. L'inconvénient majeur est que tous les systèmes ne respectent pas la RFC 793 à la lettre. Plusieurs systèmes renvoient des RST aux paquets quelque soit l'état du port de destination, qu'il soit ouvert ou pas. Ceci fait que tous les ports sont considérés commefermé. Les plus connus des systèmes qui ont ce comportement sont Microsoft Windows, plusieurs équipements Cisco, BSDI et IBM OS/400. Ce type de scan fonctionne cependant très bien contre la plupart des systèmes basés sur UNIX. Un autre désagrément de ce type de scan et qu'ils ne peuvent pas distinguer les ports ouvertsde certains autres qui sont filtrés, vous laissant face à un laconique ouvert|filtré. -sA (Scan TCP ACK)

Ce type de scan est différent des autres abordés jusqu'ici, dans le sens où ils ne peuvent pas déterminer si un port est ouvert(ni même ouvert|filtré). Il est utilisé pour établir les règles des pare-feux, déterminant s'ils sont avec ou sans états (statefull/stateless) et quels ports sont filtrés.

Le scan ACK n'active que le drapeau ACK des paquets (à moins que vous n'utilisiez l'option --scanflags). Les systèmes non-filtrés réagissent en retournant un paquet RST. Nmap considère alors le port comme non-filtré, signifiant qu'il est accessible avec un paquet ACK, mais sans savoir s'il est réellement ouvert ou fermé. Les ports qui ne répondent pas ou renvoient certains messages d'erreur ICMP (type 3, code 1, 2, 3, 9, 10, ou 13), sont considérés comme filtrés.

-sW (Scan de fenêtre TCP)

Le scan de fenêtre TCP est exactement le même que le scan ACK à la différence près qu'il exploite un détail de l'implémentation de certains systèmes pour identifier les ports fermés des autres, au lieu de toujours afficher non-filtré lorsqu'un RST est renvoyé. Sur certains systèmes, les ports ouverts utilisent une taille de fenêtre TCP positive (même pour les paquets RST), tandis que les ports fermés ont une fenêtre de taille nulle. Ainsi, au lieu de toujours afficher non-filtré lorsqu'un RST est reçu, le scan de fenêtre indique que le port est ouvert ou fermé selon que la taille de fenêtre TCP de ce paquet RST est respectivement positive ou nulle.

Ce scan repose sur un détail d'implémentation d'une minorité de systèmes Internet, vous ne pouvez donc pas toujours vous y fier. Les systèmes qui ne le supportent pas vont certainement se voir considérés leurs ports comme fermés. Bien sûr, il se peut que la machine n'ait effectivement aucun port ouvert. Si la plupart des ports scannés sont fermés mais que quelques-uns courants, comme le 22, 25 ou le 53, sont filtrés, le système est vraisemblablement prédisposé à ce type de scan. Quelquefois, les systèmes ont le comportement exactement inverse. Si votre scan indique que 1 000 ports sont ouverts et que 3 seulement sont fermés ou filtrés, ces trois derniers sont certainement ceux qui sont ouverts.

-sM (Scan TCP Maimon)

Le scan Maimon est nommé ainsi d'après celui qui l'a découvert, Uriel Maimon. Il a décrit cette technique dans le numéro 49 de Phrack Magazine (Novembre 1996). Nmap, qui inclut cette technique, a été publié deux numéros plus tard. Cette technique est la même que les scans NUll, FIN et Xmas, à la différence près que le paquet de test est ici un FIN/ACK. Conformément à la RFC 793 (TCP), un paquet RST devrait être renvoyé comme réponse à un tel paquet, et ce, que le port soit ouvert ou non. Uriel a cependant remarqué que de nombreux systèmes basés sur BSD rejettent tout bonnement le paquet si le port est ouvert.

--scanflags (Scan TCP personnalisé)

Les utilisateurs réellement experts de Nmap ne veulent pas se limiter aux seuls types de scans proposés. L'option --scanflags vous permet de créer votre propre type de scan en spécifiant vos propres combinaisons de drapeaux TCP. Laisser courir votre imagination, tout en contournant les systèmes de détection d'intrusion dont les vendeurs n'ont fait qu'ajouter des règles spécifiques d'après la documentation Nmap!

L'argument de l'option --scanflags peut être soit un nombre comme 9 (PSH et FIN), mais l'utilisation des noms symboliques est plus facile. Mélanger simplement les drapeaux URG, ACK, PSH, RST, SYN et FIN. Par exemple, --scanflags URGACKPSHRSTSYNFIN les activent tous, bien que cela ne soit pas très utile pour effectuer un scan. L'ordre dans lequel les drapeaux sont spécifiés n'a pas d'importance.

En sus de la spécification des drapeaux désirés, vous pouvez spécifier également un type de scan TCP (comme -sA ou -sF). Ce type de scan de base indique à Nmap comment interpréter les réponses. Par exemple, un scan SYN considère que l'absence de réponse indique qu'un port est filtré, tandis qu'un scan FIN considèrera la même absence comme un port ouvert|filtré. Nmap se comportera de la même façon que le type de scan de base, à la différence près qu'il utilisera les drapeaux TCP que vous avez spécifié à la place. Si vous n'en spécifiez pas, le type de scan SYN par défaut sera utilisé.

-sI (Scan paresseux -- idlescan)

Cette méthode de scan avancé permet de faire un véritable scan de port TCP en aveugle, (dans le sens où aucun paquet n'est envoyé directement à la cible depuis votre vraie adresse IP). En effet, la technique employée consiste à récolter des informations sur les ports ouverts de la cible en utilisant un exploit basé sur la prédictibilité de la génération des identifiants de fragmentation IP de l'hôte relais (le zombie). Les systèmes IDS considéreront que le scan provient de la machine zombie que vous avez spécifié (qui doit remplir certains critères). Le mécanisme de cette incroyable technique est trop complexe pour être expliqué en détail dans ce guide; un papier informel a été posté pour rendre compte de tous ces détails : http://www.insecure.org/nmap/idlescan.html.

En plus de son incroyable furtivité (en raison du caractère aveugle de la technique), ce type de scan permet de déterminer les relations de confiance entre les machines. La liste des ports ouverts est établie du point de vue de l'hôte zombie. Ainsi, vous pouvez essayer de scanner une cible en utilisant différents zombies pour lesquels vous pensez qu'il existe une relation de confiance entre eux et la cible (d'après les règles des dispositifs de filtrage).

Vous pouvez ajouter les deux points (:) suivis d'un numéro de port de l'hôte zombie si vous souhaitez tester les changements d'identifiants IP sur un port particulier du zombie. Par défaut, Nmap utilisera le port utilisé pour les pings tcp (le port 80).

-sO (Scan du protocole IP)

Le scan du protocole IP permet de déterminer quels protocoles IP (TCP, ICMP, IGMP, etc.) sont supportés par les cibles. Ce n'est donc pas techniquement un scan de ports, car Nmap essaie les différents numéros de protocoles IP à la place des numéros de ports TCP ou UDP. Ce scan permet néanmoins d'utiliser l'option -p pour sélectionner les numéros de protocoles à scanner -- le rapport de Nmap étant toujours dans le style habituel des tables de ports -- et utilise le même moteur de scan utilisé pour le scan de ports. Ainsi, cette technique est suffisamment proche du scan de port pour être présenté ici.

Au delà de son intérêt propre, le scan de protocoles illustre la puissance des logiciels en libre accès. L'idée de base est assez simple: je n'avais même pas particulièrement pensé à l'ajouter ni reçu de requête me demandant une telle fonctionnalité. En fait, à l'été 2000, Gerhard Rieger a eu cette idée et a écrit un excellent programme de correction pour l'implanter; il l'a ensuite envoyé à la liste de distribution nmap-hackers. Je l'ai par la suite ajouté à l'arbre de développement de Nmap et j'ai publié la nouvelle version le lendemain même. Très peu de logiciels commerciaux peuvent se targuer d'avoir des utilisateurs si enthousiastes concevant et proposant leur propres améliorations!

Le scan de protocole fonctionne d'une façon similaire du scan UDP. Au lieu de parcourir les champs de numéro de port des paquets UDP, il envoie des paquets d'en-têtes IP et parcours les 8 bits du champ protocole IP. Les en-têtes son généralement vides, ne contenant pas de données ni même l'en-tête du protocole sollicité. Les trois seules exceptions étant TCP, UDP et ICMP. Un en-tête exact de ces protocoles est inclus, sinon certains systèmes refusent de les émettre et Nmap dispose déjà des fonctions permettant de construire ces en-têtes. Au lieu de scruter les messages ICMP " port unreachable ", comme pour le scan UDP, le scan de protocole attend de recevoir les messages ICMP "protocolunreachable ". Dès que Nmap reçoit une réponse d'un protocole en provenance de la cible, Nmap considère ce protocole comme ouvert. Une erreur ICMP " protocol unreachable " (type 3, code 2) fait en sorte que le port est considéré comme étant fermé. Les autres messages d'erreur ICMP " unreachable (type 3, code 1, 3, 9, 10, or 13) " font en sorte que le port est considéré comme étant filtré (tout en prouvant que le protocole ICMP est quant à lui ouvert). Si aucune réponse n'est reçue après plusieurs transmissions, le protocole est considéré comme étant ouvert|filtré.

-b (Scan par rebond FTP)

Une caractéristique intéressante du protocole FTP (RFC 959) est qu'il supporte les connexions par proxy ftp (proxy ftp connections, ainsi nommées dans la RFC). Ceci permet à un utilisateur de se connecter à un serveur FTP, puis de demander qu'un fichier soit envoyé à un tiers serveur FTP. Une telle fonctionnalité est propre à être détournée à tous les niveaux, c'est pourquoi la plupart des serveurs ont cessé de la supporter. Un des détournements possible de cette caractéristique conduit le serveur FTP à scanner les ports d'autres hôtes. Demandez simplement au serveur FTP d'envoyer un fichier à chaque port intéressant de votre cible, et il se chargera d'effectuer le scan. Le message d'erreur permettra de savoir si le port est ouvert ou non. C'est un très bon moyen de contourner les pare-feux car les serveurs FTP des organisations sont souvent situés de telle façon à avoir plus d'accès aux hôtes du réseau internes que toute autre machine Internet. Nmap supporte le scan par rebond FTP avec l'option -b. Cette option prend un argument du type username:password@server:port. Server est le nom ou l'adresse IP d'un serveur FTP vulnérable. Comme pour une adresse URL traditionnelle, vous pouvez omettre username:password, (user: anonymous, password: -wwwuser@) pour accéder de manière anonyme. Le numéro de port (et les deux points) peuvent être également omis si le port FTP par défaut (21) est utilisé par le serveur server.

Cette vulnérabilité était très répandue en 1997 quand Nmap a été publié mais a largement été corrigée depuis. Il existe encore quelques serveurs vulnérables qui traînent, autant les essayer si rien d'autre ne marche (!!!). Si votre but est de contourner un pare-feu, scannez le réseau cible pour trouver un port 21 ouvert (ou un serveur FTP sur tout autre port en activant la détection de version), essayez ensuite pour chacun d'entre eux le scan par rebond FTP. Nmap vous indiquera si chaque hôte y est vulnérable ou pas. Si vous voulez juste essayer de masquer vos attaques, vous n'avez pas besoin (et même en fait, vous ne devriez pas) vous limiter aux hôtes du réseau cible. Avant de vous lancer dans un scan sur des adresses Internet au hasard, à la recherche de serveurs FTP vulnérables, pensez bien que les gestionnaires des systèmes n'apprécieront pas trop que vous détourniez leurs serveurs à cet effet.

Specifications et ordre du scan

En plus de toutes les méthodes de scan abordées précédemment, Nmap propose des options permettant la spécification des ports à scanner ainsi que l'ordre (au hasard ou séquentiel) dans lequel le scan doit se faire. Par défaut, Nmap scanne tous les ports jusqu'au 1 024 inclusivement ainsi que les ports supérieurs listés dans le fichier nmap-servicespour le ou les protocoles demandés).

-p (Ne scanne que les ports spécifiés)

Cette option spécifie quels ports vous voulez scanner et remplace le comportement par défaut. Les ports peuvent être spécifiés un à un ou par plages (séparés par des tirets, notamment 1-1023). Les valeurs de début ou de fin des plages peuvent être omises, de sorte que Nmap utilisera les ports 1 et 65 535, respectivement. Ainsi, vous pouvez spécifier -p- pour scanner tous les ports de 1 à 65 535. Le scan du port 0 est autorisé si spécifié explicitement. Pour ce qui est du scan du protocole IP (-sO), cette option spécifie les numéros de protocoles que vous souhaitez scanner (0-255).

Lorsque vous scannez à la fois des ports TCP et UDP, vous pouvez spécifier un protocole particulier en préfixant les numéros de ports par T: (pour TCP) ou U: (pour UDP). Le qualificateur reste actif à moins que vous n'en indiquiez un autre. Par exemple, l'argument -p U:53,111,137,T:21-25,80,139,8080scannerait les ports UDP numéros 53 111 et 137 et les ports TCP de 21 à 25 inclusivement, 80, 139 et 8080.
Notez que si vous voulez à la fois scanner TCP et UDP, vous devez spécifier -sU et au moins un type de scan TCP (comme -sS, -sF ou -sT). Si aucun qualificateur de protocole n'est spécifié, les numéros de ports sont alors valables pour tous les protocoles.

-F (Scan rapide (limite aux ports connus)

Cette option indique que vous souhaitez seulement scanner les ports listés dans le fichier nmap-services fourni avec Nmap (ou le fichier des protocoles avec l'option -sO). Ceci est bien plus rapide que de scanner les 65 535 ports d'un hôte. Comme cette liste contient beaucoup de ports TCP (plus de 1 200), la différence de vitesse avec le comportement par défaut (environ 1 650 ports) est relativement négligeable. Par contre, la différence peut être énorme si vous spécifiez votre propre mini-fichier nmap-services en utilisant l'option --datadir.

-r (Ne mélange pas les ports)

Par défaut, Nmap mélange au hasard l'ordre des ports (sauf que certains ports couramment accessibles sont placés vers le début de la liste pour des raisons d'efficacité). Ce mélange est normalement souhaitable, mais vous pouvez spécifier l'option -r pour effectuer un scan de port séquentiel.


Nmap (nmap.org - insecure.org) Techniques pour scanner

Résumé des options

Ce résumé des options est affiché quand Nmap est exécuté sans aucun argument; la plus récente version est toujours disponible sur https://nmap.org/data/nmap.usage.txt . Il sert d'aide-mémoire des options les plus fréquemment utilisées, mais ne remplace pas la documentation bien plus détaillée de la suite de ce manuel. Les options obscures n'y sont pas incluses.

Utilisation: nmap [Type(s) de scan] [Options] {spécifications des cibles}

SPÉCIFICATIONS DES CIBLES:

Les cibles peuvent être spécifiées par des noms d'hôtes, des adresses IP, des adresses de réseaux, etc.
Exemple: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0-255.0-255.1-254
-iL : Lit la liste des hôtes/réseaux cibles à partir du fichier
-iR : Choisit les cibles au hasard
--exclude : Exclut des hôtes/réseaux du scan
--excludefile : Exclut des hôtes/réseaux des cibles à partir du fichier

DÉCOUVERTE DES HÔTES:

-sL: List Scan - Liste simplement les cibles à scanner -sP: Ping Scan - Ne fait que déterminer si les hôtes sont en ligne -P0: Considère que tous les hôtes sont en ligne -- évite la découverte des hôtes
-PN: Considérer tous les hôtes comme étant connectés -- saute l'étape de découverte des hôtes
-PS/PA/PU [portlist]: Découverte TCP SYN/ACK ou UDP des ports en paramètre
-PE/PP/PM: Découverte de type requête ICMP echo, timestamp ou netmask
-PO [num de protocole]: Ping IP (par type)
-n/-R: Ne jamais résoudre les noms DNS/Toujours résoudre [résout les cibles actives par défaut]
--dns-servers : Spécifier 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 : Personnalise les flags des scans TCP
-sI : Idlescan (scan passif)
-sO: Scan des protocoles supportés par la couche IP
-b : Scan par rebond FTP
--traceroute: Détermine une route vers chaque hôte
--reason: Donne la raison pour laquelle tel port apparait à tel état

SPÉCIFICATIONS DES PORTS ET ORDRE DE SCAN:

-p : Ne scanne que les ports spécifiés
Exemple: -p22; -p1-65535; -pU:53,111,137,T:21-25,80,139,8080
-F: Fast - Ne scanne que les ports listés dans le fichier nmap-services
-r: Scan séquentiel des ports, ne mélange pas leur ordre
--top-ports : Scan de ports parmis les plus courants
--port-ratio : Scan pourcent des ports les plus courants

DÉTECTION DE SERVICE/VERSION:

-sV: Teste les ports ouverts pour déterminer le service en écoute et sa version
--version-light: Limite les tests aux plus probables pour une identification plus rapide
--version-intensity : De 0 (léger) à 9 (tout essayer)
--version-all: Essaie un à un tous les tests possibles pour la détection des versions
--version-trace: Affiche des informations détaillées du scan de versions (pour débogage)

SCRIPT SCAN:

-sC: équivalent de --script=safe,intrusive
--script=: est une liste de répertoires ou de scripts séparés par des virgules
--script-args=: passer des arguments aux scripts
--script-trace: Montre toutes les données envoyées ou recues
--script-updatedb: Met à jour la base de données des scripts. Seulement fait si -sC ou --script a été aussi donné.

DÉTECTION DE SYSTÈME D'EXPLOITATION:

-O: Active la détection d'OS
--osscan-limit: Limite la détection aux cibles prometteuses
--osscan-guess: Devine l'OS de façon plus agressive

TEMPORISATION ET PERFORMANCE:

Les options qui prennent un argument de temps sont en milisecondes a moins que vous ne spécifiiez 's' (secondes), 'm' (minutes), ou 'h' (heures) à la valeur (e.g. 30m).

-T[0-5]: Choisit une politique de temporisation (plus élevée, plus rapide)
--min-hostgroup/max-hostgroup : Tailles des groupes d'hôtes à scanner en parallèle
--min-parallelism/max-parallelism : Parallélisation des paquets de tests (probes)
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout : Spécifie le temps d'aller-retour des paquets de tests
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout : Spécifie le temps d'aller-retour des paquets de tests
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout : Précise le round trip time des paquets de tests. --max-retries : Nombre de retransmissions des paquets de tests des scans de ports.
--host-timeout : Délai d'expiration du scan d'un hôte --scan-delay/--max-scan-delay : Ajuste le délai de retransmission entre deux paquets de tests
--scan-delay/--max-scan-delay : Ajuste le delais entre les paquets de tests.

ÉVASION PARE-FEU/IDS ET USURPATION D'IDENTITÉ

-f; --mtu : Fragmente les paquets (en spécifiant éventuellement la MTU)
-D : Obscurci le scan avec des leurres
-S : Usurpe l'adresse source
-e : Utilise l'interface réseau spécifiée
-g/--source-port : Utilise le numéro de port comme source
--data-length : Ajoute des données au hasard aux paquets émis
--ip-options : Envoi des paquets avec les options IP spécifiées.
--ttl : Spécifie le champ time-to-live IP
--spoof-mac : Usurpe une adresse MAC
--badsum: Envoi des paquets TCP/UDP avec une somme de controle erronnée.

SORTIE:

-oN/-oX/-oS/-oG : Sortie dans le fichier en paramètre des résultats du scan au format normal, XML, s| -oA : Sortie dans les trois formats majeurs en même temps
-v: Rend Nmap plus verbeux (-vv pour plus d'effet)
-d[level]: Sélectionne ou augmente le niveau de débogage (significatif jusqu'à 9)
--packet-trace: Affiche tous les paquets émis et reçus
--iflist: Affiche les interfaces et les routes de l'hôte (pour débogage)
--log-errors: Journalise les erreurs/alertes dans un fichier au format normal
--append-output: Ajoute la sortie au fichier plutôt que de l'écraser
--resume : Reprend un scan interrompu
--stylesheet : Feuille de styles XSL pour transformer la sortie XML en HTML
--webxml: Feuille de styles de références de Insecure.Org pour un XML plus portable
--no-stylesheet: Nmap n'associe pas la feuille de styles XSL à la sortie XML

DIVERS:

-6: Active le scan IPv6
-A: Active la détection du système d'exploitation et des versions
--datadir : Spécifie un dossier pour les fichiers de données de Nmap
--send-eth/--send-ip: Envoie des paquets en utilisant des trames Ethernet ou des paquets IP bruts
--privileged: Suppose que l'utilisateur est entièrement privilégié
-V: Affiche le numéro de version
--unprivileged: Suppose que l'utilisateur n'a pas les privilèges d'usage des raw socket
-h: Affiche ce résumé de l'aide

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 

Aide-mémoire Nmap (Nmap Cheat Sheet)

Spécification cible

Scanner une seule IP
nmap 192.168.1.1
Scanner des adresses IP spécifiques
nmap 192.168.1.1 192.168.2.1
Scanner une plage
nmap 192.168.1.1-254
Scanner un domaine
nmap scanme.nmap.org
Scanner en utilisant la notation CIDR
nmap 192.168.1.0/24
Scanner les cibles à partir d'un fichier
nmap -iL targets.txt
Scanner 100 hôtes aléatoires
nmap -iR 100
Exclure les hôtes répertoriés
nmap --exclude 192.168.1.1

Techniques de scann

TCP SYN port scan (Default)
nmap 192.168.1.1 -sS
TCP connect port scan (Default without root privilege)
nmap 192.168.1.1 -sT
UDP port scan
nmap 192.168.1.1 -sU
TCP ACK port scan
nmap 192.168.1.1 -sA
TCP Window port scan
nmap 192.168.1.1 -sW
TCP Maimon port scan
nmap 192.168.1.1 -sM

Découverte d'hôte

Pas de scan. Lister les cibles uniquement
nmap 192.168.1.1-3 -sL
Désactivez l'analyse des ports. Découverte d'hôte uniquement.
nmap 192.168.1.1/24 -sn
Désactivez la découverte d'hôte. Analyse des ports uniquement.
nmap 192.168.1.1-5 -Pn
Découverte TCP SYN sur le port x. Port 80 par défaut
nmap 192.168.1.1-5 -PS22-25,80
Découverte TCP ACK sur le port x. Port 80 par défaut
nmap 192.168.1.1-5 -PA22-25,80
Découverte UDP sur le port x. Port 40125 par défaut
nmap 192.168.1.1-5 -PU53
Découverte ARP sur le réseau local
nmap 192.168.1.1-1/24 -PR
Ne faites jamais de résolution DNS
nmap 192.168.1.1 -n

Port Specification

Recherche de port pour le port x
nmap 192.168.1.1 -p 21
Recherche de port pour la plage
nmap 192.168.1.1 -p 21-100
Analyse des ports de plusieurs ports TCP et UDP
nmap 192.168.1.1 -p U:53,T:21-25,80
Balayage de tous les ports
nmap 192.168.1.1 -p-
Analyse des ports à partir du nom du service
nmap 192.168.1.1 -p http,https
Analyse rapide des ports (100 ports)
nmap 192.168.1.1 -F
Balayage des ports sur les x premiers ports
nmap 192.168.1.1 --top-ports 2000
Laisser le port initial à portée fait démarrer l'analyse au port 1
nmap 192.168.1.1 -p-65535
Laisser le port d'extrémité dans la plage fait passer l'analyse par le port 65535
nmap 192.168.1.1 -p0-

Détection de service et de version

Tente de déterminer la version du service exécuté sur le port
nmap 192.168.1.1 -sV
Niveau d'intensité 0 à 9. Un nombre plus élevé augmente la possibilité d'exactitude
nmap 192.168.1.1 -sV --version-intensity 8
Activez le mode d'éclairage. Possibilité inférieure de correction. plus rapide
nmap 192.168.1.1 -sV --version-light
Activer le niveau d'intensité 9. Plus grande possibilité de correction. Ralentissez
nmap 192.168.1.1 -sV --version-all
Permet la détection du système d'exploitation, la détection de version, l'analyse de script et le traceroute
nmap 192.168.1.1 -A

Detection OS

Détection du système d'exploitation à distance à l'aide de l'empreinte de la pile TCP / IP
nmap 192.168.1.1 -O
Si au moins un port TCP ouvert et un port fermé ne sont pas trouvés, il n'essaiera pas de détecter le système d'exploitation contre l'hôte
nmap 192.168.1.1 -O --osscan-limit
Rend Nmap deviner plus agressivement
nmap 192.168.1.1 -O --osscan-guess
Définir le nombre maximal x de tentatives de détection du système d'exploitation contre une cible
nmap 192.168.1.1 -O --max-os-tries 1
Permet la détection du système d'exploitation, la détection de version, l'analyse de script et le traceroute
nmap 192.168.1.1 -A

Calendrier et performances

Détection d'intrusion paranoïaque (0) - Contournement du système
nmap 192.168.1.1 -T0
Évasion du système de détection d'intrusion sournois (1)
nmap 192.168.1.1 -T1
Polite (2) ralentit l'analyse pour utiliser moins de bande passante et utiliser moins de ressources de la machine cible
nmap 192.168.1.1 -T2
Normal (3) qui est la vitesse par défaut
nmap 192.168.1.1 -T3
Les balayages agressifs (4) accélèrent; suppose que vous êtes sur un réseau raisonnablement rapide et fiable
nmap 192.168.1.1 -T4
Balayage de vitesses folles (5); suppose que vous êtes sur un réseau extrêmement rapide
nmap 192.168.1.1 -T5
Abandonner la cible après si longtemps
--host-timeout 
Spécifie le temps d'aller-retour de la sonde
--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout 
Tailles des groupes d'analyse d'hôtes parallèles
--min-hostgroup/max-hostgroup  (50; 1024)
Ajuster le délai entre les sondes
--scan-delay/--max-scan-delay 
Spécifiez le nombre maximum de retransmissions de sonde de balayage de port
--max-retries  (3)
Envoyer des paquets pas plus lentement que par seconde
--min-rate  (100)
Envoyez les paquets pas plus vite que par seconde
--max-rate  (100)

Scripts NSE

Analyser avec les scripts NSE par défaut. Considéré comme utile pour la découverte et sûr
nmap 192.168.1.1 -sC
Analyser avec les scripts NSE par défaut. Considéré comme utile pour la découverte et sûr
nmap 192.168.1.1 --script default
Scannez avec un seul script. Exemple de bannière
nmap 192.168.1.1 --script=banner
Scannez avec un caractère générique. Exemple http
nmap 192.168.1.1 --script=http*
Scannez avec deux scripts. Exemple http et bannière
nmap 192.168.1.1 --script=http,banner
Analyser les paramètres par défaut, mais supprimer les scripts intrusifs
nmap 192.168.1.1 --script "not intrusive"
Script NSE avec arguments
nmap --script snmp-sysdescr --script-args snmpcommunity=admin 192.168.1.1
Exemples de scripts NSE utiles
Générateur de plan de site http
nmap -Pn --script=http-sitemap-generator scanme.nmap.org
Recherche rapide de serveurs Web aléatoires
nmap -n -Pn -p 80 --open -sV -vvv --script banner,http-title -iR 1000
Brute force les noms d'hôtes DNS à deviner les sous-domaines
nmap -Pn --script=dns-brute domain.com
Scripts SMB sûrs à exécuter
nmap -n -Pn -vv -O -sV --script smb-enum*,smb-ls,smb-mbenum,smb-os-discovery,smb-s*,smb-vuln*,smbv2* -vv 192.168.1.1
Requête Whois
nmap --script whois* domain.com
Détecter les vulnérabilités des scripts intersites
nmap -p80 --script http-unsafe-output-escaping scanme.nmap.org
Vérifier les injections SQL
nmap -p80 --script http-sql-injection scanme.nmap.org

Evasion et usurpation de pare-feu / IDS - Firewall / IDS Evasion and Spoofing

L'analyse demandée (y compris les analyses ping) utilise de minuscules paquets IP fragmentés. Plus difficile pour les filtres de paquets
nmap 192.168.1.1 -f
Définissez votre propre taille de décalage
nmap 192.168.1.1 --mtu 32
Envoyer des scans à partir d'adresses IP usurpées
nmap -D 192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1
Exemple ci-dessus expliqué
nmap -D decoy-ip1,decoy-ip2,your-own-ip,decoy-ip3,decoy-ip4 remote-host-ip

Conseil de sécurité : éviter la détection avec les leurres d'analyse de port nmap

nmap a l'option -D. C'est ce qu'on appelle le scan leurre. Avec l'option -D, il apparaît à l'hôte distant que le ou les hôtes que vous spécifiez comme leurres analysent également le réseau cible. Ainsi, leur IDS peut signaler des scans de 5 à 10 ports à partir d'adresses IP uniques, mais ils ne sauront pas quelle IP les analysait et lesquels étaient des leurres innocents. Bien que cela puisse être vaincu par le traçage du chemin du routeur, l'abandon de réponse et d'autres mécanismes actifs, il s'agit généralement d'une technique efficace pour masquer votre adresse IP.

Vous pouvez séparer chaque hôte leurre par des virgules, et vous pouvez éventuellement utiliser ME comme l'un des leurres pour représenter la position de votre adresse IP réelle. Si vous placez ME en 6ème position ou plus tard, il est peu probable que certains détecteurs de balayage de ports courants (comme l'excellent scanlogd de Solar Designer) affichent votre adresse IP. Si vous n'utilisez pas ME, nmap vous mettra dans une position aléatoire. Notez que les hôtes que vous utilisez comme leurres devraient être en place ou vous pourriez accidentellement SYN inonder vos cibles. De plus, il sera assez facile de déterminer quel hôte analyse si un seul est en fait sur le réseau. Vous voudrez peut-être utiliser des adresses IP au lieu de noms (pour que les réseaux leurres ne vous voient pas dans leurs journaux de serveurs de noms). AVERTISSEMENT! Ces exemples de tests de pénétration (tests de sécurité) peuvent être considérés comme un accès non autorisé ou un comportement illégal. Utilisez des exemples sur votre propre RISK et / ou pour sécuriser votre propre hôte réseau / IPS / IDS.

L'hôte 192.168.1.5 (ou le réseau IDS / IPS) verra le balayage de 4 ports et l'hôte / IDS distant n'a aucun moyen de dire lequel était réel. Les leurres sont utilisés à la fois dans l'analyse ping initiale (en utilisant ICMP, SYN, ACK ou autre) et pendant la phase d'analyse de port réelle. Les leurres sont également utilisés lors de la détection à distance du système d'exploitation (-O). Les leurres ne fonctionnent pas avec la détection de version ou l'analyse de connexion TCP. Il est à noter que l'utilisation d'un trop grand nombre de leurres peut ralentir votre scan et même potentiellement le rendre moins précis. En outre, certains FAI filtreront vos paquets usurpés, mais beaucoup ne restreignent pas du tout les paquets IP usurpés.

Scanner Facebook depuis Microsoft (-e eth0 -Pn peut être requis)
nmap -S www.microsoft.com www.facebook.com
Utiliser le numéro de port source donné
nmap -g 53 192.168.1.1
Connexions relais via des proxys HTTP / SOCKS4
nmap --proxies http://192.168.1.1:8080, http://192.168.1.2:8080 192.168.1.1
Ajoute des données aléatoires aux paquets envoyés
nmap --data-length 200 192.168.1.1
Exemple de commande IDS Evasion
nmap -f -t 0 -n -Pn --data-length 200 -D 192.168.1.101,192.168.1.102,192.168.1.103,192.168.1.23 192.168.1.1

Sortie

Sortie normale vers le fichier normal.file
nmap 192.168.1.1 -oN normal.file
Sortie XML dans le fichier xml.file
nmap 192.168.1.1 -oX xml.file
Sortie Grepable dans le fichier grep.file
nmap 192.168.1.1 -oG grep.file
Sortie dans les trois principaux formats à la fois
nmap 192.168.1.1 -oA results
Sortie Grepable à l'écran. -oN -, -oX - également utilisable
nmap 192.168.1.1 -oG -
Ajouter un scan à un fichier de scan précédent
nmap 192.168.1.1 -oN file.file --append-output
Augmentez le niveau de verbosité (utilisez -vv ou plus pour un meilleur effet)
nmap 192.168.1.1 -v
Augmentez le niveau de débogage (utilisez -dd ou plus pour un meilleur effet)
nmap 192.168.1.1 -d
Afficher la raison pour laquelle un port est dans un état particulier, même sortie que -vv
nmap 192.168.1.1 --reason
Afficher uniquement les ports ouverts (ou éventuellement ouverts)
nmap 192.168.1.1 --open
Afficher tous les paquets envoyés et reçus
nmap 192.168.1.1 -T4 --packet-trace
Affiche les interfaces et les itinéraires de l'hôte
nmap --iflist
Reprendre une analyse
nmap --resume results.file

Exemples utiles de sortie Nmap

Scanner les serveurs Web et grep pour afficher les adresses IP exécutant des serveurs Web
nmap -p80 -sV -oG - --open 192.168.1.1/24 | grep open
Générer une liste des adresses IP des hôtes en direct
nmap -iR 10 -n -oX out.xml | grep "Nmap" | cut -d " " -f5 > live-hosts.txt
Ajouter une adresse IP à la liste des hôtes en direct
nmap -iR 10 -n -oX out2.xml | grep "Nmap" | cut -d " " -f5 >> live-hosts.txt
Comparez la sortie de nmap en utilisant le ndif
ndiff scanl.xml scan2.xml
Convertir les fichiers xml nmap en fichiers html
xsltproc nmap.xml -o nmap.html
Liste triée inversée de la fréquence à laquelle les ports apparaissent
grep " open " results.nmap | sed -r 's/ +/ /g' | sort | uniq -c | sort -rn | less

Options diverses

Activer l'analyse IPv6
nmap -6 2607:f0d0:1002:51::4
Aide nmap
nmap -h

Autres commandes Nmap utiles

Découverte uniquement sur les ports x, pas de scan de port
nmap -iR 10 -PS22-25,80,113,1050,35000 -v -sn
Découverte Arp uniquement sur le réseau local, pas de scan de port
nmap 192.168.1.1-1/24 -PR -sn -vv
Traceroute vers des cibles aléatoires, pas de scan de port
nmap -iR 10 -sn -traceroute
Interrogez le DNS interne pour les hôtes, répertoriez uniquement les cibles
nmap 192.168.1.1-50 -sL --dns-server 192.168.1.1

En vous souhaitant une bonne protection réseau et systèmes :)

Cordialement,
Romain


<< Comment-faire un réseau IPv6 ? Firewall ICMPv6

Sécurité des connexions réseaux et mots de passe >>



Liens Nmap




Autheur de la page

LAB3W.ORJ

LAB3W.ORJ

  • Prénom : Olivier Romain Luc
  • Nom : Jaillet-ramey
  • Arrivé le mardi 19 octobre 1976 (1976/10/19 00:00)
    44 ans d'activité !

Firefox Nighlty

Nos amis de Framasoft s'intéressent à Mozilla et leur ont posé des questions à propos de Nightly : Firefox Night-club, entrée libre !






Valid XHTML 1.0 Strict CSS Valide !

ipv6 ready