Mostrando entradas con la etiqueta firewalls. Mostrar todas las entradas
Mostrando entradas con la etiqueta firewalls. Mostrar todas las entradas

miércoles, febrero 07, 2024

Amazon Web Services (AWS): Hardening de Infraestructuras Cloud Computing en @0xWord

Comienza el año, y comienza al mismo tiempo la publicación de los nuevos títulos de este año, donde antes de RootedCON esperamos lanzar cuatro (4) nuevos títulos para que podáis hacer más grande vuestra biblioteca. Para que tengáis la colección completa. Y el primero de este año es "Amazon Web Services (AWS): Hardening de Infraestructuras Cloud Computing", escrito por Abraham Romero.
Ya lo tenéis ya disponible en la web de 0xWord, desde donde lo podéis comprar para tener lo antes posible 24-48 horas dependiendo de lo lejos que sea, en vuestras manos, y sobre una temática fundamental hoy en día, la fortificación de las infraestructuras en el Cloud de AWS.


El libro tiene 220 páginas, y cuenta en seis capítulos desde los principios iniciales de la suscripción que afectan a la seguridad, hasta los ataques que pueden significar grandes costes solo por un problema de seguridad, pasando por los temas más técnicos de fortificación de redes, fortificación de servicios, y fortificación de plataformas. El índice del libro completo os lo he subido a mi cuenta de SlideShare.

Como podéis ver, toca temas claves como el cifrado de datos, la seguridad de las cuentas privilegiadas de administración el despliegue y configuración de los servicios de firewalling de red y de aplicaciones, los controles de acceso, y la monitorización y gestión del alarmado de toda la plataforma cloud, algo fundamental hoy en día.


Figura 3: Índice del libro "Amazon Web Services (AWS):
 Hardening de Infraestructuras Cloud Computing"

El libro lo que lo ha escrito Abraham Romero Cid, es una especialización en seguridad para AWS, que es una de las plataformas de computación en la nube más utilizadas en todo el mundo a día de hoy. Ha revolucionado el mercado con la gran cantidad de servicios disponibles que ofrece, haciendo posible que las empresas y usuarios de todo el mundo puedan construir sus propias infraestructuras, productos y aplicaciones de forma rápida, sencilla y abaratando costes.

Este libro se ha escrito desde la perspectiva de una certificación de AWS para introducirse en el entorno cloud: AWS Certified Cloud Practitioner. Es por esto que el libro es el punto de partida ideal para aquellas personas que quieran adentrarse en esta tecnología, o pretendan afrontar dicho examen.
De esta forma, se cubrirán los conceptos más básicos y ventajas de la nube frente al modelo tradicional, su sistema de precios, se revisarán los principales servicios de AWS en términos de computación, redes, almacenamiento y bases de datos, y finalmente la seguridad en la nube, donde se analizarán los diferentes mecanismos de protección frente ataques, control de acceso, monitorización, conformidad etcétera.

Usar tus Tempos de MyPublicInbox 0xWord para adquirir este libro

Para terminar, te recuerdo que tendrás también 100 Tempos de MyPublicInbox por la compra de este libro de "Amazon Web Services (AWS): Hardening de Infraestructuras Cloud Computing" y que además, puedes pagar completa o parcialmente este libro con Tempos de MyPublicInbox. Aquí te explico cómo se hace.

La idea es muy sencilla, hemos creado un Buzón Público de 0xWord en MyPublicInbox y tenemos disponible el módulo de transferencias de Tempos entre cuentas siempre que el destinatario sea un Perfil Público de la plataforma. Para que se puedan hacer estas transferencias, primero debe estar el Perfil Público destinatario de la transferencia en la Agenda.

Figura 5: Perfil de 0xWord en MyPublicInbox. Opción de "Añadir a  la Agenda".
https://MyPublicInbox.com/0xWord

Para dar de alta un Perfil Público en tu agenda, solo debes iniciar sesión en MyPublicInbox, y con la sesión iniciada ir a la web del perfil. En este caso, a la URL del perfil público de 0xWord en MyPublicInbox, - https://MyPublicInbox.com/0xWord - donde te aparecerá la opción de "Añadir a la agenda". Cuando acabe este proceso, podrás ir a la opción Agenda de tu buzón de correo en MyPublicInbox y deberías tener el Perfil Público de 0xWord allí.

Figura 6: Cuando lo agregues estará en tu agenda

Una vez que lo tengas en la agenda, ya será tan fácil como irte a tu perfil - se accede haciendo clic en la imagen redonda con tu foto en la parte superior - y entrar en la Zona de Transferencias. Desde allí seleccionas el Buzón Público de 0xWord, el número de Tempos que quieres transferir, y en el concepto debes poner que es para recibir un código descuento para usar en la tienda de 0xWord.


No te preocupes por el texto concreto, porque los procesamos manualmente como los pedidos de se hacen en la tienda. 

Canjear 500 Tempos por un código descuento de 5 €

La última opción es bastante sencilla. Solo debes irte a la sección de Canjear Tempos -> Vales para Tiendas, y "Comprar" por 500 Tempos y código de 5 €. Es lo mismo que enviar la transferencia pero en un paquete de 500 Tempos y de forma totalmente automatizada, así que solo con que le des a comprar recibirás el código descuento y lo podrás utilizar en la tienda de 0xWord.com

Así que, si quieres conseguir nuestros libros de Seguridad Informática & Hacking aprovechando los Tempos de MyPublicInbox podrás hacerlo de forma muy sencilla y mucho, mucho, mucho más barato. Y así apoyas este proyecto tan bonito que es 0xWord.com.

Ser escritor de libros de 0xWord

Además, todos lo que queráis convertiros en escritores y hacer un proyecto de libro con nosotros. Podéis también enviarnos vuestra propuesta a través del buzón de 0xWord en MyPublicInbox, y si sois Perfiles Públicos de la plataforma, podéis entrar en la sección de Mi Perfil -> Servicios para ti y solicitar más información sobre el proceso de escribir un libro en 0xWord.
Nuestro equipo se pondrá en contacto contigo y evaluará tu proyecto de publicación de libro. Ya sabes que principalmente de Seguridad Informática & Hacking, y puede ser técnico, súper-técnico, o divulgación, y si es una novela... podemos estudiarlo también.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  

viernes, noviembre 04, 2022

Cómo probar el filtro de protección contra amenazas Web3 en Conexión Segura

Ayer conté una de las PoCs que estamos probando con nuestros amigos de ESET para mejorar la seguridad en el mundo Web3, con nuestro servicio de protección contra dominios maliciosos en las conexiones del hogar, si eres cliente de Movistar, que se llama Conexión Segura. Os he hablado mucho de él en artículos anteriores, porque lo tienes disponible gratuitamente, y solo tienes que activarlo.

Figura 1: Cómo probar el filtro de protección
contra amenazas Web3 en Conexión Segura

En los siguientes artículos tienes la información para gestionar la seguridad de tu red WiFi a través de la conexión a Internet con la Fibra Óptica activando Conexión Segura y revisando las amenazas que te han bloqueado los servicios de protección.
Pues bien, dicho esto, con el equipo de ciberinteligencia de ESET hemos trabajado para que nos provean de un feed de dominios maliciosos centrado en Web3. Es decir, que nos ayude a bloquear sitios web que están centrados en amenazas en el mundo de las criptomonedas, los tokens, etcétera. Para ello, se han centrado principalmente en:
El servicio lo tenemos en pruebas desde el mes de Julio, y seguiremos probándolo aún un poco más, pero hemos visto que se han parada muchísimas conexiones a sitios maliciosos de Web3, que nos han servido para darnos cuenta de lo activo que está el mundo del cibercrimen en estas áreas. 

Figura 3: Log de bloqueos en Conexión Segura
del feed Web3 proporcionado por ESET

Si eres cliente de Movistar, revisa que tienes configurada la protección de Conexión Segura - es gratis, solo tienes que activarla - , y después, prueba si te funciona el feed de Web3 con esta sencilla prueba. 

Figura 4: Si no tienes Conexión Segura activada verás el 

Este es un dominio malicioso de Fake Brokers que usa los cuentos de las habichuleas mágicas con criptomonedas, en este caso usando ilegalmente la imagen de Pablo Motos y el Gran Wyoming como ganchos.

Figura 5: Si Conexión Segura está activada verás esto

Si puedes leer la noticia, entonces no tienes activada Conexión Segura en la red activada para ti y para los tuyos, y si la tienes activada, saldrá el mensaje de protección que te pone el servicio de Movistar para que sepas que ese sitio no es nada bueno.

En este mundo Web3, donde las tecnologías de Blockchain, los Tokens, los SmartContracts, y el valor tokenizado en forma de criptomonedas son los reyes, las amenazas siguen siguiendo similares, pero las formas de detectarlas y protegernos nos van a obligar a estresar el modelo que tenemos y desarrollar nuevos mecanismos de auditoría, detección y fortificación.

¡Saludos Malignos!

Autor: Chema Alonso (Contactar con Chema Alonso)  


sábado, julio 16, 2022

PFSense: Cómo configurar tu propio IDS & IPS con Suricata

Hemos hablado anteriormente en el blog sobre PFSense y algunas posibilidades interesantes que ofrece este tipo de software. Vimos cómo montar una VPN con PFSense y las posibilidades que PFSense ofrecía y lo fácil que es disponer de un servidor de VPN para fortificar las comunicaciones. Como se comentó en esos artículos PFSense ofrece muchas más posibilidades. En el artículo hoy, hablaremos sobre cómo montar un IDS e IPS para poder generar alertas y bloquear conexiones que puedan ser maliciosas.

Figura 1: PFSense: Cómo configurar tu propio IDS & IPS con Suricata

Suricata es un motor de detección de amenazas haciendo las funciones de IDS y de IPS. También podemos encontrar Snort dentro de PFSense para su instalación, aunque el ejemplo de hoy nos centraremos en Suricata.
 
Figura 2: Libro de Ethical Hacking 2ª Edición
de Pablo González en 0xWord

Primero comenzaremos con ver cómo instalamos Suricata en PFSense. Para ello, dentro del panel de PFSense podemos ir al apartado System y encontraremos la opción ‘Package Manager’. El gestor de paquetes nos permite ver qué tenemos instalados en PFSense y que podemos instalar a través de un panel de búsqueda.

Figura 3: Package Manager en System

Como se puede ver en la siguiente imagen, si buscamos la palabra ‘suri’ o ‘suricata’ nos aparece un paquete con la versión correspondiente para su instalación. Solamente debemos pulsar en ‘Install’ para añadir la funcionalidad a nuestro PFSense. La gestión y configuración de Suricata se hará desde el propio panel de PFSense.

Figura 4: Paquete de Suricata

Como se puede ver en las imágenes de la Figura 4 y Figura 5, una vez pulsamos en instalar vamos a ver cómo el proceso nos muestra una salida de terminal y vamos viendo cómo se lleva a cabo la instalación de Suricata sobre nuestro PFSense.

Figura 5: Instalación de Suricata
    
Una vez instalado, en el apartado de Servicios de PFSense vamos a encontrar Suricata instalado. Hay una serie de apartados que iremos tratando durante el artículo. A continuación, enumeramos algunos:

Figura 6: La lista de módulos de Suricata
  • Interfaces: En este apartado vamos a poder configurar sobre qué interfaz o interfaces queremos habilitar el IDS & IPS.
  • Global Settings: En este apartado configuraremos los parámetros necesarios para indicar qué conjunto de reglas y de donde se actualizarán éstas utilizará Suricata. Es necesario entender que Suricata utiliza reglas que en el caso de que las comunicaciones hagan ‘match’ se activará una alerta para notificar (vía email si tiene el suficiente grado de relevancia u otros métodos configurables) o, incluso, bloquear la dirección IP que originó la alerta (es decir, la comunicación). La detección y el bloqueo son partes fundamentales de Suricata, las que le hacen tener funciones de IDS y de IPS.
  • Updates: Esta pestaña es importante, debido a que la actualización de la base de datos de reglas y otros elementos se llevarán a cabo desde esta funcionalidad,
  • Alerts: Esta función permite visualizar y filtrar la información sobre las alertas. El volumen de alertas puede ser alto, por lo que será interesante manejar el filtro de éstas a través de diferentes parámetros de búsqueda. En las alertas, podemos ver qué tipo de regla ha provocado el match y la notificación.
  • Blocks: Esta pestaña muestra las direcciones IP y comunicaciones que han sido bloqueadas. En esta pestaña se puede gestionar la eliminación de direcciones IP bloqueadas por error (falso positivo).
  • Pass lists: Se define en este apartado las direcciones IP que se quieren ‘bypassear’. Si tenemos algunas direcciones IP que bajo ningún concepto queremos que queden bloqueadas por Suricata podemos configurarlo aquí. Es un paso fundamental para las empresas, ya que se tienen direcciones IP que deben estar dadas de alta en este apartado.
  • Logs View: Esta vista nos permite visualizar los logs y realizar búsqueda sobre ellos.
Cuando entramos en Global Settings, deberemos configurar gran parte de la configuración de Suricata. Si nos fijamos en las posibles configuraciones, vamos a encontrar muchas opciones. Debemos indicar de dónde vendrán las reglas, de dónde las descargaremos y cómo llevaremos a cabo las actualizaciones.

Figura 7: Configuración de Global Settings

Es normal, que nos pidan una cuenta de Snort para configurar el catálogo de reglas. Hay diferentes fuentes de datos para las reglas, pero una opción son las reglas ‘free’ de Snort, tal como se puede ver en la imagen (hay un vínculo). Para actualizar y descargar reglas podemos necesitar un Oinkcode, el cual se puede encontrar dentro de la cuenta de snort (que se puede hacer de forma gratuita). Este Oinkcode no es más que una API Key para poder acceder al catálogo de reglas y utilizarlo en las actualizaciones de éstas.

Figura 8: Intervalo de actualizaciones

Como se puede ver en la imagen, se debe indicar el rango o intervalo de actualización. Por defecto viene el parámetro NEVER, no recomendable, y mejor que haya una comprobación de actualización cada ‘x’ días o ‘x’ horas. Además, también debemos indicar si los equipos bloqueados se desbloquean a las ‘x’ horas o nunca. La elección de gestión de las defensas contra los ataques de redes es fundamental, pues una mala elección puede resultar en una D.o.S. del sistema.

JL. Rambla, ampliado y revisado por Pablo González y Chema Alonso

Por defecto viene NEVER, pero ya es cuestión de cada administrador decidir si se configura un rango o no. Quizá una buena estrategia sea no desbloquear automáticamente o dar un rango amplio de tiempo de bloqueo y tener la lista blanca de direcciones IP de la empresa que bajo ningún concepto deben ser bloqueadas (opción de Pass List).

Figura 10: Módulo de Alertas

En la vista de Alertas vemos cómo tenemos un filtro para poder realizar búsquedas avanzadas sobre las alertas, que pueden alcanzar un volumen alto, ya que la base de datos de reglas es muy extensa o puede serla.

¿Cómo ponemos en funcionamiento Suricata?

En la pestaña interfaces debemos darle al botón ‘Añadir’ e indicar la interfaz por la cual queremos ejecutarlo. Cuando hagamos esto, nos saldrá una pantalla como la que se puede ver a continuación. Se puede ver fácilmente que habilitamos Suricata en la interfaz WAN de Suricata.

Figura 11: Activando Suricata y Logs

Disponemos de una serie de opciones de logging, lo cual es importante pensar bien cómo configurarlo y el qué, ya que cuanta más información tengamos sobre el funcionamiento de los servicios y lo que está ocurriendo será mejor para identificar ciertos incidentes.

Figura 12: Configuración de Bloqueo

Para la parte de bloqueo también veremos un apartado, el cual debemos activar a través de la línea “Checking this option will automatically…”. Bien, debemos indicar el IPS Mode, por ejemplo, con Legacy Mode. En el caso del bloqueo debemos seleccionar el tipo de conexión, si solo queremos bloquear dirección IP origen o cómo queremos hacerlo.

Figura 13: Arrancando Suricata

Una vez configurada esta parte, debemos arrancar Suricata quedando como se puede ver en la siguiente imagen (en el apartado Interfaces). La interfaz WAN queda protegida con Suricata en modo IDS e IPS. Se recomienda estudiar y profundizar más sobre el tema de reglas, el funcionamiento interno del IDS y el modo de bloqueo ‘Legacy Mode’. Hay mucha documentación que se puede ojear.

Un ejemplo de regla y bloqueo sencillo     

A continuación, vamos a ver un ejemplo de alerta y veremos cuál es la regla que ha provocado la notificación. Las reglas son Snort puro, por lo que recomendamos echar un ojo a esta documentación.

Figura 14: Información de la regla

Respecto al bloqueo, aquí tenemos una imagen donde se puede ver un ejemplo de cómo actúa. Desde la pestaña ‘Blocks’ se puede hacer uso de la gestión de direcciones IP bloqueadas y tomar decisiones, pero sobre todo entender por qué fue bloqueada dicha dirección IP. Esto es algo fundamental para la toma de decisiones y sobre lo que puede estar sucediendo.

Figura 15: Alertas producidas por la regla

Con esto llegamos al final del artículo, en un futuro podemos jugar con situaciones que Suricata puede detectar y alertar, y ver algunos ejemplos más profundos. Si eres nuevo en ese mundo, recomendamos montar máquinas virtuales, montarte un laboratorio y practicar y jugar con este software Open Source y con las posibilidades que aporta.

Saludos,

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Contactar con Pablo González

martes, mayo 10, 2022

PFSense: Un all-in-one con Fiewall, IPS, IDS, VPN y Proxy para fortificar tu red

La seguridad para evitar los Ataques en redes de datos IPv4 e IPv6, es uno de los campos más importantes  dentro de la fortificación de sistemas, ya que necesita de diferentes elementos para mejorar la protección. Elementos como un Firewall, un Sistema de Detección de Intrusiones (IDS), un Sistema de Prevención de Intrusiones (IPS), un Servidor de Redes Privadas Virtuales (VPN), un Proxy, etcétera. Estos elementos copan las redes de las organizaciones y son fundamentales para mantener la seguridad de la red.

Figura 1: PFSense - Un all-in-one con Fiewall, IPS, IDS,
VPN y Proxy para fortificar tu red

Las PYMEs también requieren de seguridad en red y es por esto que las soluciones all-in-one que se pueden encontrar pueden ayudarlas, y mucho, en fortificar su red y evitar que las amenazas del mundo digital se aprovechen de ellas. Ya sabemos que las PYMES son eslabones un poco más débiles, sobre todo cuando no hay conocimiento o concienciación sobre las amenazas del entorno. Para ellas la inversión en seguridad puede suponer un quebradero de cabeza y por esta razón soluciones como las denominadas all-in-one y similares pueden ser importantes.

JL. Rambla, ampliado y revisado por Pablo González y Chema Alonso

En el artículo de hoy, hablaremos de PFSense y de un uso básico en la que a su firewall permite. Una forma sencilla, a través de una GUI de gestionar un firewall. No hace falta aprender el listado de opciones de iptables, que siempre es recomendable de aprender y conocer cómo funciona este mundo por debajo. Además, puedes aprender sobre iptables en el libro de Hardening de servidores GNU/Linux de 0xWord.

¿Qué es PFSense?

Lo primero que hay que indicar es que es una distribución que permite configurar una máquina como router y firewall, en primer lugar. Hay que indicar que aporta un gran número de servicios, la mayoría relacionados con la securización de la red. Desde disponer de servicios básicos de red para la organización como la implementación de un DHCP o un DNS hasta la posibilidad de montar un servidor VPN o una IPSec en el propio endpoint de PFSense.

(Revisada y Ampliada) de Carlos Álvarez y Pablo González en 0xWord

Funcionalidades como el despliegue de un Proxy, de un IDS o incluso de utilizar un AV para evaluar cierto tráfico es posible también con este all-in-one. En el artículo de hoy vamos a tratar la configuración básica de un entorno con PFSense y vamos a utilizar la parte básica del firewall.

Entorno de prueba de PFSense

Para conocer más sobre las posibilidades de este entorno vamos a proponer un escenario. A continuación, los elementos con los que vamos a jugar en esta pequeña prueba:
  • PFSense: Máquina con la distro de PFSense. Tendrá tantas interfaces de red como redes queramos segmentar y definir. En este caso tendremos una red interna y una red externa (la externa simula Internet). Si quisiéramos simular un entorno: Internet, DMZ y red interna meteríamos tres interfaces de red sobre PFSense.
  • Una máquina en la red Internet (con dirección IP 11.0.0.7).
  • Una máquina en la red interna (con dirección IP 10.0.0.2).
  • Las interfaces de red de PFSense serán 10.0.0.1 y 11.0.0.1.
Figura 4: Configuración de los interfaces de PFSense

En la imagen anterior se pueden ver las configuraciones de las dos interfaces de PFSense. Hay que tener en cuenta que, t
ras la instalación de PFSense, hay que definir las interfaces de red e indicar cuál es LAN y cual es WAN. WAN será la interfaz conectada con Internet directamente. LAN será la interfaz que refleja la parte conectada con la red interna. También podemos jugar con DMZ. Una vez instalado el entorno, observamos una pantalla dónde disponemos de diferentes opciones, entre otras:
  • Asignación de interfaces.
  • Configuración de una nueva interfaz.
  • Diferentes formas de resetear el sistema.
  • Visualización y filtrado de logs.
  • Reinicio y apagado del sistema.
Figura 5: Opciones de configuración de PFSense

Si conectamos a través de un navegador web por la interfaz de red de la red interna podemos acceder al panel control web de PFSense. Desde ahí vamos a poder gestionar de manera más sencilla todo lo que se puede hacer desde la herramienta. Si vemos el menú superior podemos encontrar diferentes posibilidades:
  • Ver información del sistema, versión, actualizaciones, etcétera.
  • Configuración de interfaces.
  • Configuración del firewall. Como se puede ver en la imagen todas las opciones que proporciona PFSense: VLANes, NAT, reglas, programación, etcétera.
  • Servicios de red: DNS, DHCP, Wake-on-LAN, portal cautivo, etcétera.
  • Configuración de la VPN: IPSec, L2TP y OpenVPN.
  • Monitorización de los servicios.
Figura 6: Opciones de configuración del Firewall

Las posibilidades sobre PFSense son muchas. Además, existe un market dónde se pueden ampliar funcionalidades, como se comentó anteriormente.
 
Ejemplo 1: Haciendo PING desde red interna a Internet

Como primer ejemplo y entendiendo que en principio PFSense va a bloquear cualquier tráfico que circula entre la máquina situada en una red y en otra, vamos a ver cómo crear reglas en la máquina.

El punto de partida es que la máquina 10.0.0.2 (la que se encuentra en red interna) no puede hacer PING (ICMP) con la máquina de Internet. La política por defecto del Firewall es DROP, ya sea en NAT, ya sea en Filtering. Es decir, se deniega el paso de los paquetes a través del Firewall, salvo que haya alguna regla que indique lo contrario. Ahora nos tocará crear esas reglas.

Figura 7: Ping capturado por una regla DROP

Necesitamos crear una regla para permitir que la petición de PING (ICMP) salga de la red interna a la externa. Si nos fijamos en la siguiente imagen se va a ver que es sencillo indicar la acción (dejar pasar), la interfaz por la que llega el paquete (LAN), la interfaz por la que saldrá el paquete (WAN), el protocolo (ICMP) y el subtipo de mensaje (en este caso un ICMP echo request).

Figura 8:  Configuración de la regla para dejar pasar el Echo Request

En otras palabras, solo permitiremos que salgan los echo request de ICMP. La idea es que desde fuera (Internet) no puedan pasar el Firewall y hacer un PING (ICMP) a una máquina de la red interna, por lo que un echo reply no debe pasar de la LAN a la WAN. Ahora hay que configurar la regla contraria: desde la WAN debemos dejar pasar los ICMP con el tipo de mensaje echo reply.

Figura 9: Y ahora lo mismo desde el interfaz WAN

Todo lo trabajamos en la interfaz WAN, ya que LAN tiene una regla por defecto que es dejar pasar cualquier protocolo de arquitectura TCP/IP, por lo que las reglas se aplicarán en la interfaz WAN.

Este es un ejemplo con PFSense de lo que uno se puede montar en casa o en entornos laborales pequeños o medianos. Poco a poco iremos viendo algunos ejemplos más, donde se añadirá, por ejemplo, una red DMZ con servicios e iremos acercándonos a un entorno más real. Si quieres aprender sobre seguridad en redes, monta tu laboratorio con máquinas virtual.

Saludos,

Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell” y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González

Contactar con Pablo González

sábado, mayo 28, 2016

SNMPChat: Chatear en un canal encubierto sobre SNMP

En esta entrada quiero presentar una herramienta de mensajería instantánea llamada SNMPchat, la cual utiliza el protocolo SNMP (Simple NetWork Monitoring Protocolo) para intercambiar mensajes de texto entre dos personas. Recordemos que SNMP es un protocolo de monitorización  que se utiliza como parte de la estrategia en la administración de sistemas de todo tipo de elementos, que puede ir desde los routers de una organización, pasando por los servidores, firewalls, para llegar a administrar también los terminales móviles y una gran cantidad de dispositivo en entornos corporativos.

Figura 1: SNMPChat. Chatear en un canal encubierto sobre SNMP

Sobre el uso del protocolo SNMP en el mundo de la autidoría ya se publicaron por aquí muchos artículos que explican cómo sacarle partido al protocolo SNMP para obtener información de la red, los servidores, los dispositivos móviles e incluso los procesos que están corriendo y con qué parámetros fueron lanzados. Los tenéis aquí:
- Auditando Hosts Windows y *NIX* con SNMP (Parte I)
- Auditando Hosts Windows y *NIX* con SNMP (Parte II)
- Descubrir la red de una organización con consultas SNMP
- Shodan y agentes SNMP: Administrando el mundo
- Servidores Novell Netware con agentes SNMPv1 en Shodan
Pero aunque el uso de un protocolo de comunicación fue pensado para monitorear dispositivos y no para intercambiar mensajes de texto, el que esté tan extendido SNMP por los diferentes sistemas y dispositivos convierte a este protocolo en un medio perfecto para crear un canal encubierto (covert channel), ya que esta comunicación podría pasar desapercibida, y oculta en cualquier red. Al igual que cuando se usan técnicas de esteganografía en TCP o las de exfiltración de datos en ICMP, no sería raro ver tramas SNMP en una red, por lo que si no hay mecanismos de seguridad extra no se generaría ninguna alerta por el tráfico SNMP.

Chatear sobre SNMP con SNMPChat

SNMPchat está escrita en Python y fue diseñado sobre una arquitectura cliente-cliente poco convencional en redes de datos que dificulta aún más su detección. Es cliente-cliente ya que no utiliza sockets, es decir, no tiene servicios escuchando en la capa de transporte. Muchos se preguntaran en este momento, ¿bueno, entonces cómo funciona? … bien tanto para el envió como recepción de mensajes utiliza la librería Scapy de Python, la recepción y decodificación de los mensajes la hace a través de sniff, una función de scapy que permite que la tarjeta de red trabaje en modo promiscuo para escuchar el tráfico que esta recibe y gracias a la versatilidad de la función se puede filtrar solamente el tráfico que nos interesa, es decir el trafico SNMP.

Esta arquitectura no utiliza servidores intermedios como hacen los servicios de mensajería instantánea o IRC y se aprovecha de los paquetes SNMP para ocultar la información enviada. Pero se requiere que, si se quiere usar a través de Internet, en los dos extremos se configure en el firewall o router un NAT y una regla para permitir que el tráfico del puerto SNMP vaya hacia cada cliente. Para ello utiliza los mensajes tipo Get-Request de SNMP los cuales son utilizados normalmente para solicitar a través de los OID (Object ID) algún recurso de la MIB (Managment Information Base) en el dispositivo a monitorear. En este caso utilizaremos los OID para ocultar los mensajes de texto.

Figura 2: Mensaje en texto plano camuflado como OID

Los OID se utilizan para definir las ontologías en una comunicación entre dos servicios SNMP, de tal manera que conociendo el OID del objeto que se envía, cada extremo de la comunicación conoce automáticamente la estructura de los atributos. Para ello, tienen un formato del estilo: 1.3.6.1.2.1.1.1, que sirve para identificar de qué objetos extiende su estructura. Como en este caso no vamos a comunicar dos servidores SNMP, lo que hace SNMP  es convertir cada letra del mensaje de texto en su valor ASCII decimal correspondiente y acomodarlos en el OID, conservando el formato del valor y enviando el paquete.

Como ya se explicó, en el otro extremo el receptor realizara el sniffing del tráfico y decodificaraá el mensaje que llego en la OID. Esta es una prueba de concepto que muestra cómo meter datos en los paquetes SNMP sin llamar mucho la atención, los datos van en texto claro y su valor ASCII, así que para garantizar mayor confidencialidad los mensajes deberían ir cifrados extremo a extremo. Aquí tenéis un vídeo que muestra cómo sería la experiencia del sistema.


Figura 3: Configuración y uso de SNMPChat

Al ser un canal encubierto, el riego es generar un tráfico grande entre dos servidores y llamar la atención de los sistemas de monitorización por la cantidad de paquetes enviados, así que, para evitar cifrados de gran peso - que cada uno decide qué quiere utilizar - tal vez sería interesante volver a poner en práctica los sistemas de cifrado clásicos, menos robustos frente a ataques de criptoanálisis, pero menos ruidos en cuanto al número de paquetes que sería necesario enviar.

Configuración y uso de SNMPChat

SNMPchat utiliza la comunidad SNMP para autenticar los mensajes, por lo tanto, esta debe ser configurada igual en los dos extremos, de igual forma que el puerto UDP. La herramienta funciona en Kali Linux perfectamente y no es necesario instalar ninguna dependencia o librería adicional. En las siguiente imagen siguiente se ve la ayudar de la herramienta.

Figura 4: Ayuda de SNMPChat

Es obligatorio para que funcione especificar la dirección IP local (-l) y la dirección IP destino (-d), mientras que la comunidad SNMP (-c) como el puerto (-p) vienen con valores por defecto, Sin embargo se pueden especificar unos diferentes, y si quieres cifrar los mensajes con AES - incorporado por defecto en la herramienta - lo puedes hacer con la opción (-e) para pasarle la key que debe usarse para el cifrado. Luego de especificar los argumentos, la herramienta solicitara ingresar tu nombre para la comunicación y a chatear sobre SNMP se dijo:

Figura 5: Ingreso de nombre para comenzar la conversación

Si quieres abandonar basta con que teclees "q" y de esta forma el otro extremo quedara notificado de que cerraste la sesión. En la siguiente imagen se ve el interfaz de comunicación usando SNMPChat.

Figura 6: Conversación con SNMPChat

El script lo pueden descargar de mi repositorio en Github,y espero que les sirva para poder avanzar en las técnicas de canales encubiertos, esteganografía, estegonanálisis o, simplemente, para chatear un rato.

Saludos desde Colombia.

Autor: Juan Esteban Valencia Pantoja

Entrada destacada

+300 referencias a papers, posts y talks de Hacking & Security con Inteligencia Artificial

Hace un mes comencé a recuperar en un post mi interés en los últimos años, donde he publicado muchos artículos en este blog , y he dejado mu...

Entradas populares