Deep Into Networks & Protocols


El propósito de este ánálisis es adentrarnos en el comportamiento de las redes y sistemas computacionales; ver su relación e interacción con otros equipos, personas y/o sistemas.
En el transcurso del presente trabajo, iremos conociendo muchas herramientas y con suerte crearé alguna para el mismo análisis con algún objetivo determinado y/o experimental.
Lo anterior será algo tan básico que nos remontará al inicio de todo este gran mundo que es la internet, que puede y debe ser uno de los puntos esenciales, los cuales, a pesar de que los sabemos básicos, no les prestamos importancia.

Algunos conocerán los temas a tratar en el mismo, otros no, pero deben tomar en cuenta que es un simple texto donde se tratará de profundizar en tópicos tan simples como una conexión TCP y todo lo que conlleva,
conociendo así su funcionamiento, estructura y reacción en determinadas circunstancias.

AVISO: Estos textos NO son ni serán creados con fines malintencionados.

Comenzaremos por conocer algunas herramientas básicas como lo es un Sniffer/Dumper/Scanner de red. Éste es utilizado frecuentemente por gente muy variada y con distintos propósitos:
Desde una empresa para tener control sobre sus empleados, hasta personas con fines determinados, sean buenos o malos (como obtener información confidencial, entre otros).

Hay infinidad de métodos, herramientas, etcétera, que nos ayudan con algunas funciones dentro de un sistema computacional; en este caso nos enfocaremos en redes y protocolos.

Como sabemos, la comunicacion de Cliente/Servidor es básica, así, en cualquier tipo de comunicaciones y/o tecnologías. Es una forma de comunicarse, una relación máquina-máquina; un lenguaje entendible tanto para ordenadores como para humanos por igual.

Sin embargo, surgen problemas cuando tratamos de entender dicha comunicación. Para ello, gente experta en los temas selectos ha creado y descubierto la forma de comunicarse con dicha tecnología y/o lenguaje,
facilitándonos de este modo un arduo trabajo, como el de crear, desarrollar, sustentar, patentar alguna tecnología y/o protocolo, etcétera.

En la seguridad informática es básico y más que esencial saber sobre qué se está trabajando, cómo y cuáles son los riesgos y la probabilidad de pérdida de datos y/o robo del mismo. Esta vez nos toca enfocarnos en red y protocolos.

Antes de empezar de lleno, aviso que este análisis y las técnicas demostradas en el mismo están siendo recreadas en un entorno Linux, veremos más adelante que esto no influye mucho, pero es importante tenerlo en cuenta.

Ahora sabes que existen infinidad de herramientas, algunas dependen de diversos factores (S.O, dll's, ocx's, librerias, etcétera). Una herramienta esencial en todo lo relacionado con redes es un sniffer/dumper de red, basada en un librería sobre el mismo llamado PCAP.
Cabe recalcar que esta librería es funcional tanto en Windows como Linux/Unix. Algunos muy famosas para Linux serían Dsniff, TCPDump, mientras que para Windows podrían ser Wireshark, Windump, etcétera.
Éstas varían según las necesidad de cada uno y/o de sus objetivos a alcanzar. Asimismo, estaremos usando sniffers en consola.

Les recomiendo que sigan estas prácticas y las puedan recrear ustedes mismos, para después
poder adaptarlas a sus necesidad y/o enfoque.

Como dije anteriormente, todo será bajo un entorno Linux, en tanto siga siendo Linux, no importa la distribución (Debian/Ubuntu/Fedora), la estructura es la misma.


Aclarado el punto anterior, continuemos: utilizaremos TCPDump, ya que la mayoría de las distribuciones lo tienen incluido, no hace falta instalar. Vamos a logearnos en una shell como root e invocamos a tcpdum, de la siguiente forma.:

Código: Seleccionar todo

# > tcpdump 
tcpdump: WARNING: eth0: no IPv4 address assigned 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes 
Como vemos, dice eth0: no IPv4 address assigned. Esto es provocado principalmente porque mi ethernet divices -o mi trajeta de red ethernet "eth0"- no está conectada , pero es sólo la invocación a la herramienta.
Este problema se podría arreglar de una forma simple:

Código: Seleccionar todo

# > tcpdump -i wlan0 
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode 
listening on wlan0, link-type EN10MB (Ethernet), capture size 65535 bytes 
19:04:13.558095 IP r00t.local.1024 > http://www.fladong.com.www: Flags [.], ack 1567703567, win 501, options [nop,nop,TS val 1047859 ecr 341248369], length 0 
Bien, ahora con -i estamos indicando la interface a utilizar, en este caso wlan0, que es mi tarjeta wireless.
Trataré de hacerlo menos complicado y poco a poco ir aumentando la dificultad: ahora indicamos a tcpdump que capture todo el tráfico de la red con la interface wlan0
(esto lo veremos más adelante, sólo aclaro esta parte: que el paquete con ACK es un "aviso" de que alguna información ha llegado correctamente).

