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.
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.:
# > 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:
# > 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.
# >

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:
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).

Fuente: Indetectables

Publicar un comentario

 
Top