
Это PoC для обхода UAC с использованием перехвата DLL и злоупотребления проверкой "Trusted Directories".
Это PoC для обхода UAC путем внедрения DLL и злоупотребления проверкой "Trusted Directories".
Скрипт Python CsvToHeader.py можно использовать для генерации заголовочного файла. По умолчанию он использует CSV-файл dll_hijacking_candidates.csv, который можно найти здесь: dll_hijacking_candidates.csv.
Скрипт проверяет для каждого переносимого исполняемого файла (PE) следующие условия:
asInvokerhighestAvailablerequireAdministrator<autoElevate>true</autoElevate>
-c, скрипт проверит, находится ли DLL для внедрения в списке DLL, импортированных из таблицы PE.> python .\CsvToHeader.py -h
usage: CsvToHeader.py -f [DLL_PATH] -c
CsvToHeader может использоваться для генерации заголовочного файла из CSV.
optional arguments:
-h, --help показать это справочное сообщение и выйти
-f [DLL_PATH] Путь к CSV-файлу для преобразования (по умолчанию="dll_hijacking_candidates.csv")
-c Включить импорт DLL в PE (по умолчанию=False)
-v, --version Показать номер версии программы и выйти
Чтобы сгенерировать заголовочный файл, можно использовать следующую команду:
python CsvToHeader.py > dll_hijacking_candidates.h
Будут использованы файлы DLLHijacking.exe и test.dll.
DLLHijacking.exe — это файл, который будет использоваться для генерации списка уязвимых PE. Он выполнит следующие шаги:
CreateFakeDirectory
Функция, создающая каталог в C:\windows \system32.
Копирование файлов в новый каталог
C:\windows\system32\[TARGET.EXE] в C:\windows \system32\[TARGET.EXE][CUSTOM_DLL_PATH] в C:\windows \system32\[TARGET.DLL]Запуск
Запустить исполняемый файл из C:\windows \system32\[TARGET.EXE]
CleanUpFakeDirectory
Функция, удаляющая каталог, созданный на шаге 1, и файлы из шага 2.
CheckExploit
Проверить содержимое файла C:\ProgramData\exploit.txt, чтобы узнать, был ли эксплойт успешным.
DLLHijacking.exe всегда будет создавать файл журнала exploitable.log со следующим содержимым:
Например:
1,computerdefaults.exe,PROPSYS.dll
0,computerdefaults.exe,Secur32.dll
Команда для запуска:
DLLHijacking.exe [DLL_PATH]
если аргумент не передан, скрипт будет использовать DLL test.dll, которая хранится в ресурсах DLLHijacking.exe.
Протестировано на Windows 10 Pro (10.0.19043 N/A Build 19043).

test.dll — это простая динамическая библиотека, которая будет использоваться для проверки успешности эксплойта.
DLL создаст файл C:\ProgramData\exploit.txt со следующим содержимым:
Этот файл будет удален после завершения эксплойта.
Этот проект создан только для образовательных и этических целей тестирования. Использование данного программного обеспечения для атаки на цели без предварительного взаимного согласия незаконно.
Пользователь несет ответственность за соблюдение всех применимых местных, государственных и федеральных законов.
Разработчики не несут ответственности за любое неправомерное использование или ущерб, причиненный данной программой.