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
CVE-2026-65400 — Apple MacOS Screen Sharing — lecture/écriture arbitraire de fichiers -> RCE | Kitploit
Outils/GitHubGitHub/acheong08/cve-2026-65400
Escalade de PrivilègesMécanismes de PersistanceExploitationExfiltration de DonnéesPost-ExploitationTests d'Intrusion
GitHubacheong08/cve-2026-65400

CVE-2026-65400

Apple MacOS Screen Sharing — lecture/écriture arbitraire de fichiers -> RCE

Voir le dépôt
2il y a 2 joursPas encore vérifié

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

CVE-2026-65400

Pour la première fois depuis un moment, nous avons un RCE sur MacOS.

Découvert à l'origine par @osxreverser, puis développé par bynar.io. Voir https://blog.calif.io/p/no-country-for-old-passwords pour plus d'informations.

Ceci est principalement dérivé du travail de @panchocosil (enfin, de Claude...), qui a publié une preuve de concept en lecture seule. Le dépôt de @HORKimhab semble être un peu bidon, en particulier ce get-svn.sh qui ressemble à une tentative ultérieure d'attaque de la chaîne d'approvisionnement.

Bref, j'ai réussi à faire fonctionner l'écriture et, à partir de là, un RCE.

Démarrage rapide

root@kitploit:~
usage: exploit.py [-h] [-w LOCAL] [-m MODE] [-p PORT] [-u USER] [-r RETRIES] [-t TIMEOUT] [-o FILE] ip [path]
  • Mode : les permissions du fichier lors de l'écriture. Donc comme 0644 et ce genre de choses (trucs Unix)
  • L'utilisateur par défaut est root. Évidemment, vous voulez root
  • Des échecs sont à prévoir. Le bug est un peu capricieux (race condition). Vous pouvez augmenter le nombre de tentatives, mais en général cela fonctionne en 20.
  • Utilisez -o pour écrire le fichier lu dans un fichier local. Utile pour les binaires
  • Le port par défaut est 5900. C'est le port standard pour VNC.
  • -w pour écrire un fichier local vers [path].

RCE à partir de la lecture ?

Partiellement possible. Sur MacOS, exécuter la lecture sur un répertoire (plutôt qu'un fichier) vide le contenu brut du répertoire (chaque fichier qu'il contient). Donc ne pas pouvoir lister les fichiers n'est pas un problème.

Donc d'abord un peu de reconnaissance. python3 exploit.py <ip_addr> /Library/Preferences/com.apple.loginwindow.plist vous donne le nom d'utilisateur des utilisateurs connectés. Ensuite, vous pouvez lire /User/<username>/.ssh/ et espérer que SSH est aussi activé (généralement, quand VNC l'est, SSH l'est aussi).

Comme la lecture se fait en tant que root et ignore TCC (d'après ce que je comprends), vous pouvez directement extraire les historiques de navigateur et (peut-être ?) les cookies. En général, cela suffit.

RCE à partir de l'écriture.

Dans tous les cas, vous pouvez écrire dans /Library/LaunchDaemons/ et attendre un redémarrage. Vous avez alors une persistance. Mais bien sûr, nous sommes impatients, il existe donc de meilleures méthodes.

Il y aura souvent des enregistrements existants que vous pouvez écraser. Par exemple, /Library/PrivilegedHelperTools/com.microsoft.autoupdate.helper, us.zoom.ZoomDaemon et com.microsoft.teams.TeamsUpdaterDaemon sont couramment installés.

root@kitploit:~
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>AbandonProcessGroup</key>
	<true/>
	<key>Label</key>
	<string>com.microsoft.EdgeUpdater.wake.system</string>
	<key>LimitLoadToSessionType</key>
	<string>System</string>
	<key>ProgramArguments</key>
	<array>
		<string>/Library/Application Support/Microsoft/EdgeUpdater/Current/EdgeUpdater.app/Contents/MacOS/EdgeUpdater</string>
		<string>--wake-all</string>
		<string>--enable-logging</string>
		<string>--vmodule=*/components/update_client/*=2,*/chrome/updater/*=2</string>
		<string>--system</string>
	</array>
	<key>StartInterval</key>
	<integer>3600</integer>
</dict>
</plist>

En regardant cela, on voit que le binaire situé à /Library/Application Support/Microsoft/EdgeUpdater/Current/EdgeUpdater.app/Contents/MacOS/EdgeUpdater est exécuté à un intervalle défini.

Nous pouvons alors remplacer ce binaire et, même sans avoir à toucher à launchctl, nous obtenons un RCE !

Sympa.

Télécharger l’outil