Hacking de Infraestructura: Protocolo BGP I

Hoy vamos a hablar sobre un protocolo imprescindible para las comunicaciones de internet, pues facilita el intercambio de información sobre redes IP y la comunicación entre sistemas autónomos: el Border Gateway Protocol.

Este es un protocolo muy interesante del que merece la pena hablar con calma y explicar detalladamente cómo podemos atacarlo, por ello dividiré el post en dos partes.

A priori puede parecer un protocolo sencillo, pero realmente es algo más complicado de entender. Por ello, antes de continuar con las vulnerabilidades, te recomiendo ver este video corto de TechTarget sobre cómo funciona el protocolo:

Pasemos ahora a ver cómo detectar el protocolo BGP.

Detección de BGP

Lo primero que debemos hacer si queremos comprobar si hay un servicio BGP en la red es ejecutar el comando netstat para ver qué está a la escucha. En este caso vemos varios procesos BGP:

Hacking de Infraestructura: Protocolo BGP I

Comprobemos que procesos están corriendo en segundo plano. Miramos crontab y vemos que un script se ejecuta cada 10 minutos. Este script para el programa «quagga«, mata el proceso «vtysh» restaura dos archivos de configuración («zebra.conf» y «bgpd.conf«) y arranca de nuevo «quagga«.

Veamos ese archivo zebra.conf. Parece un archivo de configuración de cisco:

Por otro lado, en bgpd.conf tenemos un conjunto de comandos BGP:

Podemos ejecutar el programa vtsysh y vemos que al ejecutarla obtenemos una consola similar a la de CISCO. Podemos ver la configuración al ejecutar los siguientes comandos:

Vemos que la configuración BGP se revierte cada 10 minutos, vemos 3 routers BGP distintos.. Por lo que podemos probar a realizar algún tipo de ataque BGP, en concreto un BGP hijacking. 

Hablemos un poco sobre este tipo de ataques. 

BGP Hijacking

Un BGP hijacking consise en corromper las tablas de enrutamiento de Internet, modificando la dirección del tráfico para poder monitorizarlo, interceptarlo, o eliminarlo (black holing). También es utilizado para redireccionar a páginas web falsas.

En los últimos años ha habido distintas noticias sobre ataques de BGP hijacking. Por ejemplo, en 2018 unos atacantes redirigieron a un servidor ruso el tráfico de myetherwallet, una conocida interfaz que permite la gestión y monedero de criptomonedas Ethereum. De esta forma obtuvieron unos activos valorados en $152.000. Puedes encontrar más información sobre este artículo aquí.

Vamos a intentar mostrar cómo realizar un ataque similar en la red en la que nos encontramos.

Según esa configuración, nosotros somos el router 100, y nuestros vecinos son el 200 y el 300. Dibujemos un esquema para tenerlo claro:

Anteriormente se descubrió en esta máquina que había un servicio FTP en la ip 10.120.15.10. Si escribimos el comando «show ip route 10.120.15.10«, nos muestra la ruta por la que va a esta IP.

Por tanto, podemos actualizar el esquema añadiendo el servicio FTP, y a nosotros como atacantes:

Este es el escenario del que partimos para realizar nuestro ataque BGP. En primer lugar, vamos a asumir que AS-200 y AS-300 están conectados, y que hay alguien en AS-200:

Es un poco complicado de entender, intenemos resumir nuestra teoría: 

Lo que creemos que está pasando es que un usuario que estará en AS-200 se está conectando al FTP, y nosotros queremos averiguar sus credenciales de acceso, pero el paquete no pasa por nosotros sino que va de AS-200 directo a AS-300. Sin embargo podemos hacer un ataque BGP de hijacking de forma que anunciemos en nuestro router AS-100 que tenemos una ruta más rápida para ir al servicio FTP, y que de esa forma AS-200 nos mande el paquete a nosotros en vez de a AS-300 creyendo que será más rápido.

Ataques BGP en Twitter

Hay una cuenta de Twitter que expone información cada vez que ocurre un ataque de BGP hijackings:

Esta cuenta automática muestra la información de bgpstream.com, una página de CISCO que muestra en tiempo real tanto ataques de hijacking como cortes del servicio.

Obtener información mediante BGP

Lo primero que debemos hacer para realizar el ataque es obtener información mediante BGP:

Podemos mostrar un resumen de la red, mostrando los vecinos, mediante el comando show ip bgp summary (no es necesario escribir todo el comando, por ejemplo aqui basta con escribir sh para que entienda que es el comando show, asi es como funciona en cisco):

Para verlo todo, podemos usar el comando «show ip bgp«:

Cada * es una ruta, las lineas vacías indican que se repite el conjunto de ips anterior, y el caracter > indica cual es la ruta preferida.

Por ello, por ejemplo para la red 10.110.10.0/24, la ruta preferida para ir al AS-100, que es donde estamos, es a traves del AS-200. Pero también podría ir al AS-300, de ahí al AS-200 y llegar finalmente al AS-100.

Si queremos ver más detalles de una ruta en concreto, podemos usar el comando «show ip bgp <red>«.  Por ejemplo, veamos los detalles de la subred que contiene la IP con el FTP:

Podemos ver también todas las rutas que un router anuncia, escribiendo «show ip neighbors <ip> advertised-routes«

Lo que vamos a hacer en el ataque BGP es anunciar desde el router que controlamos (AS-100) una ruta para el servicio FTP de la ip 10.120.15.10.

Ya tenemos la información y tenemos estructurado el ataque. En el pr´óximo post veremos como realizar un BGP hijacking paso a paso partiendo del escenario que hemos presentado hoy. ¡No te pierdas la pr´óxima entrega para descubrir cómo!

Lethani.

5/5 - (52 votos)

2 comentarios en «Hacking de Infraestructura: Protocolo BGP I»

Deja un comentario