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
spectre-attack-demo — Ejemplo de uso del exploit revelado "Spectre" (CVE-2017-5753 y CVE-2017-5715) | Kitploit
Herramientas/GitHubGitHub/pedrolucasoliva/spectre-attack-demo
Análisis de VulnerabilidadesExplotaciónCriptografíaSeguridad de HardwareAprendizaje y EducaciónExplotación de Binarios
GitHubpedrolucasoliva/spectre-attack-demo

spectre-attack-demo

Ejemplo de uso del exploit revelado "Spectre" (CVE-2017-5753 y CVE-2017-5715)

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
Ver Repositorio
11hace 8 añosAún no revisado

Ejemplo de ataque Spectre

Ejemplo de uso del exploit "Spectre" revelado el 2 de enero de 2018 (CVE-2017-5753 y CVE-2017-5715)

Spectre rompe el aislamiento entre diferentes aplicaciones. Permite a un atacante engañar a programas sin errores, que siguen las mejores prácticas, para que revelen sus secretos. De hecho, las comprobaciones de seguridad de dichas mejores prácticas aumentan la superficie de ataque y pueden hacer que las aplicaciones sean más susceptibles a Spectre.

  • Artículo de Spectre - Artículo de Spectre y código fuente

Lenguaje

C, usa librerías:

  • stdio.h
  • stdlib.h
  • stdint.h
  • intrin.h - para rdtscp y clflush

¿Qué hace el ejemplo?

Colocamos el texto "The Magic Words are Squeamish Ossifrage." en la memoria y luego intentamos leerlo usando el exploit. Si el sistema es vulnerable, verás el mismo texto en la salida, leído desde la memoria.


En este código, si las instrucciones compiladas en victim_function() se ejecutaran en estricto orden de programa, la función solo leería desde array1[0..15], ya que el tamaño de array1 es 16. Sin embargo, cuando se ejecuta de forma especulativa, son posibles lecturas fuera de los límites. La función readMemoryByte() realiza varias llamadas de entrenamiento a victim_function() para que el predictor de saltos espere valores válidos para x; después la llama con una x fuera de los límites. El salto condicional se predice incorrectamente y la ejecución especulativa resultante lee un byte secreto usando la x fuera de límites. El código especulativo lee entonces de array2[array1[x] * 512], filtrando el valor de array1[x] en el estado de la caché. Para completar el ataque, se utiliza un simple flush+probe para identificar qué línea de caché de array2 se cargó, revelando el contenido de la memoria. El ataque se repite varias veces, de modo que incluso si el byte objetivo no estaba inicialmente en caché, la primera iteración lo traerá a la caché.

El código sin optimizar lee aproximadamente 10KB/segundo en un i7 Surface Pro 3.

Fuentes

  • Información sobre los exploits de Spectre
  • CVE-2017-5753 - Variante 1: omisión de la comprobación de límites
  • CVE-2017-5715 - Variante 2: inyección de destino de salto
  • Lista de CPUs afectadas de Intel
Descargar herramienta