Статья Простой и мультифункциональный - это ли не идеальный вирус? Анализ стиллера FormBook. Часть вторая

Простой и мультифункциональный - это ли не идеальный вирус? Анализ стиллера FormBook. Часть вторая

Приветствую, это вторая часть анализа вредоноса FormBook, без лишних слов и воды, сразу переходим к делу. Также, если вы не читали первую часть, то советую ознакомиться с ней Простой и мультифункциональный - это ли не идеальный вирус? Анализ стиллера FormBook. Часть первая.

Дисклеймер

На самом деле я против зла и то, что я покажу вам далее, может быть, практически применено различного рода антагонистами. Сразу предупреждаю, что я, как автор этой писанины , снимаю с себя ответственность за то с каким умыслом будет использована эта информация дальше. Виноват только и только тот, кто применяет знания, но не тот, кто ими делится. Автор лишь преследует благие цели, используя способы и пути злоумышленников, раскрывает суть преступного механизма, открывая людям глаза, демонстрируя способы защиты, ведь лучший протект - это знания.


Закрепление себя в системе, уничтожение потенциально опасных процессов, определение среды выполнения

Итак, сразу же отмечаю, что вредонос закрепляет себя в системе не совсем обычным образом, этот нестандартный процесс характерен практически для всех модификаций вредоноса. Так как Формбук извлекается непосредственно в память системы и его основное тело представлено в виде шеллкода, то “физически” на устройстве он не существует.

Также существует ряд нюансов, затрудняющих анализ, во-первых, все более важные API скрыты с помощью хэшей, но благо умные люди из западных антивирусных компаний их расшифровали, к примеру 0C84882B8h => CoCreateInstance() и 44E954F9h => CreateDirectoryW. Оставляю ссылку на полную таблицу вызовов и их хэшей. Во-вторых, некоторые хэш-коды задаются постоянным значением, а некоторые расшифровываются из ConfigObj и из-за этого могут существовать разногласия с таблицей.

Ранее мы извлекли его с помощью утилиты HollowsHunter, но могли и немного иначе. Так как чтобы закрепиться в системе вредоносу нужно себя материализовать.

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

Но обо всем по порядку, сперва Формбук создает нечто вроде временного хранилища своих данных под названием mainfile.tmp. Директории, где это происходит отличаются от версии к версии, конкретно в этой сие действо происходит непосредственно в C:\Users\%user%.

Затем Формбук обращается к файлу «AddInProcess32.exe» , который является частью .NET Framework и расположен в C:\Windows\Microsoft.NET\Framework\. Следом используя системный вызов CopyFileEx он копирует его в папку Temp, где проводит модификацию.

Перезапись происходит достаточно просто: сперва происходит запуск скопированного файла, с помощью очередного системного вызова CreateProcessAsUser() с параметром 4U. 4U в данном случае обозначает “CreateSuspended”, то есть создать замороженный процесс. После Формбук воспользуется ещё один системным вызовов WriteProcessMemory и перезапишет память легитимного процесса, внедряясь туда.

Однако это ещё не конец, ведь после этого та самая копия AddInProcess32.exe будет полностью перезаписана посредством вызова WriteFile. И считайте полностью легитимный .exe превращается в вредонос. Ну и конечно все это переносится в папку автозагрузки, создается соответствующий ключ в реестре Windows.

1717407300899.png


Сложно и занимательно, я истинно не понимаю зачем было реализовывать именно такой механизм? Вирус и так будет рано или поздно обнаружен, как ты его не маскируй, а вот эти шеллкодовые махинации только вызывают больше вопросов, чем понимания.

Долой эти шизодвижения, давайте перейдем к системам безопасности, у вредоноса имеется целый список процессов, которые он считает потенциально опасными для своей жизнедеятельности, туда входят: vmwareuser.exe, vmwareservice.exe, VBoxService.exe, VBoxTray.exe, sandboxiedcomlaunch.exe, sandboxierpcss.exe, procmon.exe, filemon.exe, Wireshark.exe, NetMon.exe, prl_tools_service.exe, prl_cc.exe, vmtoolsd. exe, vmsrvc.exe, vmusrvc.exe, python.exe, perl.exe, regmon.exe.

Все эти наименования процессов содержатся в конфигурационном модуле ConfigOBJ в виде хэшей. Для поиска и обнаружения вредонос использует API ZwQuerySystemInformation() с параметром SystemProcessInformation, чтобы собрать информацию обо всех запущенных процессах.

А вызов KillProcessByName() поможет Формбуку уничтожить любой потенциально опасный для него процесс.

Сбор информации о системе жертвы и связь с C&C сервером

Итак, здесь реализовано все достаточно просто. Сперва происходит проверка наличия интернет-соединения, путем банального пингования широко известных ресурсов, типа Google или Bing.

1717407455869.png


После этого вредонос использует системный API CreateFileA, чтобы создать временный файл для записи информации об устройстве в директории C:\Users\User\AppData\Roaming. Имя этого файлика совершенно рандомно и отличается с каждым запуском вредоноса, на этот раз мы имеем - B909090h.

А дальше идут типичные для каждого вируса подобного типа действия: будет совершен ещё один запрос на любой ресурс, отображающий IP адрес устройства жертвы.

Также с помощью системного вызова SystemInfo, вирусняк получает следующие данные: версия операционной системы, имя пользователя, количество оперативной памяти, тип и количество процессоров.
Screenshot_25.png


Как можно догадаться, дальше эта информация записывается в ранее созданный файл и отправляется на командный сервер, примечательно, что не происходит никакой проверки доступности инфраструктуры управления, чисто POST запрос. А вдруг он недоступен? Сам IP адрес командного сервера расположен в модуле ConfigOBJ и зашифрован обычным Base64 и о нем мы поговорим немного позже.

Непосредственно кража данных

И здесь я немного разочаровался. Если честно, несколько лет назад, я уже писал анализ Формбука более старой версии. И тогда это был образец гениальной инженерной мысли, но сейчас… Что-то все немного стало попроще.

Начнем с браузеров. Здесь все достаточно просто, вредонос снова использует функцию mw_parsing_browser_db, которая является простой реализацией поиска. С помощью этой функции Формбук способен найти все, что ему потребуется. Здесь нет особых проблем и путаницы, как это было в ранних версиях Редлайна, просто происходит поиск по словарю, который захардкоджен, в этот словарь входят следующие браузеры: Firefox: %APPDATA%\Mozilla\Firefox\, IceCat: %APPDATA%\Mozilla\icecat\, PaleMoon: %APPDATA%\Moonchild Productions\Pale Moon\, SeaMonkey: %APPDATA%\Mozilla\SeaMonkey\, Flock: %APPDATA%\Flock\Browser\, K-Meleon: %APPDATA%\K-Meleon\, Postbox: %APPDATA%\Postbox\, Thunderbird: %APPDATA%\Thunderbird\, IceDragon: %APPDATA%\Comodo\IceDragon\, WaterFox: %APPDATA%\Waterfox\, BlackHawk: %APPDATA%\NETGATE Technologies\BlackHawk\, CyberFox: %APPDATA%\8pecxstudios\Cyberfox\, Opera Browser: %APPDATA%\Opera Software\Opera Stable, Yandex Browser: %APPDATA%\Yandex\YandexBrowser\User Data, Iridium Browser: %APPDATA%\Iridium\User Data, Chromium: %APPDATA%\Chromium\User Data

Рядом не просто так указана целевая директория, где хранятся данные, в случае обнаружения Формбук попросту копирует эту папку и доставляет в архив, который впоследствии будет отправлен на командный сервер.

Аналогичная методика работает не только с браузерами, но и с ВПН сервисами и популярными FTP менеджерами.

Формбук как кейлоггер и троян удаленного доступа

Думаю, излишним будет пояснять, что такое кейлоггер и RAT, все таки не для детсадовцев пишу. Здесь все немного интереснее, так как Формбук имеет простенький модуль кейлоггера, который не отличается особой уникальностью и такое чувство, будто он просто был взят с гитхаба и немного переписан. Все ведь помнят историю, когда один такой простенький репозиторий был модифицирован Но да ладно. Давайте рассмотрим его более детально.


dSvoNSybVPGG-ycXRiuxUqJ3k0XGciGUhiABUzMUC8oby3nZFi3HQKrTzD9zGn0YP7KP4De1h5qLuw1LDLJiJJIM77tGYhUBhhqhP4dKtZAuim4SpxMMxP5xzD0L0D4OQrJXYNYOAeBp2Cnxoe-d3Qg


Как видно на скриншоте, здесь все работает на системном вызове GetKeyState, данный метод является типичным для большинства вредоносов. Захваченные нажатия будут сохранены в файл log.txt, который также будет добавлен к архиву с ворованными данными. Интересным является то, что после первой отправки кейлоггер остается активным и через определенный временной промежуток логи будут отправлены на командный сервер снова и уже отдельно от архива. То есть этот модуль практически не зависит от основного тела вредоноса.

Также здесь присутствует функция захвата экрана, то есть злоумышленник может получить снимки рабочего пространства с устройства жертвы, реализовано все с помощью функции System.Drawing.Imaging.

Возможностей у вредоноса множество, но я пытаюсь выделить самые основные, иначе статья будет иметь третью часть. Ещё одним интересной фичей Формбук есть наличие продвинутой системы экстрафильтрации данных. Что-то наподобие файлового менеджера:злоумышленник может просмотреть любой каталог на зараженном устройстве, скачать любой файл и загрузить его туда же.

Система очень схожа с той, которая присутствует в ранних образцах Агента Теслы, так как тоже происходит через TOR соединение.

1717407360503.png


Формбук задействует функцию mw_tor_http_request и с её помощью выгружает целевой файлик на командный сервер.

Выводы

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

На данном этапе новые версии Формбука очень быстро обнаруживаются и добавляются в антивирусные базы. Поэтому его эффективность на данном этапе под огромным вопросом. А на этом у меня всё. Остаемся на связи. Ваш DeathDay.
 
Последнее редактирование:

DeathDay

Green Team
18.04.2019
170
1 126
BIT
455
Скриншоты заменю чуть позже, чет с ними беда какая-то. В течении суток.
 
  • Нравится
Реакции: Zander You
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!