Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe – Networking Secure Protocols

TryHackMe – Networking Secure Protocols

Hola hacketones! Bienvenidos a un nuevo CTF de la ruta de Cyber Security 101 para la certificación SEC1 en este post resolveremos: TryHackMe – Networking Secure Protocols

En la sala de Protocolos Básicos de Red , aprendimos sobre los protocolos utilizados para navegar por la web y acceder al correo electrónico, entre otros. Estos protocolos funcionan de maravilla; sin embargo, no pueden proteger la confidencialidad, integridad ni autenticidad de los datos transferidos. En términos más simples, cuando decimos que la confidencialidad no está protegida, significa que alguien que observa los paquetes puede leer tu contraseña o información de tarjeta de crédito cuando se envían por HTTP . De igual manera, pueden acceder a tus documentos privados cuando se envían por correo electrónico. En cuanto a no proteger la integridad de los datos, significa que un adversario puede cambiar el contenido de los datos transferidos; en otras palabras, si autorizas el pago de cien libras, pueden cambiarlo fácilmente a otro valor, como ochocientas libras. La autenticidad significa asegurar que estamos hablando con el servidor correcto, no uno falso. Las transacciones importantes en línea son riesgosas si no se garantiza la confidencialidad, integridad y autenticidad.

La Seguridad de la Capa de Transporte (TLS) se incorpora a los protocolos existentes para proteger la confidencialidad, integridad y autenticidad de las comunicaciones. En consecuencia, HTTP , POP3 , SMTP e IMAP se convierten en HTTPS, POP3S, SMTPS e IMAPS, donde la «S» añadida significa Seguro. Analizaremos estos protocolos y las ventajas que nos ofrece TLS.

De igual manera, acceder remotamente a un sistema mediante el protocolo TELNET se considera inseguro. Secure Shell ( SSH ) se creó para proporcionar una forma segura de acceder a sistemas remotos. Además, SSH es un protocolo extensible que ofrece funciones de seguridad adicionales para otros protocolos.

TLS

En un momento dado, solo se necesitaba una herramienta de captura de paquetes para leer todos los chats, correos electrónicos y contraseñas de los usuarios de la red. No era raro que un atacante configurara su tarjeta de red en modo promiscuo, es decir, capturara todos los paquetes, incluso los que no estaban destinados a ella. Posteriormente, revisaban todas las capturas de paquetes y obtenían las credenciales de inicio de sesión de las víctimas desprevenidas. No había nada que un usuario pudiera hacer para evitar que su contraseña se enviara en texto plano. Hoy en día, es poco común encontrar un servicio que envíe credenciales de inicio de sesión en texto plano.

A principios de la década de 1990, Netscape Communications reconoció la necesidad de una comunicación segura en la World Wide Web. Finalmente, desarrollaron SSL (Secure Sockets Layer) y lanzaron SSL 2.0 en 1995 como la primera versión pública. En 1999 , el Grupo de Trabajo de Ingeniería de Internet ( IETF ) desarrolló TLS (Transport Layer Security). Aunque muy similar, TLS 1.0 fue una actualización de SSL 3.0 y ofreció varias medidas de seguridad mejoradas. En 2018 , TLS tuvo una revisión significativa de su protocolo y se lanzó TLS 1.3. El propósito no es recordar las fechas exactas, sino darnos cuenta de la cantidad de trabajo y tiempo invertidos en el desarrollo de la versión actual de TLS, es decir, TLS 1.3. Durante más de dos décadas, ha habido mucho que aprender y mejorar con cada versión.

Al igual que SSL, su predecesor, TLS es un protocolo criptográfico que opera en la capa de transporte del modelo OSI. Permite la comunicación segura entre un cliente y un servidor a través de una red insegura. Por seguridad, nos referimos a la confidencialidad e integridad; TLS garantiza que nadie pueda leer ni modificar los datos intercambiados. Piense por un momento en cómo sería realizar compras en línea, realizar operaciones bancarias en línea o incluso enviar mensajes y correos electrónicos en línea sin poder garantizar la confidencialidad e integridad de los paquetes de red. Sin TLS, no podríamos usar internet para muchas aplicaciones que ahora forman parte de nuestra rutina diaria.

Hoy en día, decenas de protocolos han recibido mejoras de seguridad con la simple incorporación de TLS. Algunos ejemplos son HTTP , DNS , MQTT y SIP, que se han convertido en HTTPS, DoT ( DNS sobre TLS), MQTTS y SIPS, donde la «S» añadida significa seguro gracias al uso de SSL/TLS. En las siguientes tareas, analizaremos HTTPS, SMTPS, POP3S e IMAPS.

Antecedentes técnicos

No analizaremos el protocolo de enlace TLS; sin embargo, si tiene curiosidad, puede consultar la sección de Protocolos de Seguridad de Red . Ofreceremos una descripción general de cómo se configura y utiliza TLS.

El primer paso para cualquier servidor (o cliente) que necesite identificarse es obtener un certificado TLS firmado. Generalmente, el administrador del servidor crea una Solicitud de Firma de Certificado (CSR) y la envía a una Autoridad de Certificación ( CA ); la CA verifica la CSR y emite un certificado digital. Una vez recibido el certificado (firmado), puede utilizarse para identificar el servidor (o cliente) ante otros, quienes pueden confirmar la validez de la firma. Para que un host confirme la validez de un certificado firmado, los certificados de las autoridades firmantes deben estar instalados en el host. En el mundo no digital, esto es similar a reconocer los sellos de diversas autoridades. La siguiente captura de pantalla muestra las autoridades de confianza instaladas en un navegador web.

Generalmente, firmar un certificado requiere el pago de una cuota anual. Sin embargo, Let’s Encrypt te permite firmar tu certificado gratis.

Finalmente, cabe mencionar que algunos usuarios optan por crear un certificado autofirmado. Este no puede probar la autenticidad del servidor, ya que ningún tercero lo ha confirmado.

Responda las preguntas a continuación

¿Cuál es el nombre del protocolo que TLS actualizó y desarrolló?

ssl

¿Qué tipos de certificados no se deben utilizar para confirmar la autenticidad de un servidor?

self-signed certificate


HTTPS

Como estudiamos en la sala de Protocolos Básicos de Red , HTTP se basa en TCP y usa el puerto 80 por defecto. También vimos cómo todo el tráfico HTTP se enviaba en texto plano para que cualquiera pudiera interceptarlo y monitorearlo. La captura de pantalla a continuación, tomada de la sala anterior, muestra claramente cómo un atacante puede leer fácilmente todo el tráfico intercambiado entre el cliente y el servidor.

Repasemos los pasos más comunes que un navegador web debe seguir para solicitar una página mediante HTTP . Tras resolver el nombre de dominio a una dirección IP, el cliente realizará los dos pasos siguientes:

  1. Establecer un protocolo de enlace de tres vías TCP con el servidor de destino
  2. Comunicarse mediante el protocolo HTTP ; por ejemplo, emitir solicitudes HTTP , comoGET / HTTP/1.1

Los dos pasos descritos anteriormente se muestran en la ventana a continuación. Los tres paquetes para el protocolo de enlace TCP (marcados con un 1) preceden al primer paquete HTTPGET que contiene. La comunicación HTTP está marcada con un 2. Los tres últimos paquetes mostrados corresponden a la finalización de la conexión TCP y están marcados con un 3.

HTTP sobre TLS

HTTPS significa Protocolo Seguro de Transferencia de Hipertexto. Básicamente, es HTTP sobre TLS. Por lo tanto, solicitar una página mediante HTTPS requiere los siguientes tres pasos (tras resolver el nombre de dominio):

  1. Establecer un protocolo de enlace de tres vías TCP con el servidor de destino
  2. Establecer una sesión TLS
  3. Comunicarse mediante el protocolo HTTP ; por ejemplo, emitir solicitudes HTTP , comoGET / HTTP/1.1

La siguiente captura de pantalla muestra que se establece una sesión TCP1 en los tres primeros paquetes, marcados con . Posteriormente, se intercambian varios paquetes para negociar el protocolo TLS, marcados con 2. 1y 2donde  se lleva a cabo la  negociación y el establecimiento de TLS  .

Finalmente, se intercambian los datos de la aplicación HTTP3 , marcados con . Al observar la captura de pantalla de Wireshark, vemos que dice «Datos de la aplicación», ya que no hay forma de saber si se trata de HTTP o de algún otro protocolo enviado por el puerto 443.

Como era de esperar, si se intenta seguir el flujo de paquetes y combinar todo su contenido, solo se obtendrá información incoherente, como se muestra en la captura de pantalla a continuación. El tráfico intercambiado está cifrado: el rojo lo envía el cliente y el azul, el servidor. No es posible conocer el contenido sin obtener la clave de cifrado.

Obtener la clave de cifrado

Añadir TLS a HTTP permite cifrar todos los paquetes. Ya no podemos ver el contenido de los paquetes intercambiados a menos que accedamos a la clave privada. Aunque es improbable que tengamos acceso a las claves utilizadas para el cifrado en una sesión TLS, repetimos las capturas de pantalla anteriores después de proporcionar la clave de descifrado a Wireshark. Los protocolos de enlace TCP y TLS no cambian; la principal diferencia radica en el protocolo HTTP marcado con el número 3. Por ejemplo, podemos ver cuándo el cliente emite un GET.

Si quieres ver los datos intercambiados, ¡esta es tu oportunidad! Sigue siendo tráfico HTTP normal , oculto a miradas indiscretas.

La conclusión clave es que TLS ofrecía seguridad para HTTP sin requerir cambios en los protocolos de capa inferior o superior. En otras palabras, TCP e IP no se modificaron, mientras que HTTP se enviaba por TLS como se enviaría por TCP .

 

Responda las preguntas a continuación

¿Cuántos paquetes se utilizaron en la negociación y el establecimiento de TLS en las capturas de pantalla HTTPS de Wireshark anteriores?

8

¿Cuál es el número del paquete que contiene el archivo GET /loginal acceder al sitio web a través de HTTPS?

10


SMTPS, POP3S e IMAPS

Añadir TLS a SMTP , POP3 e IMAP no es diferente a añadir TLS a HTTP . De forma similar a cómo HTTP recibe una S añadida de Seguro y se convierte en HTTPS, SMTP , POP3 e IMAP se convierten en SMTPS, POP3S e IMAPS, respectivamente. Usar estos protocolos sobre TLS no es diferente a usar HTTP sobre TLS; por lo tanto, casi todos los puntos mencionados sobre HTTPS se aplican a estos protocolos.

Las versiones inseguras utilizan los números de puerto TCP predeterminados que se muestran en la siguiente tabla:

ProtocoloNúmero de puerto predeterminado
HTTP80
SMTP25
POP3110
IMAP143

Las versiones seguras, es decir, sobre TLS, utilizan los siguientes números de puerto TCP de forma predeterminada:

ProtocoloNúmero de puerto predeterminado
HTTPS443
SMTP465 y 587
POP3S995
IMAPS993

TLS se puede agregar a muchos otros protocolos; el razonamiento y las ventajas serían similares.

Responda las preguntas a continuación

Si captura tráfico de red, ¿en cuál de los siguientes protocolos puede extraer credenciales de inicio de sesión: SMTPS, POP3S o IMAP?

IMAP


SSH

Hemos utilizado el protocolo TELNET en la sala de Conceptos de Redes . Si bien es muy cómodo iniciar sesión y administrar sistemas remotos, es arriesgado cuando todo el tráfico se envía en texto plano. Es fácil que cualquiera que monitoree el tráfico de red obtenga sus credenciales de inicio de sesión una vez que lo usa telnet. Este problema requería una solución. Tatu Ylönen desarrolló el protocolo Secure Shell ( SSH ) y lanzó SSH -1 en 1995 como software gratuito. (Curiosamente, fue el mismo año en que Netscape Communications lanzó el protocolo SSL 2.0). Una versión más segura, SSH -2, se definió en 1996. En 1999 , los desarrolladores de OpenBSD lanzaron OpenSSH, una implementación de código abierto de SSH . Hoy en día, cuando se usa un cliente SSH , lo más probable es que se base en bibliotecas y código fuente de OpenSSH.

OpenSSH ofrece varias ventajas. A continuación, enumeraremos algunos puntos clave:

  • Autenticación segura : además de la autenticación basada en contraseña, SSH admite la autenticación de clave pública y de dos factores.
  • Confidencialidad : OpenSSH proporciona cifrado de extremo a extremo, lo que protege contra escuchas no autorizadas. Además, le notifica las nuevas claves de servidor para protegerse contra ataques de intermediario.
  • Integridad : además de proteger la confidencialidad de los datos intercambiados, la criptografía también protege la integridad del tráfico.
  • Túnel : SSH puede crear un «túnel» seguro para enrutar otros protocolos a través de SSH . Esta configuración genera una conexión similar a una VPN .
  • Reenvío X11 : si se conecta a un sistema tipo Unix con una interfaz gráfica de usuario, SSH le permite utilizar la aplicación gráfica a través de la red.

