Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
dtrace-memaccess_cve-2020-27949 — Preuve de concept pour CVE-2020-27949, démontrant la lecture/écriture arbitraire en mémoire dans les processus macOS via l'ioctl DTrace fasttrap sans permissions élevées. | Kitploit
Outils/GitHubGitHub/seemoo-lab/dtrace-memaccess_cve-2020-27949
Escalade de PrivilègesCriminalistique MémoireAnalyse des VulnérabilitésExploitationRed TeamingExploitation de Binaires
GitHubseemoo-lab/dtrace-memaccess_cve-2020-27949

dtrace-memaccess_cve-2020-27949

Preuve de concept pour CVE-2020-27949, démontrant la lecture/écriture arbitraire en mémoire dans les processus macOS via l'ioctl DTrace fasttrap sans permissions élevées.

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
33913il y a 5 ansVérifié par Kitploit

Lecture et écriture de la mémoire d'autres processus en utilisant fasttrap

Le périphérique /dev/fasttrap pour créer des nœuds de trap dans les processus en espace utilisateur pour les providers pid et objc a les permissions 666. Contrairement à /dev/dtrace, qui est également 666, fasttrap n'a pas de vérification de permission. Cela permet à tout processus d'envoyer un ioctl FASTTRAPIOC_MAKEPROBE ou FASTTRAPIOC_GETINSTR.
Un attaquant peut créer des probes dans n'importe quel autre processus pour n'importe quel emplacement mémoire en utilisant FASTTRAPIOC_MAKEPROBE. Lors de l'activation de ces probes, les valeurs à l'emplacement mémoire spécifié sont remplacées par une instruction de trap (0xCC sur x86) et la valeur originale est placée dans une mémoire fantôme. La récupération de la valeur originale est possible avec l'ioctl FASTTRAPIOC_GETINSTR. Cela permet à l'attaquant de lire la mémoire arbitraire d'un autre processus en plaçant plusieurs traps.

Cette vulnérabilité est suivie sous le nom CVE-2020-27949, corrigée dans macOS Big Sur 11.1, Security Update 2020-001 Catalina, Security Update 2020-007 Mojave.

Disclosure Timeline

  • 2020-07-07 -> Divulgation initiale à Apple Product Security.
  • 2020-07-08 <- Confirmation de l'enquête.
  • 2020-10-28 -> Demande de mise à jour de statut.
  • 2020-12-07 <- Notification concernant une mise à jour à venir qui résout le problème.
  • 2020-12-14 <- Mise à jour publiée.

Requirements

  • L'attaquant peut exécuter du code avec des permissions utilisateur normales (non élevées)
  • Les probes dans le processus victime doivent être activées (c'est-à-dire que la victime doit être exécutée sous DTrace)

Tested system configurations

  • SIP est activé (aucune exception)
  • 10.15.5 sur iMac Late 2012
  • 10.15.5 sur MacBook Pro 2020

Impact

  • L'attaquant peut lire la mémoire d'autres processus exécutés sous DTrace sans permissions élevées. Même la lecture de la mémoire des processus s'exécutant en tant que root est possible.
  • L'attaquant peut écrire la valeur de l'instruction de trap (0xCC sur x86) à n'importe quel emplacement mémoire d'autres processus exécutés sous DTrace sans permissions élevées. Même l'écriture en mémoire vers des processus s'exécutant en tant que root est possible. En faisant partie d'autres instructions ou adresses de saut, le flux de contrôle de la victime peut être modifié, permettant une escalade des privilèges.

Expectations

En tant qu'utilisateur, je m'attends à ce que l'activation de DTrace n'autorise que les processus avec des permissions root à tracer, instrumenter ou modifier d'autres processus. DTrace est un outil précieux pour les tâches administratives offrant des outils comme dtruss, iotop, etc.

Exploit details

Notre victime (target) est un exécutable fonctionnant en tant que root. L'attaquant (memaccess) est un exécutable fonctionnant avec des permissions utilisateur normales. Le script de traçage libc_monitor.d enregistre le nombre d'appels aux fonctions dans l'objet partagé libsystem_c.dylib (ce n'est qu'un exemple simple d'un script administratif qu'un propriétaire de machine pourrait exécuter).

  1. La victime est exécutée
  2. L'attaquant crée une probe avec le PID de la victime et un emplacement mémoire qui l'intéresse.
  3. L'attaquant attend que DTrace trace le processus victime. Cela pourrait se produire dans le cadre d'une opération administrative où le propriétaire de la machine souhaite tracer les fonctions dans le processus victime (par exemple libc_monitor.d).
  4. Lorsque DTrace commence à tracer la victime, les probes précédemment créées seront activées, remplaçant ainsi les valeurs mémoire originales.
  5. L'attaquant utilise FASTTRAPIOC_GETINSTR pour lire les valeurs mémoire des probes créées.

L'étape 4 remplace la mémoire dans le processus victime par la valeur de l'instruction de trap. Selon l'application, un attaquant peut utiliser cela pour écrire une valeur précédemment connue à un emplacement mémoire critique. Par exemple, l'attaquant pourrait contrôler la graine d'un RNG ou remplacer des clés cryptographiques dans un processus.

Note : L'attaquant n'a jamais besoin de permissions élevées ou root.
Note 2 : Les scripts DTrace auto-écrits ne sont pas nécessaires. Par exemple, dapptrace utilise également le provider pid pour tracer n'importe quelle fonction.

Proposed Fix

Implémenter des vérifications de privilèges dans /dev/fasttrap comme dans /dev/dtrace ou supprimer la permission d'écriture mondiale.

Note : Nous n'avons pas vérifié le correctif publié.

Instructions

  1. Assurez-vous que DTrace est disponible et fonctionne correctement
  2. Exécutez target et suivez les instructions à l'écran
Télécharger l’outil