Herramienta: EtherNet/IP Explorer, Parte I

Continuando con el tema de Ethernet/IP y de las herramientas que pueden ser utilizadas para obtener información de nuestros equipos tal y como hablábamos en las entradas:

Herramienta: EtherNet/IP & CIP Stack Detector, Parte I

Herramienta: EtherNet/IP & CIP Stack Detector, Parte II

Hoy vamos a hablar de otra como es «Ethernet/IP Explorer». En mi caso esta herramienta la voy a utilizar sobre sistemas operativos Microsoft Windows aunque lo podremos hacer sobre Linux y descargarla desde el repositorio Sourceforge en el siguiente enlace:

Ethernet/IP Explorer & C## Stack

Con ella podremos encontrar dispositivos en la red local que empleen este protocolo y además mostrar, no sólo sus características, sino también información relativa a Clases, Instancias y Atributos de los diferentes objetos. Para tener un poco más de contexto recomiendo leer el siguiente documento:

Ethernet/IP; quick Start guide for vendors Handbook

Dicho esto un vez que la arrancamos procedemos a seleccionar la interfaz desde donde realizaremos la consultas y la IP del equipo de destino.

A continuación podemos ver algunas características como número de serie, producto y obtener el fabricante…

Hasta ahí todo más o menos igual con respecto a la anterior, pero una de las características para seguir obteniendo información sobre el equipo la podemos conseguir añadiendo «Clases» donde cada una de ellas nos dará más datos.

Entre ellos:

Pero uno de los que me resulta especialmente «curioso» es el número #245 el cual nos proporciona información sobre la dirección IP privada del equipo y que difiere de la que nos hemos conectado. Ésta termina en X.X.X.239 mientras que que nos aparece es 192.168.13.11/24. Como podemos comprobar un usuario mal intencionado podría obtener información de manera remota del direccionamiento existente, auqnue éste se produzca a nivel de capa 2 del Modelo de Referencia OSI. Esto sumado a otra información que se obtenga por otros medios se conseguiría una imagen acerca de las redes o dispositivos que existen en la citada subred.

Quizás esto, a priori, puede no tener importancia pero en mi opinión desde luego que la tiene.

¡Nos vemos en la siguiente!

Herramienta: EtherNet/IP; CIP Stack Detector, Parte II

En la primera parte de esta entrada hablábamos de la herramienta «EtherNet/IP; CIP Stack Detector» y de cómo podemos obtener información de equipos que emplean este protocolo. Luego, a partir de los resultados obtenidos, podríamos ir un poco más allá y ver si alguno de ellos presenta alguna vulnerabilidad que pueda ser explotable.

Ahora bien, conocedores de la labor que realiza la herramienta, ahora vamos a ver cómo detectar su presencia y tomar medidas al respecto. Al utilizar el protocolo Ethernet/IP, y éste operar en Capa 7 del Modelo de Referencia OSI, necesitaremos de equipos que sean capaces de operar en ella. Si sólo nos quedamos en Capa 4, como mucho veremos el puerto de destino. Bueno, aunque lo tengamos y no lo tenemos configurado, estamos en las mismas.

El contar con equipos que implementen estas capacidades podemos tener VISIBILIDAD acerca de los flujos de datos, y por ende, nos ayuda a determinar anomalías de diferente índole. Insisto, VISIBILIDAD. Pues bien de eso es de lo que vamos a hablar hoy con respecto a la herramienta que hemos presentado en la parte I.

Control de Aplicación en entornos ICS/SCADA, Parte I

Control de Aplicación en entornos ICS/SCADA, Parte II

Para ello cuento con un equipo cortafuegos Fortinet Fortigate con las licencias capaces de detectar no sólo los protocolos sino también los comandos, instrucciones, órdenes que son capaces de mandarse a través de ellos. En este fabricante lo encontramos en la parte de «Security Profiles – Application Control – Operational Technologies».

Allí si seleccionamos «View Signatures» podremos verlas que en este caso el fabricante ha desarrollado. En  el momento de escribir este artículo está en 3020. OJO,  no son 3020 protocolos industriales, en realidad  son  muchos  menos  ya  sobre  cada  uno de ellos  se  pueden  enviar  diferente cantidad  de  comandos e instrucciones ya sean  estos propietarios  o estándar  como  se  puede  apreciar  en  la  imagen siguiente. Y mas concretamente sobre el protocolo que nos atañe, Ethernet/IP:

Habiendo definido un perfil y aplicarlo en la regla que filtrará el tráfico, estaremos en disposición de empezar a tener la visibilidad a la que hacíamos referencia. Y «voilá» una vez que lanzamos de nuevo la herramienta…

SE NOS GENERAN TODOS ESTOS LOGS!!!!!!

Quizás podríamos pensar que es un comportamiento «normal» si es que disponemos de equipamiento que emplee Ethernet/IP, pero si vemos que esa dirección IP no es la de un equipo que deba iniciar comunicaciones contra los PLCs… algo falla… O bien, si yo  tengo NO TENGO EQUIPOS QUE COMUNIQUEN O INTERCAMBIEN DATOS POR ETHERNET/IP sino por S7; FINS; Modbus; OPC-UA, OPC-AE; OPC-DA; BACNet; u otro de los tantos que nos podemos encontrar; ¿qué diablos hace ese tráfico ahí?

En mi opinión..

LAS COMUNICACIONES QUE SE PRODUCEN EN PLANTA DEBEN SER UN REFLEJO DE LOS PROCESOS.

Sin embargo, ahora viene otra cuestión, y es que esto es de mucha utilidad siempre y cuando sepamos interpretar lo que el cortafuegos nos indica. Si no contamos con personas capaces de entender los logs que nos llegan, sean administradores, analistas de seguridad, de nada nos va a servir. Por eso creo que es vital importancia contar con unos mínimos conocimientos de cómo funcionan los sistemas de control y automatización. Pero bueno, esa es otra historia…

Nos vemos en la siguiente!!

Breve recordatorio de protocolos, industriales

Como todos sabemos una de las labores que han de llevarse a cabo en auditorías, diagnósticos o la acción de un atacante contra nuestras instalaciones es la recolección de información de los equipos que están en funcionamiento. Es decir, debemos conocer qué dispositivos hay conectados; qué servicios exponen en la red para uno u otro fin; versiones de hardware; firmware o sistema operativo; software instalado si lo hubiera; etc.

De esta manera podremos determinar, por ejemplo, algunas cuestiones como si una vulnerabilidad nos afecta o no; si tenemos, o no, algún servicio habilitado pero que no se esté utilizando; si tenemos acceso no controlados; etc. etc.

En entornos industriales dependiendo de diversos factores podemos encontrar distintos protocolos de comunicaciones, por ejemplo:

  • Fabricante del equipo del sistema de control; algunos optan por unos u otros.
  • Tipo de control; los requerimientos para el control de proceso o control de movimiento requieren del empleo algunos optimizados para tareas específicas.
  • Ámbito de uso según sector; existen protocolos optimizados para ciertas tareas como puede ser sector eléctrico, maquinaria, seguridad, etc.

Lo cierto es que la tendencia es que se empleen protocolos basados en tecnología Ethernet  y TCP/IP de tal manera que los equipos que lo implementan puedan comunicarse de manera similar a las IT.

¡¡¡OJO!!! de manera similar que no igual.  Debemos recordar que los requisitos de latencia, Jitter y determinismo no son los mismos en unas redes que en otras!!!!!!

Así pues cada uno de los protocolos que se emplean sobre este tipo de redes utilizan diferentes números de puertos, desde 1 a 65535, y estos sobre la capa de transporte tanto por TCP como UDP.

Para que os hagáis una idea de la variedad existen os dejo una guía publicada por SANS en la podéis encontrar un resumen de algunos de ellos.

SANS, Industrial Protocols Cheat Sheet.

Esto es tremendamente importante para luego poder configurar adecuadamente las reglas de nuestros cortafuegos, dentro de la aplicación de estrategias de Separación, Segmentación y Virtual Patching. Estos es, qué debe comunicar con qué y de qué forma siempre bajo la premisa que «dejar pasar» lo  ESTRICTAMENTE NECESARIO.

Adicionalmente, a lo anterior, no nos debemos olvidar de aplicar la funcionalidad que los fabricantes de cortafuegos para realizar DPI (Deep Packet Inspection) sobre el tráfico que vamos a permitir. Es decir, para aquellos que no hayan oído hablar de ello me refiero a realizar un análisis a nivel de Capa 7, Aplicación. Esto es, poder identificar el protocolo pero además los comandos, instrucciones o consignas que puedan enviarse a través de ellos. Es como si escuchando una conversación entre dos personas podamos, aparte de identificar el idioma, también la gramática, la sintaxis o el vocabulario.

A continuación os dejo un par de entradas donde lo explico más detalladamente:

Control de Aplicación en entornos ICS/SCADA, Parte I

Control de Aplicación en entornos ICS/SCADA, Parte II

Pero también aparte de leer y/o escribir datos de diferente índole; poder interactuar con los dispositivos; realizar acciones sobre éstos; también podremos emplearlos para obtener información de ellos como versión de hardware, firmware, fabricante, etc. En particular para  llevar a cabo acciones sobre ellos con uno u otro fin. Lo que conocemos como «Information Gathering». Todo depende de lo que queramos hacer y su intencionalidad.

Existen herramientas que nos pueden ayudar en esta tarea, para unos u otros protocolos y de esa manera obtener información del equipo en cuestión.

Aquí os dejo una entrada empleando PROFINET-DCP pero en futuras entradas iremos descubriendo otras.

ICSSPLOIT. PROFINET-DCP

¡Nos vemos en la siguiente!