systemadmin.es » Redes » Comparar escaneos con nmap usando ndiff

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 Imprimir

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>