Conociendo un poco más a NMAP

Iniciado por DeBobiPro, Febrero 11, 2019, 01:50:28 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 11, 2019, 01:50:28 PM Ultima modificación: Febrero 11, 2019, 09:49:35 PM por DeBobiPro
Hola querida comunidad,
Este post tiene el propósito de demostrar y explicar de manera general la forma de operar que tiene NMAP, siempre es bueno conocer un poquito más sobre las herramientas que utilizamos  ;D .

Aclaración: Estas son algunas de las funcionalidades que tiene NMAP, en ningún caso es un manual de uso completo.

Primero que todo, la pagina oficial del proyecto es No tienes permitido ver los links. Registrarse o Entrar a mi cuenta donde podrán encontrar mucha más información, sobre todo la que me parece interesante de mencionar es el apartado de los scripts No tienes permitido ver los links. Registrarse o Entrar a mi cuenta .


Escenario de pruebas que utilicé:
RED NAT (virtual BOX)
Máquina virtual con KALI Linux
IP: 10.1.1.4
ROL: Víctima

Maquina virtual con W7
IP: 10.1.1.9
ROL: Atacante


Comenzaremos entendiendo un poco que son las "banderas de comunicación TCP" o su nombre en inglés "TCP Communication Flags".

Cuando queremos realizar una transferencia de datos (estamos en el contexto de TCP) se realizan 3 etapas:

  • 3-way HandShake (negociación de 3 pasos)
  • En envío de los datos
  • Término de la conexión

Cada segmento TCP que se envía tiene una cabecera de 31 (he escuchado 32 también) bits y dentro de estos bit hay 6 bits que son importantes conocer para este post, me refiero a las "FLAGS".
Cabecera TCP


Los flags son:
[URG][PSH][FIN][ACK][RST][SYN]
cada uno de 1 bit

Descripción de los FLAG

URG: Notifica que el paquete viene con caracter urgente y debe ser procesado antes que la cola de paquetes pendientes.
PSH: Similar a URG, este bit indica al receptor que debe procesar el paquete en lugar de almacenarlo en memoria.
FIN: Indica que se terminó de enviar datos.
ACK: Indica que se recibió el paquete, algo así como "Acuso recibo".
RST: Indica que se recibió un dato no esperado y se requiere proceder con la conexión nuevamente para operar normalmente.
SYN: Indica que comienza la etapa 1 "3-way HandShake" o "el saludo de manos" , solo el primer paquete tanto del emisor como receptor debería tener este bit activo

Los bit URG y PSH corresponden a instrucciones del sistema y los 4 restantes FIN, ACK, RST y SYN hacen referencia al establecimiento, mantenimiento y término de la conexión.

Bueno, hasta aquí ya tenemos una idea bien general del funcionamiento de una transferencia de datos mediante el protocolo TCP, ahora veremos como se comporta NMAP y que tiene que ver lo recientemente visto con nuestra querida herramienta de escaneo.

Existen 3 grandes tipos de escaneo, por mencionar algunos:

  • Escaneo ICMP
  • Escaneo TCP

    • Método de escaneo abierto
    • Método de escaneo Sigiloso (Stealth)
    • Método de escaneo por terceros
  • Escaneo UDP

cada item se puede abrir en diferentes tipos de escaneo y es lo que hacemos cuando indicamos en nmap los argumentos como:

Código: bash
-sX -sT -sn -sA

entre otros...


¿Cómo se ve en una maquina "victima" un escaneo?
Es muy importante saber que NMAP hace mucho ruido en la red, por lo que realizar escaneos a sitios, servidores o cualquier maquina pública se verá más menos de la siguiente forma:

Instrucción utilizada
Código: bash
nmap 10.1.1.4


Visualización de tráfico de RED con WireShark

Esto es solo un extracto de todo lo que me muestra WireShark, pero entendamos un poco que muestra la imágen.

1.- La columna Source indica de donde viene la data, que sabemos que nuestra máquina .9 es la atacante y el en la columna Destination se ve nuestra maquina victima .4. Con esto ya hay una sospecha de algo extraño por la cantidad de paquetes enviados desde la ip .9 a la ip .4

2.- En la columna info vemos algo que ahora ya conocemos "las FLAGS", si nos fijamos, los paquetes van desde la ip .9 a la .4 (GRIS) y luego hay una respuesta de la .4 a la .9 (ROJO) y esto se repite tantas veces como puertos me esté analizando.
PERO ahora ya sabemos que hace cada FLAG, primero envía [SYN] (trata de establecer una conexión) y la respuesta es [RST][ACK], o dicho en palabras simples, cada par de colores significa:
Atacante: "Hola amigo .4 ¿Tendrás X puerto abierto?" (SYN)"
Victima: "Acuso recibo, pero no esperaba que me hablen por este puerto"

3.- Para saber que puerto están escaneando, debemos leer el paquete [SYN], (ver lo seleccionado):

Esto significa que el atacante envió un paquete por el puerto 50084 hacia el puerto 587 de la victima. (se puede ver en la columna info)

Entonces si volvemos a mirar la imagen del ejemplo del tráfico de RED, ahora podemos ver claramente que hubo un escaneo de una ip ".9" a nuestro sistema ".4" por el puerto 50084 a los puertos: 587,23, 135, 113, 3389, etc...

¿Hasta aquí todo claro verdad?, por eso siempre tomen los resguardos antes de hacer un escaneo sin autorización ya que es relativamente sencillo de detectar.


Veamos ahora algunos tipos de escaneos y como funciona, nuestro puerto de ejemplo será el 9001 que está abierto.

Utilizaré "->" para indicar el tráfico desde el atacante a la victima y "<-" desde la victima al atacante.

Full Open Scan
instrucción nmap
Código: bash
nmap -sT -p 9001 10.1.1.4


Puerto abierto
-> [SYN] + PUERTO
<- [SYN] + [ACK]
-> [ACK]
-> [RST]



Puerto cerrado
-> [SYN] + PUERTO
<- [RST]




Escaneo Sigiloso
instrucción nmap
Código: bash
nmap -sT -p 9001 10.1.1.4

Esta técnica se utiliza para tratar de evadir reglas de firewall, mecanismos de login "ocultar" nuestra visita simulando un trafico usual y cotidiano.
ACLARACIÓN: Esta técnica no garantiza anomización

Puerto abierto
-> [SYN] + PUERTO
<- [SYN] + [ACK]
-> [RST]

Puerto cerrado
-> [SYN] + PUERTO
<- [RST]


Escaneo inverso (Xmas)
instrucción nmap
Código: bash
nmap -sX -p 9001 10.1.1.4

Esta técnica es bastante particular ya que cuando no hay respuesta significa que el puerto está abierto y cuando existe respuesta significa que el puerto está cerrado.

Esta técnica no es efectiva en sistemas más actuales de Windows.

Puerto abierto
-> [FIN, URG, PSH]
<- ... sin respuesta....


Puerto cerrado
-> [FIN, URG, PSH]
<- [RST] [ACK]







Seguiré con algunos ejemplos de escaneos y como se ven estos en WireShark, pero se los dejo hasta aquí mientras para que puedan ir probando y consultando si es que tienen alguna duda.

Estaré atento a sus comentarios.

Saludos Underc0ders!

[ESTE POST CONTINUARÁ....]
Nivel 77 No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Las cosas bien explicadas se entienden mejor, gracias por el aporte.

una consulta, si no conozco la ip del equipo que quiero escanear? como puedo hacer para averiguarla? estoy tratando de acceder a un equipo (una OLT) que le cambiaron la ip de gestión, por lo cual para ingresar a ella necesito conectarme físicamente a ella pero al no conocer la ip, se me complica bastante

La verdad me sirvio mucho lo que explicaste. cada dia comprendo un poco mas sobre todo.

Espero la proxima parte super ansioso

Saludos.-

Septiembre 04, 2022, 03:37:30 PM #4 Ultima modificación: Septiembre 05, 2022, 10:36:07 AM por zVk
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
una consulta, si no conozco la ip del equipo que quiero escanear? como puedo hacer para averiguarla? estoy tratando de acceder a un equipo (una OLT) que le cambiaron la ip de gestión, por lo cual para ingresar a ella necesito conectarme físicamente a ella pero al no conocer la ip, se me complica bastante
Haz consultas arp, localiza las IPs que ya conozcas, las que no conozcas las metes en en una tabla.
Teniendo esta info solo haz un nmap más o menos así:
Código: bash
nmap -sS -A -O -F -f -iL SINÓ, nmap -sL/-sP/-sT/-sS -iL

Cuando te salga la info mira los nombres e info de los equipos, si ya sabes el nombre del equipo, pues ya está, mira la ip y ya podrás conectarte o lo que sea que quisieras hacer.
Con esto dicho si tienes la dirección MAC del otro equipo podrías probar a averiguar su IP a través de la MAC usando el protocolo de resolución de direcciones (ARP) de la siguiente forma:
Windows/Linux:
Código: bash
arp -a

Mira la MAC asociada a la IP y ya está mi querido amigo.

Excelente explicacion y sobre todo los conceptos que es lo fundamental para entender. Muchas Gracias