В этой статье мы иссле­дуем вре­донос­ный файл на при­мере лабора­тор­ной работы Ransomed с ресур­са CyberDefenders. Мы научим­ся вруч­ную рас­паковы­вать код, опре­делим тех­нику внед­рения вре­донос­ной прог­раммы в про­цесс и отве­тим на ряд воп­росов.

Нам пред­ложен такой сце­нарий: орга­низа­цию взло­мали, коман­да SOC обна­ружи­ла заг­ружен­ный исполня­емый файл. Наша задача — иссле­довать его и раз­работать инди­като­ры ком­про­мета­ции для пос­леду­юще­го детек­тирова­ния.

info

Ис­сле­дова­ние вре­донос­ного фай­ла необ­ходимо про­водить в изо­лиро­ван­ной сре­де. Как соз­дать лабора­торию для ана­лиза вре­доно­сов, под­робно рас­ска­зано в статье «Код под над­зором. Соз­даем вир­туаль­ную лабора­торию для ана­лиза мал­вари».

Итак, заг­ружа­ем вре­донос и начина­ем его иссле­довать. По резуль­татам решения кей­са необ­ходимо отве­тить на нес­коль­ко воп­росов, но я покажу, толь­ко как его решать, и не буду при­водить отве­ты. Луч­ше пов­тори весь про­цесс самос­тоятель­но, что­бы разоб­рать­ся и зак­репить матери­ал.

 

Инструментарий

Для иссле­дова­ния вре­донос­ного фай­ла вос­поль­зуем­ся сле­дующим соф­том.

  1. DIE — прог­рамма для опре­деле­ния типов фай­лов.
  2. PeStudio — прог­рамма для поис­ка арте­фак­тов исполня­емых фай­лов.
  3. IDA Pro — инте­рак­тивный дизас­сем­блер, исполь­зуемый для реверс‑инжи­нирин­га.
  4. Wireshark — инс­тру­мент для ана­лиза сетево­го тра­фика.
  5. Burp Suite — исполь­зует­ся в качес­тве проз­рачно­го прок­си‑сер­вера с целью ана­лиза вза­имо­дей­ствия вре­донос­ного фай­ла по про­токо­лу HTTPS.
  6. Loki Scanner — ска­нер IOCs.
  7. YaraEditor — прог­рамма для тес­тирова­ния и соз­дания пра­вил YARA.
  8. ApiLoger — ути­лита для ана­лиза вызыва­емых WinAPI-фун­кций иссле­дуемо­го вре­доно­са.
  9. x64dbg — отладчик с откры­тым исходным кодом для Windows, пред­назна­чен­ный для ана­лиза вре­донос­ных прог­рамм.

Ана­лизи­ровать вре­донос­ный модуль мы будем в четыре эта­па:

  1. Ста­тичес­кий ана­лиз.
  2. По­веден­ческий ана­лиз.
  3. Ди­нами­чес­кий ана­лиз.
  4. Соз­дание инди­като­ров ком­про­мета­ции.
 

Статический анализ

В пер­вую оче­редь получим MD5-хеш‑сум­му исполня­емо­го фай­ла и про­верим его на VirusTotal. По MD5 a2f33095ef25b4d5b061eb53a7fe6548 VirusTotal выда­ет нам пер­вичную информа­цию об ис­полня­емом фай­ле.

Да­лее скор­мим иссле­дуемый файл ути­лите DIE и выяс­ним, какой ком­пилятор и ком­понов­щик исполь­зовал­ся при соз­дании вре­доно­са, а так­же опре­делим, упа­кован он или нет.

Информация о компиляторе и компоновщике
Ин­форма­ция о ком­пилято­ре и ком­понов­щике

Итак, мы узна­ли, что вре­донос­ный модуль раз­работан на C/C++ и соб­ран для 32-раз­рядных опе­раци­онных сис­тем. DIE опре­деля­ет упа­ков­щик с помощью заг­ружен­ных сиг­натур, но иден­тифици­ровать руч­ной упа­ков­щик не поз­воля­ет. Для это­го необ­ходимо пос­мотреть энтро­пию фай­ла по сек­циям.

info

Что такое энтро­пия исполня­емо­го фай­ла, рас­ска­зано в статье «Эн­тро­пия. Как хаос помога­ет искать вирусы».

Информация об энтропии исполняемого файла
Ин­форма­ция об энтро­пии исполня­емо­го фай­ла

Зна­чение энтро­пии 7,677, зна­чит, файл упа­кован. Из рисун­ка выше вид­но, что иссле­дуемый файл име­ет четыре сек­ции, энтро­пия сек­ции .text рав­на 7,844.

Заг­рузим файл в ути­литу PeStudio, что­бы най­ти все­воз­можные арте­фак­ты. Нам инте­рес­ны вре­мен­ные мет­ки ком­пиляции фай­ла, заг­ружа­емые биб­лиоте­ки, исполь­зуемые ресур­сы, информа­ция о вер­сии исполня­емо­го фай­ла, харак­терные стро­ки, а так­же отла­доч­ная информа­ция и файл сбор­ки (Manifest). Все это при­годит­ся нам при соз­дании фай­ловой сиг­натуры.

Отладочная информация
От­ладоч­ная информа­ция

Стро­ка C:\moz\vidaj.pdb нам инте­рес­на для соз­дания пра­вила детек­тирова­ния. На дан­ном эта­пе мы выяс­нили, что исполня­емый файл упа­кован, и получи­ли харак­терные стро­ки.

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

За­пус­тим ути­литу INetSim в вир­туаль­ной машине Kali Linux. Так­же запус­тим Burp Suite для ана­лиза вза­имо­дей­ствия по HTTPS и будем слу­шать сетевой тра­фик вза­имо­дей­ствия, исполь­зуя Wireshark.

За­пус­тим Api Loger, выберем исполня­емый файл chalenge.exe и нач­нем писать логи.

Вызываемые Windows API функции
Вы­зыва­емые Windows API фун­кции

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

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

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

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

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии