SlideShare uma empresa Scribd logo
1 de 62
Baixar para ler offline
FASES DE UN ATAQUE
Fases de un ATAQUE
• Reconocimiento.
• Escaneo.
• Acceso.
• Mantener el acceso.
• Borrar actividades.
2
Reconocimiento
• El atacante obtiene la mayor cantidad de
información del (los) posible (s) objetivo
(s).
– Footprinting.
– Dumpster diving.
– Fingerprinting.
– Ingeniería social.
3
Tipos de reconocimiento
• Pasivo
– Obtener información sin interacción directa
con la(s) victima(s).
• Activo
– Interacción directa a través de cualquier
medio.
4
Escaneo
• Fase en la cual el atacante obtiene
información del sistema de la victima.
– Escaneos de puertos, de red y de
vulnerabilidades.
• Obtiene entre otras:
– IP’s, MAC’s.
– Sistema operativo.
– Puertos abiertos.
– Servicios.
– Etc. 5
Tipos de escaneo
• Port scanning.
– Comprueba los servicios corriendo en el
equipo victima.
• Network scanning.
– Identificar host activos en la red.
• Vulnerability scanning.
– Identifica las vulnerabilidades del sistema o
de los servicios activos.
6
Scaneos utilizando banderas
TCP.
• Half open can (No abre una full tcp conn).
• SYN/ACK scan.
• XMAS scan (Envía todas las banderas).
• FIN scan (Solo unix).
• ACK scan (Utiliza el valor del TTL).
• NULL scan (Solo unix).
• IDLE scan (IP Spoofing).
• Full open scan (Detectable).
7
Acceso
• El atacante penetra en el equipo victima,
explota vulnerabilidades del sistema, de
alguna aplicación en particular o en la red.
– Desbordamiento.
– DoS.
– Secuestro de sesión.
– Crackeo de contraseñas.
8
Mantener el acceso
• El atacante intenta mantener el acceso,
puede cargar, descargar o manipular
datos de aplicaciones o las
configuraciones.
– Backdoors.
– Rootkits.
– Troyanos.
9
Borrar actividades.
• El hacker cual astuto ladrón destruye
todos los rastros dejados a su paso.
– Steganography.
– Tunneling.
– Alterar logs del sistema.
10
ESCANEO DE
PUERTOS
M.A. Ing. Robert E. Puican Gutiérrez
ESCANEO DE PUERTOS
• Técnica usada para auditar máquinas y
redes con el fin de detectar que puertos
están abiertos, cerrados o protegidos.
SALUDO DE TRES VIAS
(Three way handshake)
SYN
ACK
SYN / ACK
FINALIZACION DE UNA
CONEXIÓN TCP
ESTADOS TCP
• TCP es un protocolo orientado a conexión, y como tal tiene unos estados
definidos según en qué punto de la conexión se encuentre el socket. Estos
estados están detallados en el RFC #793 y son:
• LISTEN: Un servidor que espera conexiones de un cliente y escucha un
puerto, genera un socket con estado LISTEN. Cuando el cliente se
conecte, se creará un socket con la conexión establecida y otro que quede
a la escucha.
• SYN-SENT: Al enviar un paquete con el flag SYN levantado, como primer
paso para el saludo en tres tiempos de una conexión, el socket entra en el
estado SYN-SENT.
• SYN-RECEIVED: Cuando tiene lugar el segundo paso del saludo en tres
tiempos y se responde al primer SYN con un SYN/ACK, los sockets tienen
estado SYN-RECEIVED.
• ESTABLISHED: Una vez se completa el saludo en tres tiempos se entra
en estado ESTABLISHED y se permanece en él durante todo el tiempo
que dura la conexión.
• FIN-WAIT-1: El socket entra en este estado una vez envía el paquete con
el flag FIN levantado pero aún no ha recibido la confirmación de ese
paquete. Solamente se reciben datos.
ESTADOS TCP
• FIN-WAIT-2: Una vez recibida la confirmación ACK del paquete
FIN, entramos en este estado. Solamente se reciben datos.
• CLOSE-WAIT: Si somos nosotros los que recibimos el paquete
con el flag FIN levantado pero aún tenemos datos que enviar, el
socket entra en estado CLOSE-WAIT.
• CLOSING: Si ambos host desean finalizar la conexión a la vez,
los sockets entran en estado CLOSING.
• LAST-ACK: Una vez enviados sendos paquetes con el flag FIN
levantado en la finalización de una conexión TCP, cuando el último
en haber enviado el paquete está pendiente de recibir la
confirmación, entra en estado LAST-ACK.
• TIME-WAIT: Una vez enviados sendos paquetes con el flag FIN
levantado en la finalización de una conexión TCP, cuando el
primero en haber enviado el paquete envía la confirmación al
último paquete FIN, entra en estado TIME-WAIT para esperar un
tiempo prudencial que le permita cerciorarse de la recepción del
mismo.
LOS SEIS ESTADOS DE UN
PUERTO - NMAP
• ABIERTO
– Una aplicación acepta conexiones TCP o paquetes UDP en este puerto. El
encontrar esta clase de puertos es generalmente el objetivo primario de realizar
un sondeo de puertos. Las personas orientadas a la seguridad saben que cada
puerto abierto es un vector de ataque. Los atacantes y las personas que realizan
pruebas de intrusión intentan aprovechar puertos abiertos, por lo que los
administradores intentan cerrarlos, o protegerlos con cortafuegos, pero sin que
los usuarios legítimos pierdan acceso al servicio. Los puertos abiertos también
son interesantes en sondeos que no están relacionados con la seguridad porque
indican qué servicios están disponibles para ser utilizados en una red.
• CERRADO
– Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero
no tiene una aplicación escuchando en él. Pueden ser útiles para determinar si
un equipo está activo en cierta dirección IP (mediante descubrimiento de
sistemas, o sondeo ping), y es parte del proceso de detección de sistema
operativo. Como los puertos cerrados son alcanzables, o sea, no se encuentran
filtrados, puede merecer la pena analizarlos pasado un tiempo, en caso de que
alguno se abra. Los administradores pueden querer considerar bloquear estos
puertos con un cortafuegos. Si se bloquean aparecerían filtrados, como se
discute a continuación.
LOS SEIS ESTADOS DE UN
PUERTO - NMAP
• FILTRADO
– Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado
de paquetes previene que sus sondas alcancen el puerto. El filtrado puede
provenir de un dispositivo de cortafuegos dedicado, de las reglas de un
enrutador, o por una aplicación de cortafuegos instalada en el propio equipo.
Estos puertos suelen frustrar a los atacantes, porque proporcionan muy poca
información. A veces responden con mensajes de error ICMP del tipo 3, código
13 (destino inalcanzable: comunicación prohibida por administradores), pero los
filtros que sencillamente descartan las sondas sin responder son mucho más
comunes. Esto fuerza a Nmap a reintentar varias veces, considerando que la
sonda pueda haberse descartado por congestión en la red en vez de haberse
filtrado. Esto ralentiza drásticamente los sondeos.
• NO FILTRADO
– Este estado indica que el puerto es accesible, pero que Nmap 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, SYN o FIN, pueden ayudar a determinar si el puerto se
encuentra abierto.
LOS SEIS ESTADOS DE UN
PUERTO - NMAP
• abierto|filtrado
– Nmap marca a los puertos en este estado cuando no puede
determinar si el puerto se encuentra abierto o filtrado. Esto
ocurre para tipos de análisis donde no responden los puertos
abiertos. La ausencia de respuesta puede también significar que
un filtro de paquetes ha descartado la sonda, o que se elimina
cualquier respuesta asociada. De esta forma, Nmap no puede
saber con certeza si el puerto se encuentra abierto o filtrado. Los
sondeos UDP, protocolo IP, FIN, Null y Xmas clasifican a los
puertos de esta manera.
• cerrado|filtrado
– Este estado se utiliza cuando Nmap no puede determinar si un
puerto se encuentra cerrado o filtrado, y puede aparecer
aparecer sólo durante un sondeo IPID pasivo.
TECNICAS DE ESCANEO
TCP connect()
• Esta técnica es quizá la más común en cualquier software de
escaneo de puertos. La técnica consiste en usar la llamada
connect() de TCP para intentar establecer una conexión con
cada uno de los puertos del host a escanear. Si la conexión se
establece, el puerto está abierto (escuchando conexiones); en
caso de recibir un aviso de cierre de conexión (RST), el puerto
estará cerrado; y en caso de no recibir respuesta, se deduce que
el puerto está silencioso.
• Este tipo de escaneo es extremadamente rápido, pues puede
realizarse de forma paralela para distintos puertos mediante el uso
de varios sockets. Además, es un escaneo fácil de implementar.
• Su principal desventaja es que es llamativo en exceso, pues
resulta a todas luces llamativo establecer cientos o miles de
conexiones en un margen de pocos segundos. Además, al
realizarse intentos completos de conexión, cualquier sistema
guardará registros.
TCP connect()
• Comportamiento del escaneo:
• Puerto TCP Abierto
• En nmap podemos invocar un escaneo TCP
connect() mediante el comando:
• nmap -vv -P0 -sT xxx.xxx.xxx.xxx
SYN
ACK
SYN / ACK
TCP connect()
• Comportamiento del escaneo:
• Puerto TCP Cerrado
• En nmap podemos invocar un escaneo TCP
connect() mediante el comando:
• nmap -vv -P0 -sT xxx.xxx.xxx.xxx
SYN
RST
TCP connect()
• Comportamiento del escaneo:
• Puerto TCP Sin Respuesta
• En nmap podemos invocar un escaneo TCP
connect() mediante el comando:
• nmap -vv -P0 -sT xxx.xxx.xxx.xxx
SYN
TCP SYN
• Esta técnica, también conocida como Half-open scan (es el escaneo medio abierto por
excelencia), es parecida a la anterior con la importante salvedad de no establecer completamente
las conexiones.
• En primer lugar, se envía un paquete SYN que finge intentar establecer una conexión y se
espera la respuesta. Si llega un paquete SYN/ACK significa que el puerto está abierto; si llega
un paquete RST, el puerto está cerrado; y si no se recibe respuesta se asume que está
silencioso. En el caso de que el puerto esté abierto y recibamos el paquete SYN/ACK (es decir,
están completos dos de los tres pasos del saludo en tres tiempos), nosotros no responderemos
con un paquete ACK como sería lo esperado, sino que mandaremos un paquete RST. ¿Para
qué? Pues precisamente para evitar que se complete el inicio de conexión y, por tanto, evitar
que el sistema registre el suceso como un intento de conexión. En sistemas sin protección
específica de cortafuegos o IDS, este escaneo suele pasar desapercibido.
• Una característica importante de este escaneo es que requiere elevados privilegios en el
sistema para poder lanzarlo, debido a que este tipo de paquetes usan sockets TCP raw. Por
tanto, solo el root puede lanzar escaneos TCP SYN.
• La principal ventaja de este tipo de escaneo es que suele ser bastante discreto y ofrece unos
resultados bastante buenos.
• Entre sus desventajas encontramos el que es algo lento de realizar, y que un sistema con un
firewall o un IDS (aunque algunos muy básicos no) lo detectará e identificará como escaneo
de puertos sin ninguna duda.
TCP SYN
• Comportamiento del escaneo:
• Puerto TCP Abierto
• En nmap podemos invocar un escaneo TCP
SYN mediante el comando:
– nmap -vv -P0 -sS xxx.xxx.xxx.xxx
SYN
RST
SYN / ACK
TCP SYN
• Comportamiento del escaneo:
• Puerto TCP Cerrado
• En nmap podemos invocar un escaneo TCP
SYN mediante el comando:
– nmap -vv -P0 -sS xxx.xxx.xxx.xxx
SYN
RST
TCP SYN
• Comportamiento del escaneo:
• Puerto TCP Sin Respuesta
• En nmap podemos invocar un escaneo TCP
SYN mediante el comando:
– nmap -vv -P0 -sS xxx.xxx.xxx.xxx
SYN
TCP FIN
• El escaneo TCP FIN, también conocido como Stealth scan (se trata del escaneo silencioso más
conocido), es uno de los más discretos que podemos encontrar dentro de las técnicas
convencionales. Se apoya en una particularidad de los estándares internacionales de TCP/IP.
• A la hora de realizar el escaneo, se envía un paquete FIN al puerto del host destino que
queremos escanear. Los estándares de TCP/IP dicen que al recibir un paquete FIN en un puerto
cerrado, se ha de responder con un paquete RST. Así pues, si recibimos RST por respuesta, el
puerto está cerrado, y en caso de no recibir respuesta (se ignora el paquete FIN) el puerto
puede encontrarse abierto o silencioso.
• Ésto supone uno de los principales inconvenientes del escaneo TCP FIN, y es que los puertos
que nos figuran como abiertos, pueden estar en realidad en estado silencioso (puesto que
un puerto silencioso por definición ignora cualquier paquete recibido). Así pues, este tipo de
escaneos no obtienen unos resultados fiables, y ese es su talón de Aquiles.
• Otra gran desventaja de este sistema de escaneo viene de cierta compañía de software que tiene
por costumbre pasarse por el forro cualquier estándar informático... sí, esa misma que estáis
pensando: Microsoft. En los sistemas Windows, un puerto cerrado ignora los paquetes FIN, por
lo que escanear un sistema de este tipo con SYN FIN nos generará una enorme lista de
puertos abiertos, aunque realmente estén cerrados o silenciosos. Así que cuidado a la hora de
usar esta técnica. Como ventaja, tenemos el que estos escaneos pasan desapercibidos en la
gran mayoría de los firewalls, al no intentar establecer ninguna conexión. Un IDS bien
configurado, lo detectará.
TCP FIN
• Comportamiento del escaneo:
• Puerto TCP Abierto
• En nmap podemos invocar un escaneo TCP FIN
mediante el comando:
– nmap -vv -P0 -sF xxx.xxx.xxx.xxx
FIN
TCP FIN
• Comportamiento del escaneo:
• Puerto TCP Cerrado
• En nmap podemos invocar un escaneo TCP FIN
mediante el comando:
– nmap -vv -P0 -sF xxx.xxx.xxx.xxx
FIN
RST
TCP FIN
• Comportamiento del escaneo:
• Puerto TCP Silencioso
• En nmap podemos invocar un escaneo TCP FIN
mediante el comando:
– nmap -vv -P0 -sF xxx.xxx.xxx.xxx
FIN
UDP scan
• Esta técnica, frente a las demás técnicas orientadas a TCP, está orientada al
protocolo UDP y sus puertos.
• Aunque a priori parezca que los puertos UDP no son muy interesantes, servicios
como el rpcbind de Solaris, TFTP, SNMP, NFS... usan todos ellos UDP como
protocolo de transferencia.
• El sistema de escaneo consiste en mandar un paquete UDP vacío (0 bytes de
datos) al puerto que deseamos escanear. Si el puerto está cerrado, el sistema
responderá con un paquete ICMP de tipo 3 (destino inalcanzable). En caso de no
responder, el puerto puede estar abierto o silencioso.
• Este sistema puede presentar un grave problema de carencia de velocidad según
en qué sistemas, y es que en el RFC #1812-”Requirements for IP version 4
routers” (ftp://ftp.rfc-editor.org/in-notes/rfc1812.txt)
• se recomienda limitar la capacidad de generación de mensajes ICMP de error.
En sistemas Linux (consultar el fichero /ipv4/icmp.h de las fuentes del kernel) esta
limitación está fijada en unos 20 mensajes por segundo. Sistemas como Solaris son
más estrictos y tiene la limitación fijada en 2 por segundo. Pero hay un sistema que,
para variar, no hace mucho caso a los estándares, por lo que no tiene ninguna
limitación prefijada... sí: Windows. Un escaneo UDP a un sistema Windows resulta
extremadamente rápido como consecuencia de ello.
UDP scan
• Comportamiento del escaneo:
– host local ---{UDP}---> {O} Puerto UDP abierto en el host remoto
• SIN RESPUESTA
– Host local ---{UDP}---> {X} Puerto UDP cerrado en el host
remoto
– host local <---|ICMP #3|--- {X} Puerto UDP cerrado en el host
remoto
– host local ---{UDP}---> {~} Puerto UDP silencioso en el host
remoto
• SIN RESPUESTA
• En nmap podemos invocar un escaneo UDP mediante el
comando:
– nmap -vv -P0 -sU xxx.xxx.xxx.xxx
ACK scan
• La mayoría de las técnicas de escaneo nos permiten identificar con exactitud los
puertos abiertos o cerrados, pero generalmente los puertos silenciosos no se
pueden identificar con claridad. El escaneo ACK está destinado a identificar de
forma precisa cuándo un puerto se encuentra en estado silencioso. Esta técnica
es usada también para poder escanear hosts que estén detrás de un firewall que
bloquee los intentos de conexión (paquetes SYN).
• Su funcionamiento se basa en el envío de paquetes ACK con números de
secuencia y confirmación aleatorios. Cuando reciba el paquete, si el puerto se
encuentra abierto, responderá con un paquete RST, pues no identificará la
conexión como suya; si el puerto está cerrado responderá con un paquete RST,
pero si no se obtiene respuesta (obviamente primero debemos asegurarnos que el
host está en línea) podemos identificar claramente el puerto como filtrado (puerto
silencioso).
• Normalmente el escaneo ACK se realiza como apoyo a un escaneo anterior, para
determinar los puertos silenciosos y poder identificar mediante una combinación de
técnicas el estado real de todos ellos. Por ejemplo, ante un host con un firewall
que bloquee intentos de conexión (SYN), podemos realizar un FIN scan para
determinar los puertos cerrados, y después un ACK scan para determinar qué
puertos están abiertos y cuáles silenciosos.
• Esta técnica también es usada como variante del ping (ICMP echo) de toda la vida,
para saber si un host está activo (recibiremos respuesta RST) o no (cuando no
hay respuesta o la respuesta es destino inalcanzable).
ACK scan
• Comportamiento del escaneo:
– host local ---[ACK]---> [O] Puerto TCP abierto en el host remoto
– host local <---[RST]--- [O] Puerto TCP abierto en el host remoto
– host local ---[ACK]---> [X] Puerto TCP cerrado en el host remoto
– host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto
– host local ---[ACK]---> [~] Puerto TCP silencioso en el host
remoto
• SIN RESPUESTA
• En nmap podemos invocar un escaneo ACK mediante el
comando:
– nmap -vv -sA xxx.xxx.xxx.xxx
Null scan
• Este escaneo tiene muchos puntos en común con el escaneo
FIN. Su funcionamiento base es el mismo: enviamos un paquete
malformado (en este caso se trata de un paquete TCP con todos
los flags desactivados) y esperamos la respuesta. En caso de que
el puerto destino esté cerrado, nos responderá con un paquete
RST; y en caso de no recibir nada (nuestro paquete es ignorado),
se trata de un puerto abierto o silencioso.
• La ventaja frente al escaneo FIN radica en que ciertos firewalls
vigilan los paquetes de finalización de conexión además de los de
establecimiento, de forma que el escaneo nulo podrá realizarse allí
dónde el FIN no sería posible. El resto de ventajas y desventajas
son las mismas que en el escaneo FIN.
Null scan
• Comportamiento del escaneo:
– host local ---[ ]---> [O] Puerto TCP abierto en el host remoto
• SIN RESPUESTA
– Host local ---[ ]---> [X] Puerto TCP cerrado en el host remoto
– host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto
– host local ---[ ]---> [~] Puerto TCP silencioso en el host remoto
• SIN RESPUESTA
• En nmap podemos invocar un escaneo Null mediante el
comando:
– nmap -vv -P0 -sN xxx.xxx.xxx.xxx
Xmas scan
• El escaneo Xmas se basa también en el principio de la
respuesta RST por parte de un puerto cerrado al recibir
un paquete incorrecto (como el escaneo FIN). En el
caso del escaneo Xmas, se trata de un paquete con
los flags FIN, URG y PSH activados (aunque ciertas
implementaciones activan FIN, URG, PSH, ACK y SYN
e incluso algunas activan todos los flags). Podría decirse
que es lo contrario del escaneo Null, pero logrando el
mismo efecto.
• Al igual que el escaneo Null, se usa bajo ciertas
circunstancias en las que el escaneo FIN no es posible;
y también comparte con éstos sus particularidades.
Xmas scan
• Comportamiento del escaneo:
– host local ---[xmas]---> [O] Puerto TCP abierto en el host remoto
• SIN RESPUESTA
– Host local ---[xmas]---> [X] Puerto TCP cerrado en el host
remoto
– host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto
– host local ---[xmas]---> [~] Puerto TCP silencioso en el host
remoto
• SIN RESPUESTA
• En nmap podemos invocar un escaneo Xmas mediante
el comando:
– nmap -vv -P0 -sX xxx.xxx.xxx.xxx
SYN/ACK scan
• Este tipo de escaneo tiene una base parecida a los anteriormente
citados FIN, Null y Xmas, pero con la sustancial diferencia de que
en este caso los paquetes malformados fingen ser un error en la
transacción de una conexión legítima. Mediante esta técnica, se
envía un paquete SYN/ACK al puerto que deseamos escanear en
el host remoto. Si el puerto se encuentra cerrado, nos responderá
con un paquete RST. En caso de estar abierto o silencioso,
simplemente ignorará el paquete y no obtendremos respuesta.
• Como ventaja, este tipo de escaneo evade la mayoría de firewalls
e IDS sencillos, pero comparte con los escaneos anteriormente
citados sus problemas, principalmente la falta de fiabilidad a la
hora de determinar los puertos abiertos o silenciosos.
SYN/ACK scan
• Comportamiento del escaneo:
– host local ---[SYN/ACK]---> [O] Puerto TCP abierto en
el host remoto
• SIN RESPUESTA
– Host local ---[SYN/ACK]---> [X] Puerto TCP cerrado
en el host remoto
– host local <---[RST]--- [X] Puerto TCP cerrado en el
host remoto
– host local ---[SYN/ACK]---> [~] Puerto TCP silencioso
en el host remoto
• SIN RESPUESTA
• En nmap no se encuentra implementado este
tipo de escaneo.
Ping sweep
• Un ping sweep (también llamado barrido de ping) no es en realidad una técnica de escaneo de puertos... sino
más bien una técnica de escaneo de hosts.
• Es el momento de hablar de una opción de nmap que he incluido en el ejemplo de todos los escaneos de los que
hemos hablado hasta ahora. Es la opción -P0. Veamos qué dice la guía de referencia rápida de nmap (nmap -h)
al respecto de este comando...
– P0 Don't ping hosts (needed to scan www.microsoft.com and others)
• Efectivamente, mediante esta opción logramos que, antes de realizar el escaneo de puertos propiamente dicho, el
software no compruebe si el host está activo. Y os preguntaréis, ¿para qué demonios me gustaría a mí que no
se realizara esa comprobación? Pues es una técnica muy común el denegar, vía firewall, la salida de paquetes
ICMP echo reply. Así, al realizar un ping a un host, éste no responde y puede parecer que esté inactivo. Probad
a realizar un ping a www.microsoft.com y luego visitad su web.
• Ahora imaginad que el objetivo de nuestro escaneo va a ser toda una red (por ejemplo 192.168.0.0/24), en lugar
de un único host. Lo primero que nos interesará es saber qué hosts están activos, pues si escaneamos toda la
red con la opción -P0, perderemos mucho tiempo mandando paquetes y esperando la respuesta de equipos que
en realidad están inactivos. Pero cabe la posibilidad de que algunos equipos nos hagan creer que están inactivos
cuando en realidad no lo están... y aquí es donde entran las diversas técnicas de ping sweep.
• Mediante esta técnica, se realiza un barrido comprobando qué host dentro de un rango se encuentran
activados. Los métodos para comprobar esto son varios:
• TCP echo: Envío de paquetes TCP al puerto echo (TCP/7). Si recibe respuesta, el host está activo.
• UDP echo: Envío de paquetes UDP al puerto echo (UDP/7). Si recibe respuesta, el host está activo.
• TCP ACK: Envío de paquetes TCP ACK. Si se obtiene respuesta RST, el host está activo.
• TCP SYN: Envío de paquetes TCP SYN. Si se obtiene respuesta RST o SYN/ACK, el host está activo.
• ICMP echo: Este es el ping de toda la vida. ICMP echo request e ICMP echo reply.
Ping sweep
• Aunque todas ellas son válidas, incluso el ping clásico, las más efectivas
son TCP ACK y TCP SYN. TCP echo y UDP echo no son muy usadas ni
útiles, pues prácticamente ningún host tendrá abierto el puerto echo y si lo
tiene, es poco probable que bloquee los intentos de ping normales.
• En nmap podemos invocar un ping sweep mediante estos comandos:
– TCP ACK: nmap -vv -sP -PT xxx.xxx.xxx.xxx/xx
– TCP SYN: nmap -vv -sP -PS xxx.xxx.xxx.xxx/xx
– ICMP echo: nmap -vv -sP -PI xxx.xxx.xxx.xxx/xx
– TCP ACK e ICMP echo en paralelo: nmap -vv -sP -PB xxx.xxx.xxx.xxx/xx
• La técnica TCP ACK e ICMP echo en paralelo realiza a la vez ambas
técnicas, de forma que se pueda evadir un firewall que implemente
protección contra una de esas técnicas. Este modo es el usado por nmap
en caso de no especificar ninguno (nmap -vv -sP xxx.xxx.xxx.xxx/xx).
• Es útil reforzar la exploración del modo -PB con un ping TCP SYN (-PS),
pues ciertos firewalls bloquean tanto los intentos de ping ICMP echo como
TCP ACK.
DESCUBRIENDO SISTEMAS
• 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.
• Siendo tan diversas las necesidades de descubrimiento de sistemas, Nmap ofrece una gran variedad de opciones
para personalizar las técnicas utilizadas. Al descubrimiento de sistemas («Host Discovery») se lo suele llamar
sondeo ping, pero va más allá de la simple solicitud ICMP echo-request de los paquetes asociados al querido y
nunca bien ponderado ping. Los usuarios pueden evitar el paso de ping utilizando un sondeo de lista (-sL) o
deshabilitando el ping (-P0), o enviando combinaciones arbitrarias de sondas TCP SYN/ACK, UDP e ICMP a
múltiples puertos de la red remota. El propósito de estas sondas es el de solicitar respuestas que demuestren que
una dirección IP se encuentra activa (está siendo utilizada por un equipo o dispositivo de red). En varias redes
solo un pequeño porcentaje de direcciones IP se encuentran activos en cierto momento. Esto es particularmente
común en las redes basadas en direccionamiento privado RFC1918, como la 10.0.0.0/8. Dicha red tiene más de
16 millones de direcciones IP, pero la he visto siendo utilizada por empresas con menos de mil máquinas. El
descubrimiento de sistemas puede encontrar dichas maquinas en un rango tan grande como el indicado.
• Si no se proveen opciones de descubrimiento de sistemas, Nmap envía un paquete TCP ACK al puerto 80 y un
ICMP Echo Request a cada máquina objetivo. Una excepción a este comportamiento es cuando se utiliza un
análisis ARP, para los objetivos que se encuentren en la red Ethernet local. Para usuarios de shell UNIX que no
posean privilegios, un paquete SYN es enviado en vez del ACK, utilizando la llamada al sistema connect(). Estos
valores por omisión son el equivalente a las opciones -PA -PE. Este descubrimiento de sistemas es generalmente
suficiente cuando se analizan redes locales, pero para auditorías de seguridad se recomienda utilizar un conjunto
más completo de sondas de descubrimiento.
DESCUBRIENDO SISTEMAS
• Las opciones -P* (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 (-PR) se realiza por omisión contra objetivos
de la red Ethernet local incluso si se especifica otra de las opciones -P*, porque es
generalmente más rápido y efectivo.
• Las siguientes opciones controlan el descubrimiento de sistemas.
• -sL (Sondeo de lista)
– El sondeo de lista es un tipo de descubrimiento de sistemas que tan solo lista cada equipo
de la/s red/es especificada/s, sin enviar paquetes de ningún tipo a los objetivos. Por omisión,
Nmap va a realizar una resolución inversa DNS en los equipos, para obtener sus nombres.
Es sorprendente cuanta información útil se puede obtener del nombre de un sistema. Por
ejemplo fw.chi.playboy.com es el cortafuegos de la oficina en Chicago de Playboy
Enterprises. Adicionalmente, al final, Nmap reporta el número total de direcciones IP. El
sondeo de lista es una buena forma de asegurarse de que tenemos las direcciones IP
correctas de nuestros objetivos. Si se encontraran nombres de dominio que no reconoces,
vale la pena investigar un poco más, para evitar realizar un análisis de la red de la empresa
equivocada.
– Ya que la idea es simplemente emitir un listado de los sistemas objetivo, las opciones de
mayor nivel de funcionalidad como análisis de puertos, detección de sistema operativo, o
análisis ping no pueden combinarse con este sondeo. Si desea deshabilitar el análisis ping
aún realizando dicha funcionalidad de mayor nivel, compruebe la documentación de la
opción -P0.
DESCUBRIENDO SISTEMAS
• -sP (Sondeo ping)
– Esta opción le indica a Nmap que únicamente realice descubrimiento de sistemas mediante
un sondeo ping, y que luego emita un listado de los equipos que respondieron al mismo. No
se realizan más sondeos (como un análisis de puertos o detección de sistema operativo). A
diferencia del sondeo de lista, el análisis ping es intrusivo, ya que envía paquetes a los
objetivos, pero es usualmente utilizado con el mismo propósito. Permite un reconocimiento
liviano de la red objetivo sin llamar mucho la atención. El saber cuántos equipos se
encuentran activos es de mayor valor para los atacantes que el listado de cada una de las IP
y nombres proporcionado por el sondeo de lista.
– De la misma forma, los administradores de sistemas suelen encontrar valiosa esta opción.
Puede ser fácilmente utilizada para contabilizar las máquinas disponibles en una red, o
monitorizar servidores. A esto se lo suele llamar barrido ping, y es más fiable que hacer ping
a la dirección de broadcast, ya que algunos equipos no responden a ese tipo de consultas.
– La opción -sP envía una solicitud de eco ICMP y un paquete TCP al puerto 80 por omisión.
Cuando un usuario sin privilegios ejecuta Nmap se envía un paquete SYN (utilizando la
llamada connect()) al puerto 80 del objetivo. Cuando un usuario privilegiado intenta analizar
objetivos en la red Ethernet local se utilizan solicitudes ARP (-PR) a no ser que se
especifique la opción --send-ip.
– La opción -sP puede combinarse con cualquiera de las opciones de sondas de
descubrimiento (las opciones -P*, excepto -P0) para disponer de mayor flexibilidad. Si se
utilizan cualquiera de las opciones de sondas de descubrimiento y número de puerto, se
ignoran las sondas por omisión (ACK y solicitud de eco ICMP). Se recomienda utilizar estas
técnicas si hay un cortafuegos con un filtrado estricto entre el sistema que ejecuta Nmap y la
red objetivo. Si no se hace así pueden llegar a pasarse por alto ciertos equipos, ya que el
cortafuegos anularía las sondas o las respuestas a las mismas.
DESCUBRIENDO SISTEMAS
• -P0 (No realizar ping)
– Con esta opción, Nmap no realiza la etapa de descubrimiento. Bajo
circunstancias normales, Nmap utiliza dicha etapa para determinar qué
máquinas se encuentran activas para hacer un análisis más agresivo.
Por omisión, Nmap sólo realiza ese tipo de sondeos, como análisis de
puertos, detección de versión o de sistema operativo contra los equipos
que se están «vivos». Si se deshabilita el descubrimiento de sistemas
con la opción -P0 entonces Nmap utilizará las funciones de análisis
solicitadas contra todas las direcciones IP especificadas. Por lo tanto, si
se especifica una red del tamaño de una clase B cuyo espacio de
direccionamiento es de 16 bits, en la línea de órdenes, se analizará
cada una de las 65.536 direcciones IP. El segundo carácter en la
opción -P0 es un cero, y no la letra O. Al igual que con el sondeo de
lista, se evita el descubrimiento apropiado de sistemas, pero, en vez de
detenerse y emitir un listado de objetivos, Nmap continúa y realiza las
funciones solicitadas como si cada IP objetivo se encontrara activa.
DESCUBRIENDO SISTEMAS
• -PS [lista de puertos] (Ping TCP SYN)
– Esta opción envía un paquete TCP vacío con la bandera SYN 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. -
PS22,23,25,80,113,1050,35000). Si hace esto se enviarán sondas en paralelo a cada uno de los
puertos.
– La bandera SYN indica al sistema remoto que quiere establecer una conexión. Normalmente, si el
puerto destino está cerrado se recibirá un paquete RST (de «reset»). Si el puerto está abierto
entonces el objetivo responderá con el segundo paso del saludo en tres pasos TCP respondiendo
con un paquete TCP SYN/ACK. El sistema donde se ejecuta Nmap romperá la conexión que se
está estableciendo enviando un paquete RST en lugar de enviar el paquete ACK que completaría
el saludo TCP. Nmap no envía este paquete, sino que lo envía el núcleo del sistema donde se
ejecuta Nmap respondiendo al paquete SYN/ACK que no esperaba.
– A Nmap no le importa si el puerto está abierto o cerrado. Si, tal y como se acaba de describir, llega
una respuesta RST ó SYN/ACK entonces Nmap sabrá que el sistema está disponible y responde.
– En sistemas UNIX, generalmente sólo el usuario privilegiado root puede enviar paquetes TCP
crudos. Los usuarios no privilegiados tienen una forma de evitar esta restricción utilizando la
llamada al sistema «connect()» contra el puerto destino. Esto hace que se envíe el paquete SYN al
sistema, para establecer la conexión. Si la llamada «connect()» devuelve un resultado de éxito
rápidamente o un fallo ECONNREFUSED entonces se puede deducir que la pila TCP que tiene
bajo ésta ha recibido un SYN/ACK o un RST y que puede marcar el sistema como disponible. El
sistema se puede marcar como no disponible si el intento de conexión se mantiene parado hasta
que vence un temporizador. Esta es también la forma en la que se gestiona esto en conexiones
IPv6 ya que Nmap aún no puede crear paquetes IPv6 crudos.
DESCUBRIENDO SISTEMAS
• PA [lista de puertos] (Ping TCP ACK)
– El ping TCP ACK es muy parecido al ping SYN 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 SYN. 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 -PA utiliza el mismo puerto por omisión que la sonda SYN (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 SYN en lugar de un ACK.
– Se ofrecen tanto mecanismos de sondeo con ping SYN y ACK para maximizar las posibilidades de
atravesar cortafuegos. Muchos administradores configuran los enrutadores y algunos cortafuegos
sencillos para que se bloqueen los paquetes SYN salvo para aquellos destinados a los servicios
públicos, como pudieran ser el servidor web o el servidor de correo de la organización. Esto evita
que se realicen otras conexiones entrantes al mismo tiempo que permite a los usuarios realizar
conexiones salientes a Internet. Este acercamiento de filtrado sin estados toma pocos recursos de
los cortafuegos/enrutadores y está ampliamente soportado por filtros hardware y software. El
programa de cortafuegos Netfilter/iptables de Linux ofrece la opción --syn para implementar este
acercamiento sin estados. Cuando se han implementado reglas de filtrado como éstas es posible
que se bloqueen las sondas ping SYN (-PS) cuando éstas se envíen a un puerto cerrado. Sin
embargo, en estos casos, las sondas ACK podrían saltarse las reglas y llegar a su destino.
– Otros tipos de cortafuegos comunes utilizan reglas con estados que descartan paquetes no
esperados. Esta funcionalidad se encontraba antes fundamentalmente en los cortafuegos de gama
alta pero se ha hecho cada vez más común. El sistema Netfilter/iptables de Linux soporta esta
posibilidad a través de la opción --state, que hace categorías de paquetes en base a su estado de
conexión. En estos sistemas es más probable que funcione una sonda SYN, dado que los
paquetes ACK no esperados se reconocen como falsos y se descartan. Una solución a este dilema
es enviar sondas SYN y ACK especificando tanto la opción -PS como -PA.
DESCUBRIENDO SISTEMAS
• -PU [lista de puertos] (Ping UDP)
– 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 -PS y -PA
. 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 Nmap 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 Nmap a determinar que el
sistema está disponible.
– La principal ventaja de este tipo de sondeos es que atraviesan cortafuegos y filtros que sólo
analizan TCP. Yo, por ejemplo, una vez fui propietario de un encaminador de banda ancha
inalámbrico BEFW11S4. El interfaz externo de este dispositivo filtraba por omisión todos los
puertos TCP, pero las sondas UDP podían generar mensajes de puerto no alcanzable y
permitían detectar al dispositivo.
DESCUBRIENDO SISTEMAS
• -PE; -PP; -PM (Tipos de ping ICMP)
– Nmap puede enviar los paquetes estándar que envía el programa ping además de los tipos
de descubrimiento de equipos con TCP y UDP. Nmap envía paquetes ICMP tipo 7 («echo
request») a las direcciones IP objetivos y espera recibir un tipo 0 («Echo Reply») de los
sistemas que estén disponibles. Lamentablemente para los exploradores de redes, muchos
sistemas y cortafuegos ahora bloquean esos paquetes en lugar de responder como requiere
el estándar RFC 1122. Por ésta razón los sondeos que sólo utilizan el protocolo ICMP no
son muy fiables para analizar sistemas desconocidos en Internet. Aunque pueda ser una
forma eficiente y práctica de hacerlo para administradores que tengan que monitorizar una
red interna. Utilice la opción -PE para activar este comportamiento de solicitud de eco.
– Nmap no hace sólo ésto, aunque la solicitud eco es la consulta estándar de ping ICMP. El
estándar ICMP (RFC 792) también específica solicitudes de huellas de tiempo, de
información y de máscara de red, que corresponden con los códigos 13, 15 y 17
respectivamente. Aunque el objetivo de estas solicitudes es obtener la máscara de red o
fecha actual de un sistema también pueden utilizarse para descubrir sistemas. Un sistema
que responde es por que está vivo y disponible. Nmap no implementa los paquetes de
solicitud de información en sí, ya que no están muy soportados. El estándar RFC 1122
insiste en que “un equipo NO DEBE implementar estos mensajes”. Las consultas de huella
de tiempo y máscara de red se pueden enviar con las opciones -PP y -PM, respectivamente.
Si se recibe una respuesta de huella de tiempo (código ICMP 14) o de máscara de red
(código 18) entonces es que el sistema está disponible. Estas dos consultas pueden ser
útiles cuando los administradores bloquean los paquetes de consulta eco explícitamente
pero se olvidan de que se pueden utilizar otras consultas ICMP con el mismo fin.
DESCUBRIENDO SISTEMAS
• -PR (Ping ARP)
– Una de las formas de uso más comunes de Nmap 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 Nmap 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.
– El sondeo ARP hace que sea Nmap y su algoritmo optimizado el que se encargue de las
solicitudes ARP. Si recibe una respuesta, no se tiene ni que preocupar de los paquetes
basados en IP dado que ya sabe que el sistema está vivo. Esto hace que el sondeo ARP
sea mucho más rápido y fiable que los sondeos basados en IP. Por ello se utiliza por
omisión cuando se analizan sistemas Ethernet si Nmap detecta que están en la red local.
Nmap utiliza ARP para objetivos en la misma red local aún cuando se utilicen distintos tipos
de ping (como -PE o -PS). Si no quiere hacer un sondeo ARP tiene que especificar la opción
--send-ip.
• -n (No realizar resolución de nombres)
– Le indica a Nmap que nunca debe realizar resolución DNS inversa de las direcciones IP
activas que encuentre. Ya que DNS es generalmente lento, esto acelera un poco las cosas.
DESCUBRIENDO SISTEMAS
• -R (Realizar resolución de nombres con todos los objetivos)
– Le indica a Nmap que deberá realizar siempre la resolución DNS inversa de las
direcciones IP objetivo. Normalmente se realiza esto sólo si se descubre que el
objetivo se encuentra vivo.
• --system-dns (Utilizar resolución DNS del sistema)
– Por omisión, Nmap resuelve direcciones IP por si mismo enviando las consultas
directamente a los servidores de nombres configurados en el sistema, y luego
espera las respuestas. Varias solicitudes (generalmente docenas) son
realizadas en paralelo para mejorar el rendimiento. Especifica esta opción si
desea que sí utilice la resolución del sistema (una IP por vez utilizando la
llamada getnameinfo()). Este método es más lento y raramente útil, a no ser que
hubiera un error en el código DNS de Nmap (por favor, notifíquelo si ese fuera el
caso). Éste es el método por omisión para los sondeos IPv6.
• --dns-servers <servidor1[,servidor2],...> (Servidores a utilizar para las
consultas DNS)
– Nmap generalmente determina los servidores DNS de su archivo resolv.conf
(UNIX) o del registro (Win32). Puede utilizar esta opción para especificar sus
propios servidores. Esta opción no se utiliza si utiliza la opción --system-dns o
está realizando un sondeo IPv6. La resolución a través de más de un servidor de
DNS es generalmente más rápida que la consulta a uno solo.
EJEMPLOS
• El parametro ‘-sS’ este parametro solo se puede usar con privilegios de root
y te scanea en modo stealth, y todos los puertos que puedes tener.
Veamos el siguiente ejemplo:
– nmap -sS 67.15.192.2
• Este parametro, puedes utilizarlo cuando quieres ver los puertos que tiene
abierto de un host en especifico y que servicios son los que corre ese
puerto.
• El parametro ‘-sT’ se utiliza igual que el parametro ‘-sS’ solo que este no
trabaja en modo stealth y no necesitas tener privilegios de root para usarlo.
y en vista que se utiliza para lo mismo no es necesario poner un ejemplo
del mismo.
• El paramero ‘-sU’ este parametro es utilizado para scanear puerto UDP
trabaja de igual modo que los parametros anteriores solo que en lugar de
escanear TCP escanea UDP, esta mas que claro.
• El parametro es ‘-sP’ este parametro es utilizado para pingear al host y ver
si esta up o esta down, veamos el siguiente ejemplo:
– nmap -sP 67.15.192.2
EJEMPLOS
• *Los siguientes parametros son ‘-sX,-sF,-sN’, los 3
parametros tienen el mismo funcionamiento, veamos los
siguientes ejemplos de cada parametro:
– nmap -sX 67.15.192.2
• *El siguiente parametro es ‘-sV’ es utilizado para
determinar el servicio y app (nombres/versiones).
• Otro parametro es el ‘-sR’ es utilizado para explorar el
RPC, como en el siguiente ejemplo:
– nmap -sR 67.15.192.2
• *el siguiente parametro u opcion es ‘-O’ este es utilizado
para hacer un fingerprinting al host remoto y detectar
que sistema operativo esta usando, veamos el siguiente
ejemplo de este parametro:
– nmap -O 67.15.192.2
EJEMPLOS
• *El siguiente parametro es ‘-sV’ es utilizado para determinar el servicio y app
(nombres/versiones).
• Otro parametro es el ‘-sR’ es utilizado para explorar el RPC, como en el siguiente ejemplo:
– nmap -sR 67.15.192.2
• *el siguiente parametro u opcion es ‘-O’ este es utilizado para hacer un fingerprinting al host
remoto y detectar que sistema operativo esta usando, veamos el siguiente ejemplo de este
parametro:
– nmap -O 67.15.192.2
• *Ahora Veamos el siguiente parametro que es ‘-p’ es para scanear un rango de ports en
especifico, por ejemplo utilizando la siguiente sintaxys:
– nmap -p 1-10,80,110,22 67.15.192.2
• Para que lo tengan mas claro veamos el siguiente ejemplo:
– nmap -p 80,22,110,5000 67.15.192.2
• *Otro parametro es ‘-F’ este es utilizado para explorar solo los puertos enumerados del nmap-
services. Veamos el ejemplo:
– nmap -F 67.15.192.2
• *Bien ahora otro parametro y muy importante es el ‘-v’ el cual es utilizado para obtener
informacion de un host, y tambien puedes agregarle otra v para que obtenga mas informacion y
es recomendable . Por ejemplo:
– nmap -v 67.15.192.2
• *Otro parametro es ‘-P0′ este parametro es utilizado para que no pingee al host.
EJEMPLOS
• *otro parametro e importante es guardar logs de tus scaneos realizados
este es el parametro ‘oN,-oX,-oG’ la sintaxys es la siguiente:
– Sintaxys: -oG logfile
– Por ejemplo: nmap parametros ‘ip’ -oG log.txt
• unas de las utilidades ke se puede hacer con el famoso scaner nmap es
esto, por ejemplo: si quieres scanear un rango determinado solamente
utilizas este comando
– nmap -v ip -p 80
– o bien para guardar el log solo tendrias que poner el parametro ‘-oG log.txt’.
• Este famoso scanner tiene funciones que son muy interesante y las
combinaciones que se les puede dar y lo rápido que es el scanner otra
funcionalidad que le puedes dar ala hora scanear un determinado host es
utilizando este comando
– nmap -sS -P0 -O ip -oG log.txt
• también pueden hacer esto si quieren scanear un rango en specifico por
ejemplo:
– nmap -p 22 200.92.*.* -oG log.txt
EJEMPLOS
• La sintaxis básica de nmap es:
– nmap [tipo de scan] [opciones]
• Por ejemplo si tenemos un host en nuestra red, con direccion ip 192.168.0.1 y deseamos conocer que puertos
tiene abiertos, ejecutamos:
– nmap 192.168.0.1
• Si queremos, conocer que tipo de sistema operativo, esta corriendo el host al que le realizamos el scaneo, sólo
basta agregar el parámetro -O a el comando nmap.
– nmap -O 192.168.0.1
• Pero como hace nmap, para reconocer el sistema operativo, que se esta ejecutando en el host destino?.
• Básicamente, cada sistema operativo, responde diferente, cuando se le envían paquetes tcp específicos, así se
logra determinar con una buena exactitud,que sistema operativo se esta ejecutando.
• Al ejecutar nmap, contra un host con sistema operativo Windows XP, se produjo este resultado:
• Veamos un par de opciones más interesantes que posee nmap.
• Identificando los hosts activos, en nuestra red.
• Supongamos, que tenemos una red, 192.168.0.x, y deseamos conocer que hosts se encuentran activos,
fácilmente, lo podemos saber con nmap, esto lo podemos conocer al realizar un ping scan.
– nmap -sP 192.168.0.1-255
• *Nota: esta herramienta puede ser utilizada para realizar auditorias de seguridad en una red, pero también puede
ser utilizada para fines delictivos, ya que esta herramienta pone al descubierto, puertos abiertos en las
computadoras de una red, así como también es posible conocer como se encuentra organizada, y de cuantas
computadoras consta una red.
EJEMPLOS
• Realizando Stealth Scans .
• Con este tipo de scan, se pretende no ser detectado por software de detección de scaneos, se envían paquetes a los hosts con ciertos
"flags" TCP activados o desactivados para evitar ser detectados.
• sN: Stealth, Null Scan, este tipo de scan pone en off todos los flags.
• sF: Stealth FIN Scan, este tipo de scan usa paquetes con el flag FIN activado para las pruebas.
• sX: Stealth Xmas Tree Scan, este tipo de scan envia paquetes con los flag FIN, URG, y PUSH activados.
• sp: Ping Scan, realiza un scan dentro de un rango especifico de hosts. útil para conocer que hosts se encuentran en linea sin ser
detectados.
• Si deseamos hacer un stealth scan del tipo Xmas Tree, y ademas deseamos conocer que sistema operativo esta corriendo el host de
destino, ejecutamos:
– nmap -sX -O 192.168.1.2
• Despistalo con un Decoy Scan:
• -D: Esta opción se utiliza para tratar de engañar al host, al cual se esta "scaneando", que los scans se estan generando desde otros
hosts, que se especifican en la opción -D.
• En el siguiente ejemplo, realizamos un Stealth Xmas Tree scan (-sX) hacia el host 192.168.0.1, en los puertos 25(SMTP), 53(DNS), le
indicamos a nmap que no genere pings hacia el host, y tratamos de engañar al host (-D, Decoy), haciendole creer que los scans se estan
generando desde los hosts 1.2.3.4 y 5.6.7.8.
– nmap -p 25,53 -sX -P0 -D 1.2.3.4,5.6.7.8 192.168.0.1
• Guardando los resultados de tus scans.
• Nmap permite guardar los resultados de un scan, en varios tipos de formato de archivo: Normal, XML, Grepable, All, y en formato "S"
(s|<ipT kiDd|3 f0rM iNto THe fiL3 U sPecfy 4s an arGuMEnT!, o mejor conocido como formato Script Kiddie!).
• Si deseamos hacer un stealth scan del tipo Xmas Tree, también deseamos conocer que sistema operativo esta corriendo el host de
destino, y ademas deseamos guardar el resultado de este scan en un archivo llamado "scanresult.txt", ejecutamos:
– nmap -sX -O 192.168.1.2 -oN scanresult.txt
• Ahora si lo que deseamos es realizar el scan anterior pero dentro de un rango de hosts específicos, digamos del host 192.168.1.1 hasta
la ip 192.168.1.255 , y deseamos guardar el resultado del scan en un archivo de texto normal entonces ejecutamos:
– nmap -sX -O 192.168.1.1-255 -oN scanresult.txt
EJEMPLOS
• supongamos que la victima tiene este ip :200.12.23.34
• para hacer un scan simple de este host basta con hacer esto:
– nmap 200.12.23.34
• Determinar si ciertos puertos están disponibles en la victima entonces hacemos esto.
– nmap -p 21,23,110,143 200.12.23.34
• Si esta vez quiero determinar que SO esta corriendo la victima la opción es hacer esto :
– nmap -sS -O 200.12.23.34
• notese que estoy utilizando la opción -sS para evitar ser detectado al hacer el scan, pero también
puede funcionar de esta forma pero serás automáticamente registrado en log del sistema victima:
– nmap -O 200.12.23.34
• Para determinar si la victima es vulnerable al "bounce attack" entonces lo utilizamos asi:
– nmap -b 200.12.23.34
• o de esta forma si el host tiene sensibles mecanismos de detección de intrusos.
– nmap -P0 -b 200.12.23.34
• Ahora si deseo realizar un scan muy suave para no ser detectado por algún firewall utilizo estas
opciones con el -f ya que algunos firewall poseen métodos para detectar este tipo de scan.
– nmap -sF -f -p 21 23 110 143 200.12.23.34

Mais conteúdo relacionado

Mais procurados

Tabla comparativa entre los protocolos tcp y udp
Tabla comparativa entre los protocolos tcp y udpTabla comparativa entre los protocolos tcp y udp
Tabla comparativa entre los protocolos tcp y udpJosé Alexis Cruz Solar
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesDaniel Morales
 
Seguridad Externa de los S.O
Seguridad Externa de los S.OSeguridad Externa de los S.O
Seguridad Externa de los S.Oyareimi
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transportelaura1352
 
Carrier-sense multiple access with collision avoidance CSMA/CA
Carrier-sense multiple access with collision avoidance CSMA/CACarrier-sense multiple access with collision avoidance CSMA/CA
Carrier-sense multiple access with collision avoidance CSMA/CASoumen Santra
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativosG Hoyos A
 
Taller: Exploración de redes con Nmap
Taller: Exploración de redes con NmapTaller: Exploración de redes con Nmap
Taller: Exploración de redes con NmapWebsec México, S.C.
 
Presentacion exposicion udp y tcp
Presentacion exposicion udp y tcpPresentacion exposicion udp y tcp
Presentacion exposicion udp y tcpOscar Eduardo
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socketRene Guaman-Quinche
 
Mikrotik ultimo manual
Mikrotik ultimo manualMikrotik ultimo manual
Mikrotik ultimo manualChristian Val
 
Escaneo de puertos clase 2 complemento b 28 02-13
Escaneo de puertos clase 2 complemento b 28 02-13Escaneo de puertos clase 2 complemento b 28 02-13
Escaneo de puertos clase 2 complemento b 28 02-13Tensor
 

Mais procurados (20)

Algoritmo de Anillo
Algoritmo de AnilloAlgoritmo de Anillo
Algoritmo de Anillo
 
Tabla comparativa entre los protocolos tcp y udp
Tabla comparativa entre los protocolos tcp y udpTabla comparativa entre los protocolos tcp y udp
Tabla comparativa entre los protocolos tcp y udp
 
Gestion de memoria en Linux
Gestion de memoria en LinuxGestion de memoria en Linux
Gestion de memoria en Linux
 
Transparencia
TransparenciaTransparencia
Transparencia
 
Control de flujo en Telecomunicaciones
Control de flujo en TelecomunicacionesControl de flujo en Telecomunicaciones
Control de flujo en Telecomunicaciones
 
Seguridad Externa de los S.O
Seguridad Externa de los S.OSeguridad Externa de los S.O
Seguridad Externa de los S.O
 
Presentación modelo osi
Presentación   modelo osiPresentación   modelo osi
Presentación modelo osi
 
Zonas dmz y_puertos
Zonas dmz y_puertosZonas dmz y_puertos
Zonas dmz y_puertos
 
Capa de transporte
Capa de transporteCapa de transporte
Capa de transporte
 
Modelo OSI
Modelo OSIModelo OSI
Modelo OSI
 
Fast ethernet
Fast ethernetFast ethernet
Fast ethernet
 
Carrier-sense multiple access with collision avoidance CSMA/CA
Carrier-sense multiple access with collision avoidance CSMA/CACarrier-sense multiple access with collision avoidance CSMA/CA
Carrier-sense multiple access with collision avoidance CSMA/CA
 
Procesos Introduccion a los sistemas operativos
 Procesos Introduccion a los sistemas operativos Procesos Introduccion a los sistemas operativos
Procesos Introduccion a los sistemas operativos
 
IPv6
IPv6IPv6
IPv6
 
VLSM y CIDR
VLSM   y  CIDRVLSM   y  CIDR
VLSM y CIDR
 
Taller: Exploración de redes con Nmap
Taller: Exploración de redes con NmapTaller: Exploración de redes con Nmap
Taller: Exploración de redes con Nmap
 
Presentacion exposicion udp y tcp
Presentacion exposicion udp y tcpPresentacion exposicion udp y tcp
Presentacion exposicion udp y tcp
 
Comunicacion intra procesos con socket
Comunicacion intra procesos con socketComunicacion intra procesos con socket
Comunicacion intra procesos con socket
 
Mikrotik ultimo manual
Mikrotik ultimo manualMikrotik ultimo manual
Mikrotik ultimo manual
 
Escaneo de puertos clase 2 complemento b 28 02-13
Escaneo de puertos clase 2 complemento b 28 02-13Escaneo de puertos clase 2 complemento b 28 02-13
Escaneo de puertos clase 2 complemento b 28 02-13
 

Semelhante a Clase practica seguridad escaneo con nma pf

Clase practica seguridad escaneo con nma pf
Clase practica seguridad   escaneo con nma pfClase practica seguridad   escaneo con nma pf
Clase practica seguridad escaneo con nma pfRobert Puican Gutierrez
 
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A Pf
C L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A PfC L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A Pf
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A PfDanica M
 
Resumen
ResumenResumen
ResumenTensor
 
Exploracion de puertos de redes
Exploracion de puertos de redesExploracion de puertos de redes
Exploracion de puertos de redesgiulianaCh
 
Queesycomousarnmap 150527171529-lva1-app6892
Queesycomousarnmap 150527171529-lva1-app6892Queesycomousarnmap 150527171529-lva1-app6892
Queesycomousarnmap 150527171529-lva1-app6892Karina Gutiérrez
 
Infor nmap6 listado_de_comandos by pseudor00t
Infor nmap6 listado_de_comandos by pseudor00t Infor nmap6 listado_de_comandos by pseudor00t
Infor nmap6 listado_de_comandos by pseudor00t pseudor00t overflow
 
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Alonso Caballero
 
Charla Nmap Jose Luis Chica Murcialanparty 11
Charla Nmap Jose Luis Chica Murcialanparty 11Charla Nmap Jose Luis Chica Murcialanparty 11
Charla Nmap Jose Luis Chica Murcialanparty 11spankito
 
Protocolos de red clase 4
Protocolos de red   clase 4Protocolos de red   clase 4
Protocolos de red clase 4ing_jlcarrillo
 
Vip genial conceptos de red 127145558 capa-de-transport-e
Vip genial conceptos de red 127145558 capa-de-transport-eVip genial conceptos de red 127145558 capa-de-transport-e
Vip genial conceptos de red 127145558 capa-de-transport-exavazquez
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasRafael Seg
 
Interesante pero mal maquetado zenmap 212027457-zenmap (1)
Interesante pero mal maquetado zenmap   212027457-zenmap (1)Interesante pero mal maquetado zenmap   212027457-zenmap (1)
Interesante pero mal maquetado zenmap 212027457-zenmap (1)xavazquez
 
La detencion de sniffers
La detencion de sniffersLa detencion de sniffers
La detencion de sniffersKathy Michelle
 
Articulo nmap pvalera
Articulo nmap pvaleraArticulo nmap pvalera
Articulo nmap pvaleraguest30c8e1
 
Tecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con idsTecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con idsn3xasec
 

Semelhante a Clase practica seguridad escaneo con nma pf (20)

Clase practica seguridad escaneo con nma pf
Clase practica seguridad   escaneo con nma pfClase practica seguridad   escaneo con nma pf
Clase practica seguridad escaneo con nma pf
 
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A Pf
C L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A PfC L A S E  P A R C T I C A  S E G U R I D A D    E S C A N E O  C O N  N M A Pf
C L A S E P A R C T I C A S E G U R I D A D E S C A N E O C O N N M A Pf
 
Reconocimiento Activo
Reconocimiento ActivoReconocimiento Activo
Reconocimiento Activo
 
Resumen
ResumenResumen
Resumen
 
Exploracion de puertos de redes
Exploracion de puertos de redesExploracion de puertos de redes
Exploracion de puertos de redes
 
Queesycomousarnmap 150527171529-lva1-app6892
Queesycomousarnmap 150527171529-lva1-app6892Queesycomousarnmap 150527171529-lva1-app6892
Queesycomousarnmap 150527171529-lva1-app6892
 
Titulacion 2 1 Nmap
Titulacion 2 1   NmapTitulacion 2 1   Nmap
Titulacion 2 1 Nmap
 
Infor nmap6 listado_de_comandos by pseudor00t
Infor nmap6 listado_de_comandos by pseudor00t Infor nmap6 listado_de_comandos by pseudor00t
Infor nmap6 listado_de_comandos by pseudor00t
 
escaneo de puertos.pptx
escaneo de puertos.pptxescaneo de puertos.pptx
escaneo de puertos.pptx
 
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
Webinar Gratuito: "Técnicas para Escaneo de Puertos con Nmap"
 
Charla Nmap Jose Luis Chica Murcialanparty 11
Charla Nmap Jose Luis Chica Murcialanparty 11Charla Nmap Jose Luis Chica Murcialanparty 11
Charla Nmap Jose Luis Chica Murcialanparty 11
 
Nmap
NmapNmap
Nmap
 
Protocolos de red clase 4
Protocolos de red   clase 4Protocolos de red   clase 4
Protocolos de red clase 4
 
Vip genial conceptos de red 127145558 capa-de-transport-e
Vip genial conceptos de red 127145558 capa-de-transport-eVip genial conceptos de red 127145558 capa-de-transport-e
Vip genial conceptos de red 127145558 capa-de-transport-e
 
Tecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemasTecnicas avanzadas de penetracion a sistemas
Tecnicas avanzadas de penetracion a sistemas
 
Interesante pero mal maquetado zenmap 212027457-zenmap (1)
Interesante pero mal maquetado zenmap   212027457-zenmap (1)Interesante pero mal maquetado zenmap   212027457-zenmap (1)
Interesante pero mal maquetado zenmap 212027457-zenmap (1)
 
tCP.pptx
tCP.pptxtCP.pptx
tCP.pptx
 
La detencion de sniffers
La detencion de sniffersLa detencion de sniffers
La detencion de sniffers
 
Articulo nmap pvalera
Articulo nmap pvaleraArticulo nmap pvalera
Articulo nmap pvalera
 
Tecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con idsTecnicas avanzadas de penetracion a sistemas con ids
Tecnicas avanzadas de penetracion a sistemas con ids
 

Clase practica seguridad escaneo con nma pf

  • 1. FASES DE UN ATAQUE
  • 2. Fases de un ATAQUE • Reconocimiento. • Escaneo. • Acceso. • Mantener el acceso. • Borrar actividades. 2
  • 3. Reconocimiento • El atacante obtiene la mayor cantidad de información del (los) posible (s) objetivo (s). – Footprinting. – Dumpster diving. – Fingerprinting. – Ingeniería social. 3
  • 4. Tipos de reconocimiento • Pasivo – Obtener información sin interacción directa con la(s) victima(s). • Activo – Interacción directa a través de cualquier medio. 4
  • 5. Escaneo • Fase en la cual el atacante obtiene información del sistema de la victima. – Escaneos de puertos, de red y de vulnerabilidades. • Obtiene entre otras: – IP’s, MAC’s. – Sistema operativo. – Puertos abiertos. – Servicios. – Etc. 5
  • 6. Tipos de escaneo • Port scanning. – Comprueba los servicios corriendo en el equipo victima. • Network scanning. – Identificar host activos en la red. • Vulnerability scanning. – Identifica las vulnerabilidades del sistema o de los servicios activos. 6
  • 7. Scaneos utilizando banderas TCP. • Half open can (No abre una full tcp conn). • SYN/ACK scan. • XMAS scan (Envía todas las banderas). • FIN scan (Solo unix). • ACK scan (Utiliza el valor del TTL). • NULL scan (Solo unix). • IDLE scan (IP Spoofing). • Full open scan (Detectable). 7
  • 8. Acceso • El atacante penetra en el equipo victima, explota vulnerabilidades del sistema, de alguna aplicación en particular o en la red. – Desbordamiento. – DoS. – Secuestro de sesión. – Crackeo de contraseñas. 8
  • 9. Mantener el acceso • El atacante intenta mantener el acceso, puede cargar, descargar o manipular datos de aplicaciones o las configuraciones. – Backdoors. – Rootkits. – Troyanos. 9
  • 10. Borrar actividades. • El hacker cual astuto ladrón destruye todos los rastros dejados a su paso. – Steganography. – Tunneling. – Alterar logs del sistema. 10
  • 11. ESCANEO DE PUERTOS M.A. Ing. Robert E. Puican Gutiérrez
  • 12. ESCANEO DE PUERTOS • Técnica usada para auditar máquinas y redes con el fin de detectar que puertos están abiertos, cerrados o protegidos.
  • 13. SALUDO DE TRES VIAS (Three way handshake) SYN ACK SYN / ACK
  • 15. ESTADOS TCP • TCP es un protocolo orientado a conexión, y como tal tiene unos estados definidos según en qué punto de la conexión se encuentre el socket. Estos estados están detallados en el RFC #793 y son: • LISTEN: Un servidor que espera conexiones de un cliente y escucha un puerto, genera un socket con estado LISTEN. Cuando el cliente se conecte, se creará un socket con la conexión establecida y otro que quede a la escucha. • SYN-SENT: Al enviar un paquete con el flag SYN levantado, como primer paso para el saludo en tres tiempos de una conexión, el socket entra en el estado SYN-SENT. • SYN-RECEIVED: Cuando tiene lugar el segundo paso del saludo en tres tiempos y se responde al primer SYN con un SYN/ACK, los sockets tienen estado SYN-RECEIVED. • ESTABLISHED: Una vez se completa el saludo en tres tiempos se entra en estado ESTABLISHED y se permanece en él durante todo el tiempo que dura la conexión. • FIN-WAIT-1: El socket entra en este estado una vez envía el paquete con el flag FIN levantado pero aún no ha recibido la confirmación de ese paquete. Solamente se reciben datos.
  • 16. ESTADOS TCP • FIN-WAIT-2: Una vez recibida la confirmación ACK del paquete FIN, entramos en este estado. Solamente se reciben datos. • CLOSE-WAIT: Si somos nosotros los que recibimos el paquete con el flag FIN levantado pero aún tenemos datos que enviar, el socket entra en estado CLOSE-WAIT. • CLOSING: Si ambos host desean finalizar la conexión a la vez, los sockets entran en estado CLOSING. • LAST-ACK: Una vez enviados sendos paquetes con el flag FIN levantado en la finalización de una conexión TCP, cuando el último en haber enviado el paquete está pendiente de recibir la confirmación, entra en estado LAST-ACK. • TIME-WAIT: Una vez enviados sendos paquetes con el flag FIN levantado en la finalización de una conexión TCP, cuando el primero en haber enviado el paquete envía la confirmación al último paquete FIN, entra en estado TIME-WAIT para esperar un tiempo prudencial que le permita cerciorarse de la recepción del mismo.
  • 17. LOS SEIS ESTADOS DE UN PUERTO - NMAP • ABIERTO – Una aplicación acepta conexiones TCP o paquetes UDP en este puerto. El encontrar esta clase de puertos es generalmente el objetivo primario de realizar un sondeo de puertos. Las personas orientadas a la seguridad saben que cada puerto abierto es un vector de ataque. Los atacantes y las personas que realizan pruebas de intrusión intentan aprovechar puertos abiertos, por lo que los administradores intentan cerrarlos, o protegerlos con cortafuegos, pero sin que los usuarios legítimos pierdan acceso al servicio. Los puertos abiertos también son interesantes en sondeos que no están relacionados con la seguridad porque indican qué servicios están disponibles para ser utilizados en una red. • CERRADO – Un puerto cerrado es accesible: recibe y responde a las sondas de Nmap, pero no tiene una aplicación escuchando en él. Pueden ser útiles para determinar si un equipo está activo en cierta dirección IP (mediante descubrimiento de sistemas, o sondeo ping), y es parte del proceso de detección de sistema operativo. Como los puertos cerrados son alcanzables, o sea, no se encuentran filtrados, puede merecer la pena analizarlos pasado un tiempo, en caso de que alguno se abra. Los administradores pueden querer considerar bloquear estos puertos con un cortafuegos. Si se bloquean aparecerían filtrados, como se discute a continuación.
  • 18. LOS SEIS ESTADOS DE UN PUERTO - NMAP • FILTRADO – Nmap no puede determinar si el puerto se encuentra abierto porque un filtrado de paquetes previene que sus sondas alcancen el puerto. El filtrado puede provenir de un dispositivo de cortafuegos dedicado, de las reglas de un enrutador, o por una aplicación de cortafuegos instalada en el propio equipo. Estos puertos suelen frustrar a los atacantes, porque proporcionan muy poca información. A veces responden con mensajes de error ICMP del tipo 3, código 13 (destino inalcanzable: comunicación prohibida por administradores), pero los filtros que sencillamente descartan las sondas sin responder son mucho más comunes. Esto fuerza a Nmap a reintentar varias veces, considerando que la sonda pueda haberse descartado por congestión en la red en vez de haberse filtrado. Esto ralentiza drásticamente los sondeos. • NO FILTRADO – Este estado indica que el puerto es accesible, pero que Nmap 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, SYN o FIN, pueden ayudar a determinar si el puerto se encuentra abierto.
  • 19. LOS SEIS ESTADOS DE UN PUERTO - NMAP • abierto|filtrado – Nmap marca a los puertos en este estado cuando no puede determinar si el puerto se encuentra abierto o filtrado. Esto ocurre para tipos de análisis donde no responden los puertos abiertos. La ausencia de respuesta puede también significar que un filtro de paquetes ha descartado la sonda, o que se elimina cualquier respuesta asociada. De esta forma, Nmap no puede saber con certeza si el puerto se encuentra abierto o filtrado. Los sondeos UDP, protocolo IP, FIN, Null y Xmas clasifican a los puertos de esta manera. • cerrado|filtrado – Este estado se utiliza cuando Nmap no puede determinar si un puerto se encuentra cerrado o filtrado, y puede aparecer aparecer sólo durante un sondeo IPID pasivo.
  • 20.
  • 22. TCP connect() • Esta técnica es quizá la más común en cualquier software de escaneo de puertos. La técnica consiste en usar la llamada connect() de TCP para intentar establecer una conexión con cada uno de los puertos del host a escanear. Si la conexión se establece, el puerto está abierto (escuchando conexiones); en caso de recibir un aviso de cierre de conexión (RST), el puerto estará cerrado; y en caso de no recibir respuesta, se deduce que el puerto está silencioso. • Este tipo de escaneo es extremadamente rápido, pues puede realizarse de forma paralela para distintos puertos mediante el uso de varios sockets. Además, es un escaneo fácil de implementar. • Su principal desventaja es que es llamativo en exceso, pues resulta a todas luces llamativo establecer cientos o miles de conexiones en un margen de pocos segundos. Además, al realizarse intentos completos de conexión, cualquier sistema guardará registros.
  • 23. TCP connect() • Comportamiento del escaneo: • Puerto TCP Abierto • En nmap podemos invocar un escaneo TCP connect() mediante el comando: • nmap -vv -P0 -sT xxx.xxx.xxx.xxx SYN ACK SYN / ACK
  • 24. TCP connect() • Comportamiento del escaneo: • Puerto TCP Cerrado • En nmap podemos invocar un escaneo TCP connect() mediante el comando: • nmap -vv -P0 -sT xxx.xxx.xxx.xxx SYN RST
  • 25. TCP connect() • Comportamiento del escaneo: • Puerto TCP Sin Respuesta • En nmap podemos invocar un escaneo TCP connect() mediante el comando: • nmap -vv -P0 -sT xxx.xxx.xxx.xxx SYN
  • 26. TCP SYN • Esta técnica, también conocida como Half-open scan (es el escaneo medio abierto por excelencia), es parecida a la anterior con la importante salvedad de no establecer completamente las conexiones. • En primer lugar, se envía un paquete SYN que finge intentar establecer una conexión y se espera la respuesta. Si llega un paquete SYN/ACK significa que el puerto está abierto; si llega un paquete RST, el puerto está cerrado; y si no se recibe respuesta se asume que está silencioso. En el caso de que el puerto esté abierto y recibamos el paquete SYN/ACK (es decir, están completos dos de los tres pasos del saludo en tres tiempos), nosotros no responderemos con un paquete ACK como sería lo esperado, sino que mandaremos un paquete RST. ¿Para qué? Pues precisamente para evitar que se complete el inicio de conexión y, por tanto, evitar que el sistema registre el suceso como un intento de conexión. En sistemas sin protección específica de cortafuegos o IDS, este escaneo suele pasar desapercibido. • Una característica importante de este escaneo es que requiere elevados privilegios en el sistema para poder lanzarlo, debido a que este tipo de paquetes usan sockets TCP raw. Por tanto, solo el root puede lanzar escaneos TCP SYN. • La principal ventaja de este tipo de escaneo es que suele ser bastante discreto y ofrece unos resultados bastante buenos. • Entre sus desventajas encontramos el que es algo lento de realizar, y que un sistema con un firewall o un IDS (aunque algunos muy básicos no) lo detectará e identificará como escaneo de puertos sin ninguna duda.
  • 27. TCP SYN • Comportamiento del escaneo: • Puerto TCP Abierto • En nmap podemos invocar un escaneo TCP SYN mediante el comando: – nmap -vv -P0 -sS xxx.xxx.xxx.xxx SYN RST SYN / ACK
  • 28. TCP SYN • Comportamiento del escaneo: • Puerto TCP Cerrado • En nmap podemos invocar un escaneo TCP SYN mediante el comando: – nmap -vv -P0 -sS xxx.xxx.xxx.xxx SYN RST
  • 29. TCP SYN • Comportamiento del escaneo: • Puerto TCP Sin Respuesta • En nmap podemos invocar un escaneo TCP SYN mediante el comando: – nmap -vv -P0 -sS xxx.xxx.xxx.xxx SYN
  • 30. TCP FIN • El escaneo TCP FIN, también conocido como Stealth scan (se trata del escaneo silencioso más conocido), es uno de los más discretos que podemos encontrar dentro de las técnicas convencionales. Se apoya en una particularidad de los estándares internacionales de TCP/IP. • A la hora de realizar el escaneo, se envía un paquete FIN al puerto del host destino que queremos escanear. Los estándares de TCP/IP dicen que al recibir un paquete FIN en un puerto cerrado, se ha de responder con un paquete RST. Así pues, si recibimos RST por respuesta, el puerto está cerrado, y en caso de no recibir respuesta (se ignora el paquete FIN) el puerto puede encontrarse abierto o silencioso. • Ésto supone uno de los principales inconvenientes del escaneo TCP FIN, y es que los puertos que nos figuran como abiertos, pueden estar en realidad en estado silencioso (puesto que un puerto silencioso por definición ignora cualquier paquete recibido). Así pues, este tipo de escaneos no obtienen unos resultados fiables, y ese es su talón de Aquiles. • Otra gran desventaja de este sistema de escaneo viene de cierta compañía de software que tiene por costumbre pasarse por el forro cualquier estándar informático... sí, esa misma que estáis pensando: Microsoft. En los sistemas Windows, un puerto cerrado ignora los paquetes FIN, por lo que escanear un sistema de este tipo con SYN FIN nos generará una enorme lista de puertos abiertos, aunque realmente estén cerrados o silenciosos. Así que cuidado a la hora de usar esta técnica. Como ventaja, tenemos el que estos escaneos pasan desapercibidos en la gran mayoría de los firewalls, al no intentar establecer ninguna conexión. Un IDS bien configurado, lo detectará.
  • 31. TCP FIN • Comportamiento del escaneo: • Puerto TCP Abierto • En nmap podemos invocar un escaneo TCP FIN mediante el comando: – nmap -vv -P0 -sF xxx.xxx.xxx.xxx FIN
  • 32. TCP FIN • Comportamiento del escaneo: • Puerto TCP Cerrado • En nmap podemos invocar un escaneo TCP FIN mediante el comando: – nmap -vv -P0 -sF xxx.xxx.xxx.xxx FIN RST
  • 33. TCP FIN • Comportamiento del escaneo: • Puerto TCP Silencioso • En nmap podemos invocar un escaneo TCP FIN mediante el comando: – nmap -vv -P0 -sF xxx.xxx.xxx.xxx FIN
  • 34. UDP scan • Esta técnica, frente a las demás técnicas orientadas a TCP, está orientada al protocolo UDP y sus puertos. • Aunque a priori parezca que los puertos UDP no son muy interesantes, servicios como el rpcbind de Solaris, TFTP, SNMP, NFS... usan todos ellos UDP como protocolo de transferencia. • El sistema de escaneo consiste en mandar un paquete UDP vacío (0 bytes de datos) al puerto que deseamos escanear. Si el puerto está cerrado, el sistema responderá con un paquete ICMP de tipo 3 (destino inalcanzable). En caso de no responder, el puerto puede estar abierto o silencioso. • Este sistema puede presentar un grave problema de carencia de velocidad según en qué sistemas, y es que en el RFC #1812-”Requirements for IP version 4 routers” (ftp://ftp.rfc-editor.org/in-notes/rfc1812.txt) • se recomienda limitar la capacidad de generación de mensajes ICMP de error. En sistemas Linux (consultar el fichero /ipv4/icmp.h de las fuentes del kernel) esta limitación está fijada en unos 20 mensajes por segundo. Sistemas como Solaris son más estrictos y tiene la limitación fijada en 2 por segundo. Pero hay un sistema que, para variar, no hace mucho caso a los estándares, por lo que no tiene ninguna limitación prefijada... sí: Windows. Un escaneo UDP a un sistema Windows resulta extremadamente rápido como consecuencia de ello.
  • 35. UDP scan • Comportamiento del escaneo: – host local ---{UDP}---> {O} Puerto UDP abierto en el host remoto • SIN RESPUESTA – Host local ---{UDP}---> {X} Puerto UDP cerrado en el host remoto – host local <---|ICMP #3|--- {X} Puerto UDP cerrado en el host remoto – host local ---{UDP}---> {~} Puerto UDP silencioso en el host remoto • SIN RESPUESTA • En nmap podemos invocar un escaneo UDP mediante el comando: – nmap -vv -P0 -sU xxx.xxx.xxx.xxx
  • 36. ACK scan • La mayoría de las técnicas de escaneo nos permiten identificar con exactitud los puertos abiertos o cerrados, pero generalmente los puertos silenciosos no se pueden identificar con claridad. El escaneo ACK está destinado a identificar de forma precisa cuándo un puerto se encuentra en estado silencioso. Esta técnica es usada también para poder escanear hosts que estén detrás de un firewall que bloquee los intentos de conexión (paquetes SYN). • Su funcionamiento se basa en el envío de paquetes ACK con números de secuencia y confirmación aleatorios. Cuando reciba el paquete, si el puerto se encuentra abierto, responderá con un paquete RST, pues no identificará la conexión como suya; si el puerto está cerrado responderá con un paquete RST, pero si no se obtiene respuesta (obviamente primero debemos asegurarnos que el host está en línea) podemos identificar claramente el puerto como filtrado (puerto silencioso). • Normalmente el escaneo ACK se realiza como apoyo a un escaneo anterior, para determinar los puertos silenciosos y poder identificar mediante una combinación de técnicas el estado real de todos ellos. Por ejemplo, ante un host con un firewall que bloquee intentos de conexión (SYN), podemos realizar un FIN scan para determinar los puertos cerrados, y después un ACK scan para determinar qué puertos están abiertos y cuáles silenciosos. • Esta técnica también es usada como variante del ping (ICMP echo) de toda la vida, para saber si un host está activo (recibiremos respuesta RST) o no (cuando no hay respuesta o la respuesta es destino inalcanzable).
  • 37. ACK scan • Comportamiento del escaneo: – host local ---[ACK]---> [O] Puerto TCP abierto en el host remoto – host local <---[RST]--- [O] Puerto TCP abierto en el host remoto – host local ---[ACK]---> [X] Puerto TCP cerrado en el host remoto – host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto – host local ---[ACK]---> [~] Puerto TCP silencioso en el host remoto • SIN RESPUESTA • En nmap podemos invocar un escaneo ACK mediante el comando: – nmap -vv -sA xxx.xxx.xxx.xxx
  • 38. Null scan • Este escaneo tiene muchos puntos en común con el escaneo FIN. Su funcionamiento base es el mismo: enviamos un paquete malformado (en este caso se trata de un paquete TCP con todos los flags desactivados) y esperamos la respuesta. En caso de que el puerto destino esté cerrado, nos responderá con un paquete RST; y en caso de no recibir nada (nuestro paquete es ignorado), se trata de un puerto abierto o silencioso. • La ventaja frente al escaneo FIN radica en que ciertos firewalls vigilan los paquetes de finalización de conexión además de los de establecimiento, de forma que el escaneo nulo podrá realizarse allí dónde el FIN no sería posible. El resto de ventajas y desventajas son las mismas que en el escaneo FIN.
  • 39. Null scan • Comportamiento del escaneo: – host local ---[ ]---> [O] Puerto TCP abierto en el host remoto • SIN RESPUESTA – Host local ---[ ]---> [X] Puerto TCP cerrado en el host remoto – host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto – host local ---[ ]---> [~] Puerto TCP silencioso en el host remoto • SIN RESPUESTA • En nmap podemos invocar un escaneo Null mediante el comando: – nmap -vv -P0 -sN xxx.xxx.xxx.xxx
  • 40. Xmas scan • El escaneo Xmas se basa también en el principio de la respuesta RST por parte de un puerto cerrado al recibir un paquete incorrecto (como el escaneo FIN). En el caso del escaneo Xmas, se trata de un paquete con los flags FIN, URG y PSH activados (aunque ciertas implementaciones activan FIN, URG, PSH, ACK y SYN e incluso algunas activan todos los flags). Podría decirse que es lo contrario del escaneo Null, pero logrando el mismo efecto. • Al igual que el escaneo Null, se usa bajo ciertas circunstancias en las que el escaneo FIN no es posible; y también comparte con éstos sus particularidades.
  • 41. Xmas scan • Comportamiento del escaneo: – host local ---[xmas]---> [O] Puerto TCP abierto en el host remoto • SIN RESPUESTA – Host local ---[xmas]---> [X] Puerto TCP cerrado en el host remoto – host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto – host local ---[xmas]---> [~] Puerto TCP silencioso en el host remoto • SIN RESPUESTA • En nmap podemos invocar un escaneo Xmas mediante el comando: – nmap -vv -P0 -sX xxx.xxx.xxx.xxx
  • 42. SYN/ACK scan • Este tipo de escaneo tiene una base parecida a los anteriormente citados FIN, Null y Xmas, pero con la sustancial diferencia de que en este caso los paquetes malformados fingen ser un error en la transacción de una conexión legítima. Mediante esta técnica, se envía un paquete SYN/ACK al puerto que deseamos escanear en el host remoto. Si el puerto se encuentra cerrado, nos responderá con un paquete RST. En caso de estar abierto o silencioso, simplemente ignorará el paquete y no obtendremos respuesta. • Como ventaja, este tipo de escaneo evade la mayoría de firewalls e IDS sencillos, pero comparte con los escaneos anteriormente citados sus problemas, principalmente la falta de fiabilidad a la hora de determinar los puertos abiertos o silenciosos.
  • 43. SYN/ACK scan • Comportamiento del escaneo: – host local ---[SYN/ACK]---> [O] Puerto TCP abierto en el host remoto • SIN RESPUESTA – Host local ---[SYN/ACK]---> [X] Puerto TCP cerrado en el host remoto – host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto – host local ---[SYN/ACK]---> [~] Puerto TCP silencioso en el host remoto • SIN RESPUESTA • En nmap no se encuentra implementado este tipo de escaneo.
  • 44. Ping sweep • Un ping sweep (también llamado barrido de ping) no es en realidad una técnica de escaneo de puertos... sino más bien una técnica de escaneo de hosts. • Es el momento de hablar de una opción de nmap que he incluido en el ejemplo de todos los escaneos de los que hemos hablado hasta ahora. Es la opción -P0. Veamos qué dice la guía de referencia rápida de nmap (nmap -h) al respecto de este comando... – P0 Don't ping hosts (needed to scan www.microsoft.com and others) • Efectivamente, mediante esta opción logramos que, antes de realizar el escaneo de puertos propiamente dicho, el software no compruebe si el host está activo. Y os preguntaréis, ¿para qué demonios me gustaría a mí que no se realizara esa comprobación? Pues es una técnica muy común el denegar, vía firewall, la salida de paquetes ICMP echo reply. Así, al realizar un ping a un host, éste no responde y puede parecer que esté inactivo. Probad a realizar un ping a www.microsoft.com y luego visitad su web. • Ahora imaginad que el objetivo de nuestro escaneo va a ser toda una red (por ejemplo 192.168.0.0/24), en lugar de un único host. Lo primero que nos interesará es saber qué hosts están activos, pues si escaneamos toda la red con la opción -P0, perderemos mucho tiempo mandando paquetes y esperando la respuesta de equipos que en realidad están inactivos. Pero cabe la posibilidad de que algunos equipos nos hagan creer que están inactivos cuando en realidad no lo están... y aquí es donde entran las diversas técnicas de ping sweep. • Mediante esta técnica, se realiza un barrido comprobando qué host dentro de un rango se encuentran activados. Los métodos para comprobar esto son varios: • TCP echo: Envío de paquetes TCP al puerto echo (TCP/7). Si recibe respuesta, el host está activo. • UDP echo: Envío de paquetes UDP al puerto echo (UDP/7). Si recibe respuesta, el host está activo. • TCP ACK: Envío de paquetes TCP ACK. Si se obtiene respuesta RST, el host está activo. • TCP SYN: Envío de paquetes TCP SYN. Si se obtiene respuesta RST o SYN/ACK, el host está activo. • ICMP echo: Este es el ping de toda la vida. ICMP echo request e ICMP echo reply.
  • 45. Ping sweep • Aunque todas ellas son válidas, incluso el ping clásico, las más efectivas son TCP ACK y TCP SYN. TCP echo y UDP echo no son muy usadas ni útiles, pues prácticamente ningún host tendrá abierto el puerto echo y si lo tiene, es poco probable que bloquee los intentos de ping normales. • En nmap podemos invocar un ping sweep mediante estos comandos: – TCP ACK: nmap -vv -sP -PT xxx.xxx.xxx.xxx/xx – TCP SYN: nmap -vv -sP -PS xxx.xxx.xxx.xxx/xx – ICMP echo: nmap -vv -sP -PI xxx.xxx.xxx.xxx/xx – TCP ACK e ICMP echo en paralelo: nmap -vv -sP -PB xxx.xxx.xxx.xxx/xx • La técnica TCP ACK e ICMP echo en paralelo realiza a la vez ambas técnicas, de forma que se pueda evadir un firewall que implemente protección contra una de esas técnicas. Este modo es el usado por nmap en caso de no especificar ninguno (nmap -vv -sP xxx.xxx.xxx.xxx/xx). • Es útil reforzar la exploración del modo -PB con un ping TCP SYN (-PS), pues ciertos firewalls bloquean tanto los intentos de ping ICMP echo como TCP ACK.
  • 46. DESCUBRIENDO SISTEMAS • 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. • Siendo tan diversas las necesidades de descubrimiento de sistemas, Nmap ofrece una gran variedad de opciones para personalizar las técnicas utilizadas. Al descubrimiento de sistemas («Host Discovery») se lo suele llamar sondeo ping, pero va más allá de la simple solicitud ICMP echo-request de los paquetes asociados al querido y nunca bien ponderado ping. Los usuarios pueden evitar el paso de ping utilizando un sondeo de lista (-sL) o deshabilitando el ping (-P0), o enviando combinaciones arbitrarias de sondas TCP SYN/ACK, UDP e ICMP a múltiples puertos de la red remota. El propósito de estas sondas es el de solicitar respuestas que demuestren que una dirección IP se encuentra activa (está siendo utilizada por un equipo o dispositivo de red). En varias redes solo un pequeño porcentaje de direcciones IP se encuentran activos en cierto momento. Esto es particularmente común en las redes basadas en direccionamiento privado RFC1918, como la 10.0.0.0/8. Dicha red tiene más de 16 millones de direcciones IP, pero la he visto siendo utilizada por empresas con menos de mil máquinas. El descubrimiento de sistemas puede encontrar dichas maquinas en un rango tan grande como el indicado. • Si no se proveen opciones de descubrimiento de sistemas, Nmap envía un paquete TCP ACK al puerto 80 y un ICMP Echo Request a cada máquina objetivo. Una excepción a este comportamiento es cuando se utiliza un análisis ARP, para los objetivos que se encuentren en la red Ethernet local. Para usuarios de shell UNIX que no posean privilegios, un paquete SYN es enviado en vez del ACK, utilizando la llamada al sistema connect(). Estos valores por omisión son el equivalente a las opciones -PA -PE. Este descubrimiento de sistemas es generalmente suficiente cuando se analizan redes locales, pero para auditorías de seguridad se recomienda utilizar un conjunto más completo de sondas de descubrimiento.
  • 47. DESCUBRIENDO SISTEMAS • Las opciones -P* (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 (-PR) se realiza por omisión contra objetivos de la red Ethernet local incluso si se especifica otra de las opciones -P*, porque es generalmente más rápido y efectivo. • Las siguientes opciones controlan el descubrimiento de sistemas. • -sL (Sondeo de lista) – El sondeo de lista es un tipo de descubrimiento de sistemas que tan solo lista cada equipo de la/s red/es especificada/s, sin enviar paquetes de ningún tipo a los objetivos. Por omisión, Nmap va a realizar una resolución inversa DNS en los equipos, para obtener sus nombres. Es sorprendente cuanta información útil se puede obtener del nombre de un sistema. Por ejemplo fw.chi.playboy.com es el cortafuegos de la oficina en Chicago de Playboy Enterprises. Adicionalmente, al final, Nmap reporta el número total de direcciones IP. El sondeo de lista es una buena forma de asegurarse de que tenemos las direcciones IP correctas de nuestros objetivos. Si se encontraran nombres de dominio que no reconoces, vale la pena investigar un poco más, para evitar realizar un análisis de la red de la empresa equivocada. – Ya que la idea es simplemente emitir un listado de los sistemas objetivo, las opciones de mayor nivel de funcionalidad como análisis de puertos, detección de sistema operativo, o análisis ping no pueden combinarse con este sondeo. Si desea deshabilitar el análisis ping aún realizando dicha funcionalidad de mayor nivel, compruebe la documentación de la opción -P0.
  • 48. DESCUBRIENDO SISTEMAS • -sP (Sondeo ping) – Esta opción le indica a Nmap que únicamente realice descubrimiento de sistemas mediante un sondeo ping, y que luego emita un listado de los equipos que respondieron al mismo. No se realizan más sondeos (como un análisis de puertos o detección de sistema operativo). A diferencia del sondeo de lista, el análisis ping es intrusivo, ya que envía paquetes a los objetivos, pero es usualmente utilizado con el mismo propósito. Permite un reconocimiento liviano de la red objetivo sin llamar mucho la atención. El saber cuántos equipos se encuentran activos es de mayor valor para los atacantes que el listado de cada una de las IP y nombres proporcionado por el sondeo de lista. – De la misma forma, los administradores de sistemas suelen encontrar valiosa esta opción. Puede ser fácilmente utilizada para contabilizar las máquinas disponibles en una red, o monitorizar servidores. A esto se lo suele llamar barrido ping, y es más fiable que hacer ping a la dirección de broadcast, ya que algunos equipos no responden a ese tipo de consultas. – La opción -sP envía una solicitud de eco ICMP y un paquete TCP al puerto 80 por omisión. Cuando un usuario sin privilegios ejecuta Nmap se envía un paquete SYN (utilizando la llamada connect()) al puerto 80 del objetivo. Cuando un usuario privilegiado intenta analizar objetivos en la red Ethernet local se utilizan solicitudes ARP (-PR) a no ser que se especifique la opción --send-ip. – La opción -sP puede combinarse con cualquiera de las opciones de sondas de descubrimiento (las opciones -P*, excepto -P0) para disponer de mayor flexibilidad. Si se utilizan cualquiera de las opciones de sondas de descubrimiento y número de puerto, se ignoran las sondas por omisión (ACK y solicitud de eco ICMP). Se recomienda utilizar estas técnicas si hay un cortafuegos con un filtrado estricto entre el sistema que ejecuta Nmap y la red objetivo. Si no se hace así pueden llegar a pasarse por alto ciertos equipos, ya que el cortafuegos anularía las sondas o las respuestas a las mismas.
  • 49. DESCUBRIENDO SISTEMAS • -P0 (No realizar ping) – Con esta opción, Nmap no realiza la etapa de descubrimiento. Bajo circunstancias normales, Nmap utiliza dicha etapa para determinar qué máquinas se encuentran activas para hacer un análisis más agresivo. Por omisión, Nmap sólo realiza ese tipo de sondeos, como análisis de puertos, detección de versión o de sistema operativo contra los equipos que se están «vivos». Si se deshabilita el descubrimiento de sistemas con la opción -P0 entonces Nmap utilizará las funciones de análisis solicitadas contra todas las direcciones IP especificadas. Por lo tanto, si se especifica una red del tamaño de una clase B cuyo espacio de direccionamiento es de 16 bits, en la línea de órdenes, se analizará cada una de las 65.536 direcciones IP. El segundo carácter en la opción -P0 es un cero, y no la letra O. Al igual que con el sondeo de lista, se evita el descubrimiento apropiado de sistemas, pero, en vez de detenerse y emitir un listado de objetivos, Nmap continúa y realiza las funciones solicitadas como si cada IP objetivo se encontrara activa.
  • 50. DESCUBRIENDO SISTEMAS • -PS [lista de puertos] (Ping TCP SYN) – Esta opción envía un paquete TCP vacío con la bandera SYN 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. - PS22,23,25,80,113,1050,35000). Si hace esto se enviarán sondas en paralelo a cada uno de los puertos. – La bandera SYN indica al sistema remoto que quiere establecer una conexión. Normalmente, si el puerto destino está cerrado se recibirá un paquete RST (de «reset»). Si el puerto está abierto entonces el objetivo responderá con el segundo paso del saludo en tres pasos TCP respondiendo con un paquete TCP SYN/ACK. El sistema donde se ejecuta Nmap romperá la conexión que se está estableciendo enviando un paquete RST en lugar de enviar el paquete ACK que completaría el saludo TCP. Nmap no envía este paquete, sino que lo envía el núcleo del sistema donde se ejecuta Nmap respondiendo al paquete SYN/ACK que no esperaba. – A Nmap no le importa si el puerto está abierto o cerrado. Si, tal y como se acaba de describir, llega una respuesta RST ó SYN/ACK entonces Nmap sabrá que el sistema está disponible y responde. – En sistemas UNIX, generalmente sólo el usuario privilegiado root puede enviar paquetes TCP crudos. Los usuarios no privilegiados tienen una forma de evitar esta restricción utilizando la llamada al sistema «connect()» contra el puerto destino. Esto hace que se envíe el paquete SYN al sistema, para establecer la conexión. Si la llamada «connect()» devuelve un resultado de éxito rápidamente o un fallo ECONNREFUSED entonces se puede deducir que la pila TCP que tiene bajo ésta ha recibido un SYN/ACK o un RST y que puede marcar el sistema como disponible. El sistema se puede marcar como no disponible si el intento de conexión se mantiene parado hasta que vence un temporizador. Esta es también la forma en la que se gestiona esto en conexiones IPv6 ya que Nmap aún no puede crear paquetes IPv6 crudos.
  • 51. DESCUBRIENDO SISTEMAS • PA [lista de puertos] (Ping TCP ACK) – El ping TCP ACK es muy parecido al ping SYN 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 SYN. 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 -PA utiliza el mismo puerto por omisión que la sonda SYN (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 SYN en lugar de un ACK. – Se ofrecen tanto mecanismos de sondeo con ping SYN y ACK para maximizar las posibilidades de atravesar cortafuegos. Muchos administradores configuran los enrutadores y algunos cortafuegos sencillos para que se bloqueen los paquetes SYN salvo para aquellos destinados a los servicios públicos, como pudieran ser el servidor web o el servidor de correo de la organización. Esto evita que se realicen otras conexiones entrantes al mismo tiempo que permite a los usuarios realizar conexiones salientes a Internet. Este acercamiento de filtrado sin estados toma pocos recursos de los cortafuegos/enrutadores y está ampliamente soportado por filtros hardware y software. El programa de cortafuegos Netfilter/iptables de Linux ofrece la opción --syn para implementar este acercamiento sin estados. Cuando se han implementado reglas de filtrado como éstas es posible que se bloqueen las sondas ping SYN (-PS) cuando éstas se envíen a un puerto cerrado. Sin embargo, en estos casos, las sondas ACK podrían saltarse las reglas y llegar a su destino. – Otros tipos de cortafuegos comunes utilizan reglas con estados que descartan paquetes no esperados. Esta funcionalidad se encontraba antes fundamentalmente en los cortafuegos de gama alta pero se ha hecho cada vez más común. El sistema Netfilter/iptables de Linux soporta esta posibilidad a través de la opción --state, que hace categorías de paquetes en base a su estado de conexión. En estos sistemas es más probable que funcione una sonda SYN, dado que los paquetes ACK no esperados se reconocen como falsos y se descartan. Una solución a este dilema es enviar sondas SYN y ACK especificando tanto la opción -PS como -PA.
  • 52. DESCUBRIENDO SISTEMAS • -PU [lista de puertos] (Ping UDP) – 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 -PS y -PA . 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 Nmap 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 Nmap a determinar que el sistema está disponible. – La principal ventaja de este tipo de sondeos es que atraviesan cortafuegos y filtros que sólo analizan TCP. Yo, por ejemplo, una vez fui propietario de un encaminador de banda ancha inalámbrico BEFW11S4. El interfaz externo de este dispositivo filtraba por omisión todos los puertos TCP, pero las sondas UDP podían generar mensajes de puerto no alcanzable y permitían detectar al dispositivo.
  • 53. DESCUBRIENDO SISTEMAS • -PE; -PP; -PM (Tipos de ping ICMP) – Nmap puede enviar los paquetes estándar que envía el programa ping además de los tipos de descubrimiento de equipos con TCP y UDP. Nmap envía paquetes ICMP tipo 7 («echo request») a las direcciones IP objetivos y espera recibir un tipo 0 («Echo Reply») de los sistemas que estén disponibles. Lamentablemente para los exploradores de redes, muchos sistemas y cortafuegos ahora bloquean esos paquetes en lugar de responder como requiere el estándar RFC 1122. Por ésta razón los sondeos que sólo utilizan el protocolo ICMP no son muy fiables para analizar sistemas desconocidos en Internet. Aunque pueda ser una forma eficiente y práctica de hacerlo para administradores que tengan que monitorizar una red interna. Utilice la opción -PE para activar este comportamiento de solicitud de eco. – Nmap no hace sólo ésto, aunque la solicitud eco es la consulta estándar de ping ICMP. El estándar ICMP (RFC 792) también específica solicitudes de huellas de tiempo, de información y de máscara de red, que corresponden con los códigos 13, 15 y 17 respectivamente. Aunque el objetivo de estas solicitudes es obtener la máscara de red o fecha actual de un sistema también pueden utilizarse para descubrir sistemas. Un sistema que responde es por que está vivo y disponible. Nmap no implementa los paquetes de solicitud de información en sí, ya que no están muy soportados. El estándar RFC 1122 insiste en que “un equipo NO DEBE implementar estos mensajes”. Las consultas de huella de tiempo y máscara de red se pueden enviar con las opciones -PP y -PM, respectivamente. Si se recibe una respuesta de huella de tiempo (código ICMP 14) o de máscara de red (código 18) entonces es que el sistema está disponible. Estas dos consultas pueden ser útiles cuando los administradores bloquean los paquetes de consulta eco explícitamente pero se olvidan de que se pueden utilizar otras consultas ICMP con el mismo fin.
  • 54. DESCUBRIENDO SISTEMAS • -PR (Ping ARP) – Una de las formas de uso más comunes de Nmap 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 Nmap 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. – El sondeo ARP hace que sea Nmap y su algoritmo optimizado el que se encargue de las solicitudes ARP. Si recibe una respuesta, no se tiene ni que preocupar de los paquetes basados en IP dado que ya sabe que el sistema está vivo. Esto hace que el sondeo ARP sea mucho más rápido y fiable que los sondeos basados en IP. Por ello se utiliza por omisión cuando se analizan sistemas Ethernet si Nmap detecta que están en la red local. Nmap utiliza ARP para objetivos en la misma red local aún cuando se utilicen distintos tipos de ping (como -PE o -PS). Si no quiere hacer un sondeo ARP tiene que especificar la opción --send-ip. • -n (No realizar resolución de nombres) – Le indica a Nmap que nunca debe realizar resolución DNS inversa de las direcciones IP activas que encuentre. Ya que DNS es generalmente lento, esto acelera un poco las cosas.
  • 55. DESCUBRIENDO SISTEMAS • -R (Realizar resolución de nombres con todos los objetivos) – Le indica a Nmap que deberá realizar siempre la resolución DNS inversa de las direcciones IP objetivo. Normalmente se realiza esto sólo si se descubre que el objetivo se encuentra vivo. • --system-dns (Utilizar resolución DNS del sistema) – Por omisión, Nmap resuelve direcciones IP por si mismo enviando las consultas directamente a los servidores de nombres configurados en el sistema, y luego espera las respuestas. Varias solicitudes (generalmente docenas) son realizadas en paralelo para mejorar el rendimiento. Especifica esta opción si desea que sí utilice la resolución del sistema (una IP por vez utilizando la llamada getnameinfo()). Este método es más lento y raramente útil, a no ser que hubiera un error en el código DNS de Nmap (por favor, notifíquelo si ese fuera el caso). Éste es el método por omisión para los sondeos IPv6. • --dns-servers <servidor1[,servidor2],...> (Servidores a utilizar para las consultas DNS) – Nmap generalmente determina los servidores DNS de su archivo resolv.conf (UNIX) o del registro (Win32). Puede utilizar esta opción para especificar sus propios servidores. Esta opción no se utiliza si utiliza la opción --system-dns o está realizando un sondeo IPv6. La resolución a través de más de un servidor de DNS es generalmente más rápida que la consulta a uno solo.
  • 56. EJEMPLOS • El parametro ‘-sS’ este parametro solo se puede usar con privilegios de root y te scanea en modo stealth, y todos los puertos que puedes tener. Veamos el siguiente ejemplo: – nmap -sS 67.15.192.2 • Este parametro, puedes utilizarlo cuando quieres ver los puertos que tiene abierto de un host en especifico y que servicios son los que corre ese puerto. • El parametro ‘-sT’ se utiliza igual que el parametro ‘-sS’ solo que este no trabaja en modo stealth y no necesitas tener privilegios de root para usarlo. y en vista que se utiliza para lo mismo no es necesario poner un ejemplo del mismo. • El paramero ‘-sU’ este parametro es utilizado para scanear puerto UDP trabaja de igual modo que los parametros anteriores solo que en lugar de escanear TCP escanea UDP, esta mas que claro. • El parametro es ‘-sP’ este parametro es utilizado para pingear al host y ver si esta up o esta down, veamos el siguiente ejemplo: – nmap -sP 67.15.192.2
  • 57. EJEMPLOS • *Los siguientes parametros son ‘-sX,-sF,-sN’, los 3 parametros tienen el mismo funcionamiento, veamos los siguientes ejemplos de cada parametro: – nmap -sX 67.15.192.2 • *El siguiente parametro es ‘-sV’ es utilizado para determinar el servicio y app (nombres/versiones). • Otro parametro es el ‘-sR’ es utilizado para explorar el RPC, como en el siguiente ejemplo: – nmap -sR 67.15.192.2 • *el siguiente parametro u opcion es ‘-O’ este es utilizado para hacer un fingerprinting al host remoto y detectar que sistema operativo esta usando, veamos el siguiente ejemplo de este parametro: – nmap -O 67.15.192.2
  • 58. EJEMPLOS • *El siguiente parametro es ‘-sV’ es utilizado para determinar el servicio y app (nombres/versiones). • Otro parametro es el ‘-sR’ es utilizado para explorar el RPC, como en el siguiente ejemplo: – nmap -sR 67.15.192.2 • *el siguiente parametro u opcion es ‘-O’ este es utilizado para hacer un fingerprinting al host remoto y detectar que sistema operativo esta usando, veamos el siguiente ejemplo de este parametro: – nmap -O 67.15.192.2 • *Ahora Veamos el siguiente parametro que es ‘-p’ es para scanear un rango de ports en especifico, por ejemplo utilizando la siguiente sintaxys: – nmap -p 1-10,80,110,22 67.15.192.2 • Para que lo tengan mas claro veamos el siguiente ejemplo: – nmap -p 80,22,110,5000 67.15.192.2 • *Otro parametro es ‘-F’ este es utilizado para explorar solo los puertos enumerados del nmap- services. Veamos el ejemplo: – nmap -F 67.15.192.2 • *Bien ahora otro parametro y muy importante es el ‘-v’ el cual es utilizado para obtener informacion de un host, y tambien puedes agregarle otra v para que obtenga mas informacion y es recomendable . Por ejemplo: – nmap -v 67.15.192.2 • *Otro parametro es ‘-P0′ este parametro es utilizado para que no pingee al host.
  • 59. EJEMPLOS • *otro parametro e importante es guardar logs de tus scaneos realizados este es el parametro ‘oN,-oX,-oG’ la sintaxys es la siguiente: – Sintaxys: -oG logfile – Por ejemplo: nmap parametros ‘ip’ -oG log.txt • unas de las utilidades ke se puede hacer con el famoso scaner nmap es esto, por ejemplo: si quieres scanear un rango determinado solamente utilizas este comando – nmap -v ip -p 80 – o bien para guardar el log solo tendrias que poner el parametro ‘-oG log.txt’. • Este famoso scanner tiene funciones que son muy interesante y las combinaciones que se les puede dar y lo rápido que es el scanner otra funcionalidad que le puedes dar ala hora scanear un determinado host es utilizando este comando – nmap -sS -P0 -O ip -oG log.txt • también pueden hacer esto si quieren scanear un rango en specifico por ejemplo: – nmap -p 22 200.92.*.* -oG log.txt
  • 60. EJEMPLOS • La sintaxis básica de nmap es: – nmap [tipo de scan] [opciones] • Por ejemplo si tenemos un host en nuestra red, con direccion ip 192.168.0.1 y deseamos conocer que puertos tiene abiertos, ejecutamos: – nmap 192.168.0.1 • Si queremos, conocer que tipo de sistema operativo, esta corriendo el host al que le realizamos el scaneo, sólo basta agregar el parámetro -O a el comando nmap. – nmap -O 192.168.0.1 • Pero como hace nmap, para reconocer el sistema operativo, que se esta ejecutando en el host destino?. • Básicamente, cada sistema operativo, responde diferente, cuando se le envían paquetes tcp específicos, así se logra determinar con una buena exactitud,que sistema operativo se esta ejecutando. • Al ejecutar nmap, contra un host con sistema operativo Windows XP, se produjo este resultado: • Veamos un par de opciones más interesantes que posee nmap. • Identificando los hosts activos, en nuestra red. • Supongamos, que tenemos una red, 192.168.0.x, y deseamos conocer que hosts se encuentran activos, fácilmente, lo podemos saber con nmap, esto lo podemos conocer al realizar un ping scan. – nmap -sP 192.168.0.1-255 • *Nota: esta herramienta puede ser utilizada para realizar auditorias de seguridad en una red, pero también puede ser utilizada para fines delictivos, ya que esta herramienta pone al descubierto, puertos abiertos en las computadoras de una red, así como también es posible conocer como se encuentra organizada, y de cuantas computadoras consta una red.
  • 61. EJEMPLOS • Realizando Stealth Scans . • Con este tipo de scan, se pretende no ser detectado por software de detección de scaneos, se envían paquetes a los hosts con ciertos "flags" TCP activados o desactivados para evitar ser detectados. • sN: Stealth, Null Scan, este tipo de scan pone en off todos los flags. • sF: Stealth FIN Scan, este tipo de scan usa paquetes con el flag FIN activado para las pruebas. • sX: Stealth Xmas Tree Scan, este tipo de scan envia paquetes con los flag FIN, URG, y PUSH activados. • sp: Ping Scan, realiza un scan dentro de un rango especifico de hosts. útil para conocer que hosts se encuentran en linea sin ser detectados. • Si deseamos hacer un stealth scan del tipo Xmas Tree, y ademas deseamos conocer que sistema operativo esta corriendo el host de destino, ejecutamos: – nmap -sX -O 192.168.1.2 • Despistalo con un Decoy Scan: • -D: Esta opción se utiliza para tratar de engañar al host, al cual se esta "scaneando", que los scans se estan generando desde otros hosts, que se especifican en la opción -D. • En el siguiente ejemplo, realizamos un Stealth Xmas Tree scan (-sX) hacia el host 192.168.0.1, en los puertos 25(SMTP), 53(DNS), le indicamos a nmap que no genere pings hacia el host, y tratamos de engañar al host (-D, Decoy), haciendole creer que los scans se estan generando desde los hosts 1.2.3.4 y 5.6.7.8. – nmap -p 25,53 -sX -P0 -D 1.2.3.4,5.6.7.8 192.168.0.1 • Guardando los resultados de tus scans. • Nmap permite guardar los resultados de un scan, en varios tipos de formato de archivo: Normal, XML, Grepable, All, y en formato "S" (s|<ipT kiDd|3 f0rM iNto THe fiL3 U sPecfy 4s an arGuMEnT!, o mejor conocido como formato Script Kiddie!). • Si deseamos hacer un stealth scan del tipo Xmas Tree, también deseamos conocer que sistema operativo esta corriendo el host de destino, y ademas deseamos guardar el resultado de este scan en un archivo llamado "scanresult.txt", ejecutamos: – nmap -sX -O 192.168.1.2 -oN scanresult.txt • Ahora si lo que deseamos es realizar el scan anterior pero dentro de un rango de hosts específicos, digamos del host 192.168.1.1 hasta la ip 192.168.1.255 , y deseamos guardar el resultado del scan en un archivo de texto normal entonces ejecutamos: – nmap -sX -O 192.168.1.1-255 -oN scanresult.txt
  • 62. EJEMPLOS • supongamos que la victima tiene este ip :200.12.23.34 • para hacer un scan simple de este host basta con hacer esto: – nmap 200.12.23.34 • Determinar si ciertos puertos están disponibles en la victima entonces hacemos esto. – nmap -p 21,23,110,143 200.12.23.34 • Si esta vez quiero determinar que SO esta corriendo la victima la opción es hacer esto : – nmap -sS -O 200.12.23.34 • notese que estoy utilizando la opción -sS para evitar ser detectado al hacer el scan, pero también puede funcionar de esta forma pero serás automáticamente registrado en log del sistema victima: – nmap -O 200.12.23.34 • Para determinar si la victima es vulnerable al "bounce attack" entonces lo utilizamos asi: – nmap -b 200.12.23.34 • o de esta forma si el host tiene sensibles mecanismos de detección de intrusos. – nmap -P0 -b 200.12.23.34 • Ahora si deseo realizar un scan muy suave para no ser detectado por algún firewall utilizo estas opciones con el -f ya que algunos firewall poseen métodos para detectar este tipo de scan. – nmap -sF -f -p 21 23 110 143 200.12.23.34