Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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-2020-1362 — análisis de CVE-2020-1362 | Kitploit
Herramientas/GitHubGitHub/asdyxcyxc/cve-2020-1362
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónIngeniería InversaAprendizaje y EducaciónExplotación de Binarios
GitHubasdyxcyxc/cve-2020-1362

CVE-2020-1362

análisis de CVE-2020-1362

Ver Repositorio
374hace 6 añosAún no revisado

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

Explotando un bug de Elevación de Privilegios en Windows 10 (CVE-2020-1362)

Explotación de bug de corrupción de memoria - análisis de CVE-2020-1362

WalletService corrigió bugs de Elevación de Privilegios en el último Patch Tuesday, uno de los bugs fue asignado con CVE-2020-1362. El bug aprovecha un error fuera de límites en el servicio. Aquí compartimos nuestras técnicas para explotarlo.

Análisis de Causa Raíz

Realizamos análisis binario de las siguientes funciones en walletservice.dll:

  • Wallet::WalletCustomProperty::SetGroup

La función SetGroup escribió datos controlados por el usuario en la memoria en un offset controlado por el usuario.

root@kitploit:~
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 la función no verifica el rango del offset que el usuario puede controlar. Por lo tanto, aquí es donde ocurre la vulnerabilidad.

De escritura de memoria fuera de límites a WWW (write-what-where)

Ahora podemos escribir memoria fuera de los límites. Observando podemos encontrar que hay una función para establecer y obtener BSTR en la misma clase:

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

Por lo tanto, podemos modificar fácilmente el puntero a BSTR a través de oobw para obtener la capacidad de leer y escribir cualquier dirección.

De WWW a ejecución de código arbitrario

Una vez que tenemos WWW (write-what-where), podemos escribir la vtable de objetos Wallet::WalletCustomProperty en el heap para controlar RIP. Al principio, intentamos modificarlo directamente con oobw, pero descubrimos que oobw no estaba alineado con 8 bytes. Por lo tanto, tuvimos que escribir dos veces para lograr el secuestro de vtable usando una condición de carrera. Pero esto puede hacer que el exploit sea inestable. Hay otros métodos para evitar esto. Pero en nuestro POC simplemente usamos otra vulnerabilidad de fuga de información (CVE-2020-1361) para filtrar la dirección del heap y usamos www para escribir la vtable directamente. Por cierto, aunque CVE-2020-1361 está marcado como una vulnerabilidad de fuga de información, en realidad se puede usar para lograr EOP. Haremos un informe sobre esto en el futuro.

Encontramos la función ATL::CComObject<CDXGIAdapter>::`vector deleting destructor en dxgi.dll que nos ayuda a pasar de ejecutar funciones arbitrarias a ejecución de código arbitrario. Esta función llama a la función loadlibraryEx y toma un puntero global como primer parámetro de loadlibraryEx. Entonces podemos lograr la ejecución de código arbitrario cargando un dll personalizado.

Se proporciona un POC de ejemplo en el directorio POC.

Impactos de la Vulnerabilidad

A través de la vulnerabilidad, podemos lograr una elevación de privilegios de medio a NT AUTHORITY\system.

Probado en Windows 10.0.18363.815, x64

Texto de imagen

Créditos

Haoran Qin

Zhiniang Peng (@edwardzpeng) de Qihoo 360

Cronología

10 Abr 2020: Vulnerabilidades reportadas

21 Abr 2020: MSRC investigó y confirmó el bug

14 Jul 2020: Parche publicado

17 Jul 2020: Informe publicado

Descargar herramienta