Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe #8 – Nmap

TryHackMe #8 – Nmap

Introducción a NMAP

Cuando se trata de hackear, el conocimiento es poder. Cuanto más conocimiento tenga sobre un sistema o red de destino, más opciones tendrá disponibles. Esto hace que sea imperativo que se lleve a cabo una enumeración adecuada antes de realizar cualquier intento de explotación.

Digamos que nos han dado una IP para realizar una auditoría de seguridad. Antes de hacer cualquier otra cosa, necesitamos establecer qué servicios se ejecutan en los objetivos. Tal vez uno de ellos esté ejecutando un servidor web y otro esté actuando como un controlador de dominio de Active Directory de Windows. La primera etapa para establecer este “mapa” es algo llamado escaneo de puertos. Cuando una computadora ejecuta un servicio de red, abre un “puerto” de red para recibir la conexión. 

Los puertos son necesarios para realizar múltiples solicitudes de red o tener múltiples servicios disponibles. Cuando carga varias páginas web a la vez en un navegador web, el programa debe tener alguna forma de determinar qué pestaña está cargando qué página web. Esto se hace estableciendo conexiones a los servidores web remotos usando diferentes puertos en su máquina local. Del mismo modo, si desea que un servidor pueda ejecutar más de un servicio (por ejemplo, tal vez desee que su servidor web ejecute las versiones HTTP y HTTPS del sitio), entonces necesita alguna forma de dirigir el tráfico al servicio apropiado.

Los puertos son la solución a esto. Las conexiones de red se realizan entre dos puertos: un puerto abierto que escucha en el servidor y un puerto seleccionado al azar en su propia computadora. Por ejemplo, cuando se conecta a una página web, su computadora puede abrir el puerto 49534 para conectarse al puerto 443 del servidor. tal vez desee que su servidor web ejecute las versiones HTTP y HTTPS del sitio), entonces necesita alguna forma de dirigir el tráfico al servicio apropiado. 

Como en el ejemplo anterior, el diagrama muestra lo que sucede cuando te conectas a varios sitios web al mismo tiempo. Su computadora abre un puerto diferente con un número alto (al azar), que utiliza para todas sus comunicaciones con el servidor remoto.

Cada computadora tiene un total de 65535 puertos disponibles; sin embargo, muchos de estos están registrados como puertos estándar. Casi siempre se puede encontrar un servicio web HTTP en el puerto 80 del servidor. Se puede encontrar un servicio web HTTPS en el puerto 443. Windows NETBIOS se puede encontrar en el puerto 139 y SMB se puede encontrar en el puerto 445. Es importante tener en cuenta; especialmente en una configuración CTF, no es raro que incluso estos puertos estándar se alteren, lo que hace que sea aún más imperativo que realicemos la enumeración adecuada en el objetivo.

Si no sabemos cuál de estos puertos tiene abierto un servidor, entonces no tenemos esperanza de atacar con éxito el objetivo; por lo tanto, es crucial que comencemos cualquier ataque con un escaneo de puertos. Esto se puede lograr de varias maneras, generalmente usando una herramienta llamada nmap. 

Nmap se puede usar para realizar muchos tipos diferentes de escaneo de puertos; la teoría básica es esta: nmap se conectará a cada puerto del objetivo por turno. Dependiendo de cómo responda el puerto, se puede determinar si está abierto, cerrado o filtrado (generalmente por un firewall). Una vez que sabemos qué puertos están abiertos, podemos enumerar qué servicios se están ejecutando en cada puerto, ya sea manualmente o, más comúnmente, usando nmap.

Nmap La respuesta corta es que actualmente es el estándar de la industria por una razón: ninguna otra herramienta de escaneo de puertos se acerca a igualar su funcionalidad (aunque algunos recién llegados ahora la igualan en velocidad). Es una herramienta extremadamente poderosa, aún más poderosa gracias a su motor de secuencias de comandos que se puede usar para buscar vulnerabilidades y, en algunos casos, ¡incluso realizar la explotación directamente!

Conmutadores Nmap

Como la mayoría de las herramientas de pentesting, nmap se ejecuta desde la terminal. Hay versiones disponibles tanto para Windows como para Linux. Para esta sala, asumiremos que está utilizando Linux; sin embargo, los interruptores deben ser idénticos. Nmap está instalado de forma predeterminada tanto en Kali Linux como en TryHackMe Attack Box.