La librería PCAP proporciona una forma de interpretación de los datos, dependiendo el tipo de protocolo que se utilice en la captura, porque no es lo mismo una captura ICMP a una conexión UDP, pero tranquilos, ya lo iremos viendo poco a poco.

Código: Seleccionar todo

# > 

09:24:00.494825 r00t.local.1024 > FLANDONG.8080: S 2407685239:2407685239(0) win 64240 (DF) 

09:24:00.495018 r00t.local.8080 > FLANDONG.1024: S 3913045143:3913045143(0) ack 2740385269 win 64240 (DF) 

09:24:00.495039 r00t.local.1024 > FLANDONG.8080: . ack 1 win 64240 (DF) 

Lo anterior indica un inicio de una conexion TCP, donde r00t.local.1024 es el host que se trata de comunicar, es decir, quiere iniciar una session con FLANDONG con el proxy establecido, y así poder "visitar" una web por el potrocolo http.

Analizando completamente una sentencia de éstas, quedaría de las siguiente forma:

Código: Seleccionar todo

date src > dst: flags data-sqno ack window urgent options 
  • *Date: Imprime la hora en que se produjo cierta comunicación: Hora/minutos/segundos/microsegundos
    *src: Es el source o dirección fuente de la conexión, un "." seguido del puerto .
    *>: Es la dirección del flujo de los datos .
    *dst: Destination o dirección de destino, un "." y seguido del puerto .
    *flags: Son "banderas" o indicadores de un datagrama/segmento , ej: TCP/UDP: F (FIN), R (RST), P(PUSH), S(SYN); cuando es un "." (punto), es que no hay flag/indicador.
    *data-sqno: Número de secuencia del dato y/o pedazo de dato.
    *ack: Número de secuencia que indica el próximo byte donde se recibirá el otro pedazo de paquete y/o dato TCP/UDP.
    *windows: Es el tamaño de la ventana que indica el receptor al transmisor.
    *urgent: Señal la urgencia del dato o datos.
    *options: Opciones TCP que están entre corchetes; ej: el tamaño máximo de un segmento.
    *DF: Don't Fragment o no fragmentar o fragmentación.
¿Cómo se realiza una conexión TCP?

Son básicamente tres pasos para establecer una conexión TCP


Three-Way Handshake:
  • 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.
    Host receptor o server (FLANDONG.8080) y número de secuencia inicial, 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+1 (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).
    Y si nos fijamos bien, notamos un "." que indica que no hay indicadores/flags.
    En este paso QUEDA ESTABLECIDA la conexión y se puede inciar una tranferencia de datos entre el host (r00t.1024) y el server (FLANFONG.8080).
Imagen


No se desesperen, algunas cosas no se entienden al 100x100 pero iremos poco a poco. Entendera cuando salga la segunda parte....
1337 & culture!
Gran aporte, que libro sigues? kurose?
Sudafrica 2010
################################
################################
################################
################################
Seguiré las demás partes y te hare un hueco en mi biblioteca de papel. (Los textos que me resultan interesantes los imprimo, me gusta el papel).
El inteligente no es aquel que lo sabe todo sino aquel que sabe utilizar lo poco que sabe.
Buena info me recordo mis clases de cisco espero la segunda parte
Mi blog

www.MasaSoftware.blogspot.com

Encontraras herramientas como el Masacrypter mods Indetectables joiner

___________
Muy buena-dulce info!, cuando pueda la imprimo en hoja para leer mejor ^^
Imagen

Mostrar/Ocultar

masangel escribió:Buena info me recordo mis clases de cisco espero la segunda parte
[Enlace externo eliminado para invitados]
La felicidad es una cualidad evasiva. Si la buscas, no la encuentras.
Imagen
Muy bien Juh, aportes asi siempre valen la pena
Ahora
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+1 (2407685240).
Revisa los saltos de linea, hay varios que se te van asi

Código: Seleccionar todo

1.3
# >

09:24:00.494825 r00t.local.1024 > FLANDONG.8080: S 2407685239:2407685239(0) win 64240 (DF)

09:24:00.495018 r00t.local.8080 > FLANDONG.1024: S 3913045143:3913045143(0) ack 2740385269 win 64240 (DF)

09:24:00.495039 r00t.local.1024 > FLANDONG.8080: . ack 1 win 64240 (DF) 
De ser posible, "numera" los codigos.
Asi podrias hacer referencia a ellos, como cuando explicas el Three-Way Handshake, y seria un poco mas entendible a mi parecer

Salud y esperando mas aportes
@el_Lux hermano, lo hice intensionalmente para que lean la segunda parte... creeme q esta forma de explicar el three way handshake es muy dificil de entender en el segundo textos viene para niños... =D. Gracias por los comentarios y por tomarte la libertad de leerlo!
1337 & culture!
Responder

Volver a “General”