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
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

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

on

  • 437 views

 

Statistics

Views

Total Views
437
Views on SlideShare
437
Embed Views
0

Actions

Likes
0
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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 Presentation Transcript

  • 1. SALUDO DE TRES VIAS (Three way handshake) SYN ACK SYN / ACK
  • 2. FINALIZACION DE UNA CONEXIÓN TCP
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. 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.
  • 7. 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.
  • 8.  
  • 9. TECNICAS DE ESCANEO
  • 10. 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 .
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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.
  • 15. 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
  • 16. 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
  • 17. 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
  • 18. 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á.
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. 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.
  • 23. 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
  • 24. 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 ).
  • 25. 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
  • 26. 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.
  • 27. 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
  • 28. 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.
  • 29. 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
  • 30. 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 .
  • 31. 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.
  • 32. 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 .
  • 33. 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.
  • 34. 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.
  • 35. 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.
  • 36. 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.
  • 37. 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.
  • 38. 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.
  • 39. 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.
  • 40. 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.
  • 41. 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.
  • 42. 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.
  • 43. 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.
  • 44. 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
  • 45. 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
  • 46. 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.
  • 47. 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
  • 48. 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.
  • 49. 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 &quot;flags&quot; 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 &quot;scaneando&quot;, 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 &quot;S&quot; (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 &quot;scanresult.txt&quot;, 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
  • 50. 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 &quot;bounce attack&quot; 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