Se puede acceder a Nmap escribiendo nmap en la línea de comando del terminal, seguido de algunos de los “interruptores” (argumentos de comando que le dicen a un programa que haga cosas diferentes) que cubriremos a continuación.

Todo lo que necesitará para esto es el menú de ayuda para nmap (se accede con nmap -h) y/o la página de manual de nmap (se accede con man nmap). Para cada respuesta, incluya todas las partes del interruptor a menos que se especifique lo contrario. Esto incluye el guion (-) al principio.

Tipos de escaneoVisión general

Al escanear puertos con Nmap, hay tres tipos básicos de escaneo. Estos son:

  • Exploraciones de conexión TCP ( -sT)
  • SYN Escaneos “medio abiertos” ( -sS)
  • Escaneos UDP ( -sU)

Además, hay varios tipos de escaneo de puertos menos comunes. Estos son:

  • Exploraciones nulas de TCP ( -sN)
  • Escaneos TCP FIN ( -sF)
  • Escaneos de Navidad TCP ( -sX)

La mayoría de estos (con la excepción de los escaneos UDP) se utilizan para propósitos muy similares, sin embargo, la forma en que funcionan difiere entre cada escaneo. Esto significa que, si bien es probable que uno de los tres primeros escaneos sea su opción en la mayoría de las situaciones, vale la pena tener en cuenta que existen otros tipos de escaneo. En términos de escaneo de red, también veremos brevemente el escaneo ICMP (o “ping”).

Tipos de escaneoExploraciones de conexión TCP

Para comprender los escaneos de TCP Connect ( -sT), es importante que se sienta cómodo con el protocolo de enlace de tres vías de TCP. Como breve resumen, el apretón de manos de tres vías consta de tres etapas. Primero, la terminal de conexión (nuestra máquina atacante, en este caso) envía una solicitud TCP al servidor de destino con el indicador SYN establecido. Luego, el servidor reconoce este paquete con una respuesta TCP que contiene el indicador SYN, así como el indicador ACK. Finalmente, nuestro terminal completa el protocolo de enlace enviando una solicitud TCP con el indicador ACK establecido.

Por ejemplo, si un puerto está cerrado, RFC 793 establece que:

“… Si la conexión no existe (CERRADA), se envía un restablecimiento en respuesta a cualquier segmento entrante excepto otro restablecimiento. En particular, los SYN dirigidos a una conexión inexistente se rechazan por este medio”.

En otras palabras, si Nmap envía una solicitud TCP con el indicador SYN establecido en un puerto cerrado , el servidor de destino responderá con un paquete TCP con el indicador RST (Reinicio) establecido. Mediante esta respuesta, Nmap puede establecer que el puerto está cerrado.

Sin embargo, si la solicitud se envía a un puerto abierto , el objetivo responderá con un paquete TCP con los indicadores SYN/ACK establecidos. Luego, Nmap marca este puerto como abierto (y completa el protocolo de enlace enviando un paquete TCP con ACK establecido).

Hay una tercera posibilidad. ¿Qué sucede si el puerto está abierto, pero oculto detrás de un firewall? Muchos cortafuegos están configurados para descartar simplemente los paquetes entrantes. Nmap envía una solicitud TCP SYN y no recibe nada. Esto indica que el puerto está protegido por un firewall y, por lo tanto, se considera que el puerto está filtrado . Dicho esto, es muy fácil configurar un firewall para que responda con un paquete RST TCP . Por ejemplo, en IPtables para Linux, una versión simple del comando sería la siguiente:

iptables -I INPUT -p tcp --dport <port> -j REJECT --reject-with tcp-reset

Esto puede hacer que sea extremadamente difícil (si no imposible) obtener una lectura precisa de los objetivos.

Tipos de escaneoEscaneos SYN

Al igual que con los escaneos TCP , los escaneos SYN ( -sS) se utilizan para escanear el rango de puertos TCP de un destino o destinos; sin embargo, los dos tipos de escaneo funcionan de manera ligeramente diferente. Los escaneos SYN a veces se denominan escaneos ” medio abiertos” o escaneos “sigilosos” .

Donde los escaneos TCP realizan un protocolo de enlace completo de tres vías con el objetivo, los escaneos SYN devuelven un paquete RST TCP después de recibir un SYN/ACK del servidor (esto evita que el servidor intente realizar la solicitud repetidamente). La secuencia para escanear un puerto abierto se ve así:

