В сегод­няшней статье я покажу, что делать с извле­чен­ным из вре­доно­са шелл‑кодом: будем его запус­кать и отла­живать. Раз­берем­ся, как работать с фун­кци­ей WinAPI, если она вызыва­ется по хешу, а в про­цес­се отладки рас­шифру­ем полез­ную наг­рузку и научим­ся извле­кать инфу из обфусци­рован­ных фай­лов .NET.

Мы про­дол­жим работу, начатую в моей прош­лой статье, где мы начали ревер­сить Agent Tesla и вытащи­ли шелл‑код из инстал­лятора NSIS.

 

Загружаем шелл-код в дизассемблер

В прош­лый раз мы догово­рились исполь­зовать Ghidra, про­дол­жим тра­дицию и в этой статье. Итак, заг­ружа­ем файл c шелл‑кодом в дизас­сем­блер и видим, что начало шелл‑кода не дизас­сем­бли­рова­лось: перед нами прос­то необ­работан­ные бай­ты. Это не нуж­но игно­риро­вать, потому что неп­равиль­ное начало ана­лиза может поломать кучу осталь­ного про­ана­лизи­рован­ного кода.

Результат загрузки шелл-кода, первые байты не дизассемблировались
Ре­зуль­тат заг­рузки шелл‑кода, пер­вые бай­ты не дизас­сем­бли­рова­лись

Не страш­но, прос­то ста­вим кур­сор на начало бай­товой стро­ки и выбира­ем в кон­текс­тном меню Disassemble, даль­ше Ghidra сде­лает все за нас.

Исправили дизасм шелл-кода
Ис­пра­вили дизасм шелл‑кода

Пос­ле того как при­вели ана­лиз в порядок, видим с самого начала шелл‑кода переход в фун­кцию. Идем в нее и смот­рим в начало — там видим пор­тянку кода, где дан­ные помеща­ются на стек. При­водим эти дан­ные в удо­бочи­таемый вид (при­водим чис­ла в char в кон­текс­тном меню), видим появив­шееся наз­вание фай­ла djdqvq.sra. Вспо­мина­ем, что это один из трех фай­лов, которые находи­лись в NSIS-инстал­ляторе. Ста­ло быть, шелл‑код работа­ет с этим фай­лом.

Шелл-код работает с djdqvq.sra
Шелл‑код работа­ет с djdqvq.sra

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

Энтропия djdqvq.sra
Эн­тро­пия djdqvq.sra

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии