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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2020-1362 — Análise da CVE-2020-1362 | Kitploit
Ferramentas/GitHubGitHub/asdyxcyxc/cve-2020-1362
Escalada de PrivilégiosForensia de MemóriaAnálise de VulnerabilidadesExploraçãoEngenharia ReversaAprendizado e EducaçãoExploração de Binários
GitHubasdyxcyxc/cve-2020-1362

CVE-2020-1362

Análise da CVE-2020-1362

Ver Repositório
3711há 6 anosAinda não revisado

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

Explorando uma falha de Elevação de Privilégio no Windows 10 (CVE-2020-1362)

Explorando falha de corrupção de memória - análise da CVE-2020-1362

O WalletService corrigiu falhas de Elevação de Privilégio na última Patch Tuesday, uma das falhas foi atribuída à CVE-2020-1362. A falha explora um bug de acesso fora dos limites no serviço. Aqui compartilhamos nossas técnicas para explorá-lo.

Análise da Causa Raiz

Conduzimos análise binária das seguintes funções em walletservice.dll:

  • Wallet::WalletCustomProperty::SetGroup

A função SetGroup escreveu dados controlados pelo usuário na memória em um offset também controlado pelo usuário.

signed __int64 __fastcall Wallet::WalletCustomProperty::SetGroup(__int64 this, int a2, int a3, int a4)
{
  signed __int64 result; // rax

  result = 0i64;
  if ( a2 == 1 )
  {
    if ( a3 & 0xFFFFFFDF )
      return 0x80070057i64;
  }
  else if ( a3 == 0x20 )
  {
    return 0x80070057i64;
  }
  if ( a4 == -1 )
  {
    *(_DWORD *)(this + 8i64 * a2 + 0x74) = 0;
    *(_DWORD *)(this + 8i64 * a2 + 0x78) = 0x7FFFFFFF;
  }
  else
  {
    *(_DWORD *)(this + 8i64 * a2 + 0x74) = a3;
    *(_DWORD *)(this + 8i64 * a2 + 0x78) = a4;
  }
  return result;
}

Podemos notar que a função não verifica o intervalo do offset que o usuário pode controlar. Portanto, é aqui que a vulnerabilidade ocorre.

De escrita de memória fora dos limites para WWW (write-what-where)

Agora podemos escrever memória fora dos limites. Observando, podemos perceber que existe uma função para definir e obter BSTR na mesma classe:

  • Wallet::WalletCustomProperty::SetLabel
  • Wallet::WalletCustomProperty::GetLabel

Portanto, podemos facilmente modificar o ponteiro para BSTR através do oobw para obter a capacidade de ler e escrever em qualquer endereço.

De WWW para execução arbitrária de código

Uma vez que temos WWW (write-what-where), podemos escrever a vtable dos objetos Wallet::WalletCustomProperty no heap para controlar o RIP. No início, tentamos modificá-la diretamente com oobw, mas descobrimos que o oobw não estava alinhado com 8 bytes. Então tivemos que escrever duas vezes para conseguir o sequestro de vtable usando condição de corrida. Mas isso pode tornar o exploit instável. Existem outros métodos para contornar isso. Porém, em nosso POC, usamos outra vulnerabilidade de vazamento de informações (CVE-2020-1361) para vazar o endereço do heap e usamos o www para escrever a vtable diretamente. A propósito, embora a CVE-2020-1361 seja marcada como uma vulnerabilidade de vazamento de informações, ela pode ser usada para alcançar EOP. Faremos um writeup sobre ela no futuro.

Encontramos a função ATL::CComObject<CDXGIAdapter>::vector deleting destructor`` em dxgi.dll para nos ajudar a passar da execução de funções arbitrárias para execução arbitrária de código. Essa função chama a função loadlibraryEx e usa um ponteiro global como primeiro parâmetro de loadlibraryEx. Então podemos alcançar execução arbitrária de código carregando uma dll personalizada.

Um POC de exemplo é fornecido no diretório POC.

Impactos da Vulnerabilidade

Através da vulnerabilidade, podemos alcançar elevação de privilégio de médio para NT AUTHORITY\system.

Testado no Windows 10.0.18363.815, x64

Image text

Créditos

Haoran Qin

Zhiniang Peng (@edwardzpeng) da Qihoo 360

Linha do Tempo

10 Abr 2020: Vulnerabilidades reportadas

21 Abr 2020: MSRC investigou e confirmou a falha

14 Jul 2020: Correção lançada

17 Jul 2020: Writeup publicado

Baixar ferramenta