- 15.02.2017
- 1 321
- 3 932
Привет, Уважаемые Форумчане и Друзья! Сегодня мы окунемся в мир DLL Hijacking и рассмотрим любопытный инструмент под названием Evildll от Thelinuxchoice. Да, Microsoft уже который год пытается прикрутить гайки и бороться с этой заразой, но, как видите, новые лазейки и способы атак появляются регулярно. Не верите? Смотрите, как в 2025-м обнаружилась Уязвимость dMSA в Windows Server 2025 угрожает Active Directory — она тоже сводится к подмене 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
Инструмент, признаюсь, с характером. Немало времени ушло на то, чтобы "договориться" с ним. Один из главных подводных камней — это authtoken для ngrok. При первом запуске Evildll сам ngrok подтянет, но токен потребует. Если authtoken не подходит или сервис ограничен, обратите внимание на альтернативы ngrok в 2025 году — это оставит цепочку гибкой даже в замкнутых сетях.
Я пытался закомментировать участок кода, отвечающий за проверку токена, но, увы, это может аукнуться проблемами с запуском listener. Так что лучше не лениться: либо регистрируйтесь на ngrok и получите свой токен, либо ищите, где его достать. Без него — никуда.
Как только ngrok появится в директории evildll, делаем его исполняемым и прописываем токен:
Код:
chmod +x ngrok
./ngrok authtoken значение_token
В бой: Атакуем 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
Если нужны проверенные конфиги без ngrok, почитайте обсуждение альтернатив ngrok — там есть рабочие примеры.
Минус такого подхода с ngrok/ssh — порты часто назначаются произвольно, и это не всегда срабатывает. Но если все успешно, жертве сразу же предложат скачать и сохранить архив. Браузеры, конечно, могут немного поворчать про "редко загружаемый файл", но на этом обычно все.
Evildll тут же радостно сообщит о переходе по ссылке и предложит активировать прослушиватель на 4444 порте.
Ключевой момент: атакуемый субъект должен РАЗАРХИВИРОВАТЬ архив и только потом запустить приложение .exe. Если попытаться запустить его прямо из архива, получите ошибку, и ничего не выйдет.
Сам момент запуска — буквально пара секунд мелькает окно, но именно в этот миг все и происходит, с правами пользователя, который запустил файл. Мне удалось запечатлеть этот "парасекундный момент"!
У атакующего в этот момент уже есть данные и крепкая сессия.
Команды можно выполнять любые. Хоть папку lox на рабочем столе создавайте (у меня с русскоязычной символикой Blackarch пока не дружит, извините за иероглифы).
Можно потрогать системные файлы, выполнять команды, копировать, удалять, запускать службы. Главное — не запускайте активные приложения, это явное самообнаружение. Представьте, если на чистом рабочем столе вдруг сам собой Skype запустится — подозрительно, не так ли?
После успешной сессии все данные будут сохранены в файл saved в директории инструмента. Перед следующей атакой не забудьте удалить этот файл, а также архив с одноименным именем (.zip) и index.php — они сгенерируются заново.
Плюсы и Минусы Evildll: Честно и Откровенно
Я вам уже немного поныл про ngrok, теперь давайте разберем плюсы:- Гибкость: Имя архива можно задать любое, исполняемый дефолтный .exe файл можно переименовать и засунуть обратно в архив. А при желании — даже свою иконку на него навесить.
- Социальная Инженерия (СИ): Тут открывается простор для фантазии! Можно пробросить архив с каким-нибудь "полезным" софтом, к нему — инструкцию по установке "патча" (на самом деле — вашего .exe), и вуаля!
- Устойчивость сессии: Это большой плюс. Неважно, что запускается или закрывается на хосте жертвы, пока он включен — сессия живет!
- Скрытность: После запуска приложения процесс сессии визуально скрыт. Это не панацея, но для быстрого взгляда — незаметно.
- Интеграция с Metasploit: Инструмент дает возможность использовать Metasploit, что расширяет арсенал атакующего.
- Дублирование cmd с reverse shell: Несмотря на то, что это не самый вредный процесс для атакующего, для жертвы это полный компромисс системы. Процесс вроде бы "обычный", но по факту — открытый канал к машине. Аналогичный эффект наблюдается при эксплуатации CVE-2023-1585/1587 в Avast, где DLL-гонка приводит к выполнению кода от SYSTEM.
Защита: Как Не Попасться на Удочку
Перед тем как перейти к чек-листу, стоит усложнить жизнь анализаторам, применяя приёмы из статьи как усложнить анализ приложения.Ну а теперь о главном — как от всего этого защититься. Опытные админы и пользователи могут сразу заподозрить неладное.
- Сетевой Мониторинг (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: от планирования до эксплуатации» на Специалист по тестированию на проникновение в информационные системы.
На этом у меня пока все, друзья. Надеюсь, было познавательно! Благодарю за внимание и до новых встреч в киберпространстве!
А теперь вопрос к вам, Форумчане: какие еще необычные или малоизвестные методы обнаружения DLL Hijacking вы используете в своей практике? Поделитесь опытом, чтобы сделать нашу защиту еще крепче!
Последнее редактирование модератором: