Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-65400 — Apple MacOS Screen Sharing произвольное чтение/запись файлов -> RCE | Kitploit
Инструменты/GitHubGitHub/acheong08/cve-2026-65400
Повышение привилегийМеханизмы персистентностиЭксплуатацияЭксфильтрация данныхПост-эксплуатацияТестирование на Проникновение
GitHubacheong08/cve-2026-65400

CVE-2026-65400

Apple MacOS Screen Sharing произвольное чтение/запись файлов -> RCE

Репозиторий
22 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-65400

Впервые за долгое время у нас есть RCE на MacOS.

Изначально обнаружена @osxreverser, а затем расширена bynar.io. См. https://blog.calif.io/p/no-country-for-old-passwords для дополнительной информации.

В основном это основано на работе @panchocosil (ну, Claude...), который опубликовал PoC только для чтения. Репозиторий от @HORKimhab выглядит довольно сомнительным, особенно потому, что get-svn.sh похож на попытку последующей атаки на цепочку поставок.

В любом случае, мне удалось заставить работать запись, а из этого — получить RCE.

Быстрый старт

root@kitploit:~
usage: exploit.py [-h] [-w LOCAL] [-m MODE] [-p PORT] [-u USER] [-r RETRIES] [-t TIMEOUT] [-o FILE] ip [path]
  • Режим: права доступа, которые будут у файла при записи. Например, 0644 и всё в таком духе (юниксовые штучки)
  • Пользователь по умолчанию — root. Разумеется, вам нужен root
  • Сбои ожидаемы. Баг немного связан с состоянием гонки. Можно увеличить количество попыток, но обычно всё срабатывает за 20.
  • Используйте -o, чтобы сохранить прочитанный файл в локальный файл. Полезно для бинарников
  • Порт по умолчанию — 5900. Это стандартный порт VNC.
  • -w — записать локальный файл в [path].

RCE через чтение?

Отчасти возможно. В MacOS чтение каталога (а не файла) выгружает сырое содержимое каталога (все файлы в нём). Так что невозможность получить список файлов — не проблема.

Итак, сначала немного разведки. python3 exploit.py <ip_addr> /Library/Preferences/com.apple.loginwindow.plist даёт имя пользователя вошедших в систему пользователей. Затем можно прочитать /User/<username>/.ssh/ и надеяться, что SSH тоже включён (обычно если включён VNC, то SSH тоже).

Поскольку чтение выполняется от root и игнорирует TCC (насколько я понимаю), можно просто выгрузить историю браузера и (возможно?) куки. Обычно этого достаточно.

RCE через запись.

В любом случае можно записать в /Library/LaunchDaemons/ и дождаться перезагрузки. После этого у вас будет персистентность. Но, разумеется, мы нетерпеливы, поэтому есть способы и получше.

Часто можно найти уже существующие записи, которые можно перезаписать. Например, /Library/PrivilegedHelperTools/com.microsoft.autoupdate.helper, us.zoom.ZoomDaemon и com.microsoft.teams.TeamsUpdaterDaemon довольно часто уже установлены.

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>

Судя по этому, бинарник /Library/Application Support/Microsoft/EdgeUpdater/Current/EdgeUpdater.app/Contents/MacOS/EdgeUpdater запускается через заданный интервал.

Затем мы можем заменить этот бинарник, и даже без необходимости возиться с launchctl получаем RCE!

Забавно.

Скачать инструмент