Nmap Tools

Par 4n9e le 26-11-2005



Un résumé des outils disponibles pour agrémenter votre scanner Nmap



Cette page contient une sélection d'outils et de patches dévellopés autour de Nmap.

Les interfaces graphiques
Bien qu'il soit préférable d'utiliser Nmap en lignes de commande afin d'avoir une meilleure vision du scan qu'on va effectuer, certains utilisateurs ont besoin d'une vision plus "graphique" de Nmap.
Le coté positif est la convivialité de ces interfaces, la possibilité pour chacune de pouvoir controler quand meme l'ecriture manuelle de la ligne de commande, et des rapports de scan tres visuels et organisés.
D'autre part, la licence GPL de Nmap n'autorisant pas l'intégration de Nmap à un logiciel tiers gratuitement, ces interfaces sont indépendantes et s'adaptent donc à toute version de Nmap. Vous pouvez donc mettre à jour le ,scanner sans pour autant changer quoi que ce soit à l'interface.

La contrepartie que l'utilisateur doit garder à l'esprit, c'est que les otpions de ce genre de GUI étaient celles existantes dans la version de Nmap au moment où l'interface a été ecrite.
En général donc, elles deviennent obsolètes au bout de plusieurs versions de Nmap, puisque de nouvelles options apparaissent sans cesse. Bien sur, on a toujours acces dans ces interfaces à l'ecriture directe de la ligne de commande.


Winmap : http://www.philippsworld.net/software_winmap.htm

Les interfaces graphiques sous Windows avaient diparues depuis les versions 3.00 de Nmap. Elles reviennent depuis la version 3.81 et sont compatibles avec toutes versions de Nmap.
Celle ci est la plus complète, reprennant le style de l'interface traditionnelle sous Linux, le NmapFE. Elle permet en outre de forger ses propres scans TCP en plus de ceux prévus par Nmap.

Download
Auteur : Philipp E Weidmann


KDE Network Mapper : http://freshmeat.net/projects/knetmap/

Interface complete sous Linux adaptée à la célèbre interface utilisateur KDE. A posséder absolument !

Download
Auteur : Joshua T. Corbin


Nmap GUI : http://tulde.free.fr/index.php?id=01.06-08

Encore une interface graphique pour les utilisateurs de Windows. Simple et efficace, elle conviendra à la plupart des débutants.

Download


PHP-Nmap : http://osx.freshmeat.net/projects/php-nmap/

Il s'agit d'une interface web permettant de lancer à distance une session de Nmap se trouvant sur le serveur où l'utilisateur aura au préalable installé cette interface php.

Download
D'autre part, voici un exemple de code source typique permettant de commencer ce genre d'interface : Code source

Les patches et Developpements
Les versions Stable de Nmap fonctionnent parfaitement, toutefois sous certaines plateformes et dans des conditions bien particulieres des utilisateurs avancés remarquent quelques bugs.
Ceux ci sont l'objet de modifications dans le code source de Nmap, et sont corrigés à la release suivante.

Probleme avec le scan UDP
Dans certains cas, le scan des services en UDP envoie des paquets particuliers différents du simple scan UDP. Or, il est possible dans ce cas qu'un port qui ait été marqué OPEN|FILTERED soiy découvert OPEN par le scan de service.
Il existe une fonction dans le code qui permet de mettre a jour l'etat d'un port dans le cas où le service scan en découvre plus que le scan simple. Toutefois, selon l'ordre d'appel à ces deux fonctions pendant le fonctionnement de Nmap, l'actualisation peut au contraire aboutir à un port vide d'informations !

Il existe un patch, dont voici le code à modifier dans le fichier service_scan.cc
Ce patch n'est nécessaire que jusqu'à la version 3.93 de Nmap, les versions suivantes étant déjà corrigées.

 

Code:
diff -urNb old.nmap.rev/service_scan.cc new.nmap.rev/service_scan.cc
--- old.nmap.rev/service_scan.cc   2005-10-21 03:00:07.447870976 -0700
+++ new.nmap.rev/service_scan.cc   2005-10-21 03:00:07.469867632 -0700
@@ -1653,8 +1653,18 @@
    PORT_OPEN. */
 static void adjustPortStateIfNeccessary(ServiceNFO *svc) {
 
+  char host[128];
+
   if (svc->port->state == PORT_OPENFILTERED) {
-    svc->target->ports.addPort(svc->portno, svc->proto, NULL, PORT_OPEN);
+    svc->port->state = PORT_OPEN;
+
+    if (o.verbose || o.debugging > 1) {
+      svc->target->NameIP(host, sizeof(host));
+
+      log_write(LOG_STDOUT, "Discovered open|filtered port %hu/%s on %s is actually open\n",
+         svc->portno, proto2ascii(svc->proto), host);
+      log_flush(LOG_STDOUT);
+    }
   }
 
   return;




i386 FreeBSD : exclusion de plages d'Ip

l'option --exclude permet de dire à Nmap de ne pas scanner certains hotes au sein d'un reseau. La valeur de cette option peut être une Ip simple, mais aussi toute une plage, en utilisant la notation par masque cidr :
% nmap -n -sL --exclude 10.1.1.3/32 10.1.1.0/29

Le probleme est que sous FreeBSD il semble qu'il y ait un bug dans certains cas si le masque est inferieur à 32.
Le patch consiste à modifier le fichier targets.cc comme suit :
 

Code:

--- targets.cc  (revision 2891)
+++ targets.cc  (working copy)
@@ -1733,7 +1733,7 @@
         }
        else {
          exclude_group[i++].rewind();
-         continue;
+         break;
        }
       }
       /* For ranges we need to be a little more slick, if we don't
       find a match
 





Nmap parser : http://search.cpan.org/~apersaud/Nmap-Parser/Parser.pm
Module PERL permettant aux developpeurs de manipuler les fichiers de sortie XML générés par Nmap

Download

 

4N9e pour FutureZone, 2005