Comparar escaneos con nmap usando ndiff
Para comprar los resultados de un escaneo con nmap podemos usar la utilidad ndiff, que viene con el propio nmap.
Al realizar una instalación de nmap desde código fuente nos encontraremos con el siguiente aviso al terminar el configure:
(...)
config.status: creating config.h
( ) /\ _ (
\ | ( \ ( \.( ) _____
\ \ \ ` ` ) \ ( ___ / _ \
(_` \+ . x ( .\ \/ \____-----------/ (o) \_
- .- \+ ; ( O \____
) \_____________ ` \ /
(__ +- .( -'.- <. - _ VVVVVVV VV V\ \/
(_____ ._._: <_ - <- _ (--_AAAAAAA__A_/ |
. /./.+- . .- / +-- - . \______________//_ \_______
(__ ' /x / x _/ ( \___' \ /
, x / ( ' . / . / | \ /
/ / _/ / + / \/
' (__/ / \
NMAP IS A POWERFUL TOOL -- USE CAREFULLY AND RESPONSIBLY
Configuration complete. Type make (or gmake on some *BSD machines) to compile.
Deberemos tener en cuenta dicho aviso, especialmente escaneando redes ajenas.
Para poder usar ndiff deberemos guardar el primer escaneo en formato XML. Esto lo deberemos hacer mediante el parámetro -oX y un nombre de fichero, por ejemplo test1.xml:
# nmap -oX test1.xml -sS ejemplo.com Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-07-20 08:09 CEST Interesting ports on ejemplo.com (4.3.9.22): Not shown: 1673 closed ports PORT STATE SERVICE 21/tcp open ftp 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop3 143/tcp open imap Nmap finished: 1 IP address (1 host up) scanned in 0.358 seconds
Podemos ver como se guarda el fichero xml en el directorio actual:
# ls -la test1.xml -rw-r--r-- 1 root root 3268 Jul 20 07:09 test1.xml
Para comprar deberemos ejecutar el mismo nmap, pasado un tiempo, guardando el resultado en otro fichero XML:
# nmap -oX test2.xml -sS ejemplo.com Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2009-07-20 08:10 CEST Interesting ports on ejemplo.com (4.3.9.22): Not shown: 1674 closed ports PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop3 143/tcp open imap Nmap finished: 1 IP address (1 host up) scanned in 0.360 seconds
Finalmenente podemos comprar dichos escaneos mediante ndiff pasando los dos ficheros XML a comparar:
# ndiff test1.xml test2.xml -Nmap 4.11 at 2009-07-20 08:09 +Nmap 4.11 at 2009-07-20 08:10 ejemplo.com (4.3.9.22): -Not shown: 1673 closed ports +Not shown: 1674 closed ports PORT STATE SERVICE VERSION -21/tcp open ftp
Como podemos ver, nos indica que se publica un puerto menos, en este caso el de ftp.
Esta utilidad también permite guardar el resultado en formato XML, mediante el parámetro --xml, para poder conservar la salida:
<?xml version="1.0" encoding="UTF-8"?>
<nmapdiff version="1">
<scandiff>
<hostdiff>
<host>
<address addr="4.3.9.22" addrtype="ipv4"/>
<hostnames>
<hostname name="ejemplo.com"/>
</hostnames>
<ports>
<a>
<extraports count="1673" state="closed"/>
</a>
<b>
<extraports count="1674" state="closed"/>
</b>
<portdiff>
<a>
<port portid="21" protocol="tcp">
<state state="open"/>
<service name="ftp"/>
</port>
</a>
<b>
<port portid="21" protocol="tcp">
<state state="closed"/>
</port>
</b>
</portdiff>
</ports>
</host>
</hostdiff>
</scandiff>
</nmapdiff>
Relacionados
Imprimir
Deja un comentario: