Captura de credenciales en comunicaciones inseguras

La finalidad de este artículo es mostrar lo fácil que es capturar una contraseña en una red utilizando protocolos no seguros sin necesidad de hacer un MITM (Man In The Middle) para hacer más hincapié en lo importante que es la seguridad en la red.

1. Qué es el protocolo HTTPs
2. Qué es el protocolo FTP
3. Bettercap a fondo
4. Laboratorio (maqueta de pruebas)
5. Atacando usando ARP Spoofing usando bettercap
6. Captura de credencial HTTP
7. Captura de credencial FTP

 

Qué es el protocolo HTTPS

El protocolo HTTPS (Hypertext Transfer Protocol Secure) es uno de los protocolos más utilizados en Internet. Nos permite navegar por Internet con seguridad, ya que el navegador web establece una comunicación segura que está cifrada y autenticada punto a punto, desde nuestro navegador web hasta el servidor web donde nos estemos conectando.

HTTPS es la versión segura de HTTP, ya que, en HTTP toda la información se envía sin ningún tipo de cifrado, por lo que, si cualquiera intercepta las comunicaciones, podrá ver absolutamente todo lo que se está enviando y/o recibiendo, incluido las contraseñas. Vamos a mostrar cómo hacer un ataque Man in the Middle para capturar tráfico de red, y descifrar el tráfico HTTP haciendo uso de la popular herramienta Bettercap para Linux. Ahora veremos por qué se hace hincapié en que todo servicio expuesto ya sea de manera pública o privada, tiene que ir siempre acompañado de seguridad en las comunicaciones cliente/servidor.

Qué es el protocolo FTP

El Protocolo de transferencia de archivos (en inglés File Transfer Protocol o FTP) es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.

Bettercap a fondo

Bettercap es una herramienta potente, fácilmente extensible y portátil escrita en Go (anteriormente en Ruby) que tiene como objetivo ofrecer a los investigadores de seguridad, los equipos de red y los ingenieros inversos una solución todo en uno fácil de usar con todas las funciones que posiblemente puedan necesitar para realizar reconocimientos y ataques Redes WiFi, dispositivos Bluetooth Low Energy, dispositivos HID inalámbricos y redes IPv4 / IPv6.

Características:

  • Escáner de redes WiFi, permite hacer ataques de desautenticación, también permite realizar ataques sin clientes a asociaciones PMKID, permite capturar handshakes de clientes que usan protocolo WPA y WPA2.
  • Escáner de dispositivos BLE (Bluetooth Low Energía) para leer y escribir información.
  • Escáner de dispositivos inalámbricos que usen la banda de 2.4GHz, como los ratones inalámbricos, también permite realizar ataques MouseJacking con inyección de datos.
  • Permite hacer ataques pasivos y activos a redes IP
  • Permite realizar ataques MitM basados en ARP, DNS y también DHCPv6, con el objetivo de capturar toda la información.
  • Permite crear un proxy HTTP/HTTPS para levantar el tráfico seguro HTTPS, y facilita enormemente el uso de scripts.
  • Sniffer de red muy potente para recolección de credenciales de usuario.
  • Escáner de puertos muy rápido, aunque para esto, mejor usar Nmap que el rey de los escáneres de puertos.
  • Tiene una potente API REST para realizar ataques fácilmente.
  • Incorpora una interfaz gráfica de usuario para facilitar los ataques, aunque el terminal de comandos es muy potente.
  • Tenemos una gran cantidad de módulos de diferentes categorías para ampliar funcionalidades

Laboratorio (maqueta de pruebas)

En la maqueta de pruebas, se utilizarán las siguientes máquinas y servicios:

  1. Equipo atacante (Bettercap): Ubuntu IP 192.168.13.5
  2. Equipo víctima (Chrome y Filezilla): Windows 10 con IP 192.168.13.38
  3. Servidor Ubuntu (Nginx y Proftpd): 192.168.13.203

Atacando usando ARP Spoofing usando bettercap

Qué es el protocolo de ARP

ARP viene de Address Resolution Protocol. En español lo podemos traducir como protocolo de resolución de direcciones. Se trata de un protocolo muy importante en la red que tiene como misión encontrar la dirección MAC que corresponde a una dirección IP. Para conseguir esto se envía un paquete, que es la solicitud ARP.

Hay que tener en cuenta que para navegar por la red, para enviar paquetes de datos a través de TCP/IP un servidor va a necesitar conocer algunos datos clave. Necesita conocerla máscara de subred, la dirección IP y la dirección MAC.

 

Qué significa ARP Spoofing

ARP Spoofing es como se conoce a este tipo de ataques. Básicamente es el envenenamiento de tablas ARP. Es una técnica que utilizan los piratas informáticos para lograr entrar en una red para robar los paquetes de datos que pasan por la red local. De esta forma podría controlar el tráfico y también incluso detenerlo.

 

Caso práctico

Lo primero que vamos a hacer, es ejecutar el típico ataque de ARP Spoofing para capturar todo el tráfico, el tráfico HTTPS estará cifrado y no podremos descifrarlo. También capturaremos el tráfico ICMP, tráfico TCP y UDP, y tráfico HTTP. Para poder hacer esto, simplemente debemos ejecutar los siguientes comandos:

  • sudo bettercap
  • set net.sniff.verbose false
  • set arp.spoof.targets 192.168.13.38
  • arp.spoof.fullduplex true
  • arp.spoof on
  • http.proxy on
  • net.sniff on

Ahora intentaremos acceder desde la máquina windows, a una autenticación básica http la cual no lleva comunicación segura SSL/TLS ni certificados. El usuario es foo y contraseña es bar. Entramos desde Windows con el navegador Chrome a la ip del servidor Ubuntu donde está instalado el servidor web Nginx con autenticacion basica por HTTP → http://192.168.13.203

Conectamos bien con las credenciales introducidas:

Captura de credencial HTTP

Y como vemos, la contraseña viaja por la red en texto plano y es capturada de una forma fácil y rápida:

Ahora haremos el mismo procedimiento pero utilizando un FTP (Proftpd) instalado en la máquina linux Ubuntu → 192.168.13.203 al puerto 21.

Conectamos desde el cliente Filezilla en el Windows 10:

Captura de credencial FTP

Como vemos, al ser  un FTP sin seguridad TLS en la comunicación, la contraseña es capturada por la red:

La conclusión que podemos sacar de todo esto, es que da igual si un servicio es público o privado, siempre debe ser acompañado de una seguridad de cifrado mínima para evitar robo de usuarios y contraseñas.

Referencias

https://es.wikipedia.org/wiki/Protocolo_seguro_de_transferencia_de_hipertexto
https://es.wikipedia.org/wiki/Protocolo_de_transferencia_de_archivos
https://www.redeszone.net/tutoriales/seguridad/descifrar-trafico-https-bettercap-linux/
https://blog.elhacker.net/2021/05/bettercap-la-navaja-suiza-del-trafico-analizar-red.html
https://www.redeszone.net/tutoriales/redes-cable/ataques-arp-spoofing-evitar

Anterior

Cuándo usar microservicios

Siguiente

¿Cómo te gusta el Coffee?A nosotros nos gusta Lean!

Talento O2O

¿Te apetece formar parte de nuestro equipo?

Mira las oportunidades