Curso en base a lo aprendido en el curso de elearnsecurity Licencia: Atribucin-NoComercialCompartirIgual 4.0
TCP & UDP
TCP en conjuncin con el protocolo ip manejan el Internet y la mayora de los servicios que usamos hoy en da, desde el email al navegador web, desde ftp a compartir archivos. Tcp es el protocolo preferido por todos los servicios que necesitan una garanta de que sus paquetes van a ser entregados. Tcp asegura que el trafico llegue a su destino y que esos paquetes lleguen en el orden correcto. Otra peculiaridad de este protocolo es, que requiere una conexin establecida antes de que ocurra la transferencia de datos.
TCP & UDP
aUDP es muchsimo menos complejo, si lo comparamos con TCP, UDP provee mas velocidad en el rendimiento de los paquetes, sin embargo no ofrece garantas en la entrega de los paquetes. UDP es usado para aplicaciones multimedia que pueden permitirse la perdida de algunos paquetes pero que demandan mucho rendimiento. UDP es usado para protocolos de Voip y streaming de vdeo
TCP & UDP
TCP y UDP tratan directamente con aplicaciones, consumiendo y produciendo informacion que reciben y que enviaran. El consumidor y productor real de informacion, dentro de una red, son enrealidad aplicaciones. Los hosts tienen un numero de aplicaciones que envian y reciven datos en un intervalo de tiempo dado.
TCP & UDP
Cuando llegan datos a las tarjetas de red, como saben a que programa pertenecen esos datos? La respuesta es PUERTOS. Los puertos son usados para asociar el flujo de datos con los programas y cada programa usa un puerto local en el cual puede leer los datos. Por ejemplo en esta imagen vemos que cada cliente de las aplicaciones usan un puerto para comunicarse con un servidor. Todas las comunicacions desde el navegador web hacia el servidor web, ocurren usando paquetes destinados al puerto 80 del servidor remoto. Todas las comunicaciones desde el servidor web al programa del cliente ocurren en el puerto 1026
TCP & UDP
Y como ocurre esto? el puertos es un campo de la cabecera de el paquete TCP y UDP, generalmente encontraremos un puerto fuente y un puerto destino. El numero de puerto destino estara dentro de un paquete proveniente y sera usado por el host recibidor para determinar a cual programa pertenece ese paquete, este paquete sera consumido por el programa correspondiente
TCP & UDP
Ejecutemos el comando> netstat -noa El estado LISTENING quiere decir que la conexion no ha sido establecida aun, de manera que el host local esta a la escucha de conexiones provinientes en los puertos listados(135,648, 4, etc etc) El estado ESTABLESHIED nos muestra las conexiones establecidas, de hecho podemos ver el host remoto y el puerto al cual estamos conectados
TCP & UDP
Los servidores son usados para proveer servicios, puede ser localmente o por internet. Esos servicios tambien son llamados deamons, esa es la aplicacin, que usan los puertos para comunicarse con clientes. De manera que la parte de conexin es llamada cliente y la parte de recibimiento es llamada servidor. Los servidores a diferencia de los clientes, usan puertos ya establecidos para sus servicios, por ejemplo generalmente encontraremos que el servicio de FTP usa el puerto 21 aunque puede ser que este en diferente puerto pero eso es muy raro.
TCP & UDP
Aunque no es algo primordial recordar todos los puertos y para que servicio estan, por lo menos debemos conocer los mas importantes por ejemplo: SMTP, POP3, SSH, HTTP, DNS, NETBIOS, SFTP, TELNET, RDP, MYSQL, SQL SERVER. Recuerda que algunos administradores de sistemas. Pueden cambiar la configuracion de los demonios y de esa manera modificar en que puerto estan escuchando algunos servicios. Esto lo hacen para que sea un poco mas complicado reconocer servicios para los hackers. De manera que puede ser que el servicio FTP este corriendo en el puerto 5000
TCP & UDP
El three way handshake. Hasta ahorita hemos usado el termino conexion sin definirlo Mencionamos que TCP necesita establecer una conexion antes de transferir los datos acutales. Una conexion TCP entre 2 endpoints is establecida en 3 pasos y hay una seria de factores envueltos, mencionaremos los mas importantes para un pentester. EL campo del encabezado TCP que involucra el establecimiento de una conexion lo podemos ver en la siguiente imagen