Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Detras de una conexión (Un enfoque a la explotación)

No description
by

julianstafari

on 8 April 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Detras de una conexión (Un enfoque a la explotación)

Detrás De Una Conexión ( Un enfoque a la seguridad ) ¿Una conexión?
¿Detrás de una conexión?
Protocolo TCP/IP
TCP
IP
La importancia de una conexión
Three Way Handshake
Cabecera TCP
Formato de la cabecera TCP
Flags
Cabecera dentro del checksum
Three Way Handshack Resumido
TCP Widnow Size
TCP Window Scale
Four Way Handshake
Tipos De Ataques (Selectos) ¿Una Conexión?

Detrás de una conexión se esconde mucha mas de lo que creemos.
Toda conexión que se realiza a Internet conlleva muchos elementos que muchas veces pasan inadvertidos y en cuestión de milisegundos.

Ej:
Conectarnos a Facebook, Twitter, Flickr, Tumblr, etc...
Utilizar un interprete Web (Chrome, Opera, Firefox)
IM: Mensajeria Instantanea (Msn, Naspter, ICQ)
Conexión a algún servidor ¿Detrás de una Conexión?

Si detrás de una conexión hay toda un ciencia.
Esto depende del servicio (protocolo) que se utiliza.
Expertos en la materia, han creado estándares (ISO) para que podamos sacar el mayor provecho a estas tecnologías y dando así lugar a lo que es el mundo actual hoy en día. Protocolo TCP/IP ¿Que es TCP?

Es la abreviación de Transmission Control Protocol que en español significa Protocolo de Control de Transmisión.
Es un protocolo de capa 4 basado en el modelo OSI.

Este protocolo y sus segmentos son de los mas comunes, utilizado por las duplicaciones hoy en día. La cabecera del protocolo proporciona datos básicos para que esta acción se pueda realizar, algunas de estos datos pueden ser:

Nombre del host
Dirección de origen
Dirección de destino
etc... (veremos a continuación mas profundo) ¡En español por favor!
TCP, es como algo intermedio entre el protocolo IP y la aplicación que desee interactuar. Entonces entra TCP,aumentando las funciones que IP ofrece, como seguridad, fiabilidad, evitar perdida de datos, etc.
Ahora TCP es un protocolo para conexión de punto a punto, estas conexiones reciben el nombre de circuitos virtuales. ¿Que es IP?

IP significa Internet Protocol que traducido al español significa
Protocolo de Internet. Es un protocolo poco fiable y utilizado tanto por el host cliente y el host servidor para permitir un flujo de datos. La importancia de una conexión
Contras:
Suplantación de identidad
Recopilación de información sensible
Puerta de entrada para un atacante
Pros:
Medida de protección contra ataques
Reglas estrictas
Mayor protección de datos
Evitar perdida de datos Dr. Vinton G. Cerf = Padre De La Internet
Robert E. Kahn
J.C.R. Licklider Three Way Handshake
Son tres pasos que se deben de seguir para poder
establecer una conexion TCP con otro host. (OBLIGATORIO)
Ejemplo:

1.- El host o cliente indica la conexión (r00t.1024). Se envía un paquete SYN con el número que inicializa la secuencia (2407685239) y el final (2740385268) con relación a la conexión. EL host receptor o server (FLANDONG.8080) recibe el paquete SYN con el número de secuencia inicial y final.

2.- Se responde con un paquete SYN + ACK, confirmando que se recibió correctamente el SYN enviado por el host(r00t.1024), y también se envía su número de secuencia inicial (3913045143) y final (3913045143), y ACK (2407685240).

3.- El cliente o host (r00t.1024) acepta la recepción del SYN del server (FLANDONG.8080), esto genera el envío de un ACK(1).
En este paso QUEDA ESTABLECIDA la conexión y se puede iniciar un flujo de datos entre el host (r00t.1024) y el server (FLANFONG.8080). Cabecera TCP

Puerto de Origen: Es el puerto por el cual se comunicara el host que quiere iniciar el flojo de datos (cliente).

Puerto de Destino: Es el puerto por el cual se comunicara el host que aceptara el flujo de datos (remoto).

Numero de secuencia (SYN): Sirve como control para evitar a l perdida de bytes en el segmento y en el orden correcto. También varía dependiendo el valor SYN. Si SYN esta activo (1) sera SYN + 1. Si SYN no lo esta (0), indica el numero de secuencia del primer bytes de datos.

Numero de Acuse De Recibo (ACK): Si ACK esta activo, indica que el numero de secuencia que se espera recibir. Se suele enviar continuamente, una vez establecida la conexión.

Longitud de la Cabecera TCP: Este indica el tamaño de la cabecera TCP en palabras, cuantos bytes hay entre el inicio del paquete TCP y el inicio de los datos.

Reservado: Son guardados para que se utilicen después.

Bits de Control o Flags: Son 8 "indicadores", y se hace referencia cuando se les necesita. Activo (1), Desactivo(2).

Ventana: Indica el numero de bytes que el receptor esta esperando recibir.

Suma de Verificación o Checksum: Se utiliza para comprobar si hay errores en la cabeceras o en los datos.

P. Urgente: Cuando el flag URG esta en 1 (activo), indica el desplazamiento con respecto al numero de secuencia que indica el ultimo byte de datos marcados como urgentes.

