Soft Evildll и атака dll hijacking

dll.png

Добрый день, Уважаемые Форумчане и Друзья. Сегодня рассмотрим с вами интересный инструмент, автором которого является Thelinuxchoice. Не менее интересен и способ атаки, для реализации которой и появился Evildll.

Компания Microsoft регулярно пытается бороться с атаками Dll Hijacking. Здесь будет представлен один из способов такой атаки.
Кратко:приложение exe при запуске подгружает вредоносный файл библиотеки dll. В итоге, создаются ярлыки cmd с powershell, либо их дубликаты с последующим их вызовом и reverse shell.

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

Установка:
Код:
# git clone https://github.com/thelinuxchoice/evildll.git
# apt-get install mingw-w64
# cd evildll/
# chmod +x evildll.sh
# bash evildll.sh
В работе использовалcя дистрибутив Blackarch, так что установка пакета mingw-w64 не потребовалась. Для Kali Linux и др.его придётся установить.

evildll.png


Инструмент капризный и немало времени ушло на изучение тонкостей. Один из первых неприятных моментов заключается в том, что требуется authtoken для ngrok. При первом запуске Evildll сам установит ngrok, но потребует сохранения токена.

Пробовал закомментировать участок кода, отвечающий за проверку токена, но могут возникнуть проблемы с запуском listener. Увы, но лучше этот token где-то достать, либо регистрироваться.

Теперь, когда в директории evildll появился файл ngrok, выполняем:
Код:
# chmod +x ngrok
# ./ngrok authtoken значение_token
Если посмотреть на код evildll.sh, то можно видеть майнкрафтовский ip-шник. Изменил его на 127.0.0.1 -хуже не стало)

evildll0.png


Атаковать будем пробовать Windows 10. После запуска инструмента, если с токеном всё в порядке, то предлагается 2 варианта реализации атаки. Второй для локальной сетки, либо глобальной WAN, параметры задаёте сами IP (статика) атакующего хоста:порт

При первом способе нам сгенерируется ссылка для платформы ngrok и сервера, работающего на порте 3333. Ссылку вида 0.tcp.ngrok.io:порт шифруем и публикуем для жертвы. Также можно воспользоваться командой в другом терминале
Код:
# ssh -R 80:localhost:3333 custom-subdomain@ssh.localhost.run
Это откроет доступ по ssh для скачивания сгенерированного архива и создаст 2 ссылки с протоколами http и https. Которые также можно завуалировать и отослать тестируемому субъекту.

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

evildll2.PNG


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

evildll1.png


Атакуемый субъект должен разархивировать архив и запустить приложение exe. Т.к.если запустить из архива приложение, то ничего не выйдет и выбьет ошибку.

evildll3.PNG


Сам момент запуска с правами того пользователя, под которым сидит юзер. Получилось запечатлеть этот парасекундный момент.

evildll4.PNG


У атакующего данные и крепкая сессия.

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

evildll6.png


Можно посмотреть файлы Microsoft, выполнять системные команды, копировать файлы, удалять их, запускать службы. Не запускайте только активные приложения, т.к. это явное самообнаружение (представьте, что у компа чистый рабочий стол, а тут, вдруг, запустился браузер, или скайп).

evildll7.png


В директории инструмента после успешной сессии данные будут сохранены в файл saved. При следующей атаке желательно удалить этот файл с архивом, файл с одноимённым наименованием zip-архива и index.php (они создадутся заново)

Минусы перечислил, теперь плюсы:
  1. Файл архива задаётся произвольно, исполняемый дефолтный файл exe можно переименовать и снова запихнуть в архив. Иконку возможно свою навесить при этом.
  2. Разнообразие в СИ (возможность проброса архива с нормальным софтом и инструкцией запуска патча, к примеру и т.д)
  3. Устойчивость сессии (без разницы что запускается и закрывается на атакуемом хосте, пока он включен, сессия живёт)
  4. После попытки запуска приложения у сессии визуально-скрытый процесс.
  5. Возможность использовать Metasploit
  6. Дублирование cmd с reverse shell не такой уж и вредный процесс))
Это на примере дефолтных файлов

evildll9.PNG


Защита

Опытные админы и пользователи могут вызвать cmd и после команды netstat обнаружить подозрительное соединение. Конкретно в данном случае, заходим на диск C и видим свежую папку dll, которой в принципе не должно быть здесь.

evildll8.PNG


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

Вложения

  • evildll5.png
    evildll5.png
    25,5 КБ · Просмотры: 673
Последнее редактирование модератором:

ABlogS

One Level
31.10.2019
2
1
BIT
0
Доброй ночи, спасибо вам большое.
А как можно избавиться от битой кодировки кириллицы?
 
  • Нравится
Реакции: Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 318
3 999
BIT
3
А как можно избавиться от битой кодировки кириллицы?
Здесь нет ничего сложного.
Прямо на месте выполняем в cmd команду chcp 65001
evilddterm1.png
И можно видеть,что вывод приводится к приемлимому результату.
evildllterm2.png
Также это касается и сессии в Metasploit.
Многие терминалы в Linux позволяют выполнить настройку кодировки UTF-8
В панели set character Encoding-UTF-8
Часто приходится пользоваться всё же командой chcp и выбирать такие кодировки:
1251-кириллица Windows
65001-UTF-8
866-кодировка DOC
 

ABlogS

One Level
31.10.2019
2
1
BIT
0
А можно ли как-то отключить антивирус и залить Rat файл, но так что бы человек не увидел этого?
Заранее, спасибо.

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

pp11

Green Team
16.09.2018
201
82
BIT
1
А можно ли как-то отключить антивирус и залить Rat файл, но так что бы человек не увидел этого?
Имея физический доступ только. Чудес не бывает.

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

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 318
3 999
BIT
3
А можно ли как-то отключить антивирус и залить Rat файл, но так что бы человек не увидел этого?
В этой полученной сессии такое провернуть крайне сложно будет,т.к. возникнут проблемы с эскалацией привилегий и сессия просто будет утеряна.
В Windows 10 избежать такого не получится,т.к. в этой ОС существуют защитные настройки,которые касаются команд из cmd,связанных с правами system к примеру.
Вы можете увидеть командой tasklist какие процессы занимает антивирус и догадаться что за антивирус,но если он с правами system,то убить процесс банально командой: taskkill id_процесса не получится.
А до прав system дотянуться без дополнительных действий непросто (без подключения Metasploit в работу,Netcat и т.п.)
Можно через cmd попытаться выполнить сложносочинённые команды для powerhell,чтобы затем сработало от того выполнение,но стоит ли оно того в случае с Rat-ником?
Их же сложно замаскировать.
И еще небольшая проблема, Windows Defender (Который на 10ке) палит угрозу.
Может что-то не так делаю?
Да всё так Вы делаете.Здесь вот как получилось-Defender считался сломаным и некорректно-рабочим до 17-го апреля 2020 года)
Что позволяло обходить ,или пренебрегать его защитой.
Microsoft срочно выпустила дополнение KB4549951 для Windows 10 и вроде подремонтировали защитника.
Так что ,своевременность-вещь та,которая дороже пунктуальности).
 

AAnimeshnikk

One Level
30.04.2020
1
1
BIT
0
Здесь нет ничего сложного.
Прямо на месте выполняем в cmd команду chcp 65001
Посмотреть вложение 40459
И можно видеть,что вывод приводится к приемлимому результату.
Посмотреть вложение 40460
Также это касается и сессии в Metasploit.
Многие терминалы в Linux позволяют выполнить настройку кодировки UTF-8
В панели set character Encoding-UTF-8
Часто приходится пользоваться всё же командой chcp и выбирать такие кодировки:
1251-кириллица Windows
65001-UTF-8
866-кодировка DOC
Огромное спасибо)
 
  • Нравится
Реакции: Vertigo
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!