Что такое угон dll? - PullRequest
       4

Что такое угон dll?

40 голосов
/ 02 сентября 2010

Простой вопрос: что такое dll hijacking?

Я много читал о том, какие приложения уязвимы, но не очень подробно о , почему .

Ответыоценили.

Ответы [ 2 ]

51 голосов
/ 02 сентября 2010

Основы просты.В Windows есть путь поиска для DLL, почти так же, как и $ PATH для поиска исполняемых файлов.Если вы можете выяснить, какие библиотеки DLL запрашивает приложение без абсолютного пути (запуская этот процесс поиска), вы можете поместить свою враждебную DLL где-то выше пути поиска, чтобы она была найдена до того, как появится настоящая версия, и Windows будет счастливапередать код атаки в приложение.

Итак, давайте притворимся, что путь поиска DLL вашей системы выглядит примерно так:

a) .     <--current working directory of the application, highest priority, first check
b) \windows
c) \windows\system32
d) \windows\syswow64   <-- lowest priority, last check

и некоторые приложения Foo.exe запрашивают "bar.dll",который живет в подкаталоге syswow64 (d).Это дает вам возможность поместить вашу вредоносную версию в a), b) или c), и она будет автоматически загружаться в приложение всякий раз, когда приложение запрашивает bar.dll.И теперь ваш foo работает хорошо и верно.

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

И, конечно, это не ограничивается Windows.Любая ОС, которая допускает динамическое связывание внешних библиотек, теоретически уязвима для этого.

9 голосов
/ 02 сентября 2010

DLL Hijacking действительно простая концепция.

Приложения загружают внешний код через библиотеки DLL (библиотеки динамических ссылок). DLL Highjacking - это процесс, посредством которого вредоносный код внедряется в приложение через вредоносную DLL с тем же именем, что и DLL, используемая приложением.

Приложение уязвимо для перехвата DLL в зависимости от того, как они ссылаются на свои DLL. Одним из примеров является использование относительных путей вместо абсолютного пути к DLL. Другой способ заключается в загрузке библиотек DLL с использованием переменных среды, которые могут быть неправильно установлены, и в этом случае по умолчанию для каталога используется относительный путь исполняемого приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...