CVE-2023-0321 Divulgación de información sensible en productos de Campbell Scientific

Quiero compartir con vosotros este pequeño descubrimiento que he hecho y por el cual estoy orgulloso, ya que se trata de mi primera publicación de CVE.

En el mes de marzo de 2022 estaba realizando un ejercicio de RT, en la empresa donde trabajo, y me encontré con unos dispositivos publicados a Internet llamados dataloggers. 

Os preguntaréis ¿qué es un datalogger? Eso me pregunté yo cuando los vi por primera vez. Por entrar un poco en contexto, básicamente un datalogger es un dispositivo que recibe datos de sensores y con estos se realizan operaciones o simplemente almacena estos datos. En la imagen siguiente podéis ver un esquema de este dispositivo, para que podáis haceros un esquema mental de lo que estamos hablando:

Estos dispositivos normalmente (pueden estar en otras configuraciones) están en unas antenas de comunicaciones y publicados a internet a través de una tarjeta 3G/4G o GSM de la siguiente manera:

Necesitan de un programa llamado PC400 que usa un operador para poder conectarse y configurarlos, subir la configuración, etc.

Una vez entendí qué es un datalogger y para qué se utiliza, lo que hice fue usar Shodan para conseguir detectar estos dispositivos en internet, a través de los siguientes comandos:

Filtro los datos obtenidos por país, concretamente España. Y percibo que existen diferentes modelos, unos más nuevos como los CR6, y otros más viejos, como pueden ser los CR800.
Hago un intento de conexión hacia ellos con el programa citado anteriormente llamado PC400, que no me cuesta nada descargarme de la página web del fabricarte (https://www.campbellsci.cc/pc400). Una vez rellanado los datos, consigo la conexión, y empiezo a analizar los datos que me ofrece, todo esto sin usar una contraseña.

Llegados a este punto me doy cuenta de que los dispositivos no solo están expuestos en Shodan, sino que publican un pequeño web server. Me voy a google y empiezo a ver los siguientes resultados:

Me llaman la atención dos parámetros que se encuentran en blanco, los que podéis ver resaltado en la evidencia anterior, PakbusEncryptionKey y PakbusTCPPassword. Dado que en algunos de ellos no podía acceder vía http, Me pregunto entonces ¿qué es este protocolo?. Esto me lleva a indagar sobre él.


Es un protocolo que se parece a TCP/IP, pero es propietario. En este momento yo ya tengo claro que tengo que hacer para conectarme, por tanto, vamos con Python, dado que mi idea es conectar a través de este protocolo por el puerto 6785 y ver qué datos se pueden obtener.
Para ello uso el siguiente código en Python:

Podéis encontrarlo también en:

https://github.com/Hackplayers/hpystools/blob/main/PyCampbellDump.py

Mi intención es descargar los ficheros de configuración del dispositivo, ya que quiero ver qué información guardan, todo simple curiosidad, y logro obtener los siguientes datos:

Estos datos muestran lo siguiente:

Esta exposición de datos hace que se pueda obtener credenciales de acceso por FTP válidas dado que no está cifrado este fichero.

Prosigo mi investigación, dado que en las versiones más modernas, los CR6, veo que vía web no puedo descargarme estos ficheros porque me pide autenticación como vemos a continuación:

 

Me pregunto ¿si uso el script para contactar por Pakbus, haré un bypass de la autenticación?

Y efectivamente, logro realizar un bypass de la autenticación web.

A continuación, llego a la siguiente pregunta ¿permitirá la subida de ficheros sin controlar?.
Para comprobarlo trato de subir ficheros y voilá:

Independientemente de la extensión que tenga el fichero, lo logro subir, obteniendo el arbitraty file upload.

Sigo investigando estos dispositivos, haciendo más pruebas y me encuentro con el hallazgo de que en algunos de estos dispositivos publicados en internet tienen estas extensiones:

Pienso, ¿uy qué raro?, ¿extensiones .zip y extensiones .lnk?, ¿pero si estos dispositivos solo deben permitir extensiones .CRX (donde X es la versión del dispositivo)? Entonces procedo a la descarga de estos ficheros y me encuentro lo siguiente:

A estas alturas del PoC, ya os habréis dado cuenta, tanto como yo, que estos ficheros no pueden ser buenos y razón no os falta.

Según la información de VT es malware, y estos ficheros pertenecen a la siguiente campaña de CoinMiner:

https://www.akamai.com/blog/security/the-photominer-campaign

Por tanto, han estado utilizando los actores maliciosos estos dispositivos como ¨hosteadores¨ de malware para sus campañas de minería.

Esta investigación que realicé, deriva en el CVE-2023-0321 Divulgación de información sensible en productos de Campbell Scientific (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-0321).

Este descubrimiento ha sido mi primera aproximación en el maravilloso mundo de dispositivos ICS en infraestructura OT,

Espero que lo hayáis disfrutado tanto como yo cuando lo descubrí y ya sabéis ¡¡happy hacking!!

Contribución gracias a Carlos Antonini

Comentarios

Publicar un comentario