ssh username@hostnamePara conectarse a un servidor SSH , deberá ejecutar el comando . Si el nombre de usuario coincide con el de inicio de sesión, solo necesitará [nombre de usuario] ssh hostname. Se le solicitará una contraseña; sin embargo, si utiliza autenticación de clave pública, iniciará sesión inmediatamente.

La siguiente captura de pantalla muestra un ejemplo de ejecución de Wireshark en un sistema remoto Kali Linux . El argumento -Xes necesario para admitir la ejecución de interfaces gráficas, por ejemplo, ssh 192.168.124.148 -X. (El sistema local debe tener instalado un sistema gráfico adecuado).

Mientras el servidor TELNET escucha en el puerto 23, el servidor SSH escucha en el puerto 22.

Responda las preguntas a continuación

¿Cuál es el nombre de la implementación de código abierto del protocolo SSH?

OpenSSH

SFTP y FTPS

 

SFTP significa Protocolo de Transferencia de Archivos SSH y permite la transferencia segura de archivos. Forma parte del conjunto de protocolos SSH y comparte el mismo número de puerto, el 22. Si está habilitado en la configuración del servidor OpenSSH, puede conectarse mediante un comando como sftp username@hostname. Una vez iniciada la sesión, puede ejecutar comandos como get filenamey put filenamepara descargar y subir archivos, respectivamente. En general, los comandos SFTP son similares a Unix y pueden diferir de los comandos FTP .

No debe confundirse SFTP con FTPS. Tiene razón al pensar que FTPS significa Protocolo Seguro de Transferencia de Archivos (File Transfer Protocol Secure). ¿Cómo se protege FTPS? Sí, tiene razón al suponer que se protege mediante TLS, al igual que HTTPS. Mientras que FTP usa el puerto 21, FTPS suele usar el puerto 990. Requiere la configuración de un certificado y puede ser complicado permitirlo a través de firewalls estrictos, ya que utiliza conexiones separadas para el control y la transferencia de datos.

Configurar un servidor SFTP es tan sencillo como habilitar una opción en el servidor OpenSSH. Al igual que HTTPS, SMTPS, POP3S, IMAPS y otros protocolos que dependen de TLS para su seguridad, FTPS requiere un certificado TLS adecuado para funcionar de forma segura.

Responda las preguntas a continuación

Haga clic en el botón «Ver sitio» para acceder al sitio relacionado. Siga las instrucciones del sitio para obtener la bandera.

THM{Protocols_secur3d}

VPN

Considere una empresa con oficinas en diferentes ubicaciones geográficas. ¿Puede esta empresa conectar todas sus oficinas y sedes a la sucursal principal para que cualquier dispositivo pueda acceder a los recursos compartidos como si estuviera físicamente ubicado en ella? La respuesta es sí; además, la solución más económica sería configurar una red privada virtual ( VPN ) utilizando la infraestructura de Internet. El enfoque aquí se centra en la V de Virtual en VPN .

Cuando se diseñó Internet, el conjunto de protocolos TCP /IP se centraba en la entrega de paquetes. Por ejemplo, si un enrutador deja de funcionar, los protocolos de enrutamiento pueden adaptarse y elegir una ruta diferente para enviar sus paquetes. Si un paquete no se reconoce, TCP cuenta con mecanismos integrados para detectar esta situación y reenviarlo. Sin embargo, no existen mecanismos que garanticen que todos los datos que entran o salen de una computadora estén protegidos contra divulgación y alteración. Una solución popular fue la configuración de una conexión VPN . Aquí nos centramos en la P de «Privado» en VPN .

Casi todas las empresas requieren el intercambio de información privada en su red virtual. Por lo tanto, una VPN ofrece una solución muy práctica y relativamente económica. Los principales requisitos son la conexión a internet y un servidor y un cliente VPN .

El diagrama de red a continuación muestra un ejemplo de una empresa con dos sucursales remotas conectadas a la sucursal principal. Se espera que un cliente VPN en las sucursales remotas se conecte al servidor VPN en la sucursal principal. En este caso, el cliente VPN cifrará el tráfico y lo transferirá a la sucursal principal a través del túnel VPN establecido (mostrado en azul). El tráfico VPN se limita a las líneas azules; las líneas verdes transportarían el tráfico VPN descifrado .

En el diagrama de red a continuación, vemos dos usuarios remotos que utilizan clientes VPN para conectarse al servidor VPN en la rama principal. En este caso, el cliente VPN conecta un solo dispositivo.

Una vez establecido un túnel VPN , todo nuestro tráfico de Internet se enrutará normalmente a través de la conexión VPN , es decir, a través del túnel VPN . Por lo tanto, cuando intentemos acceder a un servicio de Internet o una aplicación web, no verán nuestra dirección IP pública, sino la del servidor VPN . Por eso, algunos usuarios de Internet se conectan mediante VPN para eludir las restricciones geográficas. Además, el proveedor de servicios de internet local solo verá tráfico cifrado, lo que limita su capacidad para censurar el acceso a Internet.

En otras palabras, si un usuario se conecta a un servidor VPN en Japón, los servidores a los que acceda lo mostrarán como si estuviera ubicado en Japón. Estos servidores personalizarán su experiencia en consecuencia, por ejemplo, redirigiéndolo a la versión japonesa del servicio. La siguiente captura de pantalla muestra la página de Búsqueda de Google tras conectarse a un servidor VPN en Japón.

Finalmente, aunque en muchos casos se establecería una conexión VPN para enrutar todo el tráfico a través del túnel VPN , algunas conexiones VPN no lo hacen. El servidor VPN puede estar configurado para darte acceso a una red privada, pero no para enrutar tu tráfico. Además, algunos servidores VPN filtran tu dirección IP real, aunque se espera que enruten todo tu tráfico a través de la VPN . Dependiendo del motivo por el que uses una conexión VPN , podrías necesitar realizar algunas pruebas adicionales, como una prueba de fugas de DNS .

Finalmente, algunos países consideran el uso de VPN ilegal e incluso sancionable. Por favor, consulte las leyes y normativas locales antes de usar VPN, especialmente si viaja.

Responda las preguntas a continuación

¿Qué usarías para conectar los distintos sitios de la empresa para que los usuarios de una oficina remota puedan acceder a los recursos ubicados dentro de la sucursal principal?

VPN

Notas de cierre

En esta sala, cubrimos tres enfoques principales para proteger el tráfico de red.

El primer enfoque es usar TLS, que ofrece una forma práctica de proteger muchos protocolos, como HTTP , SMTP y POP3 . Los protocolos protegidos con TLS suelen tener una S (de «Secure» ) añadida a sus nombres, como HTTPS, SMTPS y POP3S.

El segundo enfoque para proteger el tráfico de red es usar SSH . Aunque SSH se usa principalmente para acceso remoto, también permite transferir archivos de forma segura y establecer túneles seguros. Crear un túnel SSH es una opción sólida si desea transmitir el tráfico de un protocolo de texto plano, como VNC.

El último enfoque que abordamos para proteger el tráfico de red es el uso de conexiones VPN . Una conexión VPN suele ser la opción ideal para conectar dos sucursales de una empresa.

Terminaremos esta sala con un desafío práctico.

Desafío

Presione el botón Iniciar máquina que aparece a continuación.

Arrancar la máquina

La máquina se iniciará en modo de pantalla dividida. Si no está visible, utilice el botón azul » Mostrar vista dividida» en la parte superior de la página.

Hemos configurado el navegador para que registre las claves TLS de la sesión para poder analizar el tráfico con mayor detalle mediante Wireshark. Este registro se logró añadiendo una opción adicional al acceso directo del navegador. Al ejecutarlo, chromium –ssl-key-log-file=~/ssl-key.logse vuelcan las claves TLS al ssl-key.logarchivo.

El archivo de captura de paquetes se randy-chromium.pcapngguarda en la Documentscarpeta. Al abrirlo en Wireshark, puede configurarlo para que lo use ssl-key.logy descifre todo el tráfico TLS. Puede ver los cinco pasos para lograrlo en las dos capturas de pantalla a continuación.

Primero, después de hacer clic derecho en cualquier lugar, seleccione «Preferencias de protocolo». En el submenú, seleccione «Seguridad de la capa de transporte». Finalmente, haga clic en «Abrir preferencias de Seguridad de la capa de transporte».

Al hacer clic en «Abrir preferencias de Seguridad de la Capa de Transporte», se abrirá un cuadro de diálogo. Debe hacer clic en el botón «Examinar» (marcado con un cuatro) para localizar el archivo ssl-key.log. Puede encontrarlo en el Documentsdirectorio. Finalmente, haga clic en Aceptar y Wireshark mostrará todos los paquetes TLS descifrados. Uno de estos paquetes contiene las credenciales de inicio de sesión.

Responda las preguntas a continuación

Uno de los paquetes contiene las credenciales de inicio de sesión. ¿Qué contraseña introdujo el usuario?

THM{B8WM6P}

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *