• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Расширенный анализ вредоносных программ

timeshout

RAID-массив
Пользователь
Регистрация
29.06.2022
Сообщения
62
Реакции
83
Эта статья является продолжением статьи Анализ вредоносных программ для начинающих.

В рамках последнего анализа мы собрали непосредственные IOC, такие как имя командно-контрольного домена, IP-адрес, изменения файловой системы и модификации реестра, чтобы обнаружить вредоносное ПО в нашей сети.

Однако нам все еще предстоит ответить на три важных вопроса:

Что представляет собой файл brbconfig.tmp, сброшенный на хост вредоносной программой brbbot.exe?
Почему вредоносная программа отправляет HTTP GET-запросы каждые несколько секунд, запрашивая страницу ads.php?
Как автор вредоносной программы получает контроль над зараженной системой?

К концу этого анализа мы узнаем, как автор вредоносной программы создает бэкдор и получает контроль над системой.


HTTP GET REQUEST к странице ads.php:

Для начала, наши журналы Wireshark показывают, что вредоносное ПО отправляет HTTP GET-запросы для ads.php, и если вы откроете запрос, мы увидим некоторую закодированную информацию, отправленную вместе с HTTP-запросом.

1657422564467.png


1657422588737.png


Поскольку информация закодирована, нам нужен ключ для ее декодирования, но пока мы скопируем ее и сохраним в текстовом файле encode.hex.



Что такое файл brbconfig.tmp:
Мы заметили, что во время выполнения brbbot.exe он сразу же сбросил файл под названием brbconfig.tmp и получил доступ к этому файлу.


1657422647016.png


Для этого нам нужно знать, откуда именно вредоносная программа читает файл brbconfig.tmp, мы также знаем, что API ReadFile в windows - это API Windows, который используется для чтения файлов. Чтобы подтвердить это, мы также видим этот ReadFile в экспорте из PE Studio.

1657422688982.png



X64DBG:

Для дизассемблирования и анализа кода мы используем x64dbg. Аналогично существуют и другие известные дизассемблеры, такие как IDA PRO и т.д. Мы не будем рассматривать анализ кода в этом посте, так как я намерен упростить его для новичков в анализе вредоносного ПО.

Мы открываем вредоносную программу brbbot.exe в x64dbg и устанавливаем точку останова в том месте, где вредоносная программа вызывает API ReadFile.


1657422752181.png


1657422787163.png


Дизассемблер останавливается на вызове API ReadFile, и мы можем увидеть, какие параметры заданы для вызова API ReadFile в правом окне. После подтверждения параметров API мы переходим к коду API ReadFIle и видим, что вызывается API CryptDecrypt, который обычно используется для дешифровки авторами вредоносных программ.

1657422825849.png



Теперь следующая строка возвращает функцию CryptDecrypt, поэтому если мы запустим эту строку кода, то сможем увидеть, какая именно информация была зашифрована в файле brbconfig.tmp.

1657422867941.png


Мы видим, что приведенная выше конфигурация зашифрована, и она содержит запрашивающую страницу ads.php, а также мы видим, что закодированный ключ - 5b с некоторой другой информацией.



Декодирование HTTP Get запроса:


Ранее мы заметили, что вредоносное ПО делает HTTP GET-запросы к странице ads.php с закодированной информацией. В ходе анализа мы обнаружили ключ 5b, теперь мы можем использовать его для декодирования, используя ключ и проверяя HTTP-запросы.

Существует несколько методов декодирования содержимого HTTP-запросов, здесь я использую скрипт на языке python под названием translation.py.

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

Некоторые из популярных методов обфускации - XOR с одним байтом, ROR (Rotate Right some bits) или ROL (Rotate Left some bits).

Мы можем определить технику кодирования методом проб и ошибок, и в данном случае автор вредоносной программы использовал технику обфускации XOR с одним байтом.

1657422990106.png


Теперь попробуем декодировать с помощью translation.py и XOR однобайтовым методом и сохраним выходной файл как decode.txt.

1657423028557.png




Декодированный текст показывает все запущенные процессы в системе, что означает, что вредоносная программа отправляет список запущенных процессов из зараженной системы на сервер C2 каждые несколько секунд.

Теперь мы ответили на первые два вопроса о том, что содержит файл brbconfig.tmp и что кодирует и отправляет вредоносная программа в HTTP GET запросе, давайте сосредоточимся на том, как автор вредоносной программы создает бэкдор?

Получение доступа:

Из приведенного выше анализа мы сделали вывод, что файл brbconfig.tmp содержит файл конфигурации с кодированным ключом, и вредоносное ПО использует этот ключ для отправки всех запущенных процессов на сервер C2 с помощью HTTP GET запроса к странице ads.php.

Помимо ключа кодирования, в файле brbconfig.tmp мы также видим другие ключевые слова, такие как

1657423095076.png


Первая инструкция в конфигурационном файле brbcongif.tmp - uri=ads.php, и мы можем подтвердить это через журнал Wireshark.,Следующие несколько инструкций - это некоторые ключевые слова для команд типа exec = cexe. Исходя из названия команды, можно предположить, что это отдает выполнение команд на зараженных хостах автору вредоносной программы.

Мы попытаемся ответить на запрос HTTP GET с помощью нашей поддельной страницы ads.php, чтобы понять поведение вредоносной программы.

Как уже говорилось в предыдущем посте, весь трафик windows будет направлен на нашу систему Linux. Мы разместим веб-сервер в нашей системе Linux, и когда придет HTTP-запрос от вредоносного ПО, мы ответим на него созданной поддельной страницей ads.php.

Создание поддельного файла ads.php:

Установите apache2 на машину Linux и создайте файл в каталоге /var/www:

1657423157028.png


Мы создали веб-страницу ads.php, а "cexe" - это инструкция для exec, найденная в файле brbconfig, и мы выполняем файл notepad.exe.

Таким образом, когда вредоносная программа запросит страницу ads.php, наша Linux-машина ответит созданной выше страницей ads.php, которая содержит инструкцию по запуску Notepad в зараженной системе.

При выполнении мы ожидаем, что каждые несколько секунд будет открываться новый блокнот.

Симуляция атаки:

Мы запускаем вредоносную программу brbbot.exe на машине windows и в Wireshark видим HTTP-запрос, после которого на машине windows открывается notepad.exe. В хакерском процессе мы видим, что несколько notepad.exe открываются brbbot.exe как дочерние процессы.

1657423218116.png



Здесь мы пришли к выводу, что именно так авторы вредоносных программ берут под контроль систему, но вместо notepad.exe злоумышленник может выполнить что-либо вроде PowerShell или загрузить вредоносный двоичный файл, запустив cmd.exe или загрузив ransomware.





 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх