Кто-то может назвать это безумием.
Для меня это просто окружающая среда.
Я получил это вчера и разобрался с этим сегодня.
Она пришла загрузить ява-эксплойт из старого 2012 года CVE (Я думаю, SecurityManager).
Я позвоню ей в 0day [1] , потому что его нет в базах данных Всего вирусов / Малвр ни в каком виде - ни упакованном, ни распакованном.
Попытка анализа в IDA [2] выходит из строя с ошибкой:
Похоже, мудак, который это сделал, вероятно, знал, что кто-то вроде меня попытается провести анализ.
В любом случае, существует не так много вариантов модификаций exe, которые сводят с ума дизассемблер, но игнорируются Windows. Изучение exe-файла в CFF Explorer , видим ошибку в одном из NT-заголовков, а именно в «Каталогах данных» по значению Delay Import Directory RVA. CFF хорош тем, что сразу выделяет значение 0x00000040 как недействительное.
Давайте сбросим его, чтобы исправить ошибку.
Сохраняем exe и заново открываем в IDA - теперь ошибки нет и открытие проходит без заминок.
Беглый осмотр показывает, что это MFC. [3] -приложение.
Как я это понял? Это явно указано в столбце «Библиотека» раздела импорта.
Приложение, конечно же, запаковано.
Память забита.
Никаких измененных заголовков разделов, просто упакованная память.
Ну, статический анализ не вариант. Для дальнейших исследований необходим динамический анализ.
Шашки Иммунитет голый! Прежде чем углубиться в Immunity и виртуальную машину, стоит отметить пару интересных вещей, которые не видны в IDA, но были замечены в CFF Explorer. Начнем с того, что есть пара файлов, которые, к радости Капитана Очевидности, спрятаны в каталоге ресурсов.
Первый — это PNG-файл:
Вторая — HTML-страница:
Странный.
Загрузив PNG-файл в IrfanView (кстати, лучший просмотрщик изображений), мы видим небольшой черный прямоугольник, который не совсем вписывается при его размере в 55 КБ.
Внутри должно быть что-то спрятано.
Стеганография ?
Теперь давайте посмотрим на HTML-страницу.
Скачав и очистив его в Notepad++, мы получаем нечто похожее на скрипт определения типа браузера.
Зачем все это находится в разделе ресурсов, да еще и распаковано, остается загадкой.
Мы вернемся к разделу ресурсов позже.
А пока продолжим распаковку.
Давайте запустим Отладчик иммунитета и Virtual Box и загрузите плагин защиты от отладки Python.
После завершения процесса можно слить память и приступить к ее анализу:
Я заметил несколько областей памяти с пометкой Read Write Execute (RWE).
Один из них находится по адресу 0x00910000, другой — по адресу 0x00930000, следующий — по адресу 0x00940000 и, наконец, последний — по адресу 0x00970000. Дальнейший анализ показывает, что только 3 из 4 содержат программы.
Однако спрятать три программы в одну? Неплохая пасхалка.
Теперь давайте сбросим наши программы для дальнейшего анализа.
Загрузка ОллиДампЭкс и кормить наши зоны 0090. Видно, что программы по адресам 0x00910000 и 0x00970000 совпадают с исходными, судя по их размеру, заголовкам разделов и характеристикам.
Но область по адресу 0x00950000 у них другая: разные заголовки разделов, разные размеры.
Это должно быть то самое золотое яйцо (я оставил дословный перевод, потому что в дальнейшем автор использует в своих скриншотах золотое яйцо – прим.
перев.
).
Давайте создадим дамп нашего exe-файла, используя двоичный (Raw) режим вместо режима Rebuild, чтобы сохранить целостность дампа.
Два заголовка раздела указывают на то, что программа упакована с использованием UPX. [4] .
Запуск утилиты upx подтверждает это.
Это означает, что мы можем легко распаковать наше яйцо.
Новый exe-файл примерно на 40 КБ больше и распаковывается корректно, так что теперь мы наконец можем передать его в IDA. Глядя на линии, мы видим интересные вещи.
Похоже, эту штуку отправляют маме домой по POST-запросу.
Вы можете спросить – как? командный сервер сервер? Не похоже, что он содержится в программе в виде обычного текста.
Помните, я просил вас не забывать про раздел ресурсов? Давайте посмотрим на раздел ресурсов нашего Golden_egg.exe.
Вуаля.
Было бы здорово предоставить нам ваш адрес в виде открытого текста.
Безопасность через неизвестность снова наносит ответный удар.
Вам, вероятно, интересно, что происходит, когда работает основное приложение.
Давайте посмотрим: Во время загрузки он автоматически закрывает мой Обозреватель процессов и на любые попытки загрузки диспетчер задач отвечает сообщением «диспетчер задач отключен администратором» и почти мгновенно закрывается.
Хотел сделать скриншот, но оказалось, что я не такой быстрый.
Обратившись к Immunity, мы видим, что исходная программа «golden_egg.exe» уже завершилась.
Вместо него — какая-то другая программа с названием «zpNvNKSi.exe», запускаемая из временной директории.
Сравниваем хеши — и вроде бы они одинаковые:
(Вам понравился мой хэшер? Вы можете скачать его здесь без регистрации и смс )
Рекламная пауза закончилась, теперь понятно, что делает программа — диспетчер задач отключается, убивает «нежелательные» приложения и запускается из временной директории.
Проверка msconfig показывает две новые записи при запуске:
Я проверил оба файла, и они соответствовали исходной программе, байт за байтом.
Присоединимся к программе с помощью Immunity, посмотрим на память и количество потоков (нажав клавишу «t») — видим, что программа многопоточная.
Я насчитал 12 нитей.
Я предполагаю, что каждый поток наблюдает за тем, не уничтожен ли один из других потоков.
Однако после приостановки процесса мы можем заглянуть в его память с помощью Process Explorer. Анализ показывает, что есть строки, которые не отображались в IDA:
Внезапно.
Я думаю, что программа проверяет наличие этих утилит и заставляет их закрыться, если они запущены.
Это объясняет, почему я не мог использовать Process Explorer во время работы программы.
Это вполне себе способ усложнить запуск любой из этих утилит, моментально убив их.
В список входят regedit, LordPE, Wireshark, regmon, filemon, procmon, tcpview, Taskmgr и даже Защитник Windows. Жесткий.
Правда, я не вижу двоюродного брата Process Explorer — Хакер процессов .
Возвращаясь к нашим баранам памяти: очевидно, что программа либо запутывает строки, либо упаковывает их дважды.
В любом случае, давайте разберемся.
Выполнив поиск в памяти одной из строк Unicode, мы видим, что строка «taskmgr» находится в разделе .
data. IDA солгала о струнах? Не совсем.
Попробуем еще раз, воспользовавшись медленным двоичным поиском (Alt+B) – и найдем еще строки.
Судя по всему, IDA по умолчанию не показывает строки Unicode при поиске.
Вы можете изменить параметры поиска в IDA, нажав Alt+A и выбрав Unicode.
Анализ новых строк раскрывает больше возможностей вредоносного ПО.
Учитывая, что наши попытки запустить Wireshark будут заблокированы программой, нам необходимо найти функцию, отвечающую за принудительное закрытие программ, и пропатчить ее.
Как это сделать? Давайте найдем вызов API TerminateProcess().
Используя IDA, это не так уж и сложно.
В разделе импорта находим ссылку на TerminateProcess.
Это похоже на цикл, который просматривает имена процессов с помощью вызова CreateToolhelp32Snapshot и, если они соответствуют какому-то условию, завершает их.
Похоже, здесь используется список имен процессов, который мы видели ранее.
Так что мы можем сделать? Мы можем изменить логику программы так, чтобы вместо вызова TerminateProcess что-то происходило.
и ничего не происходило.
Проверив подпрограммы с помощью Xref (eXternal REFerences), мы видим, что функция вызывается из подпрограммы 0x00401D2A. Он содержит инструкции jnz , который осуществляет условный переход к подпрограмме, которая сканирует процессы и завершает их.
Если мы сможем пропатчить программу так, чтобы эта подпрограмма не вызывалась, мы сможем запускать любые утилиты из черного списка.
Я предпочитаю патчить с помощью Immunity — это довольно просто, и мне это более знакомо.
Начнем с поиска подпрограммы в нашем exe. Инструкция условного перехода расположена по адресу 0x00401D4E. Мы пинаем вся площадь - таким образом, сразу приступаем к исполнению в отставку вместо перехода по адресу 0x00401D2C, где были завершены нежелательные процессы.
Возобновляем выполнение программы и пробуем запустить одну из запрещенных программ.
Похоже, что все работает с тех пор, как был запущен regedit и Process Explorer не был вынужден закрыться.
Наконец, вы можете провести детальный анализ сетевой активности с помощью Wireshark, а также активности в файловой системе и реестре с помощью procmon и вообще поиграться с работающей программой в Process Explorer.
Process Explorer показывает, что SYN был отправлен [5] пакет на наш C&C сервер (да-да, тот самый, адрес которого мы вытащили из раздела ресурсов) на порт 80.
Wireshark дает немного больше информации.
Здесь мы видим не только SYN-пакеты, отправленные на наш HTTP C&C-сервер, но и большое количество DNS-запросов для получения информации о странных доменах.
Что дальше?
Сервер будет продолжать стучать домой, но мне это не нужно.
Я мог бы изменить раздел ресурсов нашего «golden_egg.exe», чтобы обернуть его в свой собственный HTTP-сервер и изучить его функциональность, но это довольно трудоемко.
У нас уже достаточно много: C&C-сервер, распакованная программа, ее HTTP-подпись, а также мы знаем о ее поведении.
Дело закрыто.
Наступила и ушла еще одна нулевая среда.
Если вы хотите загрузить вредоносное ПО и поработать с ним, вы можете взять его здесь .
Пароль «заражен».
Надеюсь, это небольшое исследование окажется для вас полезным.
Приятного взлома! Автор Джо Хирон Оригинальная статья 1. ↑ 0day (англ.
Zero Day) — термин, обозначающий вредоносное ПО, против которого еще не разработаны механизмы защиты или уязвимости, которые не устранены.
2. ↑ IDA Pro Disassembler (англ.
Interactive DisAssembler) — интерактивный дизассемблер, широко используемый для обратного проектирования.
3. ↑ Microsoft Foundation Classes (MFC) — это библиотека C++, разработанная Microsoft, предназначенная для упрощения разработки приложений с графическим интерфейсом для Microsoft Windows с использованием богатого набора библиотечных классов.
4. ↑ UPX (Ultimate Packer for eXecutables) — это упаковщик исполняемых файлов, который поддерживает несколько различных платформ и форматов файлов.
5. ↑ SYN — это пакет, отправляемый клиентом серверу для установления соединения.
Теги: #бот #ботнет #обратное проектирование #вредоносное ПО #анализ вредоносного ПО #взлом #информационная безопасность
-
Атомный Веб-Дизайн
19 Oct, 24 -
Спутник - Это Очень Просто - 2
19 Oct, 24