![]() |
Введение
Не так давно большинство новостных каналов заполонили новости о работе вредоносного программного обеспечения. Существует множество вирусов для контроля системы и все они очень хорошо прячутся и самообороняются от нежелательного изучения исходного кода. Разработчики придумывают все более изощренные способы защиты и иногда ставят в тупик даже опытных реверс инженеров. Но поговорим немного о другом. Обычно за созданием вредоносов стоят хакерские группировки, которые придумывают свою версию малвари лишь бы ее не мог найти антивирус. А теперь я открою тебе глаза и скажу, что существуют целые компании по созданию ратников для администрирования компьютеров. Да, это не очередная опечатка, а реальный факт. Давай я на примере частной компании Venom Software разберу их продукт с очевидным и громким названием Venom. План работы Он, на удивление, очень короткий и простой. Я постараюсь объяснить тебе как работает такого типа малварь, что она делает, куда передает информацию и как закрепляется в системе. Вся демонстрация будет проводится на старой версии продукта, поскольку найти крякнутый и современный вариант этого зверя мне не удалось. Начнем наше путешествия как всегда со статического анализа PE-файла. Плавно перейдем к динамической работе и завершим все итогами по нашей работе. Что может быть проще? Статический анализ Итак, по традиции и с благоразумной точки зрения закинем наш файл в DiE. Он немного покапается в заголовках, расскажет нам на чем стоит приложение и какие библиотеки оно импортирует. Взгляни на результаты. https://forum.antichat.xyz/attachmen...dcec837fc8.png Итак, по традиции и с благоразумной точки зрения закинем наш файл в DiE. Он немного покопается в заголовках, расскажет нам на чем стоит приложение и какие библиотеки оно импортирует. Взгляни на результаты. https://forum.antichat.xyz/attachmen...3593dc4649.png Прежде всего в глаза бросается полоса статуса, которая остановилась ровно на 80% и пояснением несжатый. И эти слова подтверждаются секциями. Ни одна из них не имеет обвеса и какой либо защиты. Парадокс! Но не будем ослаблять хватку и продвинемся дальше в изучении нашего вируса. После таких манипуляций попробуем посмотреть таблицу импорта и экспорта. Заранее скажу, что на экспорт каких либо функций я к сожалению не нашел. Ну а для всего этого дела воспользуемся FileAlyzer. Ниже его вердикт по этому поводу. https://forum.antichat.xyz/attachmen...578c2746e4.png Удивительно. В таблице всего лишь одна библиотека и соответственно одна функция. Давай приблизимся к нашей цели и попробуем приоткрыть занавесу с исходным кодом посмотрев какие действия выполняет наш вирус в системе. Чтобы преждевременно не прибегать к динамическому анализу я воспользовался программой pestudio и вот что из этого получилось. https://forum.antichat.xyz/attachmen...7a7b1166af.png Из таблицы выше ты можешь отчетливо видеть как наша малварь пытается связаться с неизвестным нам хостом и скачать отдельные файлы с него. Попробуем прогнать этот IP адрес через nmap и посмотрим, находится ли он вообще в сети. Спустя несколько минут ты получишь примерно такую картину: Код: Код:
Starting Nmap 7.92 ( https://nmap.org ) at 2022-10-03 19:33 MSKКод: Код:
% This is the RIPE Database query service.https://forum.antichat.xyz/attachmen...1e4564fd6d.png Также Веном использует PowerShell в своих целях. Зачем-то убивает процесс explorer.exe, он же всеми любимый Internet Explorer и взаимодействует с парочкой системных процессов, один из них тебе уже знаком. Итак, такие строки выглядят крайне подозрительно для такого вируса. Кому придет в голову работать с древним браузере, тем более убивать его через консоль. Адрес из последних 4-х строк мы с тобой разобрали, поэтому останавливаться на них я не буду. Итак, мы знаем базовую информацию и то, что файл чем-то покрыт (это ты заметишь из энтропии так как она стоит на 80%) также на эту мысль наводит тот факт, что таблица импорта состоит всего лишь из одной библиотеки и функции, которая в ней хранится. Так как работаем мы с NET приложением, то я решил отдать на растерзание вирус программе de4dot. До этого я упоминал ее в статьях как хороший инструмент для борьбы с NET Reactor. Но как ты понимаешь, вскрытие реактора это только одна из функций этой утилиты. Запускаем нашу консоль и вводим примерно такую команду: Код: Код:
C:\путь_до_утилиты\de4dot.exe C:\путь_до_вируса\$77-Venom.exeТаким образом утилита обрабатывает файл и создает такой же с пометкой cleaned, что означает очищен. Кидаем файл в dotPeek и любуемся результатом. Ниже я поместил скриншот до расшифровки и после нее. https://forum.antichat.xyz/attachmen...fc2742369e.png https://forum.antichat.xyz/attachmen...06d3d30b31.png Как ты понял, вирус имеет какой-то китайский обфускатор. Но нас он не остановил, поэтому теперь ты можешь в корень изучить весь код. Я лишь расскажу об основных ветках и за что они отвечают, чтобы тебе было легче ориентироваться. Ознакомиться с фундаментальными функциями вируса, такими как запись видео, аудио и сбор информации ты можешь в ветке Код:
xClient.Core.Packets.ClientPacketsКод:
xClient.Core.ReverseProxy.PacketsИтак, со статическим анализом мы разобрались. У нас есть исходный код и на этом можно было завершить наши исследования, но давай все же посмотрим какие данные передает вирус и как он адаптируется в системе. Динамический анализ Первым делом я решил убедиться в том, что вирус действительно пытается связаться с определенным хостом. Для этого используем наш любимый Wireshark. К сожалению, что-либо связанное с нашим айпишником мне не удалось найти, но при запуске наш вирус отправляет информацию на некий адрес. Попробуем отфильтровать его и посмотрим, что у нас получится. Для этого я использовал следующий фильтр: Код: Код:
ip.dst == 208.95.112.1Первым делом компьютер устанавливает соединения путем отправки начального пакета. Далее идет ответ от сервера и передача информации по протоколу HTTP. Давай посмотрим, что он содержит. Кликаем правой кнопкой мыши по полю с интересующим нас протоколом. В выпадающем списке функций выбираем Следовать -> HTTP. И в итоге мы видим, что вирус отправляет наше местоположение и данные о нашем браузере. Интересно, как так получилось? На самом деле все очень просто. Если вбить этот IP в адресную строку, то нас перекинет на сайт ip-api. С его помощью Веном вытаскивает всю информацию и отправляет на сервер. Также вирус добавляет к этому наименования твоего компьютера для дальнейшей передачи на сервер. Больше ничего полезного в перехваченных пакетах нету. Попробуем испытать удачу еще раз и обратимся к TCPView. Запускаем наш вирус и переходим на него в окне программы. Кликаем правой кнопкой мыши по процессу и выполняем функцию whois, тем самым тебе предоставят данные о том, куда и зачем обращается вирус. Пример такой работы ты можешь увидеть ниже. https://forum.antichat.xyz/attachmen...9d2db4397e.png И вот нашлась наша вторая зацепка. Веном наблюдает за твоим устройством при помощи программы для записи экрана Bandicam. Довольно известный продукт. Теперь давай посмотрим, что импортирует наш вирус в период активности. Если на статическом анализе было все крайне просто, одна библиотека и одна функция, то в процессе работы картина меняется и количество импортируемых функций значительно шире. Давай убедимся в этом при помощи утилиты Explorer Suite. В себе она имеет Task Explorer для отслеживания процессов в реальном времени. Запустим его и найдем нашего паразита. Далее ты увидишь примерно такую картину: https://forum.antichat.xyz/attachmen...e2fcafe369.png Как ты видишь, в процессе работы вирь подгружает такие библиотеки как ntdll и wow. Самые стандартные системные файлы, которые можно найти на локальном диске. Больше пользы чем исходный код нам уже программа не принесет. Давай как раз вернемся к нему и посмотрим, какую полезную информацию мы можем вытащить. Разбираем исходный код Итак, еще на ранних этапах я показал тебе как добраться до исходного кода нашего вируса. Спешу тебя оповестить о том, что в себе программа содержит еще несколько полезных файлов которые мы можем вытащить при помощи ExtremeDumeper. Чтобы провернуть все это дело тебе следует запустить сам дампер и вместе с ним малварь. Дальше используя интуитивно понятный интерфейс дампишь все это дело в удобное для тебя место. Выглядит это все примерно так: https://forum.antichat.xyz/attachmen...045fbe7af6.png Как ты уже заметил у нас появилось еще два PE-файла с довольно понятными названиями. Закинем их к нашему Веному в dotPeek. Сам файл Install, подгружая библиотеки, создает файл с определенным именем. Его генерация в коде выглядит следующим образом: C#: Код:
publicПерейдем к еще одному любопытному файлу с названием Chrome. В главной функции содержится ветка, которая подгружает стандартные библиотеки Windows и закрепляется в системе путем создания копии по пути: C:\\windows\\system32. Присмотревшись к названием переменных, ты можешь увидеть такие название как payload, которые говорят сами за себя. Малварь пытается всеми силами выжить в системе. Также есть всеми любимый Thread.Sleep, который позволяет не палиться если все пойдет через одно место. Ну а скомпилировано все это дело при помощи Visual Studio версии 16.5.0 от 2019 года. Хотя самое интересное начинается в функции CopyMySelf на ветке Program. Здесь, созданные полезные нагрузки склеиваются с известными программами, чтобы скрыть следы присутствия в системе. Все выполняется от имени администратора и вот тому подтверждения в коде: C#: Код:
stringC#: Код:
ifC#: Код:
stringC#: Код:
privateC#: Код:
switchC#: Код:
stringC#: Код:
privateПодводим итоги Итак, в этой статье я постарался максимально понятно и доходчиво объяснить как разреверсить такую малварь. Конечно, до дизассемблирования дело не дошло, но в дальнейших статьях я просвещу тебя в это дело и покажу как бороться с упаковщиками и обфускаторами на уровне ассемблера. Ниже предоставлен тот самый архив с файлами по которому я работал. Для защиты от нежелательного удаления антивируса на нем установлен пароль: codeby. |
Цитата:
А так, хорошая исследовательская работа |
хорош!
|
| Время: 16:58 |