Esto tiene una variedad de ventajas para nosotros como hackers:

  • Se puede usar para eludir los sistemas de detección de intrusos más antiguos, ya que buscan un apretón de manos completo de tres vías. A menudo, este ya no es el caso con las soluciones IDS modernas; es por esta razón que los escaneos SYN todavía se conocen con frecuencia como escaneos “sigilosos”.
  • Los escaneos SYN a menudo no son registrados por las aplicaciones que escuchan en los puertos abiertos, ya que la práctica estándar es registrar una conexión una vez que se ha establecido por completo. 
  • Sin tener que preocuparse por completar (y desconectarse de) un protocolo de enlace de tres vías para cada puerto, los escaneos SYN son significativamente más rápidos que un escaneo TCP Connect estándar.

Sin embargo, hay un par de desventajas en los escaneos SYN, a saber:

  • Requieren permisos sudo para funcionar correctamente en Linux. Esto se debe a que los escaneos SYN requieren la capacidad de crear paquetes sin procesar (a diferencia del protocolo de enlace TCP completo), que es un privilegio que solo el usuario raíz tiene de forma predeterminada.
  • Los escaneos SYN a veces interrumpen los servicios inestables, lo que podría resultar problemático si un cliente ha proporcionado un entorno de producción para la prueba.

Los pros superan a los contras. Por esta razón, los escaneos SYN son los escaneos predeterminados utilizados por Nmap si se ejecutan con permisos sudo . Si se ejecuta sin permisos de sudo, Nmap utiliza de manera predeterminada el escaneo TCP Connect que vimos en la tarea anterior.


Cuando se usa un escaneo SYN para identificar puertos cerrados y filtrados, se aplican exactamente las mismas reglas que con un escaneo TCP Connect. Si un puerto está cerrado, el servidor responde con un paquete RST TCP . Si el puerto está filtrado por un cortafuegos, el paquete TCP SYN se descarta o se falsifica con un restablecimiento de TCP. En este sentido, los dos escaneos son idénticos: la gran diferencia está en cómo manejan los puertos abiertos .


Los escaneos SYN también se pueden hacer funcionar al darle a Nmap las capacidades CAP_NET_RAW, CAP_NET_ADMIN y CAP_NET_BIND_SERVICE; sin embargo, es posible que esto no permita que muchos de los scripts de NSE se ejecuten correctamente.

 Tipos de escaneoEscaneos UDP

A diferencia de TCP, las conexiones UDP no tienen estado. Esto significa que, en lugar de iniciar una conexión con un “apretón de manos” de ida y vuelta, las conexiones UDP se basan en el envío de paquetes a un puerto de destino y, en esencia, esperan que lo logren. Esto hace que UDP sea excelente para las conexiones que dependen de la velocidad sobre la calidad (por ejemplo, compartir videos), pero la falta de reconocimiento hace que UDP sea mucho más difícil (y mucho más lento) de escanear. El interruptor para un escaneo UDP de Nmap es (-sU )

Cuando se envía un paquete a un puerto UDP abierto, no debería haber respuesta. Cuando esto sucede, Nmap se refiere al puerto como open|filtered. En otras palabras, sospecha que el puerto está abierto, pero podría tener un firewall. Si obtiene una respuesta UDP (lo cual es muy inusual), entonces el puerto se marca como abierto. Más comúnmente, no hay respuesta, en cuyo caso la solicitud se envía por segunda vez como una doble verificación. Si aún no hay respuesta, el puerto se marca como abierto|filtrado y Nmap continúa.

Cuando se envía un paquete a un puerto UDP cerrado, el objetivo debe responder con un paquete ICMP (ping) que contiene un mensaje que indica que el puerto no está disponible. Esto identifica claramente los puertos cerrados, que Nmap marca como tales y continúa.


Debido a esta dificultad para identificar si un puerto UDP está realmente abierto, los escaneos UDP tienden a ser increíblemente lentos en comparación con los varios escaneos TCP (en la región de 20 minutos para escanear los primeros 1000 puertos, con una buena conexión). Por este motivo, suele ser una buena práctica ejecutar un análisis de Nmap con la--top-ports <number> opción habilitada. Por ejemplo, escanear con  nmap -sU --top-ports 20 <target>Explorará los 20 puertos UDP más utilizados, lo que resultará en un tiempo de exploración mucho más aceptable.


Al escanear puertos UDP , Nmap generalmente envía solicitudes completamente vacías, solo paquetes UDP sin procesar. Dicho esto, para los puertos que suelen estar ocupados por servicios bien conocidos, en su lugar enviará una carga útil específica del protocolo que es más probable que obtenga una respuesta de la que se pueda extraer un resultado más preciso.

Tipos de escaneo NULL, FIN y Xmas (Navidad)

Los escaneos de puertos NULL, FIN y Xmas TCP se usan con menos frecuencia que cualquiera de los otros que ya hemos cubierto. Se utilizan principalmente porque tienden a ser aún más sigilosos, en términos relativos, que un escaneo “sigiloso” SYN. Comenzando con escaneos NULL:

  • Como sugiere el nombre, los escaneos NULL ( -sN) son cuando la solicitud TCP se envía sin ningún indicador establecido. Según el RFC, el host de destino debe responder con un RST si el puerto está cerrado.

Los escaneos FIN ( -sF) funcionan de manera casi idéntica; sin embargo, en lugar de enviar un paquete completamente vacío, se envía una solicitud con el indicador FIN (generalmente se usa para cerrar correctamente una conexión activa). Una vez más, Nmap espera un RST si el puerto está cerrado.

Al igual que con los otros dos escaneos de esta clase, los escaneos Xmas ( -sX) envían un paquete TCP con formato incorrecto y esperan una respuesta RST para puertos cerrados. Se lo conoce como un escaneo de navidad porque las banderas que establece (PSH, URG y FIN) le dan la apariencia de un árbol de navidad parpadeante cuando se ve como una captura de paquetes en Wireshark.

La respuesta esperada para puertos abiertos con estos escaneos también es idéntica y es muy similar a la de un escaneo UDP . Si el puerto está abierto, no hay respuesta al paquete con formato incorrecto. Desafortunadamente (al igual que con los puertos UDP abiertos), ese también es un comportamiento esperado si el puerto está protegido por un firewall, por lo que los escaneos NULL, FIN y Xmas solo identificarán los puertos como abiertos, filtradoscerrados o filtrados. Si un puerto se identifica como filtrado con uno de estos escaneos, generalmente se debe a que el destino ha respondido con un paquete ICMP inalcanzable.

si bien RFC 793 exige que los hosts de la red respondan a paquetes con formato incorrecto con un paquete RST TCP para puertos cerrados y no respondan en absoluto para puertos abiertos; este no es siempre el caso en la práctica. En particular, se sabe que Microsoft Windows (y muchos dispositivos de red de Cisco) responden con un RST a cualquier paquete TCP con formato incorrecto, independientemente de si el puerto está realmente abierto o no. Esto hace que todos los puertos aparezcan como cerrados.

Dicho esto, el objetivo aquí es, por supuesto, la evasión del firewall. Muchos cortafuegos están configurados para enviar paquetes TCP entrantes a puertos bloqueados que tienen el indicador SYN establecido (bloqueando así nuevas solicitudes de inicio de conexión). Al enviar solicitudes que no contienen el indicador SYN, evitamos de manera efectiva este tipo de firewall. Si bien esto es bueno en teoría, la mayoría de las soluciones IDS modernas son inteligentes para estos tipos de escaneo, así que no confíe en que sean 100% efectivos cuando se trata de sistemas modernos.

 Tipos de escaneoExploración de red ICMP

En la primera conexión a una red de destino en una asignación de caja negra, nuestro primer objetivo es obtener un “mapa” de la estructura de la red o, queremos ver qué direcciones IP contienen hosts activos y cuáles no. .

Una forma de hacer esto es usando Nmap para realizar el llamado “barrido de ping”. Esto es exactamente como sugiere el nombre: Nmap envía un paquete ICMP a cada dirección IP posible para la red especificada. Cuando recibe una respuesta, marca la dirección IP que respondió como viva. Por razones que veremos en una tarea posterior, esto no siempre es exacto; sin embargo, puede proporcionar algo así como una línea de base y, por lo tanto, vale la pena cubrirlo.

Para realizar un barrido de ping, usamos el -snconmutador junto con rangos de IP que se pueden especificar con un guión (-) o notación CIDR. es decir, podríamos escanear la 192.168.0.x red usando:

  • nmap -sn 192.168.0.1-254

o

  • nmap -sn 192.168.0.0/24

-sn le dice a Nmap que no escanee ningún puerto, lo que lo obliga a depender principalmente de paquetes de eco ICMP (o solicitudes ARP en una red local, si se ejecuta con sudo o directamente como usuario raíz) para identificar objetivos. Además de las solicitudes de eco ICMP, -sn también hará que nmap envíe un paquete TCP SYN al puerto 443 del destino, así como un paquete TCP ACK (o TCP SYN si no se ejecuta como raíz) al puerto 80 del destino .

NSE

El Nmap Scripting Engine (NSE) es una adición increíblemente poderosa a Nmap, que amplía considerablemente su funcionalidad . Los scripts NSE están escritos en el lenguaje de programación Lua y se pueden usar para hacer una variedad de cosas: desde buscar vulnerabilidades hasta automatizar exploits para ellas. El NSE es particularmente útil para el reconocimiento, sin embargo, vale la pena tener en cuenta lo extensa que es la biblioteca de scripts.

Hay muchas categorías disponibles. Algunas categorías útiles incluyen:

  • safe:- No afectará al objetivo
  • intrusive:- No es seguro: es probable que afecte al objetivo
  • vuln:- Explorar en busca de vulnerabilidades
  • exploit:- Intento de explotar una vulnerabilidad
  • auth:- Intentar omitir la autenticación para ejecutar servicios (por ejemplo, iniciar sesión en un servidor FTP de forma anónima)
  • brute:- Intento de fuerza bruta de credenciales para ejecutar servicios
  • discovery:- Intente consultar los servicios en ejecución para obtener más información sobre la red (por ejemplo, consultar un servidor SNMP).

Una lista más exhaustiva se puede encontrar aquí .

Trabajando con la NSE

Para activar los scripts NSE de la categoria vuln usamos --script=vuln. No debería sorprender que las otras categorías funcionen exactamente de la misma manera. Si se ejecuta el comando --script=safe, todos los scripts seguros aplicables se ejecutarán contra el destino (Nota: solo se activarán los scripts que se dirijan a un servicio activo).


Para ejecutar un script específico, usaríamos --script=<script-name>, por ejemplo --script=http-fileupload-exploiter, .

Se pueden ejecutar varios scripts simultáneamente de esta manera separándolos con una coma. --script=smb-enum-users,smb-enum-shares.

Algunos scripts requieren argumentos (por ejemplo, credenciales, si están explotando una vulnerabilidad autenticada). Estos se pueden dar con el --script-args Nmap. Un ejemplo de esto sería con el http-putscript (usado para subir archivos usando el método PUT). Esto toma dos argumentos: la URL para cargar el archivo y la ubicación del archivo en el disco. 

nmap -p 80 --script http-put --script-args http-put.url='/dav/shell.php',http-put.file='./shell.php'

Tenga en cuenta que los argumentos están separados por comas y conectados al script correspondiente con puntos (<script-name>.<argument>).

Puede encontrar una lista completa de scripts y sus argumentos correspondientes (junto con ejemplos de casos de uso) aquí .

Los scripts de Nmap vienen con menús de ayuda incorporados, a los que se puede acceder usando nmap --script-help <script-name>. Esto tiende a no ser tan extenso como en el enlace anterior, sin embargo, aún puede ser útil cuando se trabaja localmente.

NSE Búsqueda de Scripts

Hay dos formas de buscar scripts instalados. Una es usando el /usr/share/nmap/scripts/script.db. A pesar de la extensión, esto no es en realidad una base de datos sino un archivo de texto formateado que contiene nombres de archivo y categorías para cada script disponible.

Nmap utiliza este archivo para realizar un seguimiento de (y utilizar) secuencias de comandos para el motor de secuencias de comandos; sin embargo, también podemos recorrerlo para buscar scripts. Por ejemplo: grep "ftp" /usr/share/nmap/scripts/script.db.

La segunda forma de buscar scripts es simplemente usar el lscomando. Por ejemplo, podríamos obtener los mismos resultados que en la captura de pantalla anterior usando ls -l /usr/share/nmap/scripts/*ftp*:

Tenga en cuenta el uso de asteriscos (*a cada lado del término de búsqueda

Las mismas técnicas también se pueden utilizar para buscar categorías de secuencias de comandos. Por ejemplo:
grep "safe" /usr/share/nmap/scripts/script.db


Instalación de nuevos scripts

Anteriormente mencionamos que el sitio web de Nmap contiene una lista de scripts, entonces, ¿qué sucede si falta uno de estos en el scriptsdirectorio local? Un estándar sudo apt update && sudo apt install nmapdebería arreglar esto; sin embargo, también es posible instalar los scripts manualmente descargándolos desde Nmap ( sudo wget -O /usr/share/nmap/scripts/<script-name>.nse https://svn.nmap.org/nmap/scripts/<script-name>.nse). A continuación, se debe seguir con nmap --script-updatedb, que actualiza el script.dbarchivo para que contenga el script recién descargado.

Vale la pena señalar que necesitaría el mismo comando “updatedb” si tuviera que crear su propio script NSE y agregarlo a Nmap.

Evasión de cortafuegos

Ya hemos visto algunas técnicas para eludir los cortafuegos (piense en los escaneos sigilosos, junto con los escaneos NULL, FIN y Xmas); sin embargo, existe otra configuración de firewall muy común que es imperativo que sepamos cómo eludir.

Su host típico de Windows, con su firewall predeterminado, bloqueará todos los paquetes ICMP. Esto presenta un problema: no solo usamos ping a menudo para establecer manualmente la actividad de un objetivo, Nmap hace lo mismo por defecto. Esto significa que Nmap registrará un host con esta configuración de firewall como muerto y no se molestará en escanearlo en absoluto.

Por lo tanto, necesitamos una forma de sortear esta configuración. Afortunadamente, Nmap proporciona una opción para esto: -Pn, que le dice a Nmap que no se moleste en hacer ping al host antes de escanearlo. Esto significa que Nmap siempre tratará a los hosts de destino como si estuvieran vivos, omitiendo efectivamente el bloque ICMP; sin embargo toma mucho tiempo para completar el escaneo (si el host realmente está muerto, entonces Nmap seguirá verificando y verificando dos veces cada puerto especificado).

Vale la pena señalar que si ya está directamente en la red local, Nmap también puede usar solicitudes ARP para determinar la actividad del host.


Hay una variedad de otros conmutadores que Nmap considera útiles para la evasión de cortafuegos. Se pueden encontrar aquí .

Los siguientes interruptores son de particular interés:

  • -f: Se utiliza para fragmentar los paquetes (es decir, dividirlos en partes más pequeñas) para que sea menos probable que los paquetes sean detectados por un firewall o IDS .
  • Una alternativa a -f, pero brindando más control sobre el tamaño de los paquetes: --mtu <number>, acepta un tamaño máximo de unidad de transmisión para usar con los paquetes enviados. Debe ser múltiplo de 8.
  • --scan-delay <time>ms:- se usa para agregar un retraso entre los paquetes enviados. Esto es muy útil si la red es inestable, pero también para evadir cualquier activador de firewall/IDS basado en tiempo que pueda estar en su lugar.
  • --badsum:- esto se usa para generar una suma de verificación no válida para paquetes. Cualquier pila real de TCP/IP eliminaría este paquete, sin embargo, los cortafuegos pueden responder automáticamente, sin molestarse en verificar la suma de verificación del paquete. Como tal, este conmutador se puede utilizar para determinar la presencia de un cortafuegos/IDS.

Task 2  Introduction


What networking constructs are used to direct traffic to the right application on a server?

Ports

El modelo OSI es quien se preocupa de la administración de los puertos y los establece en el encabezado de los segmentos es la capa de transporte o capa 4, administrando así el envío y reensamblaje de cada segmento enviado a la red haciendo uso del puerto especificado. Un puerto suele estar numerado para de esta forma poder identificar la aplicación que lo usa. Decidir a qué programa entregará los datos recibidos. Esta asignación de puertos permite a una máquina establecer simultáneamente diversas conexiones con máquinas distintas, ya que todos los segmentos que se reciben tienen la misma dirección, pero van dirigidos a puertos diferentes.

How many of these are available on any network-enabled computer?

65535

Los números de puerto se indican mediante una palabra de un procesador de 16 bits (2 bytes), por lo que existen 65536 puertos, numerados del 0 al 65535. Aunque podemos usar cualquiera de ellos para cualquier protocolo, existe una entidad, la IANA, encargada de su asignación, la cual creó tres categorías:

  • Puertos bien conocidos: Los puertos inferiores al 1024 son puertos reservados para el sistema operativo y usados por “protocolos bien conocidos” como por ejemplo HTTP (servidor Web), POP3/SMTP (servidor de e-mail) y Telnet. Si queremos usar uno de estos puertos tendremos que arrancar el servicio que los use teniendo permisos de administrador.
  • Puertos registrados: Los comprendidos entre 1024 (0400 en hexadecimal) y 49151 (BFFF en hexadecimal) son denominados “registrados” y pueden ser usados por cualquier aplicación. Existe una lista pública en la web del IANA donde se puede ver qué protocolo que usa cada uno de ellos.
  • Puertos dinámicos o privados: Los comprendidos entre los números 49152 (C000 en hexadecimal) y 65535 (FFFF en hexadecimal) son denominados dinámicos o privados, normalmente se asignan en forma dinámica a las aplicaciones de clientes al iniciarse la conexión. Se usan en conexiones peer to peer (P2P).

[Research] How many of these are considered “well-known”? (These are the “standard” numbers mentioned in the task)

1024

Ya lo explique en la pregunta anterior.

Task 3  Nmap Switches

What is the first switch listed in the help menu for a ‘Syn Scan’ (more on this later!)?

-sS

Which switch would you use for a “UDP scan”?

-sU

If you wanted to detect which operating system the target is running on, which switch would you use?

-O

Nmap provides a switch to detect the version of the services running on the target. What is this switch?

-sV

The default output provided by nmap often does not provide enough information for a pentester. How would you increase the verbosity?

-v

-v tiende a ser verbosity. En español buscar como mensajes.

Verbosity level one is good, but verbosity level two is better! How would you set the verbosity level to two? (Note: it’s highly advisable to always use at least this option)

-vv

Aplica el mismo caso que el anterior

We should always save the output of our scans — this means that we only need to run the scan once (reducing network traffic and thus chance of detection), and gives us a reference to use when writing reports for clients. What switch would you use to save the nmap results in three major formats?

-oA

What switch would you use to save the nmap results in a “normal” format?

-oN

A very useful output format: how would you save results in a “grepable” format?

-oG

Aplica el mismo caso que el anterior

Sometimes the results we’re getting just aren’t enough. If we don’t care about how loud we are, we can enable “aggressive” mode. This is a shorthand switch that activates service detection, operating system detection, a traceroute and common script scanning. How would you activate this setting?

-A

Nmap offers five levels of “timing” template. These are essentially used to increase the speed your scan runs at. Be careful though: higher speeds are noisier, and can incur errors! How would you set the timing template to level 5?

-T5

We can also choose which port(s) to scan. How would you tell nmap to only scan port 80?

-p 80

How would you tell nmap to scan ports 1000-1500?

-p 1000-1500

A very useful option that should not be ignored: How would you tell nmap to scan all ports?

-p-

How would you activate a script from the nmap scripting library (lots more on this later!)?

–script

How would you activate all of the scripts in the “vuln” category?

–script=vuln

esto ya se explica en THM

Task 5  Scan Types TCP Connect Scans

Which RFC defines the appropriate behaviour for the TCP protocol?

RFC 793

“For example, if a port is closed, RFC 793 states that:”

If a port is closed, which flag should the server send back to indicate this?

RST

Task 6  Scan Types SYN Scans

There are two other names for a SYN scan, what are they?

Half-Open, Stealth

“As with TCP scans, SYN scans (-sS) are used to scan the TCP port-range of a target or targets; however, the two scan types work slightly differently. SYN scans are sometimes referred to as “Half-open” scans, or “Stealth” scans.”

Can Nmap use a SYN scan without Sudo permissions (Y/N)?

N

“They require sudo permissions in order to work correctly in Linux. This is because SYN scans require the ability to create raw packets (as opposed to the full TCP handshake), which is a privilege only the root user has by default.”

Task 7  Scan Types UDP Scans


If a UDP port doesn’t respond to an Nmap scan, what will it be marked as?

open|filtered

When a packet is sent to an open UDP port, there should be no response. When this happens, Nmap refers to the port as being open|filtered

When a UDP port is closed, by convention the target should send back a “port unreachable” message. Which protocol would it use to do so?

ICMP

Fue mencionado anteriormente,

Task 8  Scan Types NULL, FIN and Xmas

Which of the three shown scan types uses the URG flag?

xmas

As with the other two scans in this class, Xmas scans (-sX) send a malformed TCP packet and expects a RST response for closed ports. It’s referred to as an xmas scan as the flags that it sets (PSH, URG and FIN) give it the appearance of a blinking christmas tree when viewed as a packet capture in Wireshark.

Why are NULL, FIN and Xmas scans generally used?

Firewall Evasion

That said, the goal here is, of course, firewall evasion. Many firewalls are configured to drop incoming TCP packets to blocked ports which have the SYN flag set (thus blocking new connection initiation requests). 

Which common OS may respond to a NULL, FIN or Xmas scan with a RST for every port?

Microsoft Windows

In particular Microsoft Windows (and a lot of Cisco network devices) are known to respond with a RST to any malformed TCP packet — regardless of whether the port is actually open or not. This results in all ports showing up as being closed.

Task 9  Scan Types ICMP Network Scanning

How would you perform a ping sweep on the 172.16.x.x network (Netmask: 255.255.0.0) using Nmap? (CIDR notation)

nmap -sn 172.16.0.0/16

Task 10  NSE Scripts Overview

What language are NSE scripts written in?

Lua

Lua es un lenguaje de programación multiparadigma, imperativo, estructurado y bastante ligero, que fue diseñado como un lenguaje interpretado con una semántica extendible. Está diseñado principalmente para ser utilizado de manera incorporada en aplicaciones

Which category of scripts would be a very bad idea to run in a production environment?

intrusive

There are many categories available. Some useful categories include:

  • safe:- Won’t affect the target
  • intrusive:- Not safe: likely to affect the target
  • vuln:- Scan for vulnerabilities
  • exploit:- Attempt to exploit a vulnerability
  • auth:- Attempt to bypass authentication for running services (e.g. Log into an FTP server anonymously)
  • brute:- Attempt to bruteforce credentials for running service
  • discovery:- Attempt to query running services for further information about the network (e.g. query an SNMP server).

Task 11  NSE Scripts Working with the NSE


What optional argument can the ftp-anon.nse script take?

maxlist

Task 12  NSE Scripts Searching for Scripts

Search for “smb” scripts in the /usr/share/nmap/scripts/ directory using either of the demonstrated methods. What is the filename of the script which determines the underlying OS of the SMB server?

smb-os-discovery.nse

Read through this script. What does it depend on?

smb-brute

Task 13  Firewall Evasion

Which simple (and frequently relied upon) protocol is often blocked, requiring the use of the -Pn switch?

ICMP

So, we need a way to get around this configuration. Fortunately Nmap provides an option for this: -Pn, which tells Nmap to not bother pinging the host before scanning it. This means that Nmap will always treat the target host(s) as being alive, effectively bypassing the ICMP block; however, it comes at the price of potentially taking a very long time to complete the scan (if the host really is dead then Nmap will still be checking and double checking every specified port).

[Research] Which Nmap switch allows you to append an arbitrary length of random data to the end of packets?

–data-length

--data-length <number> (Append random data to sent packets) (Agregar datos aleatorios a los paquetes enviados)

Normalmente, Nmap envía paquetes minimalistas que contienen solo un encabezado. Por lo tanto, sus paquetes TCP son generalmente de 40 bytes y las solicitudes de eco ICMP son solo 28. Algunos puertos UDP y protocolos IP obtienen una carga útil personalizada de forma predeterminada. Esta opción le dice a Nmap que agregue el número dado de bytes aleatorios a la mayoría de los paquetes que envía, y que no use ninguna carga útil específica del protocolo. (Úselo --data-length 0 para cargas no aleatorias o específicas del protocolo. Los paquetes de detección del sistema operativo ( -O) no se ven afectados porque la precisión allí requiere consistencia de la sonda, pero la mayoría de los paquetes de ping y escaneo de puertos lo admiten. Ralentiza un poco las cosas, pero puede hacer que un escaneo sea un poco menos visible.

Task 14  Practical

Does the target (MACHINE_IP)respond to ICMP (ping) requests (Y/N)?

N

Perform an Xmas scan on the first 999 ports of the target — how many ports are shown to be open or filtered?

999

There is a reason given for this — what is it? Note: The answer will be in your scan results. Think carefully about which switches to use — and read the hint before asking for help!

No Response

Perform a TCP SYN scan on the first 5000 ports of the target — how many ports are shown to be open?

5

Deploy the ftp-anon script against the box. Can Nmap login successfully to the FTP server on port 21? (Y/N)

Y

Felicidades has finalizado. Nos vemos en #9 Network Services.



Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *