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