Исследуем техники не “компилируемой” малвары. Часть 1

Почти все нашумевшие APT атаки, используют либо драйверы, либо скриптовые языки (языки сценариев) типа PowerShell, Lua, Visual basic, Autoit итд, интерпретаторы которых уже имеются на хостовых машинах (Powershell, VisualBasic, JS на Windows, Bash и Python на Linux),  имеют цифровую подпись и по своим возможностям не уступают компилируемым языкам, для обхода эвристических движков антивируса, используют какую-нибудь кодировку или шифрование, что существенно облегчает жизнь злоумышленнику, так как у компилируемых языков чаще используются пакеры и упаковщики, которые привлекают внимание антивируса. 



1. Использование публичных ресурсов, для публикации вредоносного кода.

Один из самых распространённых случаев, является публикация кода вредоносного файла (пейлоада) на pastebin или github, и скачивание его с помощью дроппера (dropper), исходный текст скрипта может быть в виде простого текста.



Пример: Дроппер (MD5: 18341071cfc448941c567f90e0e29d3c) скачивает PS скрипт с http://pastebin[.]com/raw/rZhqDVLP в котором скрипт на Powershell c эксплойтом EternalBlue 





VirusTotal: (1/66 Kaspersky):




2. Дроппер может быть написан на любом языке, но вот пейлоад в зависимости от того какую цель преследуют злоумышленники


Для возможности доставки вредоносного кода, и обхода анти-спама на почтовом сервере злоумышленники тоже используют скрипты, не так давно прошла эпидемия шифровальщиков распространяемых в почтовых врожениях через JS или LNK ярлыки, которые в свою очередь запускали powershell для загрузки основного вредоносного функционала.



Пример:  Файл (MD5: 8c373c16c8358001454516df1e0c24ac) на JS вызывает PS, тот скачивает файл PE (http://fatflat[.]tw/file/hit.njk)




3. Использование инжекта кода

Скрипт может инжектировать DLL в свое или чужое адресное пространство, для того чтобы физически не создавать файл на диске и на этом его функционал может закончиться. Если вы будете наблюдать работу скажем через через Filemon, то явно ничего не обнаружите. На благо популярные сендбоксы и антивирусы умеют детектировать такую активность.
Такой функционал есть к примеру, в фреймворке Empire написанного на PowerShell (фреймворк для пост-эксплуатации).

Пример: Файл (MD5: ed3f6d36f76582c83077a5018a8ddbbc) на PS c инжектом DLL 

(MD5: 3de06924c2c4e78213e5eb5eb7e4b99e):








4. Использование Python 

Достаточно редкое явление, чаще всего попадаются пейлоады из metasploit, ввиду того, что для злоумышленника сложно определить наличие самого python на ОС (имеется ввиду Windows)  и его зависимостей (установленные модули) для выполнения функционала, например для установки клавиатурного перехватчика часто используют модуль PyHook, если его нету придется либо реализовывать функционал вручную либо пытаться его скачать. Его отличительная особенность это: кроссплатформенность, более того часть  написанных эксплойтов (exploit-db) используют python. Чаще всего можно встретить скрипты преобразованные в исполняемые файлы, но это уже отдельный сценарий (PyInstaller, Py2Exe).

Пример: В установщик Tone2 ElectraX Файл 

(MD5: 89c411d4e036dca59b926ea4131e7665




был внедрен пейлоад на Python генерированной в metasploit 


(MD5:65339d912ddd7325bf5a93b00f373e19)




Для C&C выбрали TCP протокол:



Также мне как-то попался готовый backdoor (MD5: ce6d567881f8b06216704aff3793a915) на python с неплохим функционалом (Кейлоггер, скриншот экрана, загрузка-выгрузка файлов на сервер, выполнение команд), у исполняемого файла имея такой же функционал, начались бы проблемы с антивирусом. Вывод: использование Python отличный способ обхода антивируса, этот семпл в VirusTotal: (2/66 Kaspersky, ESET)






Комментарии