Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
spectre-attack-demo — Exemple d'utilisation de l'exploit « Spectre » révélé (CVE-2017-5753 et CVE-2017-5715) | Kitploit
Outils/GitHubGitHub/pedrolucasoliva/spectre-attack-demo
Analyse des VulnérabilitésExploitationCryptographieSécurité MatérielleApprentissage et ÉducationExploitation de Binaires
GitHubpedrolucasoliva/spectre-attack-demo

spectre-attack-demo

Exemple d'utilisation de l'exploit « Spectre » révélé (CVE-2017-5753 et CVE-2017-5715)

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
11il y a 8 ansPas encore vérifié

Exemple d'attaque Spectre

Exemple d'utilisation de l'exploit "Spectre" révélé le 2 janvier 2018 (CVE-2017-5753 et CVE-2017-5715)

Spectre brise l'isolation entre différentes applications. Il permet à un attaquant de tromper des programmes sans erreur, qui suivent les meilleures pratiques, en leur faisant divulguer leurs secrets. En fait, les vérifications de sécurité desdites meilleures pratiques augmentent en réalité la surface d'attaque et peuvent rendre les applications plus sensibles à Spectre.

  • Spectre paper - Article Spectre et code source

Langage

C, utilise les bibliothèques :

  • stdio.h
  • stdlib.h
  • stdint.h
  • intrin.h - pour rdtscp et clflush

Que fait l'exemple ?

Nous plaçons le texte "The Magic Words are Squeamish Ossifrage." en mémoire, puis nous essayons de le lire en utilisant l'exploit. Si le système est vulnérable, vous verrez le même texte dans la sortie, lu depuis la mémoire.


Dans ce code, si les instructions compilées dans victim_function() étaient exécutées dans un ordre strict du programme, la fonction ne lirait que array1[0..15] puisque la taille de array1 = 16. Cependant, lorsqu'elles sont exécutées de manière spéculative, des lectures hors limites sont possibles. La fonction readMemoryByte() effectue plusieurs appels d'entraînement à victim_function() pour que le prédicteur de branche s'attende à des valeurs valides pour x, puis appelle avec un x hors limites. La branche conditionnelle se trompe, et l'exécution spéculative qui s'ensuit lit un octet secret en utilisant le x hors limites. Le code spéculatif lit ensuite array2[array1[x] * 512], divulguant la valeur de array1[x] dans l'état du cache. Pour compléter l'attaque, un simple flush+probe est utilisé pour identifier quelle ligne de cache dans array2 a été chargée, révélant le contenu de la mémoire. L'attaque est répétée plusieurs fois, de sorte que même si l'octet cible n'était initialement pas dans le cache, la première itération l'y amènera.

Le code non optimisé lit environ 10KB/second sur un i7 Surface Pro 3.

Sources

  • Spectre exploits info
  • CVE-2017-5753 - Variante 1 : contournement de vérification des limites
  • CVE-2017-5715 - Variante 2 : injection de cible de branche
  • Intel affected CPUs list
Télécharger l’outil