mirror of
https://github.com/nmap/nmap.git
synced 2025-12-06 04:31:29 +00:00
550 lines
27 KiB
Groff
550 lines
27 KiB
Groff
.\"Traducido al español por
|
|
.\"Antonio Aneiros <aneiros@ctv.es>
|
|
.\"el 04-08-1999
|
|
.de Sp
|
|
.if n .sp
|
|
.if t .sp 0.4
|
|
..
|
|
.TH NMAP 1
|
|
.SH NOMBRE
|
|
nmap \- Herramienta de exploración de red y escáner de seguridad.
|
|
.SH SINOPSIS
|
|
.B nmap
|
|
[Tipos(s)de escaneo] [Opciones] <servidor o red #1 ... [#N]>
|
|
.SH DESCRIPCIÓN
|
|
.I Nmap
|
|
ha sido diseñado para permitir a administradores de sistemas y gente curiosa
|
|
en general el escaneo de grandes redes para determinar qué servidores se
|
|
encuentran activos y qué servicios ofrecen.
|
|
.I nmap
|
|
es compatible con un gran número de técnicas de escaneo como: UDP, TCP connect(),
|
|
TCP SYN (half open), ftp proxy (bounce attack), Reverse-ident, ICMP (ping
|
|
sweep), FIN, ACK sweep, Xmas Tree, SYN sweep, and Null scan. Véase la sección
|
|
.I Tipos de Escaneo
|
|
para más detalles.
|
|
.I nmap
|
|
proporciona también características avanzadas como la detección remota del
|
|
sistema operativo por medio de huellas TCP/IP , escaneo tipo stealth (oculto),
|
|
retraso dinámico y cálculos de retransmisión, escaneo paralelo, detección de
|
|
servidores inactivos por medio de pings paralelos, escaneo con señuelos,
|
|
detección de filtrado de puertos, escaneo por fragmentación y especificación
|
|
flexible de destino y puerto.
|
|
.PP
|
|
Se han hecho grandes esfuerzos encaminados a proporcionar un rendimiento
|
|
decente para usuarios normales (no root). Por desgracia, muchos de los
|
|
interfaces críticos del kernel ( tales como los raw sockets) requieren
|
|
privilegios de root.
|
|
Debería ejecutarse
|
|
.I nmap
|
|
como root siempre que sea posible.
|
|
|
|
.SH OPCIONES
|
|
|
|
En general, pueden combinarse aquellas opciones que tengan sentido en conjunto.
|
|
Algunas de ellas son específicas para ciertos modos de escaneo.
|
|
.I nmap
|
|
trata de detectar y advertir al usuario sobre el uso de combinaciones de
|
|
opciones sicóticas o no permitidas.
|
|
.Sp
|
|
Si usted es una persona impaciente, puede pasar directamente a la sección
|
|
.I ejemplos
|
|
al final de este documento, donde encontrará ejemplos de los usos más
|
|
corrientes. También puede ejecutar el comando
|
|
.B nmap -h
|
|
para una página de referencia rápida con un listado de todas las opciones.
|
|
.TP
|
|
.B Tipos de Escaneo
|
|
.TP
|
|
.B \-sT
|
|
Escaneo TCP connect(): Es la forma más básica de escaneo TCP. La llamada de
|
|
sistema connect() proporcionada por nuestro sistema operativo se usa para
|
|
establecer una conexión con todos los puertos interesantes de la máquina. Si
|
|
el puerto está a la escucha, connect() tendrá éxito, de otro modo, el puerto
|
|
resulta inalcanzable. Una ventaja importante de esta técnica es que no resulta
|
|
necesario tener privilegios especiales. Cualquier usuario en la mayoría de los
|
|
sistemas UNIX tiene permiso para usar esta llamada.
|
|
.Sp
|
|
Este tipo de escaneo resulta fácilmente detectable dado que los registros del
|
|
servidor de destino muestran un montón de conexiones y mensajes de error para
|
|
aquellos servicios que accept() (aceptan) la conexión para luego cerrarla
|
|
inmediatamente.
|
|
.TP
|
|
.B \-sS
|
|
Escaneo TCP SYN: A menudo se denomina a esta técnica escaneo "half open" (medio
|
|
abierto), porque no se abre una conexión TCP completa. Se envía un paquete
|
|
SYN, como si se fuese a abrir una conexión real y se espera que llegue una
|
|
respuesta. Un SYN|ACK indica que el puerto está a la escucha. Un RST es
|
|
indicativo de que el puerto no está a la escucha. Si se recibe un SYN|ACK, se
|
|
envía un RST inmediatamente para cortar la conexión (en realidad es el kernel
|
|
de nuestro sistema operativo el que hace esto por nosotros). La ventaja
|
|
principal de esta técnica de escaneo es que será registrada por muchos menos
|
|
servidores que la anterior. Por desgracia se necesitan privilegios de root
|
|
para construir estos paquetes SYN modificados.
|
|
.TP
|
|
.B \-sF \-sX \-sN
|
|
Modos Stealth FIN, Xmas Tree o Nul scan: A veces ni siquiera el escaneo SYN
|
|
resulta lo suficientemente clandestino. Algunas firewalls y filtros de
|
|
paquetes vigilan el envío de paquetes SYN a puertos restringidos, y programas
|
|
disponibles como Synlogger y Courtney detectan este tipo de escaneo. Estos
|
|
tipos de escaneo avanzado, sin embargo, pueden cruzar estas barreras sin ser
|
|
detectados.
|
|
.Sp
|
|
La idea es que se requiere que los puertos cerrados respondan a nuestro
|
|
paquete de prueba con un RST, mientras que los puertos abiertos deben ignorar
|
|
los paquetes en cuestión (véase RFC 794 pp 64). El escaneo FIN utiliza un
|
|
paquete FIN vacío (sorpresa) como prueba, mientras que el escaneo Xmas tree
|
|
activa las flags FIN, URG y PUSH. El escaneo NULL desactiva todas las flags.
|
|
Por desgracia Microsoft (como de costumbre) decidió ignorar el estándar
|
|
completamente y hacer las cosas a su manera. Debido a esto, este tipo de
|
|
escaneo no funcionará con sistemas basados en Windows95/NT. En el lado
|
|
positivo, esta es una buena manera de distinguir entre las dos plataformas. Si
|
|
el escaneo encuentra puertos cerrados, probablemente se trate de una máquina
|
|
UNIX, mientras que todos los puertos abiertos es indicativo de Windows.
|
|
Excepcionalmente, Cisco, BSDI, HP/UX, MVS, y IRIX también envían RSTs en vez
|
|
de desechar el paquete.
|
|
.TP
|
|
.B \-sP
|
|
Escaneo ping: A veces únicamente se necesita saber qué servidores en una red
|
|
se encuentran activos. Nmap puede hacer esto enviando peticiones de respuesta
|
|
ICMP a cada dirección IP de la red que se especifica. Aquellos servidores que
|
|
responden se encuentran activos. Desafortunadamente, algunos sitios web como
|
|
microsoft.com bloquean este tipo de paquetes. Nmap puede enviar
|
|
también un paquete TCP ack al puerto 80 (por defecto). Si se obtiene por
|
|
respuesta un RST, esa máquina está activa. Una tercera técnica implica el
|
|
envío de un paquete SYN y la espera de de un RST o un SYN/ACK. Para usuarios
|
|
no root se usa un método connect().
|
|
.Sp
|
|
Por defecto (para usuarios no root), nmap usa las técnicas ICMP y ACK en
|
|
paralelo. Se puede cambiar la opción
|
|
.B \-p
|
|
descrita más adelante.
|
|
.Sp
|
|
Nótese que el envio de pings se realiza por defecto de todas maneras y que
|
|
sólamente se escanean aquellos servidores de los que se obtiene respuesta. Use
|
|
esta opción sólamente en el caso de que desee un ping sweep (barrido ping)
|
|
.B sin
|
|
hacer ningún tipo de escaneo de puertos.
|
|
.TP
|
|
.B \-sU
|
|
Escaneo Udp: Este método se usa para saber qué puertos UDP (Protocolo de
|
|
Datagrama de Usuario, RFC 768) están abiertos en un servidor. La técnica
|
|
consiste en enviar paquetes UCP de 0 bytes a cada puerto de la máquina
|
|
objetivo. Si se recibe un mensaje ICMP de puerto no alcanzable, entonces el
|
|
puerto está cerrado. De lo contrario, asumimos que está abierto.
|
|
.Sp
|
|
Alguna gente piensa que el escaneo UDP no tiene sentido. Normalmente les
|
|
recuerdo el reciente agujero Solaris rcpbind. Puede encontrarse a rcpbind
|
|
escondido en un puerto UDP no documentado en algún lugar por encima del 32770.
|
|
Por lo tanto, no importa que el 111 esté bloqueado por la firewall.
|
|
Pero, ¿quién puede decir en cual de los más de 30000 puertos altos se
|
|
encuentra a la escucha el programa? ¡Con un escáner UDP se puede! Tenemos
|
|
también el programa de puerta trasera cDc Back Orifice que se oculta en un
|
|
puerto UDP configurable en las máquinas Windows, por no mencionar los muchos
|
|
servicios frecuentemente vulnerables que usan UDP como snmp, tftp, NFS, etc.
|
|
.Sp
|
|
Por desgracia, el escaneo UDP resulta a veces tremendamente lento debido a que
|
|
la mayoría de los servidores implementan una sugerencia recogida en el RFC
|
|
1812 (sección 4.3.2.8) acerca de la limitación de la frecuencia de mensajes de
|
|
error ICMP. Por ejemplo, el kernel de Linux (en /ipv4/icmp.h) limita la
|
|
generación de mensajes de destino inalcanzable a 80 cada cuatro segundos, con
|
|
una penalización de 1/4 de segundo si se rebasa dicha cantidad. Solaris tiene
|
|
unos límites mucho más estrictos (más o menos 2 mensajes por segundo) y por lo
|
|
tanto lleva más tiempo hacerle un escaneo.
|
|
.I nmap
|
|
detecta este límite de frecuencia y se ralentiza en consecuencia, en vez de
|
|
desbordar la red con paquetes inútiles que la máquina destino ignorará.
|
|
.Sp
|
|
Como de costumbre, Microsoft ignoró esta sugerencia del RFC y no parece que
|
|
haya previsto ningún tipo de límite de frecuencia para las máquinas Windows.
|
|
Debido a esto resulta posible escanear los 65K puertos de una máquina Windows
|
|
.B muy
|
|
rápidamente. ¡Woop!
|
|
.TP
|
|
.B \-b <ftp relay host>
|
|
Ataque de rebote FTP: Una característica "interesante" del protocolo FTP (FRC
|
|
959) es la posibilidad de realizar conexiones ftp tipo "proxy". En otras
|
|
palabras, ¡me resultaría posible conectarme desde malvado.com al servidor ftp
|
|
de destino.com y pedirle a ese servidor que enviase un archivo a CUALQUIER
|
|
PARTE de Internet! Aun así, esto podría haber funcionado bien en 1985 cuando
|
|
se escribió el RFC, pero en la Internet actual, no podemos permitir que la
|
|
gente vaya por ahí asaltando servidores ftp y pidiéndoles que escupan sus
|
|
datos a puntos arbitrarios de Internet. Tal y como escribió *Hobbit* en 1985,
|
|
este defecto del protocolo "puede usarse para enviar mensajes de correo y
|
|
noticias cuyo rastro será virtualmente imposible de seguir, machacar
|
|
servidores en varios sitios web, llenar discos, tratar de saltarse firewalls y
|
|
, en general, resultar molesto y difícil de detectar al mismo tiempo." Nosotros
|
|
explotaremos este defecto para (sorpresa, sorpresa) escanear puertos TCP desde
|
|
un servidor ftp "proxy". De este modo nos podríamos conectar a un servidor ftp
|
|
tras una firewall, y luego escanear aquellos puertos que con más probabilidad
|
|
se encuentren bloqueados (el 139 es uno bueno). Si el servidor ftp permite la
|
|
lectura y escritura en algún directorio (como por ejemplo /incoming), se
|
|
pueden enviar datos arbitrarios a puertos que se encuentren abiertos (aunque
|
|
nmap no realiza esta función por sí mismo).
|
|
.Sp
|
|
El argumento que se pasa a la opción 'b' es el host que se pretende usar como
|
|
proxy, en notación URL estándar. El formato es:
|
|
.I nombre_de_usuario:password@servidor:puerto.
|
|
Todo excepto
|
|
.I servidor
|
|
es opcional. Para determinar qué servidores son vulnerables a este ataque,
|
|
véase mi artículo en
|
|
.I Phrack
|
|
51. Se encuentra disponible una versión actualizada en la URL de
|
|
.I nmap
|
|
(http://www.insecure.org/nmap).
|
|
.TP
|
|
.B Opciones Generales
|
|
No se requiere ninguna pero algunas de ellas pueden resultar de gran utilidad.
|
|
.TP
|
|
.B \-p0
|
|
No intenta hacer ping a un servidor antes de escanearlo. Esto permite el
|
|
escaneo de redes que no permiten que pasen peticiones (o respuestas)de ecos
|
|
ICMP a través de su firewall. microsoft.com es un ejemplo de una red de este
|
|
tipo, y, por lo tanto, debería usarse siempre
|
|
.B \-p0
|
|
o
|
|
.B \-PT80
|
|
al escanear microsoft.com.
|
|
.TP
|
|
.B \-PT
|
|
Usa el ping TCP para determinar qué servidores están activos. En vez de enviar
|
|
paquetes de petición de ecos ICMP y esperar una respuesta, se lanzan paquetes
|
|
TCP ACK a través de la red de destino (o a una sola máquina) y luego se espera
|
|
a que lleguen las respuestas. Los servidores activos responden con un RST.
|
|
Esta opción mantiene la eficiencia de escanear únicamente aquellos servidores
|
|
que se encuentran activos y la combina con la posibilidad de escanear
|
|
redes/servidores que bloquean los paquetes ping. Para los usuarios no root
|
|
se usa connect(). Para establecer el puerto de destino de los paquetes de
|
|
prueba use -PT <número de puerto). El puerto por defecto es el 80, dado que
|
|
normalmente este puerto no es un puerto filtrado.
|
|
.TP
|
|
.B \-PS
|
|
Esta opción usa paquetes SYN (petición de conexión) en vez de los paquetes ACK
|
|
para usuarios root. Los servidores activos deberían responder con un RST (o,
|
|
en raras ocasiones, un SYN|ACK).
|
|
.TP
|
|
.B \-PI
|
|
Esta opción usa un paquete ping (petición de eco ICMP) verdadero. Encuentra
|
|
servidores que están activos y también busca direcciones de broadcast
|
|
dirigidas a subredes en una red. Se trata de direcciones IP
|
|
alcanzables desde el exterior que envían los paquetes IP entrantes a una subred
|
|
de servidores. Estas direcciones deberían eliminarse, si se encontrase alguna,
|
|
dado que suponen un riesgo elevado ante numerosos ataques de denegación de
|
|
servicio (el más corriente es Smurf).
|
|
.TP
|
|
.B \-PB
|
|
Este es el tipo de ping por defecto. Usa los barridos ACK (
|
|
.B \-PT
|
|
) e ICMP (
|
|
.B \-PI
|
|
) en paralelo. De este modo se pueden alcanzar firewalls que filtren uno de los
|
|
dos (pero no ambos).
|
|
.TP
|
|
.B \-O
|
|
Esta opción activa la detección remota del sistema operativo por medio de la
|
|
huella TCP/IP. En otras palabras, usa un puñado de técnicas para detectar
|
|
sutilezas en la pila de red subyacente del sistema operativo de los servidores
|
|
que se escanean. Usa esta información para crear una 'huella' que luego
|
|
compara con una base de datos de huellas de sistemas operativos conocidas (el
|
|
archivo nmap-os-fingerprints) para decidir qué tipo de sistema se está
|
|
escaneando.
|
|
.Sp
|
|
Si encuentra una máquina diagnosticada erróneamente que tenga por lo menos un
|
|
puerto abierto, me sería de gran utilidad que me enviase los detalles en un
|
|
email (es decir, se encontró la versión xxx de tal cosa y se detectó este u
|
|
otro sistema operativo..). Si encuentra una máquina con al menos un puerto
|
|
abierto de la cual nmap le informe "sistema operativo desconocido",
|
|
le estaría agradecido si me enviase la dirección IP junto con el nombre del
|
|
sistema operativo y el número de su versión. Si no me puede enviar la
|
|
dirección IP, una alternativa sería ejecutar nmap con la opción
|
|
.B \-d
|
|
y enviarme las tres huellas que obtendría como resultado junto con el nombre
|
|
del sistema operativo y el número de versión. Al hacer esto, está
|
|
contribuyendo a aumentar el número importante de sistemas operativos conocidos
|
|
por namp y de este modo el programa resultará más exacto para todo el mundo.
|
|
.TP
|
|
.B \-I
|
|
Esta opción activa el escaneo TCP de identificación contraria. Tal y como
|
|
comenta Dave Goldsmith en un correo Bugtrat de 1996, el protocolo ident (rfc
|
|
1413) permite la revelación del nombre del usuario propietario de cualquier
|
|
proceso conectado vía TCP, incluso aunque ese proceso no haya iniciado la
|
|
conexión. De este modo se puede, por ejemplo, conectar con el puerto http y
|
|
luego usar identd para descubrir si el servidor está ejecutándose como root.
|
|
Esto sólo se puede hacer con una conexión TCP completa con el puerto de
|
|
destino (o sea, la opción de escaneo -sT).
|
|
Cuando se usa
|
|
.B \-I,
|
|
se consulta al identd del servidor remoto sobre cada uno de los puertos
|
|
abiertos encontrados en el sistema. Por supuesto, esto no funcionará si el
|
|
servidor en cuestión no está ejecutando identd.
|
|
.TP
|
|
.B \-f
|
|
Esta opción hace que el escaneo solicitado de tipo SYN, FIN, XMAS, o NULL use
|
|
pequeños paquetes IP fragmentados. La idea consiste en dividir la cabecera TCP
|
|
en varios paquetes para ponérselo más difícil a los filtros de paquetes,
|
|
sistemas de detección de intrusión y otras inconveniencias por el estilo que
|
|
tratan de saber lo uno está haciendo. ¡Tenga cuidado con esto! Algunos
|
|
programas tienen problemas a la hora de manejar estos paquetes tan pequeños.
|
|
Mi sniffer favorito produjo un error de segmentación inmediatamente después de
|
|
recibir el primer fragmento de 36 bytes. ¡Después de este viene uno de 24
|
|
bytes! Mientras que este método no podrá con filtros de paquetes y firewalls
|
|
que ponen en cola todos los fragmentos IP (como en el caso de la opción
|
|
CONFIG_IP_ALWAYS_DEFRAG en la configuración del kernel de Linux), también
|
|
es verdad que algunas redes no pueden permitirse el efecto negativo que esta
|
|
opción causa sobre su rendimiento y por lo tanto la dejan desactivada.
|
|
.Sp
|
|
Nótese que no he coseguido que esta opción funcione con todos los sistemas.
|
|
Funciona bien con mis sistemas Linux, FreeBSD y OpenBSD y algunas personas
|
|
han informado de éxitos con otras variantes *NIX.
|
|
.TP
|
|
.B \-v
|
|
Modo de información ampliada. Esta opción resulta muy recomendable y
|
|
proporciona gran cantidad de información sobre lo que está sucediendo. Puede
|
|
usarla dos veces para un efecto mayor. ¡Use
|
|
.B \-d
|
|
un par veces si lo que quiere es volverse loco haciendo scroll en su pantalla!
|
|
.TP
|
|
.B \-h
|
|
Esta opción tan práctica muestra una pantalla de referencia rápida sobre las
|
|
opciones de uso de nmap. Quizás haya notado que esta página de manual no es
|
|
precisamente una "referencia rápida" :)
|
|
.TP
|
|
.B \-o <nombre_de_archivo_de_registro>
|
|
Esta opción guarda los resultados de sus escaneos en forma
|
|
.B humanamente inteligible
|
|
en el archivo especificado como argumento.
|
|
.TP
|
|
.B \-m <nombre_de_archivo_de_registro>
|
|
Esta opción guarda los resultados de sus escaneos en un formato
|
|
.B comprensible para una máquina
|
|
en el archivo especificado como argumento.
|
|
.TP
|
|
.B \-i <nombre_de_archivo_de_entrada>
|
|
Lee especificaciones de servidores o redes de destino a partir del archivo
|
|
especificado en vez de hacerlo de la línea de comandos. El archivo debe
|
|
contener una lista de expresiones de servidores o redes separadas por
|
|
espacios, tabuladores o nuevas líneas. Use un guión (-) como
|
|
.I nombre_de_archivo_de_entrada
|
|
si desea que nmap tome las expresiones de servidores de stdin. Véase la sección
|
|
.I Especificación de Objetivo
|
|
para más información sobre expresiones con las que poder completar este
|
|
archivo.
|
|
.TP
|
|
.B \-p <rango de puertos>
|
|
Esta opción determina los puertos que se quieren especificar. Por ejemplo, '-p
|
|
23' probará solo el puerto 23 del servidor(es) objetivo. '-p
|
|
20-30,139,60000-' escanea los puertos del 20 al 30, el puerto 139 y todos los
|
|
puertos por encima de 60000. Por defecto se escanean todos los puertos entre
|
|
el 1 y el 1024 así como los que figuran en el archivo /etc/services.
|
|
.TP
|
|
.B \-F Modo de escaneo rápido.
|
|
Implica que sólo se desean escanear aquellos puertos que figuran en
|
|
/etc/services. Obviamente esto resulta mucho más rápido que escanear cada uno
|
|
de los 65535 puertos de un servidor.
|
|
.TP
|
|
.B \-D <señuelo1 [,señuelo2][,ME],...>
|
|
Especifica que se desea efectuar un escaneo con señuelos, el cual hace que el
|
|
servidor escaneado piense que la red destino del escaneo está siendo escaneada
|
|
también por el servidor(es) especificados como señuelos. Así, sus IDs pueden
|
|
informar de entre 5 y 10 escaneos procedentes de direcciónes IP únicas, pero
|
|
no sabrán que dirección IP les estaba escaneando realmente y cúales eran
|
|
señuelos inocentes.
|
|
.Sp
|
|
Separe cada servidor señuelo con comas, y puede usar opcionalmente 'ME' como
|
|
señuelo que representa la posición que quiere que ocupe su dirección IP. Si
|
|
coloca 'ME' en la sexta posición o superior, es muy poco probable que algunos
|
|
escáneres de puertos comunes (como el excelente scanlogd de Solar Designer)
|
|
lleguen incluso a mostrar su dirección IP. Si no se usa 'ME', nmap le colocará
|
|
a usted en una posición aleatoria.
|
|
.Sp
|
|
Nótese que aquellos servidores usados como señuelos deben escontrarse activos,
|
|
o, de lo contrario podría provocar un desbordamiento (flood) SYN en su
|
|
objetivo. Por otra parte, resultará bastante fácil saber qué servidor está
|
|
escaneando si únicamente hay uno activo en la red.
|
|
.Sp
|
|
Nótese también que algunos (estúpidos) "detectores de escáneres de puertos"
|
|
opondrán una firewall o bien denegarán el rutaje a aquellos servidores que
|
|
intenten escanear sus puertos. De este modo se podría provocar
|
|
inadvertidamente que la máquina que se está intentando escanear perdiese
|
|
contacto con los servidores usados como señuelos. Esto podría causarles a los
|
|
servidores escaneados verdaderos problemas si los servidores señuelo fuesen,
|
|
por ejemplo, su gateway a internet o incluso "localhost". Debería usarse esta
|
|
opción con extremo cuidado. La verdadera moraleja de este asunto es que un
|
|
detector de escaneos de puertos que aparenten tener intenciones poco
|
|
amistosas no debería llevar a cabo acción alguna contra la máquina que
|
|
aparentemente le está escaneando. ¡Podría no ser más que un señuelo!
|
|
.Sp
|
|
Los señuelos se usan tanto en el escaneo ping inicial (usando ICMP, SYN, ACK,
|
|
o lo que sea) como en la fase de escaneo de puertos propiamente dicha. También
|
|
se usan los señuelos en la fase de detección remota del sistema operativo (
|
|
.B \-O
|
|
).
|
|
.Sp
|
|
Vale la pena destacar que el uso de demasiados señuelos puede ralentizar el
|
|
proceso de escaneo y, potencialmente, hacer que sea menos exacto. Por otra
|
|
parte, algunos ISPs filtrarán los paquetes manipulados y los desecharán,
|
|
aunque muchos (actualmente la mayoría) no ponen restricciones a este tipo de
|
|
paquetes.
|
|
.TP
|
|
.B \-S <Dirección_IP>
|
|
En determinadas circunstancias, es posible que
|
|
.I nmap
|
|
no sea capaz de determinar su (de usted) dirección IP de origen (
|
|
.I nmap
|
|
se lo hará saber si este es el caso). En este caso, use -S con su dirección IP
|
|
(del interfaz a través del cual desea enviar los paquetes).
|
|
.Sp
|
|
Otro posible uso de esta opción es el de manipular el escaneo para hacer creer
|
|
a los servidores de destino que
|
|
.B alguien más
|
|
les está escaneando. ¡Imagínese a una compañía escaneada repetidamente por una
|
|
compañía rival! Esta no es la función para la que se ha diseñado esta opción
|
|
(ni su propósito principal). Simplemente pienso que revela una posibilidad que
|
|
la gente debería tener en cuenta antes de acusar a los demás de escanear sus
|
|
puertos.
|
|
La opción
|
|
.B \-e
|
|
será necesaria en general para este tipo de uso.
|
|
.TP
|
|
.B \-e <interfaz>
|
|
Le dice a nmap qué interfaz ha de usar para enviar y recibir paquetes. El
|
|
programa debería detectar esto por sí mismo, pero le informará si no es así.
|
|
.TP
|
|
.B \-g <número_de_puerto>
|
|
Establece el número de puerto de origen a usar en los escaneos. Muchas
|
|
instalaciones de firewalls y filtros de paquetes inocentes hacen una excepción
|
|
en sus reglas para permitir que las atraviesen y establezcan una conexión
|
|
paquetes DNS (53) o FTP-DATA (20). Evidentemente esto contraviene
|
|
completamente las ventajas en materia de seguridad que comporta una firewall
|
|
dado que los intrusos pueden enmascararse como DNS o FTP con una simple
|
|
modificación de su puerto de origen. Por supuesto, debería probarse primero
|
|
con el puerto 53 para un escaneo UDP y los escaneos TCP deberían probar el 20
|
|
antes del 53.
|
|
.Sp
|
|
Nótese que el uso de esta opción penaliza levemente el rendimiento del
|
|
escaneo, porque a veces se almacena información útil en el número de puerto
|
|
de origen.
|
|
.TP
|
|
.B \-M <max sockets>
|
|
Establece el número máximo de sockets que se usarán en paralelo para un
|
|
escaneo TCP connect() (escaneo por defecto). Resulta útil a la hora de
|
|
ralentizar ligeramente el proceso de escaneo con el fin de evitar que
|
|
la máquina de destino se cuelgue. Otra manera de hacerlo es usar \-sS, que
|
|
normalmente les resulta más fácil de asumir a las máquinas de destino.
|
|
.TP
|
|
.B Especificación de Objetivo
|
|
Cualquier cosa que no es una opción (o el argumento de una opción) en namp se
|
|
trata como una especificación de servidor de destino. El caso más simple
|
|
consiste en especificar servidores aislados o direcciones IP en la línea de
|
|
comandos. Si pretende escanear una subred de direcciones IP, entonces se puede
|
|
añadir
|
|
.B '/mask'
|
|
a la dirección IP o al nombre del servidor.
|
|
.B mask
|
|
debe estar entre 0 (escanea toda Internet) y 32 (escanea únicamente el
|
|
servidor especificado). Use /24 para escanear una dirección de clase 'C' y /16
|
|
para la clase 'B'.
|
|
.Sp
|
|
Nmap dispone también de una notación mucho más potente que permite la
|
|
especificación de direcciones IP usando listas/rangos para cada elemento. De
|
|
este modo, se puede escanear la red de clase 'B' completa 128.210.*.*
|
|
especificando '128.210.*.*' o '128.210.0-255.0-255' o incluso
|
|
'128.210.1-50,51-255.1,2,3,4,5-255'. Y, por supuesto, se puede usar la
|
|
notación de máscara: '128.210.0.0/16'. Todas ellas son equivalentes. Si se
|
|
usan asteriscos ('*'), ha de tenerse en cuenta que la mayoría de los shells
|
|
requieren que se salga de ellos con caracteres / o que se les proteja con
|
|
comillas.
|
|
.Sp
|
|
Otra posibilidad interesante consiste en dividir Internet en el otro sentido.
|
|
En vez de escanear todos los servidores en una clase 'B', se puede
|
|
escanear '*.*.5.6-7' para escanear todas las direcciones IP terminadas en .5.6 o .5.7
|
|
Escoja sus propios números. Para más información sobre la especificación de
|
|
servidores a escanear, véase la sección
|
|
.I ejemplos
|
|
a continuación.
|
|
|
|
.SH EJEMPLOS
|
|
A continuación se muestran algunos ejemplos del uso de nmap que abarcan desde
|
|
los usos más normales y frecuentes a los más complejos o incluso esotéricos.
|
|
Nótese que se han incluido direciones IP y nombres de dominio reales para hacer
|
|
las cosas más concretas. Usted debería sustituirlos por números y direcciones
|
|
de su
|
|
.B propia red.
|
|
No creo que escanear otras redes sea ilegal; ni se deberían considerar los
|
|
escaneos de puertos como ataques. He escaneado cientos de miles de máquinas y
|
|
tan sólo he recibido una queja. Pero no soy abogado y es posible que los
|
|
intentos de
|
|
.I nmap
|
|
lleguen a molestar a alguna gente. Obtenga primero el permiso para hacerlo o
|
|
hágalo bajo su propia responsabilidad.
|
|
.Sp
|
|
.B nmap -v objetivo.ejemplo.com
|
|
.Sp
|
|
Esta opción escanea todos los puertos TCP reservados en la máquina
|
|
objetivo.ejemplo.com. La \-v implica la activación del modo de información
|
|
ampliada.
|
|
.Sp
|
|
.B nmap -sS -O objetivo.ejemplo.com/24
|
|
.Sp
|
|
Lanza un escaneo SYN oculto contra cada una de las máquinas activas de las 255
|
|
máquinas de la classe 'C' donde se aloja objetivo.ejemplo.com. También trata
|
|
de determinar el sistema operativo usado en cada una de las máquinas activas.
|
|
Este escaneo requiere privilegios de roor a causa del escaneo SYN y la
|
|
detección del sistema operativo.
|
|
.Sp
|
|
.B nmap -sX -p 22,53,110,143 "128.210.*.1-127"
|
|
.Sp
|
|
Envía un escaneo Xmas tree a la primera mitad de cada una de las 255 posibles
|
|
subredes de 8 bits en el espacio de direcciones clase 'B' 128.210 . Se trata
|
|
de comprobar si los sistemas ejecutan sshd, DNS, pop3d, imapd o el puerto
|
|
4564. Nótese que el escaneo Xmas no funciona contra servidores ejecutando
|
|
cualquier sistema operativo de Microsoft debido a una pila TCP deficiente. Lo
|
|
mismo se aplica a los sistemas CISCO, IRIX, HP/UX, y BSDI.
|
|
.Sp
|
|
.B nmap -v -p 80 '*.*.2.3-5'
|
|
.Sp
|
|
En vez de centrarse en un rango específico de direcciones IP, resulta a veces
|
|
interesante dividir Internet en porciones y escanear una pequeña muestra de
|
|
cada porción. Este comando encuentra todos los servidores web en máquinas
|
|
cuyas direcciones IP terminen en .2.3, .2.4, o .2.5 . Si usted es root podría
|
|
añadir también -sS. También encontrará máquinas mucho más interesantes
|
|
si empieza en 127. así que es posible que desee usar '127-222' en vez de el
|
|
primer asterisco dado que esa sección tiene una densidad mucho mayor de
|
|
máquinas interesantes (IMHO).
|
|
.Sp
|
|
.B host -l compañía.com | cut '-d ' -f 4 | ./nmap -v -i -
|
|
.Sp
|
|
Hace una transferencia de DNS de zona para descubrir los servidores en
|
|
compañía.com y luego pasar las direcciones IP a
|
|
.I nmap.
|
|
Los comandos arriba indicados son para mi sistema Linux. Es posible que se
|
|
necesiten comandos/opciones diferentes para otros sistemas operativos.
|
|
.SH BUGS
|
|
¿Bugs? ¿Qué bugs? Por favor, envíeme cualquier bug que descubra. Los parches
|
|
tampoco estarían mal :) Recuerde enviar también nuevas huellas de sistemas
|
|
operativos para que podamos ampliar nuestra base de datos.
|
|
.SH AUTOR
|
|
.Sp
|
|
Fyodor
|
|
.I <fyodor@insecure.org>Tipos de Escaneo
|
|
.SH DISTRIBUCIÓN
|
|
La última versión de
|
|
.I nmap
|
|
se puede obtener en
|
|
.I http://www.insecure.org/nmap
|
|
.Sp
|
|
.I nmap
|
|
es (C) 1997,1998 de Fyodor (fyodor@insecure.org, fyodor@insecure.org)
|
|
.Sp
|
|
Este programa es software libre; puede redistribuirse y/o modificarse bajo los
|
|
términos de la Licencia Pública General GNU tal y como la publica la Fundación
|
|
de Software Libre; Versión 2.
|
|
.Sp
|
|
Este programa se distribuye con la esperanza de que pueda resultar de
|
|
utilidad, pero SIN NINGÚN TIPO DE GARANTÍA; sin tan siquiera la garantía e ser
|
|
apto para su COMECIALIZACIÓN o ADECUADO PARA UN PROPÓSITO EN PARTICULAR. Véase
|
|
la Licencia Pública General GNU para más detalles (está en el archivo COPYING
|
|
de la distribución de
|
|
.I nmap
|
|
).
|