Углубление в импорты: продолжаем изучать способы статического резолва

Ещё в группе «Вредоносное ПО»
- Этот ваш Siemens…
Недавно наши коллеги из Центра промышленной экспертизы Позитива обнаружили на MalwareBazaar один любопытный Windows-образец. Вот его…
- Анти-антивирус
Недавно нам на глаза попалась APK-шка с интригующим и внушающим доверие названием «Антивирус ФСБ.apk». Установив его,…
- .exe .docm .xlsm
.exe .docm .xlsm Вредоносные файлы с этими расширениями чаще всего встречаются в сетевом трафике компаний. Давайте…
- Операция Chewbacca
В конце июня команда PT ESC в ходе расследования инцидентов обнаружила новую группу, нацеленную как минимум…
- Ваш сервер Zimbra под угрозой
Недавно наша команда PT ESC IR столкнулась с новой атакой ransomware-группировок на почтовые серверы Zimbra с…
Углубление в импорты: продолжаем изучать способы статического резолва 🕵️♂️
Ранее мы рассказывали, как может быть реализован статический резолв импортов. Однако для полноты картины мы решили показать еще один пример того, какими бывают механизмы динамического разрешения импортов во вредоносном ПО и как с помощью статического анализа превратить группу непонятных байтов в осмысленные названия функций. Это поможет ускорить процесс реверса и избавит нас от необходимости ручной разметки.
В качестве примера рассмотрим один из свежих образцов Formbook. Позволим ему распаковаться, после чего сдампим и откроем его в IDA Pro. Побродив по функциям, можно заметить несколько закономерностей в вызовах, которые очень похожи на динамическое разрешение импортов (cкриншот 1).
❗️ Также следует обратить внимание, что функций с расшифровкой хешей две: decrypt_hash, которая использует только зашифрованный хеш функции, и decrypt_hash_xor, которая имеет дополнительный параметр, назначение которого станет известно позднее.
Заглянем внутрь обеих функций и увидим, что единственное различие между ними — подход к генерации ключа для RC4. Второй параметр в decrypt_hash_xor накладывается на жестко заданный ключ перед вызовом функции расшифровки (скриншот 2).
Осталось понять, что происходит в вызове decrypt_rc4_buff, и можно писать декриптор. Содержимое функции можно увидеть на скриншоте 3.
Циклы до и после непосредственной расшифровки RC4 сводятся к последовательному попарному вычитанию соседних байтов сначала слева направо, а затем справа налево. Эквивалент кода на питоне представлен на скриншоте 4.
🧤 Дело осталось за малым — пройтись по ссылкам на эти две функции и собрать аргументы, после чего восстановить исходные имена импортов. Для реализации первой части определим класс CallVisitor и определим в нем логику по сохранению нужной информации о вызове (скриншот 5). Такой подход удобнее, чем «ручной» поиск аргументов путем обратной итерации по инструкциям, предшествующим вызову, поскольку зачастую аргументы могут быть обфусцированы: разбросаны по телу вызывающей функции или вычисляться непосредственно перед вызовом.
Чтобы получить имя оригинальной функции из хеша, воспользуемся утилитами flare-ida. Среди прочего там уже есть БД sc_hashes.db с заранее просчитанными хешами для стандартных библиотек, которая позволит нам быстро восстановить большую часть импортов. Для отсутствующих в БД библиотек можно сгенерировать хеши самостоятельно лежащим рядом скриптом (скриншот 6).
Результат работы можно увидеть на скриншоте 7. Больше 80% найденных функций восстановились с ходу.
😎 Как и ожидалось, восстановленные хеши были созданы алгоритмом crc32bzip2, они встречались и в более ранних семплах Formbook. Таким образом, нам удалось быстро восстановить импорты в исследуемом образце, а также понять общий подход к шифрованию данных в Formbook, что в дальнейшем значительно упрощает его анализ.






#tip #reverse #malware
@ptescalator
Ещё в группе «Вредоносное ПО»
- Этот ваш Siemens…
Недавно наши коллеги из Центра промышленной экспертизы Позитива обнаружили на MalwareBazaar один любопытный Windows-образец. Вот его…
- Анти-антивирус
Недавно нам на глаза попалась APK-шка с интригующим и внушающим доверие названием «Антивирус ФСБ.apk». Установив его,…
- .exe .docm .xlsm
.exe .docm .xlsm Вредоносные файлы с этими расширениями чаще всего встречаются в сетевом трафике компаний. Давайте…
- Операция Chewbacca
В конце июня команда PT ESC в ходе расследования инцидентов обнаружила новую группу, нацеленную как минимум…
- Ваш сервер Zimbra под угрозой
Недавно наша команда PT ESC IR столкнулась с новой атакой ransomware-группировок на почтовые серверы Zimbra с…





