Manual de NMAP
Manual de NMAP
Manual de NMAP
nmap ² Herramienta de exploración de redes y de sondeo de seguridad / puertos
nmap [î ...] [ î
] { î
}
ë
?map (³mapeador de redes´) es una herramienta de código abierto para
exploración de red y auditoría de seguridad. Se diseñó para analizar rápidamente
grandes redes, aunque funciona muy bien contra equipos individuales. ?map
utiliza paquetes IP "crudos" («raw», ?. del T.) en formas originales para
determinar qué equipos se encuentran disponibles en una red, qué servicios
(nombre y versión de la aplicación) ofrecen, qué sistemas operativos (y sus
versiones) ejecutan, qué tipo de filtros de paquetes o cortafuegos se están
utilizando así como docenas de otras características. Aunque generalmente se
utiliza ?map en auditorías de seguridad, muchos administradores de redes y
sistemas lo encuentran útil para realizar tareas rutinarias, como puede ser el
inventariado de la red, la planificación de actualización de servicios y la
monitorización del tiempo que los equipos o servicios se mantiene activos.
Puede ver un análisis típico con ?map en Example 1, ³Ejemplo típico de análisis
con ?map´. Los únicos parámetros de ?map que se utilizan en este ejemplo son
la opciónü , que habilita la detección de sistema operativo y versión, y la
opción ü que acelerar el proceso, y después el nombre de los dos objetivos.
Cuando se ejecuta ?map sin parámetros se muestra este resumen de opciones.
Puede encontrar siempre la última versión
enhttp://www.insecure.org/nmap/data/nmap.usage.txt. Aunque ayuda a recordar
las opciones más habituales no es un sustituto de la documentación en detalle que
acompaña al resto de este manual. Algunas de las opciones menos conocidas no
se incluyen aquí.
·
Todo lo que se escriba en la línea de parámetros de ?map que no sea una opción
se considera una especificación de sistema objetivo. El caso más sencillo es la
indicación de sólo una IP, o nombre de sistema, para que sea analizado.
Puede darse la situación en que uno desee analizar una red completa de equipos
adyacentes. ?map soporta el direccionamiento estilo CIDR para estos casos.
Puede añadir /î a una dirección IP o nombre de sistema para que ?map
sondee toda IP cuyos primeros î sean los mismos que los de la dirección
IP o nombre de sistema indicado. Por ejemplo, 192.168.10.0/24 analizaría los
256 sistemas que existen entre la dirección 192.168.10.0 (que en binario se
representa como ** * * * * * ) y la dirección
192.168.10.255 (binario: ** * * * * * ********), ambas
inclusives. De hecho, si usa 192.168.10.40/24 obtendría exactamente el mismo
resultado. En el caso del sistema scanme.nmap.org que posee una dirección IP
205.217.153.62, la especificación scanme.nmap.org/16 analizaría las 65.536
direcciones IP entre 205.217.0.0 y 205.217.255.255. La máscara mas pequeña
permitida es /1, que analizaría media Internet. La más grande, /32, analizaría
únicamente la IP o nombre de sistema indicados porque todos los bits estarían
fijos.
Cuando se quieren realizar encuestas que cubran toda Internet uno puede
querer elegir objetivos al azar. La opción î
indica a ?map
cuántas direcciones IP debe generar aleatoriamente. Se filtran de forma
automática las direcciones no deseables, incluyendo las direcciones
privadas, de multicast o direccionamiento no asignado. Si se utiliza el
valor , ?map realizará un análisis que no acabará nunca. Hay que tener
en cuenta que a algunos administradores de red puede no gustarle que les
analicen sus redes, y pueden llegar a quejarse ¡Utilice esta opción bajo su
propia responsabilidad! Si está realmente aburrido un día de tarde lluviosa,
puede intentar la orden para encontrar
servidores web al azar para navegar.
Indica con una lista separada por comas los objetivos que deben excluirse
del análisis. Se excluirán aunque se encuentren dentro de un rango
especificado en la línea de órdenes. La lista que se indica utiliza la sintaxis
normal de ?map, por lo que puede incluir nombres de equipo, rangos de
red CIDR, rangos de octeto, etc. Esto puede ser útil cuando la red a
analizar tiene objetivos que no se deben tocar, como puedan ser servidores
de misión crítica, que pueden reaccionar adversamente a un análisis de
puertos, o si la red incluye subredes administradas por otras personas.
ë
Uno de los primeros pasos en cualquier misión de reconocimiento de red es el de
reducir un (muchas veces enorme) conjunto de rangos de direcciones IP en una
lista de equipos activos o interesantes. Analizar cada puerto de cada una de las
direcciones IP es lento, y usualmente innecesario. Por supuesto, lo que hace a un
sistema interesante depende ampliamente del propósito del análisis. Los
administradores de red pueden interesarse sólo en equipos que estén ejecutando
un cierto servicio, mientras que los auditores de seguridad pueden interesarse en
todos y cada uno de los dispositivos que tengan una dirección IP. Un
administrador puede sentirse cómodo con obtener un listado de equipos en su red
interna mediante un ping ICMP, mientras que un consultor en seguridad
realizando un ataque externo puede llegar a utilizar un conjunto de docenas de
sondas en su intento de saltarse las restricciones de los cortafuegos.
Las opciones ü (que permiten seleccionar los tipos de ping) pueden
combinarse. Puede aumentar sus probabilidades de penetrar cortafuegos estrictos
enviando muchos tipos de sondas utilizando diferentes puertos o banderas TCP y
códigos ICMP. Recuerde que el ARP discovery (üR) se realiza por omisión
contra objetivos de la red Ethernet local incluso si se especifica otra de las
opciones ü, porque es generalmente más rápido y efectivo.
Las siguientes opciones controlan el descubrimiento de sistemas.
ü L (Sondeo de lista)
ü (Sondeo ping)
Esta opción envía un paquete TCP vacío con la bandera SY? puesta. El
puerto destino por omisión es el 80 (se puede configurar en tiempo de
compilación cambiando el valor de DEFAULT_TCP_PROBE_PORT
en nmap.h), pero se puede añadir un puerto alternativo como parámetro.
También se puede especificar una lista de puertos separados por comas
(p.ej. ü *** ). Si hace esto se enviarán sondas en
paralelo a cada uno de los puertos.
El ping TCP ACK es muy parecido al ping SY? que se acaba de tratar. La
diferencia es que en este caso se envía un paquete con la bandera ACK en
lugar de la SY?. Este paquete indica que se han recibido datos en una
conexión TCP establecida, pero se envían sabiendo que la conexión no
existe. En este caso los sistemas deberían responder con un paquete RST,
lo que sirve para determinar que están vivos.
La opción ü utiliza el mismo puerto por omisión que la sonda SY? (el
puerto 80) y también puede tomar una lista de puertos destino en el mismo
formato. Si un usuario sin privilegios intenta hacer esto, o se especifica un
objetivo IPv6, se utiliza el procedimiento descrito anteriormente. Aunque
en este caso el procedimiento no es perfecto porque la llamada
«connect()» enviará un paquete SY? en lugar de un ACK.
El ping UDP es otra opción para descubrir sistemas. Esta opción envía un
paquete UDP vacío (salvo que se especifique üüdataülength) a los puertos
indicados. La lista de puertos se debe dar en el mismo formato que se ha
indicado anteriormente para las opciones ü y ü . Si no se especifica
ningún puerto se utiliza el puerto 31338 por omisión. Se puede configurar
este puerto por omisión en el momento de compilar cambiando
DEFAULT_UDP_PROBE_PORT en nmap.h. Se utiliza un puerto alto y
poco común por omisión porque no es deseable enviar este sondeo a otro
tipo de puertos.
La sonda UDP debería generar un paquete ICMP de puerto no alcanzable
si da contra un puerto cerrado en el equipo objetivo. Si llega éste entonces
?map puede identificar ese sistema como vivo y alcanzable. Otros errores
ICMP, como el de sistema o red inalcanzables o TTL excedido indican un
sistema que está muerto o que no es alcanzable. Si no llega ninguna
respuesta también se entiende que el sistema no está disponible. Si se
alcanza un puerto abierto la mayoría de los servicios simplemente
descartarán el paquete vacío y no devolverán ninguna respuesta. Ésta es la
razón por la que se utiliza el puerto por omisión 31338 ya que es poco
probable que esté utilizándose. Algunos servicios, como chargen,
responderán con un paquete UDP vacío lo que ayuda a ?map a determinar
que el sistema está disponible.
Una de las formas de uso más comunes de ?map es el sondeo de una red
de área local Ethernet. En la mayoría de las redes locales hay muchas
direcciones IP sin usar en un momento determinado. Esto es así
especialmente en las que utilizan rangos de direcciones privadas definidas
en el RFC1918. Cuando ?map intenta enviar un paquete IP crudo, como
pudiera ser una solicitud de eco ICMP, el sistema operativo debe
determinar primero la dirección (ARP) correspondiente a la IP objetivo
para poder dirigirse a ella en la trama Ethernet. Esto es habitualmente un
proceso lento y problemático, dado que los sistemas operativos no se
escribieron pensando en que tendrían que hacer millones de consultas ARP
contra sistemas no disponibles en un corto periodo de tiempo.
Estos estados no son propiedades intrínsecas del puerto en sí, pero describen
como los ve ?map. Por ejemplo, un análisis con ?map desde la misma red en la
que se encuentra el objetivo puede mostrar el puerto 135/tcp como abiert2,
mientras que un análisis realizado al mismo tiempo y con las mismas opciones,
pero desde Internet, puede presentarlo como filtrad2.
abierto
cerrado
filtrado
Este estado indica que el puerto es accesible, pero que ?map no puede
determinar si se encuentra abierto o cerrado. Solamente el sondeo ACK,
utilizado para determinar las reglas de un cortafuegos, clasifica a los
puertos según este estado. El analizar puertos no filtrados con otros tipos
de análisis, como el sondeo Window, SY? o FI?, pueden ayudar a
determinar si el puerto se encuentra abierto.
abierto|filtrado
cerrado|filtrado
Aunque ?map intenta generar resultados precisos, hay que tener en cuenta que
estos resultados se basan en los paquetes que devuelve el sistema objetivo (o los
cortafuegos que están delante de éstos). Estos sistemas pueden no ser fiables y
envíar respuestas cuyo objetivo sea confundir a ?map. Son aún más comunes los
sistemas que no cumplen con los estándares RFC, que no responden como
deberían a las sondas de ?map. Son especialmente susceptibles a este problema
los sondeos FI?, ?ull y Xmas. Hay algunos problemas específicos a algunos
tipos de sondeos que se discuten en las entradas dedicadas a sondeos concretos.
ü (sondeos UDP)
Los sondeos UDP funcionan mediante el envío (sin datos) de una cabecera
UDP para cada puerto objetivo. Si se obtiene un error ICMP que indica
que el puerto no es alcanzable (tipo 3, código 3) entonces se marca el
puerto como cerrad2. Si se recibe cualquier error ICMP no alcanzable
(tipo 3, códigos 1, 2, 9, 10, o 13) se marca el puerto como filtrad2. En
algunas ocasiones se recibirá una respuesta al paquete UDP, lo que prueba
que el puerto está abiert2. Si no se ha recibido ninguna respuesta después
de algunas retransmisiones entonces se clasifica el puerto
como abiert2|filtrad2. Esto significa que el puerto podría estar abierto o
que hay un filtro de paquetes bloqueando la comunicación. Puede
utilizarse el sondeo de versión (ü ) para diferenciar de verdad los puertos
abiertos de los filtrados.
Uno de las grandes problemas con el sondeo UDP es hacerlo rápidamente.
Pocas veces llega una respuesta de un puerto abierto o filtrado, lo que
obliga a expirar a ?map y luego a retransmitir los paquetes en caso de que
la sonda o la respuesta se perdieron. Los puertos cerrados son aún más
comunes y son un problema mayor. Generalmente envían un error ICMP
de puerto no alcanzable. Pero, a diferencia de los paquetes RST que envían
los puertos TCP cerrados cuando responden a un sondeo SY? o Connect,
muchos sistemas imponen una tasa máxima de mensajes ICMP de puerto
inalcanzable por omisión. Linux y Solaris son muy estrictos con esto. Por
ejemplo, el núcleo de Linux versión 2.4.20 limita la tasa de envío de
mensajes de destino no alcanzable a uno por segundo
(en net/ipv/icmp.c).
ü ; ü F; ü
(sondeos TCP ?ull, FI?, y Xmas)
Estos tres tipos de sondeos (aunque puede hacer muchos más a través de la
opción üü canflag que se describe en la próxima sección) aprovechan
una indefinición en la RFC de TCP que diferencia los
puertos abiert2 y cerrad2 . La página 65 dice que ³si el estado del puerto
[destino] es CERRADO ....un segmento entrante que contiene un RST
hace que se envíe un RST en la respuesta.´ Después la página siguiente
discute los paquetes que se envían a puertos abiertos sin fijar los bits SY?,
RST, o ACK, diciendo: ³es improbable que llegue aquí, pero si lo hace,
debe descartar el segmento y volver.´
sondeo FI? (ü F)
sondeoXmas (ü
)
Fija los bits de FI?, PSH, y URG flags, iluminando el paquete como si
fuera un árbol de ?avidad.
Este sondeo es distinto de otros que se han discutido hasta ahora en que no
puede determinar puertos abiert2 (o incluso abiert2 |filtrad2 ). Se
utiliza para mapear reglas de cortafuegos, y para determinar si son
cortafuegos con inspección de estados y qué puertos están filtrados.
La sonda de un sondeo ACK sólo tiene fijada la bandera ACK (a menos
que utilice üü canflag ). Cuando se sondean sistemas no filtrados los
puertos abiert2 y cerrad2 devolverán un paquete RST. ?map marca el
puerto como n2filtrad2, lo que significa que son alcanzables por el
paquete ACK, pero no se puede determinar si están abiert2 o cerrad2 .
Los puertos que no responden o que envían mensajes de error ICMP en
respuesta (tipo 3, código 1, 2, 3, 9, 10, o 13), se marcan como filtrad2 .
Puede añadir un número de puerto separado por dos puntos del sistema
zombi si desea analizar un puerto específico del zombi para consultar los
cambios IPID. Si no lo hace ?map utilizará el puerto que utiliza para pings
TCP por omisión (el puerto 80).
Esta vulnerabilidad era muy habitual en 1997, el año que se publicó ?map,
pero ya ha sido arreglada en muchos sitios. Aún siguen existiendo
servidores vulnerables así que merece la pena probar este sondeo si lo
demás falla. Si su objetivo es atravesar un cortafuegos, analice la red
objetivo en busca del puerto 21 (o incluso cualquier servicio FTP, si
sondea todos los puertos y activa la detección de versiones). Después
intente un sondeo de rebote utilizando cada uno. ?map le indicará si el
sistema es o no vulnerable. Si está intentado ocultar sus huellas no tiene
que (y de hecho no debería) limitarse a servidores en la red objetivo. En
cualquier caso, antes de empezar a sondear Internet al azar para buscar
servidores de FTP vulnerables, tenga en cuenta que pocos administradores
de sistemas apreciarán el que abuse de sus servidores de esta forma.
·
?map ofrece distintas opciones para especificar los puertos que se van a sondear
y si el orden de los sondeos es aleatorio o secuencial. Estas opciones se añaden a
los métodos de sondeos que se han discutido previamente. ?map, por omisión,
sondea todos los puertos hasta el 1024 además de algunos puertos con números
altos listados en el fichero nmapü ervice para los protocolos que se sondeen.
Esta opción especifica los puertos que desea sondear y toma precedencia
sobre los valores por omisión. Puede especificar tanto números de puerto
de forma individual, así como rangos de puertos separados por un guión
(p. ej. 1-1023). Puede omitir el valor inicial y/o el valor final del rango.
?map utilizará 1 ó 65535 respectivamente. De esta forma, puede
especificar üpü para sondear todos los puertos desde el 1 al 65535. Se
permite sondear el puerto cero siempre que lo especifique explícitamente.
Esta opción especifica el número de protocolo que quiere sondear (de 0 a
255) en el caso de que esté sondeando protocolos IP (ü ).
Aún en el caso de que ?map tenga razón y el servidor de ejemplo indicado arriba
está ejecutando servidores de SMTP, HTTP y D?S ésto no dice mucho. Cuando
haga un análisis de vulnerabilidades (o tan sólo un inventario de red) en su propia
empresa o en su cliente lo que habitualmente también quiere saber es qué versión
se está utilizando del servidor de correcto y de D?S. Puede ayudar mucho a la
hora de determinar qué ataques pueden afectar a un servidor el saber el número
de versión exacto de éste. La detección de versiones le ayuda a obtener esta
información.
ü (Detección de versiones)
Éste es un alias para üüver i2nüinten ity, hace que se utilicen todas las
sondas contra cada puerto.
ü R (Sondeo RPC)
?map le indicará una URL donde puede enviar las huellas si conoce (con
seguridad) el sistema operativo que utiliza el equipo si no puede adivinar el
sistema operativo de éste y las condiciones son óptimas (encontró al menos un
puerto abierto y otro cerrado). Si envía esta información contribuirá al conjunto
de sistemas operativos que ?map conoce y la herramienta será así más exacta
para todo el mundo.
Algunas técnicas que pueden ayudar a mejorar los tiempos de sondeo son el
limitar el número de pruebas que no sean críticas y actualizar a la última versión
de ?map (se hacen mejoras de rendimiento con cierta frecuencia). La
optimización de los parámetros de control de tiempo pueden introducir también
diferencias significativas. Las opciones aplicables se detallan a continuación.
En el caso de que todos los sistemas estén en una red local al equipo que
sondea, un valor razonablemente agresivo para üümaxürttütime2ut es 100
milisegundos. Si se está rutando, primero envíe un ping a un equipo en la
red con la herramienta ICMP ping, o con una herramienta para construir
paquetes a medida como hping2 dado que es más probable que atraviese
cualquier cortafuegos. Consulte el tiempo máximo de la ronda (tiempo
entre solicitud y respuesta) después de haber enviado unos diez paquetes.
Una vez obtenido ese valor puede utilizarlo el doble de éste para üü
initialürttütime2ut y triplicarlo o cuadruplicarlo para üümaxürttü
time2ut. Yo no configuro habitualmente el valor máximo rtt por debajo de
100ms, independientemente del valor que den los ping. ?i tampoco lo
pongo por encima de 1000ms.
El valor por omisión (cuando no hay una plantilla ü) es permitir las
retransmisiones. ?map generalmente sólo hará una retransmisión si la red
parece fiable y el sistema objetivo no tiene una limitación de tasa de
tráfico. Es por esto por lo que la mayoría de los sondeos no se verán
afectados si reduce el valor de üümaxüretrie a un valor pequeño, como
pudiera ser tres. Estos valores pueden hacer que los sondeos a equipos
lentos (limitados en tasa) sean más rápidos. Puede que pierda información
cuando ?map dé por finalizado el análisis de un puerto antes de tiempo,
aunque eso puede ser mejor que hacer que la expire el üüh2 tütime2uty se
pierda toda la información del objetivo.
Esta opción hace que ?map espere al menos el tiempo indicado entre cada
sonda enviada a un sistema determinado. Esto es muy útil cuando se
quiere limitar la tasa de tráfico. Los sistemas Solaris (entre otros)
responderán a paquetes de sondeos UDP con sólo un mensaje ICMP por
segundo. Enviar más que eso con ?map sería perder el tiempo. Un valor
de * para üü canüdelay hará que ?map se mantenga a esa velocidad
reducida. ?map intenta detectar limitaciones de tasa y ajustar la demora
del sondeo como considere necesario, pero a veces viene bien
especificarlo de forma explícita si ya sabe qué valor es mejor.
·
ÿë
Muchos pioneros de Internet habían previsto una red global abierta con un
espacio de direcciones IP universal que permitiese conexiones virtuales entre dos
nodos cualquiera. Esto permitiría a los equipos actuar como verdaderos iguales,
sirviendo y recuperando información el uno del otro. La gente podría acceder a
todos los sistemas de su casa desde el trabajo, cambiando las propiedades del
control del clima o desbloqueando puertas. Esta visión de una conectividad
universal fue sofocada por la escasez del espacio de direcciones y los problemas
de seguridad. Al comienzo de la década de los años 90, las organizaciones
empezaron a replegar cortafuegos con el propósito de reducir la conectividad. Se
acordonaron redes enormes para protegerlas de la Internet no filtrada con
pasarelas («proxies», ?. del T.) de aplicación, sistemas de traducción de
direcciones de red y filtros de paquetes. Del flujo sin restricciones de la
información se pasó a una regulación estricta de los canales de comunicación
aprobados y del contenido que pasa por ellos.
Los filtros de red como los cortafuegos pueden hacer muy difícil el análisis de
una red. Esto no va a ser más fácil en el futuro, ya que uno de los objetivos de
estos dispositivos es generalmente limitar el reconocimiento casual de la red. En
cualquier caso, ?map ofrece varias funcionalidades para ayudar a entender estas
redes complejas, y que también sirven para verificar que los filtros funcionan
como se espera de ellos. Incluso tiene mecanismos para saltarse las defensas que
no hayan sido implementadas del todo correctamente. Uno de los mejores
métodos de entender la posición de la seguridad de su red es intentar
comprometerla. Empiece a pensar como un atacante, e intenta utilizar las técnicas
de esta sección contra sus propias redes. Lance un sondeo de rebote FTP, un
sondeo pasivo, un ataque de fragmentación, o intente realizar un túnel desde una
de sus propias pasarelas.
Realiza un sondeo con señuelos. Esto hace creer que el/los equipo/s que
utilice como señuelos están también haciendo un sondeo de la red. De esta
manera sus IDS pueden llegar a informar de que se están realizando de 5 a
10 sondeos de puertos desde distintas direcciones IP, pero no sabrán qué
dirección IP está realizando el análisis y cuáles son señuelos inocentes.
Aunque esta técnica puede vencerse mediante el seguimiento del camino
de los encaminadores, descarte de respuesta («response-dropping», ?. del
T.), y otros mecanismos activos, generalmente es una técnica efectiva para
esconder su dirección IP.
Tenga en cuenta que los equipos que utilice como distracción deberían
estar conectados o puede que accidentalmente causes un ataque de
inundación SY? a sus objetivos. Además, sería bastante sencillo
determinar qué equipo está realmente haciendo el sondeo si sólo uno está
disponible en la red. Puede que quiera utilizar direcciones IP en lugar de
nombres (de manera que no aparezca en los registros del servidor de
nombres de los sistemas utilizados como señuelo).
Se utilizan los señuelos tanto para el sondeo de ping inicial (si se utiliza
ICMP, SY?, ACK, o cualquier otro) como durante la fase de sondeo.
También se utilizan los señuelos durante la detección de sistema operativo
(ü). Los señuelos no funcionarán con la detección de versión o el sondeo
TCP connect().
Indica a ?map a través de qué interfaz debe enviar y recibir los paquetes.
?map debería detectar esto automáticamente, pero se lo dirá si no.
üü 2urceüp2rt<númer2depuert2>; üg<númer2depuert2> (Falsificar el puerto
de origen)
Los administradores de red con mucho trabajo no son los únicos que caen
en esta trampa. Muchos productos se lanzan al mercado con estas reglas
inseguras. Hasta Microsoft lo ha hecho. Los filtros de IPsec que se
preinstalan con Windows 2000 y Windows XP contienen una regla
implícita que permite todo el tráfico TCP o UDP desde el puerto 88
(Kerberos). Otro caso conocido es el de las versiones de ZoneAlarm
Firewall Personal que, hasta la versión 2.1.25, permitían cualquier paquete
entrante UDP desde el puerto 53 (D?S) o 67 (DHCP).
Indica a ?map que debe mezclar aleatoriamente cada grupo de hasta 8096
equipos antes de hacer un sondeo. Esto puede hacer que el sondeo sea
menos obvio para algunos sistemas de monitorización de la red,
especialmente cuando se combina con las opciones que ralentizan el
sondeo. Si quiere mezclar aleatoriamente listas más grandes, incremente el
valor de la constante PI?G_GROUP_SZ en nmap.h y recompile el
programa. Una solución alternativa es generar la lista de sistemas a
sondear con un sondeo de lista (ü Lünü2 î ), ordenarlo
aleatoriamente con un script de Perl, y luego darle a ?map la lista entera
con la opción üiL.
Solicita a ?map que utilice la MAC dada para todas las tramas de Ethernet
enviadas. Esta opción activa implícitamente la opción üü endüeth para
asegurar que ?map envía los paquetes del nivel Ethernet. La MAC dada
puede tener varios formatos. ?map elegirá una MAC completamente
aleatoria para la sesión si se utiliza el valor ³0´. ?map utilizará la MAC
indicada si el parámetro es un número par de dígitos hexadecimales
(separando opcionalmente cada dos dígitos con dos puntos). ?map
rellenará los 6 bytes restantes con valores aleatorios si se dan menos de 12
dígitos hexadecimales. Si el argumento no es ni 0 ni un conjunto de dígitos
hexadecimales, ?map mirará en nmapümacüprefixe para encontrar un
fabricante cuyo nombre coincida con el parámetro utilizado (en esta
búsqueda no diferenciará entre mayúsculas y minúsculas). Si se encuentra
algún fabricante, ?map utilizará el OUI del fabricante (prefijo de 3 bytes)
y rellenará los otros 3 bytes aleatoriamente. Ejemplos de argumentos üü
p22fümac son: pple, , * , deadbeefcafe, F,
y Ci c2.
La utilidad de una herramienta de seguridad está limitada por la salida que
genera. De poco sirven pruebas y algoritmos complejos si luego no se presentan
de una forma organizada y comprensible. Dada la cantidad de formas en las que
puede utilizarse ?map, tanto por personas como por otros programas, no es
posible complacer a todos con un único formato. Por ello ?map ofrece varios
formatos, incluyendo el modo interactivo para que los humanos lo lean
directamente y un formato XML para que sea interpretado por otros programas.
La salida XML es uno de los formatos de salida más importantes, ya que puede
convertirse a HTML, los programas (como la interfaz de usuario de ?map)
pueden interpretarla fácilmente o puede importarse a una base de datos.
?map también ofrece opciones para controlar la información extra que se ofrece
sobre el sondeo y añadirlo a los archivos de salida en lugar de sobreescribirlos.
Todas estas opciones se describen a continuación.
ü2
<file pec> (salida XML)
La salida para grep consiste en comentarios (líneas que empiezan por una
almohadilla, «#») y líneas de objetivo. Una línea de objetivo incluye una
combinación de seis campos marcados, separados por tabulaciones y
seguidos de dos puntos. Los campos (en inglés)
son 2 t (Sistema), 2rt (Puertos), r2t2c2l (Protocolos),Ign2redtate (
Estado omitido), (Sistema operativo), eqIndex (índice de
secuencia), II, y tatu (Estado).
J
Hace que ?map imprima más información sobre el sondeo que está
realizando incrementando el nivel de detalle. Los puertos abiertos se
muestran en cuanto se encuentran y se muestra una estimación del tiempo
que ?map espera que dure la tarea de sondeo si piensa que va a durar más
de un par de minutos. Puede utilizarlo dos veces para obtener aún más
detalle. ?o tiene ningún efecto el utilizarlo más de dos veces.
Esta opción hace que ?map imprima un resumen de cada paquete que
envía o recibe. Esto se utiliza muchas veces para poder depurar el
programa, pero también es útil para los usuarios nuevos que quieren
entender exactamente que es lo que hace ?map bajo el capó. Puede
especificar un número reducido de puertos para evitar que se impriman
miles de líneas, como por ejemplo üp ü . Si sólo está interesado en el
funcionamiento del subsistema de detección de versiones debe utilizar la
opción üüver i2nütrace.
Imprime la lista de interfaces y las rutas del sistema tal y como las detecta
?map. Esta opción es útil para depurar problemas de enrutamiento o
caracterizaciones equivocadas del tipo de interfaz (como por ejemplo,
cuando ?map trata una conexión PPP como una interfaz Ethernet).
üün2 tyle heet (Omite la declaración de hoja de estilo XSL del XML)
Puede utilizar esta opción para evitar que ?map asocie una hoja de estilo
XSL a su salida XML. En este caso, se omite la directiva xmlü
tyle heet de la salida.
Esta opción le dice a ?map que simplemente asuma que el usuario con el
que se ejecuta tiene suficientes privilegios para trabajar con sockets
crudos, capturar paquetes y hacer otras operaciones similares que
generalmente sólo puede hacerla en sistemas U?IX el usuario root. Por
omisión, ?map aborta si se han solicitado esas operaciones pero el
resultado de geteuid() no es cero. La opción üüprivileged es útil con las
capacidades del núcleo Linux y sistemas similares que pueden
configurarse para permitir realizar sondeos con paquetes crudos a los
usuarios no privilegiados. Asegúrese de indicar esta opción antes de
cualquier otra opción que pueda requerir de privilegios específicos
(sondeo SY?, detección de SO, etc.). Una forma alternativa a üü
privileged es fijar la variable de entorno ?MAP_PRIVILEGED.
Imprime una pequeña pantalla de ayuda con las opciones de órdenes más
habituales. Pasa lo mismo si ejecuta ?map sin argumentos.
v /
d /
p /
·
A continuación se muestran algunos ejemplos de utilización, desde lo más simple
y rutinario hasta algo más complejo y esotérico. Se utilizan algunas direcciones
IP y dominios para concretar un poco las cosas. En su lugar deberías poner las
direcciones o nombres de
p. Mientras que yo no considero que
sondear los puertos de otras redes es o debería ser ilegal, algunos administradores
de redes no aprecian un sondeo no solicitado de sus redes y pueden quejarse. Lo
mejor es pedir permiso primero.
Lanza un sondeo de tipo SY? sigiloso contra cada una de las 255 máquinas en
la ³clase C´ de la red donde está el sistema "analizame". También intenta
determinar cual es el sistema operativo que se ejecuta en cada máquina que esté
encendida. Esto requiere permisos de root por la opción de sondeo SY? y por la
de detección de sistema operativo.
nmap -sV -p 22,53,110,143,4564 198.116.0-255.1-127
Lanza una enumeración de equipos y un sondeo TCP a cada uno de la primera
mitad de las 255 posibles subredes de 8 bit en la red de clase B 198.116. Esto
probará si los sistemas están ejecutando sshd, D?S, pop3d, imapd o tienen un
servidor en el puerto 4564. Para cualquier puerto que se encuentre abierto, se
realizará una detección de versión para determinar qué aplicación se está
ejecutando.
nmap -v -iR 100000 -P0 -p 80
Solicita a ?map que elija 100.000 sistemas aleatoriamente y los sondee buscando
servidores web (puerto 80). La enumeración de sistemas se deshabilita con ü ya
que es un desperdicio enviar un par de pruebas para determinar si el sistema debe
ser analizado cuando de todas maneras sólo se va a analizar un puerto.
nmap -P0 -p80 -oXlogs/pb-port80scan.xml -oGlogs/pb-port80scan.gnmap
216.163.128.20/20
Esto sondea 4096 IPs para buscar cualquier servidor web (sin enviar sondas
ICMP) y guarda la salida en formato para grep y en XML.
Î
Al igual que su autor, ?map no es perfecto. Pero tu puedes ayudar a hacerlo
mejor enviando informes de fallo o incluso escribiendo parches. Si ?map no se
comporta como tú esperas, primero actualiza a la última versión disponible
en http://www.insecure.org/nmap/. Si el problema persiste, investiga para
determinar si la causa ya ha sido descubierta y solucionada. Busca en Google el
mensaje de error o navega en los archivos de ?map-dev en http://seclists.org/.
También deberías leer este manual completo. Si esto no te ayuda, envía un
informe de error en inglés a <nmapüdev@in ecure.2rg>. Por favor, incluya todo lo
que haya visto del problema, así como qué versión de ?map está utilizando y
sobre qué versión del sistema operativo está trabajando. Hay muchas más
probabilidades de que un informe de fallo o una pregunta sobre el uso de ?map
se contesten si se envían a nmap-dev@insecure.org que si se envían directamente
a Fyodor.
Es mejor enviar parches para arreglar el código que un informe de error. Puedes
encontrar las instrucciones básicas para crear parches con sus cambios
enhttp://www.insecure.org/nmap/data/HACKI?G. Puede enviar los parches a
nmap-dev (recomendado) o directamente a Fyodor.
V
Fyodor <fy2d2r@in ecure.2rg> (http://www.insecure.org)
o
This is an unnofficial translation of the ?map license details into Spanish. It was
not written by Insecure.Com LLC, and does not legally state the distribution
terms for ?map -- only the original English text does that. However, we hope
that this translation helps Spanish speakers understand the ?map license better.
The ?map Security Scanner is (C) 1996-2005 Insecure.Com LLC. ?map is also
a registered trademark of Insecure.Com LLC. This program is free software; you
may redistribute and/or modify it under the terms of the G?U General Public
License as published by the Free Software Foundation; Version 2. This
guarantees your right to use, modify, and redistribute this software under certain
conditions. If you wish to embed ?map technology into proprietary software, we
may be willing to sell alternative licenses (contact < ale @in ecure.c2m>). Many
security scanner vendors already license ?map technology such as host
discovery, port scanning, OS detection, and service/version detection.
La herramienta de sondeos de seguridad ?map es (C)
1996-2005 Insecure.Com LLC. ?map también es una marca registrada por
Insecure.Com LLC. Este programa es software libre. Puede redistribuirlo y/o
modificarlo bajo los términos de la Licencia Pública General de G?U según es
publicada por la Free Software Foundation, versión 2. Esto garantiza su derecho
a utilizarla, modificarla y redistribuirla bajo ciertas condiciones. Si desea
introducir la tecnología de ?map en programas propietarios podemos vender
licencias alternativas (póngase en contacto con < ale @in ecure.c2m>). Hay
muchos fabricantes de herramientas de análisis de seguridad que licencian la
tecnología de ?map como es el descubrimiento de equipos, sondeos de puertos,
detección de sistema operativo y detección de servicios y versiones.
Si recibe estos ficheros con un acuerdo de licencia por escrito o contrato que
indique términos distintos de los que se describen arriba entonces dicha licencia
alternativa toma precedencia sobre estos comentarios.
Se da el código fuente de este programa porque creemos que los usuarios tienen
el derecho a saber cómo funciona un programa con exactitud antes de ejecutarlo.
También le permite auditar el programa en búsqueda de agujeros de seguridad
(no se ha encontrado ninguno aún).
Este programa se distribuye con la esperanza de que sea útil, pero SI?
?I?GU?A GARA?TÍA, incluso sin la garantía MERCA?TIL implícita o sin
garantizar la CO?VE?IE?CIA PARA U? PROPÓSITO PARTICULAR. Véase
la Licencia Pública General de G?U para más detalles
en http://www.gnu.org/copyleft/gpl.html, o en el fichero COPYI?G que se
incluye con ?map.
También debería tener en cuenta que se sabe que ?map ha provocado en algunas
ocasiones que alguna aplicación mal escrita se bloquee, como también ha pasado
con pilas TCP/IP e incluso sistemas operativos. Esto es muy raro, pero es
importante tenerlo en mente. ?
p
p
?
p
p
a no ser que esté preparado para sufrir una caída. Reconocemos
que ?map puede bloquear sus sistemas o redes y hacemos un descargo de
responsabilidad frente a cualquier daño o problemas que ?map pueda causar.
o
?unca debería instalar ?map con privilegios especiales (p. ej. suidroot) por
razones de seguridad.
m