viernes, 11 de noviembre de 2016

MÚLTIPLES VULNERABILIDADES ( ICS ) - SCHNEIDER ELECTRIC - 3

Sigo presentando algunas vulnerabilidades épicas, sobre PLC de la firma Schneider Electric
Voy a comenzar presentando otro fallo sobre la aplicación web que estos dispositivos traen. En este caso un fallo llamado 'LOCAL FILE INCLUSION ' o simplemente LFI.



LOCAL FILE INCLUSION

El modelo vulnerable una vez mas es el M340.

Un LFI trata sobre aplicaciones web que permiten la inclusión de archivos locales, es decir aquellos ficheros que se encuentran en el mismo servidor de la web. La vulnerabilidad radica en la posibilidad de modificar en origen de estos archivos.

La aplicaciones web permiten las obtención de archivos alojados en el server. Se explota modificando la URL, apuntando a archivos existentes internos. 

La condición para explotar el fallo es conocer\identificar archivos internos. 

Con una simple pasada por el inspector de elementos empezamos a identificas archivos para así poder explotar el fallo

Es entonces cuando nos damos cuenta que estas aplicaciones usan Applets de java. 



Esos son las archivos interesantes

http://<ip­PLC> /<LFI>
http://<ip­PLC> /html/english/home/index.htm?<LFI>

LFI:
../classes/JL.jar
../classes/RDE.jar
../classes/SAComm.jar
../classes/SysDiag.jar
../classes/XMLParser.jar
../classes/rdelite.jar
../classes/sysSetup.jar
../classes/webdiag.jar
../classes/SACommLt.jar
...



ACTION...
Si a 'nuestro' path vulnerable a LFI le pasamos algún archivo tipo texto (*.css,*.html,*.conf,*.ini,*.js, etc), este se imprime en pantalla. Podemos poner por ejemplo un llamado a un archivo JS. Por ejemplo:
http://192.168.1.15/html/english/home/index.htm?/html/config.js

Lo mismo no sucedera con los binarios que podamos encontrar (*.bin,*.gzip,*.fw,etc). Estos se descargaran a nuestro equipo.

Valiendome de la premisa anterior comienzo a pasarle al path vulnerable al LFI, el path (valga la redundancia) de los distintos JAR que fui identificando, con el objeto de descargarlos para un posterior análisis. 



Los distintos jar que descargue los descompile y el código descubierto me lleva a la siguiente fallo.


CREDENCIALES: “Hard-coded”

Hard­coded es un término del mundo de la informática que hace referencia a una mala práctica en el desarrollo de software. Consiste en incrustar datos sensibles directamente en el código fuente del programa, en lugar de obtener esos datos de una fuente externa como un archivo de configuración o parámetros de la línea de comandos, o un archivo de recursos. La práctica del Hard­coded está muy extendida entre programadores con poco conocimiento de los estándares de programación.

Llegado a este punto y valiéndome del LFI antes expuesto, se procede a descargar los distintos ficheros Java (*.jar) que contienen la lógica de la aplicación web

Luego de descompilar los archivos descargados se pueden apreciar las credenciales de acceso. 

Y otra vez...


credenciales que no solo están hardcodeadas, sino que también están en texto plano.

Ya tenemos credenciales, evidentemente son de un servicio FTP. No quise perder mas tiempo levante mi FileZilla y efectivamente las credenciales funcionaban.
Recorriendo directorios, enseguida me topo con un archivo llamado 'password.rde', antes de abrirlo mi logica me dice que dentro se encuentra un password. 
Lo que no puedo deducir rápidamente sin antes abrir y leer el archivo sera la función de hash que contendrá ese posible password, dado la variedad de opciones que existen.
Yo deseaba un md5.

La respuesta se merece otro titulo...

ES SIMPLE, ES CLARO



Claro, simple Y TERRIBLE tenia que haber puerto.


Saludos,
@Capitan_Alfa

No hay comentarios.:

Publicar un comentario