В этом упражнении мы проведем статический и динамический анализ вредоносной программы brbbot.exe, чтобы понять ее поведение.
Tools:
В этом примере мы генерируем хэш MD5. Это хэш-значение используется для анализа virustotal.
Извлечение струн:
Здесь я использую инструмент PE studio для изучения DLL, загруженных вредоносным ПО, и анализ показал, что brbbot.exe использует следующие DLL
Advapi32.dll - Используется для изменений, связанных с реестром
Wininit.dll - Используется для запроса Интернета
Ws2_32.dll - Используется для создания сокетов и осуществления исходящих соединений.
Приведенный выше анализ DLL подтверждает, что brbbot.exe будет выполнять изменения в реестре и устанавливать HTTP/HTTPS-соединение с сервером C2.
PE-Studio предоставляет нам возможность анализа вызовов API, используемых импортированными библиотеками DLL. Эта опция помогает нам получить подробную картину того, какие вызовы API используются и какие изменения происходят в системе.
Например, на скриншоте ниже показано, как brbbot.exe удаляет ключи реестра и изменяет значения в реестре с помощью RegDeleteValueA и RegFlushKey.
Virustotal:
Динамический анализ:
Tools
Process Hacker:
Инструмент Process Hacker показывает, порождает ли вредоносная программа дочерний процесс во время своего выполнения. Иногда авторы вредоносных программ используют внутренние инструменты Windows, такие как powershell или cmd.exe, для соединения с другими системами или для вызова других процессов. Process Hacker предоставляет нам древовидную структуру, показывающую, создает ли вредоносная программа новый или дочерний процесс.
Как видно из снимка экрана, brbbot.exe выполняется под explorer.exe, и мы видим, что brbbot.exe не породил никаких новых процессов во время выполнения.
INet Simulator
Во время выполнения вредоносной программы в системе она может установить сетевое соединение с сервером C2 (Command & Control) для получения дальнейших команд или загрузки данных с зараженного узла. Однако во время анализа вредоносного ПО мы не должны позволять вредоносному ПО подключаться к C2, поэтому мы запускаем сетевой симулятор, который будет отвечать на сетевые запросы вредоносного ПО фиктивным ответом. В этом упражнении мы используем симулятор INet для обработки исходящих запросов на подключение, сделанных при выполнении файла brbbot.exe.
Пример:
Чтобы лучше объяснить работу симулятора INet, я запросил пример веб-сайта в Windows VM через браузер, чтобы увидеть ответ InetSim. INetsim, запущенный в виртуальной машине Ubuntu, отвечал фиктивным ответом в зависимости от протокола.
Noriben:
Noriben - это скрипт на python, доступный на github. Он поможет нам отслеживать изменения в системе, такие как изменения файловой системы, изменения реестра и новые сетевые соединения. Noriben использует ProcMon для регистрации всех изменений файловой системы, изменений реестра и сетевых соединений во время работы.
Установка:
Скачайте и установите python в системе
Скачайте Noriben с github и перед выполнением добавьте ProcMon в ту же папку.
После выполнения вредоносной программы вы можете остановить Noriben, и он автоматически зарегистрирует активность в текстовом файле и экспортирует его в формат .CSV.
Журнал изменений файловой системы Noriben:
Журнал изменений в реестре Noriben:
Журнал сетевой связи Noriben:
Из журналов Noriben мы видим следующие изменения:
brbbot.exe новый файл конфигурации под названием brbconfig.tmp.
Он изменил ключ реестра и установил его в 1 для обхода прокси.
Он устанавливает значения реестра для доступа к интернет-кэшу.
Он инициирует взаимодействие на порту 80 (HTTP-запрос).
Wireshark:
Wireshark используется для захвата пакетов в сети для анализа. Когда мы запускаем brbbot.exe, wireshark перехватывает все исходящие соединения с ВМ Windows.
Примечание: Включите wireshark на ВМ Ubuntu перед запуском вредоносной программы, чтобы мы могли видеть исходящие запросы на подключение вредоносной программы.
Наблюдения Wireshark:
Как мы и ожидали, вредоносная программа устанавливает исходящее соединение с C2-сервером [brb.3dults[.]by].
INetsim отвечает на DNS-запрос с IP Ubuntu VM в качестве DNS-ответа.
Windows VM пытается подключиться к C2 IP (в данном случае к IP Ubuntu VM), инициируя рукопожатие TCP.
В реальном мире вредоносное ПО подключилось бы к серверу C2, чтобы загрузить дальнейшие инструкции для выполнения вредоносных действий.
Заключение:
По результатам статического и динамического анализа ниже приведен список поведения вредоносного ПО на виртуальной машине Windows,
Brbbot.exe устанавливает соединения с [brb.3dults[.]by] для разрешения DNS.
ВМ Windows пытается соединиться с сервером C2 185.84.108.232[:]80 для получения дальнейших инструкций. Это отражается в журналах wireshark.
brbbot.exe создает временный файл config на ВМ Windows, который мы обнаружили в журналах Noriben.
Видно, что вредоносная программа вносит изменения в реестр, устанавливая новые значения для получения дальнейшего контроля, такие как обход прокси, доступ к интернет-кэшу, отключение автоматического обнаружения.
На основе вышеприведенного анализа составляется сигнатура обнаружения с использованием собранных IOC, извлеченных строк и сгенерированных хэш-значений. Эта сигнатура может быть использована для сканирования всей сети.
medium.com
Tools:
- File → To see file type
- md5sum/sha1sum → To generate a hash of sample
- Strings → To extract strings from sample
- Pe studio → To see imports/ functions of an executable
- Virustotal → to check the reputation of hashes and malware attributes.
Код:
file brbbot.exe
В этом примере мы генерируем хэш MD5. Это хэш-значение используется для анализа virustotal.
Код:
md5sum brbbot.exe
Извлечение струн:
Код:
strings brbbot.exe
Здесь я использую инструмент PE studio для изучения DLL, загруженных вредоносным ПО, и анализ показал, что brbbot.exe использует следующие DLL
Advapi32.dll - Используется для изменений, связанных с реестром
Wininit.dll - Используется для запроса Интернета
Ws2_32.dll - Используется для создания сокетов и осуществления исходящих соединений.
Приведенный выше анализ DLL подтверждает, что brbbot.exe будет выполнять изменения в реестре и устанавливать HTTP/HTTPS-соединение с сервером C2.
PE-Studio предоставляет нам возможность анализа вызовов API, используемых импортированными библиотеками DLL. Эта опция помогает нам получить подробную картину того, какие вызовы API используются и какие изменения происходят в системе.
Например, на скриншоте ниже показано, как brbbot.exe удаляет ключи реестра и изменяет значения в реестре с помощью RegDeleteValueA и RegFlushKey.
Virustotal:
Динамический анализ:
Tools
- Process Hacker
- PE Studio
- Cff Explorer
- Noriben
- Wireshark
- INetSim
Process Hacker:
Инструмент Process Hacker показывает, порождает ли вредоносная программа дочерний процесс во время своего выполнения. Иногда авторы вредоносных программ используют внутренние инструменты Windows, такие как powershell или cmd.exe, для соединения с другими системами или для вызова других процессов. Process Hacker предоставляет нам древовидную структуру, показывающую, создает ли вредоносная программа новый или дочерний процесс.
Как видно из снимка экрана, brbbot.exe выполняется под explorer.exe, и мы видим, что brbbot.exe не породил никаких новых процессов во время выполнения.
INet Simulator
Во время выполнения вредоносной программы в системе она может установить сетевое соединение с сервером C2 (Command & Control) для получения дальнейших команд или загрузки данных с зараженного узла. Однако во время анализа вредоносного ПО мы не должны позволять вредоносному ПО подключаться к C2, поэтому мы запускаем сетевой симулятор, который будет отвечать на сетевые запросы вредоносного ПО фиктивным ответом. В этом упражнении мы используем симулятор INet для обработки исходящих запросов на подключение, сделанных при выполнении файла brbbot.exe.
Пример:
Чтобы лучше объяснить работу симулятора INet, я запросил пример веб-сайта в Windows VM через браузер, чтобы увидеть ответ InetSim. INetsim, запущенный в виртуальной машине Ubuntu, отвечал фиктивным ответом в зависимости от протокола.
Noriben:
Noriben - это скрипт на python, доступный на github. Он поможет нам отслеживать изменения в системе, такие как изменения файловой системы, изменения реестра и новые сетевые соединения. Noriben использует ProcMon для регистрации всех изменений файловой системы, изменений реестра и сетевых соединений во время работы.
Установка:
Скачайте и установите python в системе
Скачайте Noriben с github и перед выполнением добавьте ProcMon в ту же папку.
После выполнения вредоносной программы вы можете остановить Noriben, и он автоматически зарегистрирует активность в текстовом файле и экспортирует его в формат .CSV.
Журнал изменений файловой системы Noriben:
Журнал изменений в реестре Noriben:
Журнал сетевой связи Noriben:
Из журналов Noriben мы видим следующие изменения:
brbbot.exe новый файл конфигурации под названием brbconfig.tmp.
Он изменил ключ реестра и установил его в 1 для обхода прокси.
Он устанавливает значения реестра для доступа к интернет-кэшу.
Он инициирует взаимодействие на порту 80 (HTTP-запрос).
Wireshark:
Wireshark используется для захвата пакетов в сети для анализа. Когда мы запускаем brbbot.exe, wireshark перехватывает все исходящие соединения с ВМ Windows.
Примечание: Включите wireshark на ВМ Ubuntu перед запуском вредоносной программы, чтобы мы могли видеть исходящие запросы на подключение вредоносной программы.
Наблюдения Wireshark:
Как мы и ожидали, вредоносная программа устанавливает исходящее соединение с C2-сервером [brb.3dults[.]by].
INetsim отвечает на DNS-запрос с IP Ubuntu VM в качестве DNS-ответа.
Windows VM пытается подключиться к C2 IP (в данном случае к IP Ubuntu VM), инициируя рукопожатие TCP.
В реальном мире вредоносное ПО подключилось бы к серверу C2, чтобы загрузить дальнейшие инструкции для выполнения вредоносных действий.
Заключение:
По результатам статического и динамического анализа ниже приведен список поведения вредоносного ПО на виртуальной машине Windows,
Brbbot.exe устанавливает соединения с [brb.3dults[.]by] для разрешения DNS.
ВМ Windows пытается соединиться с сервером C2 185.84.108.232[:]80 для получения дальнейших инструкций. Это отражается в журналах wireshark.
brbbot.exe создает временный файл config на ВМ Windows, который мы обнаружили в журналах Noriben.
Видно, что вредоносная программа вносит изменения в реестр, устанавливая новые значения для получения дальнейшего контроля, такие как обход прокси, доступ к интернет-кэшу, отключение автоматического обнаружения.
На основе вышеприведенного анализа составляется сигнатура обнаружения с использованием собранных IOC, извлеченных строк и сгенерированных хэш-значений. Эта сигнатура может быть использована для сканирования всей сети.
Malware Analysis for Beginners:
In this exercise, We’ll be performing static and dynamic analysis of brbbot.exe malware to understand it’s behaviour by analyzing it’s…
medium.com