You are on page 1of 6

· Nmap Advanced -Primera Parte-

By ConfusedMInd

Este paper esta destinado con un simple fin, comprender y entender como se
realiza un escaneo de puertos de forma básica y avanzada, y así poder obtener
logros positivos con una forma de escaneo avanzado.

Como denomine en el titulo, es algo avanzado, tampoco muy pero se requieren


algunos conocimientos previos, de scanners de puertos, para que se usan,
algunos RFC's de protocolos como TCP, UDP, ICMP, entre otras cosas, aunque
en algunos casos los introduciré a los conceptos brevemente y por arriba, por
eso para ampliar en algún protocolo preferiblemente tener buenos conceptos
antes de seguir con este, aunque tratare de hacerlo fácil recomiendo que lean
las RFC de cada protocolo o tecnologia…

Contenido:
############################################

INTRODUCCION -Primera Parte-


[-- 1.0 Cabeceras TCP, UDP, ICMP.
[-- 2.0 Flags
[-- 3.0 Three way Handshake & Estados TCP.

NMAP -Segunda Parte-


[-- 4.0 Técnicas de Escaneo Simple.
[-- 5.0 Técnicas de Escaneo Avanzado.

############################################

# Cabeceras TCP, UDP, ICMP.
Vamos a repasar un poco las cabeceras y sus respectivos FLAGS.

A continuación hablaremos de 3 protocolos bastantes conocidos e intentare


mostrar la estructura que tiene un paquete que pertenece a cada uno que
nombrare y de los campos que contiene cada cabecera.

El primero y mas conocido es el TCP (Transmisión Control Protocol).


Este protocolo, resalta entre sus características tres muy importantes:

- La característica de crear conexiones virtuales a través de los conocidos


sockets.
- La característica de que los datos enviados salen de forma ordenada.
- Y el constante control de flujo de los datos.

(Cabecera TCP)
Bueno como podemos ver la cabecera TCP esta compuesta por varios campos
que nombrare a continuación de forma rapida..

- Source Port -> Puerto Origen de la conexión.


- Destination Port -> Puerto Destino.
- Sequencer number -> Numero de Secuencia, que identifica de forma única
a un paquete que pertenece a una misma conexión.
- ACK number -> Este numero de respuesta (ACK) sirve para confirmar al
emisor que la recepción de su paquete fue satisfactoria.

- Header Lenght -> Esto indica el comienzo de los datos y finaliza la


cabecera TCP.
- Reserved -> En este campo se reservan 6bits, para las flags y es algo que
hay que tener muy en cuenta y saber. Las flags pueden ser
URG - ACK - PSH - RST - SYN - FIN.

- Window -> Luego tenemos el campo Ventana que se contiene un control de


flujo, y permite calcular los bytes que podremos recibir en el próximo paquete.
- Cheksum -> La comprobación o suma de comprobación es un determinado
numero que permite demostrar que los datos no llegaron de forma corrupta o
errónea al destinatario. Los datos que se suman, derivan de dirección ip de
origen, ip destino, campo reservado, tamaño de paquetes y protocolos.

- Urgent -> El campo de Urgencia, permite enviar datos combinados de


urgencia con datos que son normales.
- Opciones -> Opciones propias referentes del protocolo TCP.
- Datos -> Los datos del paquete.

# Cabecera UDP
El Udp es un protocolo mas simple solo con mirar la cabecera nos damos
cuenta de eso. Udp no se orienta a la conexión.. vamos a analizar las
cabeceras:

Puerto de Origen: El puerto origen de la conexiones


Puerto de Destino: Puerto destino de la conexiones
Longitud: Es la longitud del paquete UDP en bytes.
Checksum: Es la suma de comprobación para comprobar la integridad y
confirmar que no ha llegado con errores o fallos.
Datos: Los datos correspondientes al paquete.

# Protocolo ICMP
Analizaremos el ultimo protocolo de los 3 que explicare en este paper...
El ICMP es un protocolo archi-conocido en lo que este ambiente respecta, lo
vemos constantemente al hacer ping, al filtrar y crear reglas en firewalls,
etc... Es que justamente ese es su trabajo, es un protocolo bastante simple el
cual orienta su objetivo a informar o controlar errores.

Algo que hay que aclarar es que la cabecera de un paquete ICMP puede ir de
96bits a 160bits según la variante del mensaje icmp.
Veamos como esta formada la cabecera....

Como vemos esta compuesto por el campo TIPO, CODIGO, Suma de


Comprobación, Y el contenido del Paquete.

La clave esta en basarnos y entender los diferentes tipos de mensajes que hay.

TYPES mas comunes:

0=echo reply
3=destination unreachable
4=source quench
5=redirect
8=echo
11=time exceeded
12=parameter problem
13=timestamp
14=timestamp reply
15=information request
16=information reply
30=traceroute

CODIGO: El código indica una opción dentro de cada tipo de mensaje..


Checksum: La suma de comprobación que permite confirmar que la cabecera
no ha llegado de forma corrupta o errónea.

Una recomendación es leer los rfcs de cada protocolo y de todo lo que exista
en internet y tenga su respectivo RFC asi entenderemos de una mejor forma
como funciona realmente.

Rfc ICMP > http://www.rfc-es.org/rfc/rfc0792-es.txt


Para analizar mejor los tipos de mensajes y sus códigos lean el RFC.

# FLAGS
En el campo RESERVED del protocolo TCP, pudimos ver como habia un campo
especialmente reservado para estas FLAGS.
Ahora vamos a entrar en contacto con cada una para comprender que quieren
decir cada una y para que se usan.

Las flags están compuestas por 6 bits, 1 bit por cada flag. > 000000

FLAG URG -URGENT- : Es la primer flag y significa que el paquete que se


envía contiene datos de URGENCIA. Esto quiere decir que un paquete con
flag URG tendrá privilegio ante otros datos del paquete y se leerá primero.
Se pueden combinar paquetes con datos urgentes y no urgentes.

FLAG ACK -ACKNOWLEDGEMENT- : Este flag indica confirmación de un


paquete que haya sido recibido previamente. Es decir, se usa para responder
con el numero de confirmación y para que la pila tcp-ip lo tome en cuenta
tiene que estar activado.

FLAG PSH -PUSH- : El Flag PUSH quiere decir que se debería vaciar el
Buffer de transmisión, cuando se envía información grande se divide en
paquetes, estos se sitúan en un buffer de transmisión, conocido también como
en contabilidad (primero entrado, primero salido, FIFO -first in first out-) una
vez que el ultimo esta preparado tiene activado el flag PUSH para que el
buffer de transmisión sea vaciado.

FLAG RST -RESET- : Este flag nos indica un reset en la conexión, al enviar
un paquete con este flag activado le decimos que hubo problemas de
conexiones y que sera necesario reiniciar la conexión para sincronizar
positivamente ambas partes nuevamente.

FLAG SYN -Synchronization-: Este flag suele usarse cuando se requiere


establecer una conexión nueva.

FLAG FIN -Finalization- : Este flag indica al host remoto que queremos
cerrar la conexión con el, y quedamos a la espera de la respuesta.

# Three Way Handshake
El saludo de tres pasos, se realiza al momento de iniciar una conexión con
otro host.. veamos de manera gráfica como seria esto.

SYN
     
     HOST       HOST        
CONFUSED SYN/ACK
    PEPITO
     ACK

Como vemos el host CONFUSED que es el que quiere conectar con el host
PEPITO, envía un paquete con el flag SYN activado, PEPITO, recibe el SYN y
responde con una confirmación SYN/ACK para confirmar que recibió el pedido
de conexión de parte de CONFUSED, entonces CONFUSED, responde
nuevamente un ACK para confirmar la recepción del mensaje de parte de
PEPITO y se produce la conexión desde ese momento...

Este caso es para inicializar una conexión, pero en el caso de que la conexión
se decida cerrar seria de la siguiente forma el proceso:

FIN
     
     HOST  ACK      HOST        
CONFUSED     PEPITO
FIN

ACK

Vemos como el host CONFUSED determina el cierre de la conexión con un


flag FIN y lo envía al host PEPITO, este le responde un ACK para confirmar la
recepción de su petición de cierre de conexión, termina de enviar todo tipo de
paquete necesario antes de cerrar la conexión y luego PEPITO procede a
finalizar la conexión enviando un FIN, CONFUSED, recibe el FIN y se lo
confirma con un ACK para demostrarle que todo resulto satisfactorio y la
conexión es cerrada en ambos HOSTS.
# Estados TCP
Los estados están predefinidos en TCP, debido a que esta orientado el
protocolo a conexiones, debe informar en que estado se encuentra en
momentos diferentes de la conexión.

LISTEN: Se registra este estado cuando un determinado host espera


conexiones en un determinado puerto.

SYN-SENT: Cuando se envia un paquete con el flag SYN para inicializar una
conexion, se pasa a un estado SYN-SENT.

SYN-RECEIVED: Luego de haber enviado el SYN, y haber recibido el


SYN/ACK pasa a tener un estado de SYN-RECEIVED.

FIN-WAIT-1: Cuando se envia el paquete con un flag FIN activado, sin recibir
aun respuesta pasa a estar en este estado.

FIN-WAIT-2: Cuando se recibe la confirmacion ACK del paquete con el flag


FIN que enviamos, entra en este estado 2.

ESTABLISHED: Cuando el Three Way Handshake es completado entramos en


este estado y seguira asi segun dure la conexion.

CLOSING: Una vez ambas partes arreglan la finalizacion de la conexion se


pasa a este estado.

CLOSE-WAIT: Entramos en este estado cuando recibimos un paquete con el


flag FIN y si falta enviar datos antes de cerrar, pasamos a un Close-wait.

TIME-WAIT: Cuando se envia un paquete con flag FIN activado al momento


de finalizar la conexion, el que primero envia la confirmacion al ultimo
paquete FIN, entra en el estado time-wait para esperar un determinado
tiempo, para confirmar la recepcion de este.

LAST-ACK: Cuando se envia un paquete con flag FIN activado, cuando el que
espera en recibir la confirmacion es quien entra en este estado.

You might also like