Malware Analysis - 3 ways to deobfuscate JScript and JavaScript malware
Анализ вредоносных программ - 3 способа деобфускации вредоносных программ JScript и JavaScript
#javascript #deobfuscation #gootloader #malware #malwareanalysis #unpacking #reverseengineering #js #babel #jscript
extract called functions: https://github.com/struppigel/hedgehog-tools/tree/main/ECMAScript%20helpers
gootloader unpacker: https://github.com/struppigel/hedgehog-tools/tree/main/gootloader
sample: https://bazaar.abuse.ch/sample/1bc77b013c83b5b075c3d3c403da330178477843fc2d8326d90e495a61fbb01f/
00:00 Введение в анализ вредоносных программ
• Рассматриваются три метода деобфускации вредоносных программ на JavaScript.
• Пример: Goodloader, один из самых распространенных вредоносных программ на JavaScript.
00:26 Goodloader и его особенности
• Goodloader - вредоносная программа на JavaScript, используемая для распространения других вредоносных программ.
• Содержит до шести уровней зашифрованного кода.
• Используется Notepad++ для анализа.
01:07 Поиск вредоносного кода
• Goodloader использует библиотеку jQuery.
• Обнаружение вредоносного кода через анализ функций.
• Использование MD для поиска исходной библиотеки.
03:26 Использование скрипта для анализа
• Написание скрипта для извлечения вызываемых функций.
• Установка Node.js и npm для работы скрипта.
• Использование пакетов bubble core и commander.
04:57 Применение скрипта
• Скрипт извлекает все вызываемые функции и идентификаторы.
• Уменьшение количества строк кода для анализа.
• Обнаружение и анализ функций, создающих вредоносный код.
06:53 Использование регулярных выражений
• Использование регулярных выражений для замены идентификаторов.
• Пример замены идентификатора 23 на другой идентификатор.
• Применение регулярных выражений для замены всех совпадений.
12:34 Использование AST Explorer
• AST Explorer для анализа и деобфускации кода.
• Преобразование кода с помощью транспиляции.
• Преимущества использования AST Explorer по сравнению с регулярными выражениями.
15:37 Пример преобразования кода
• Пример преобразования имени функции и переменной.
• Использование AST для анализа и преобразования кода.
• Применение посетителей для обработки абстрактного синтаксического дерева.
17:09 Работа с абстрактными синтаксическими деревьями
• Путь в синтаксическом дереве указывает на текущий узел.
• Посетитель находит соответствие для определенного типа узла, например, идентификатора.
• Пример: преобразование пути к идентификатору и присвоение нового имени.
18:33 Пример с объединением строк
• Включение функции в приложение.
• Создание преобразования для объединения строк.
• Использование абстрактного синтаксического дерева для поиска и замены узлов.
20:39 Проблемы с регулярными выражениями
• Замена узлов с помощью path replace with.
• Проблемы с заменой всех узлов, необходимость использования функции exit.
• Добавление пропущенных узлов для корректной замены.
23:00 Преобразование конкатенации
• Получение значения объединения узлов.
• Преобразование конкатенации сложнее, но надежнее регулярных выражений.
• Использование синтаксического анализатора для создания строки.
24:25 Двукратный обход абстрактного синтаксического дерева
• Определение посетителя для двукратного обхода.
• Сбор узлов и замена идентификаторов.
• Проверка, является ли узел частью двоичного выражения.
31:09 Анализ и расшифровка кода
• Использование онлайн-компилятора для анализа строки.
• Анализ вызовов функций и их аргументов.
• Расшифровка кода и анализ его использования.
34:15 Инициализация и запуск кода
• Инициализация переменных и запуск кода.
• Проблемы с неопределенными переменными.
• Преобразование и анализ скрипта с помощью AST Explorer.
37:09 Проблемы с экранированием
• Обнаружены проблемы с экранированием в коде.
• Двойные косые черты должны быть заменены на одинарные.
• После замены все работает корректно.
38:30 Улучшение кода
• Перемещение переходов и неизвестных возвратов.
• Использование функции для улучшения кода.
• Применение concat visitor для более приятного результата.
39:34 Эксперименты с посетителями
• Использование того же посетителя, но с отдельной константой.
• Объяснение, почему некоторые URL-адреса не заменяются.
• Демонстрация различных методов деобфускации.
40:20 Заключение и рекомендации
• Регулярные выражения и динамическое выполнение как простые методы.
• Манипулирование абстрактным синтаксическим деревом как надежный метод.
• Рекомендация использовать манипуляции с AST для создания инструментов деобфускации.
• Ссылка на инструмент для распаковки загрузчика и курс по математическому анализу.
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «Malware Analysis - 3 ways to deobfuscate JScript and JavaScript malware», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.