Opciones: Este puede variar, e indica que el largo de la cabecera debe estar de forma correcta.

Datos: Este es el payload o "carga", es la parte con datos del paquete TCP. Pueden ser cualquier dato o datos de otros protocolos (HTTP, SSH, FTP, TELNET, etc). Formato De La Cabecera TCP ¡¡¡Mas A Fondo Por Favor!!!

Puerto de Origen: 16 bits
Puerto de Destino: 16 bits
Numero de Secuencia: 32 bits
Acuse de Recibo o ACK: 32 bits
Longitud de la Cabecera TCP: 4 bits
En este caso se especifica en palabras 32 bits
Mínimo 5 palabras(20 bytes)
Máximo 15 palabras(60 bytes)
Reservado: 4 bits
Bits de Control o Flags: 8 bits
Ventana: 16 bits
Suma de control o Checksum: 16 bits
P. Urgent: 16 bits
Opciones: La longitud de este campo tiene que ser multiplo de una palabra de 32 bits
Datos: Su longitud varia. Solo un poco mas...

Entonces tenemos que se divide en dos la cabecera.
En el eje de las "X" y en el eje de las "Y".
Donde la longitud en el eje de la X es "constante" de 32 bits ,
y en Y es "dependiente", según algunos campos como lo son Opciones y Datos, que su tamaño varía.

;D Flags

IMPORTANTE
Cuando esta activo se indica con 1 y cuando no lo esta con 0

CWR: Significa "Congestion Window Reduced" y se activa (1), cuando el cliente a recibido un paquete TCP con el Flag ECE activo.

ECE "ECN-Echo": Sirve para indicar que se pueden hacer notificaciones ECN. Se activa en el Three Way Handshake

URG "urgent": Este activa la sección urgente dentro de la cabecera TCP, sino se ignora.

ACK: Significa "acknowledge", se activa cuando un host (cliente o servidor), han recibido un mensaje o varios
mensajes correctamente. De lo contrario no se activa.

PSH "push": Sirve para que los datos de ese segmento y los datos y los almacenados en el buffer del receptor
deben ser transferidos a la cliente lo antes posible.

RST "rest": Sirve para detener la conexion sin esperar respuesta algún, o para reiniciar la conexión.

SYN "synchronize": Se utiliza para sincronizar los SYN durante el Three Way Handshake.

FIN: Sirve para terminar la conexion entre cliente / servidor, y siempre se activa en el ultimo paquete
para terminar la conexión. Cabecera dentro del Checksum.

Algo importante igualmente es que dentro de la suma de control o Checksum, a pesar de ser de 16bits tienes una "cabecera" de 96 bits prefija.

Esta cabecera contiene:
Dirección de origen
Dirección de destino
Protocolo
Longitud del segmento TCP

Es una medida de "seguridad" que implementaron en TCP. Three Way Handshake Resumido

SYN

SYN + ACK

ACK + 1 +--------+--------+--------+--------+
| Dirección de origen |
+--------+--------+--------+--------+
| Dirección de destino |
+--------+--------+--------+--------+
| cero | PTCL | Longitud TCP |
+--------+--------+--------+--------+ TCP Windows Size

El tamaño de la ventana de recepción TCP es la cantidad de datos recibidos en bytes que pueden ser metidos en el buffer de recepción durante la conexión.
El host puede enviar una cantidad determinada de datos pero antes debe esperar un ACK con la actualización del tamaño de ventana por parte del server. TCP Window Scale

Esto fue implementado como mejora.
El campo TCP de tamaño de ventana controla el movimiento de datos y está limitado a 16 bits (65.535 bytes).
El campo de ventana NO puede expandirse y se utiliza un factor de escalado.
La escala de ventana TCP (TCP window scale) es una opción usada para incrementar el máximo tamaño de ventana desde 65.535 bytes, a 1 Gigabyte.
Esto facilita bastante la trasmisión de segmentos TCP.


Solo se utiliza durante el Three Way Handshake que constituye el comienzo de la conexión. El valor de la escala representa el número de bits desplazados a la izquierda de los 16 bits que forman el campo del tamaño de ventana.
Este puede ir de 0 (sin desplazamiento) hasta 14.
Un número binario desplazado un bit a la izquierda es como multiplicarlo en base decimal por 2. Four Way Handshake

Esto consiste en terminar la conexion por lados independientes con una segmento TCP y el flag FIN a 1; es decir activado y se responde con un ACK.
Cuando uno de los dos extremos de la conexión desea parar su "mitad" de conexión transmite un paquete FIN, que el otro interlocutor asentirá con un ACK.
Por tanto, una desconexión típica requiere un par de segmentos FIN y ACK desde cada lado de la conexión.
Una conexión puede estar "medio abierta" en el caso de que uno de los lados la finalice pero el otro no.
El lado que ha dado por finalizada la conexión no puede enviar más datos pero la otra parte si podrá. Tipos De Ataques (Selectos)

Hijaking (Any kind)
DDOS & DOS
Apache Killer
Man In The Middel
Remote Overflow
stack || heap
SQL injections
HTML Injections
JavaScript Injecions
Remote Fuzzing
Etcétera FIN(1) + ACK (1)


@julianstafari
julianstafari@gmail.com
http://greydotsec.org @julianstafari
julianstafari@gmail.com
http://greydotsec.org
Full transcript