Се­год­ня мы погово­рим об основных арте­фак­тах Windows, которые помога­ют иссле­дова­телю обна­ружить век­тор ком­про­мета­ции, приз­наки боково­го переме­щения по сети и зак­репле­ния в сис­теме, а так­же раз­берем тон­кости работы с инс­тру­мен­тами для ана­лиза этих арте­фак­тов.

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

Я буду исполь­зовать сле­дующие средс­тва:

  1. R-Studio — ути­лита для вос­ста­нов­ления дан­ных.
  2. FTK Imager — инс­тру­мент для ана­лиза и получе­ния обра­зов дис­ка.
  3. Ути­литы NirSoft для Windows.
  4. Ути­литы Eric Zimmerman для ана­лиза арте­фак­тов Windows.
 

Получаем побитовую копию диска

По­лучить дамп дис­ка прос­то: заг­ружа­емся с Live-обра­за Kali Linux в режиме Forensics и исполь­зуем ути­литу dd. Либо мож­но вытащить диск из сис­темни­ка, под­клю­чить к ап­парат­ному бло­кира­тору и снять образ с помощью инс­тру­мен­тов R-Studio, FTK Imager, Encase или им подоб­ных. Иног­да дос­таточ­но на живой сис­теме запус­тить пор­табель­ные ути­литы и получить образ дис­ка либо исполь­зовать сбор­щики Kape или FastIR Collector, которые соберут арте­фак­ты в авто­мати­чес­ком режиме.

В R-Studio получе­ние обра­за будет выг­лядеть так. Запус­каем ути­литу, выбира­ем диск и перехо­дим на вклад­ку «Соз­дать образ».

Создание образа диска
Соз­дание обра­за дис­ка

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

 

Монтируем образ

Пер­вым делом мон­тиру­ем образ дис­ка. Для это­го хороша ути­лита Mount Image Pro, либо можешь гля­нуть FTK Imager.

Монтирование в FTK
Мон­тирова­ние в FTK

На­жима­ем на зна­чок Image Mounting, ука­зыва­ем путь к фай­лу обра­за, в Mount Method выбира­ем мон­тирова­ние на запись.

Монтирование образа
Мон­тирова­ние обра­за

Да­лее нажима­ем Mount, и диск появит­ся в фай­ловой сис­теме.

Те­перь мож­но иссле­довать фай­лы в руч­ном режиме. Луч­ше все­го вос­поль­зовать­ся ути­литой R-Studio, которая поз­воля­ет ска­ниро­вать диск на пред­мет уда­лен­ных фай­лов, а так­же сор­тировать все фай­лы по датам соз­дания либо по рас­ширению.

Содержимое R-Studio
Со­дер­жимое R-Studio
 

Сканируем файловую систему

Преж­де чем ана­лизи­ровать арте­фак­ты, полез­но про­верить, нет ли в фай­ловой сис­теме подоз­ритель­ных фай­лов. Ска­ниро­вать мож­но ути­литой Loki Scanner, которая уме­ет опре­делять мно­гие инди­като­ры ком­про­мета­ции. Она ищет по име­нам фай­лов, хеш‑сум­мам, а в слу­чае надоб­ности в ход идут и пра­вила Yara.

.\loki.exe -p D:\ -l log

Баннер Loki Scanner
Бан­нер Loki Scanner

Еще мож­но вос­поль­зовать­ся пор­табель­ными анти­вирус­ными ути­лита­ми. Нап­ример:

  • KVRT — средс­тво Kaspersky для поис­ка вре­донос­ных фай­лов;
  • CureIt — ана­лог, соз­данный в Dr.Web;
  • Spyre — ска­нер инди­като­ров ком­про­мета­ции по пра­вилам Yara.

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

 

Получаем основную информацию о системе

Пе­ред началом иссле­дова­ния нуж­но соб­рать пер­вичную информа­цию о сис­теме. Для это­го вос­ста­новим вет­ки реес­тра SOFTWARE и SYSTEM, что­бы получить из них сле­дующие клю­чи:

  • SYSTEM: ControlSet001\Control\TimeZoneInformation — информа­ция об уста­нов­ленной вре­мен­ной зоне;
  • SYSTEM: ControlSet001\Control\ComputerName\ComputerName — име­на компь­юте­ра;
  • SYSTEM: ControlSet001\Services\Tcpip\Parameters\Interfaces — информа­ция об иден­тифика­торах сетевых интерфей­сов, в которых ука­зыва­ются сетевые нас­трой­ки, а в клю­че ControlSet001\Services\Tcpip\Parameters мож­но обна­ружить имя домена;
  • SOFTWARE: Microsoft\Windows NT\CurrentVersion — информа­ция об опе­раци­онной сис­теме: вер­сия, сбор­ка и дру­гое;
  • SOFTWARE: Microsoft\Windows\CurrentVersion\Uninstall — спи­сок уста­нов­ленных прог­рамм;
  • SAM: SAM\Domains\Account\Users — информа­ция о локаль­ных поль­зовате­лях сис­темы.

Что­бы авто­мати­зиро­вать про­цесс, доб­рые люди уже написа­ли полез­ный скрип­тик на Python — python-registry. В катало­ге samples ты най­дешь скрипт system_info.py, который ана­лизи­рует перечис­ленные клю­чи. Нуж­но будет толь­ко нем­ного его под­редак­тировать: добавить код, который перед каж­дым дос­тупом к клю­чу будет счи­тывать выг­ружен­ные тобой вет­ки.

 

Ищем закрепление в системе

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

Для это­го пред­назна­чена ути­лита Autoruns. Запус­кай, откры­вай вклад­ку File → Analyze Offline System и выбирай путь к сис­темно­му дис­ку (который мы при­мон­тирова­ли рань­ше). Так­же нуж­но задать путь до кон­крет­ного поль­зовате­ля.

Ути­лита показы­вает мно­жес­тво основных путей зак­репле­ния, но при ана­лизе при­мон­тирован­ного обра­за лег­ко про­пус­тить мно­гие момен­ты. Давай прой­дем­ся по основным путям зак­репле­ния вре­доно­са в сис­теме и инс­тру­мен­там, которые помогут соб­рать допол­нитель­ные све­дения.

Сис­темные кус­ты реес­тра хра­нят­ся в катало­ге C:\Windows\System32\config, поль­зователь­ские NTUSER.DAT — в катало­ге C:\Users\<User>\AppData.

 

WMI Persistence (Т1546.003)

WMI (Windows Management Instrumentation) — набор инс­тру­мен­тов, пред­назна­чен­ных для управле­ния сис­темами Windows. WMI популя­рен сре­ди зло­умыш­ленни­ков, пос­коль­ку поз­воля­ет выпол­нять раз­ведку в сети, обна­ружи­вать анти­виру­сы и вир­туаль­ные машины, выпол­нять про­изволь­ный код, сох­ранять свое при­сутс­твие в сис­теме, а так­же переме­щать­ся по кор­поратив­ной сети.

В опре­деле­ниях WMI дей­ствия называ­ются пот­ребите­лями (Consumers), а события — филь­тра­ми (Filters). Сущес­тву­ет так­же тре­тий ком­понент, который свя­зыва­ет их вмес­те, — при­вяз­ка (Binding). Зло­умыш­ленник соз­дает три клас­са:

  • __EventFilter — некий филь­тр дей­ствий в сис­теме, к при­меру вход поль­зовате­ля или соз­дание про­цес­са;
  • __EventConsumer — дей­ствие, которое выпол­няет зло­умыш­ленник, к при­меру запуск полез­ной наг­рузки;
  • __FilterToConsumerBinding — объ­ект, который свя­зыва­ет эти два клас­са.

Что­бы зак­репить­ся этим методом, зло­умыш­ленни­ки исполь­зуют ути­литу, которая уме­ет вза­имо­дей­ство­вать с WMI (wmic.exe). Что­бы понять, про­исхо­дило ли что‑то такое, нам нуж­но про­ана­лизи­ровать сле­дующий файл:

C:\Windows\System32\wbem\Repository\OBJECTS.DATA

На­ша цель — най­ти клас­сы __FilterToConsumerBinding, а затем по име­ни __EventConsumer най­ти все дей­ствия. Сде­лать это мож­но в любом дво­ичном редак­торе. Вби­вай в поис­ке класс свя­зыва­ния филь­тра и дей­ствия — __FilterToConsumerBinding. Есть и готовый инс­тру­мент, который сде­лает всю работу за тебя, он называ­ется PyWMIPersistenceFinder.py. Я уже показы­вал, как с его помощью обна­ружи­вать зак­репле­ние, ког­да раз­бирал лабора­торию CyberCorpCase 1.

 

Ключи запуска в реестре и папка автозагрузки (T1547.001)

Что­бы задетек­тить эту тех­нику зак­репле­ния, нам с тобой нуж­но про­ана­лизи­ровать кус­ты реес­тра SOFTWARE и NTUSER.DAT.

В кус­те SOFTWARE смот­рим сле­дующие клю­чи, отве­чающие за при­сутс­твие в ОС от име­ни сис­темы или адми­на:

  • Microsoft\Windows\CurrentVersion\Run;
  • Microsoft\Windows\CurrentVersion\RunOnce;
  • Microsoft\Windows\CurrentVersion\RunServices;
  • Microsoft\Windows\CurrentVersion\RunServicesOnce;
  • Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit;
  • Microsoft\Windows NT\CurrentVersion\Winlogon\Shell;
  • Microsoft\Windows\CurrentVersion\Explorer\Shell Folders.

Не забыва­ем гля­нуть те же клю­чи в кус­те реес­тра NTUSER.DAT:\SOFTWARE — что­бы понять, не было ли зак­репле­ния с пра­вами поль­зовате­ля.

Ко­пать­ся в реес­тре я рекомен­дую с помощью RegistryExplorer. Обра­ти вни­мание на путь к исполня­емо­му фай­лу и на вре­мен­ные мет­ки клю­ча реес­тра.

А вот сюда сто­ит заг­лянуть в поис­ках вре­донос­ных исполня­емых фай­лов:

C:\Users\<User>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Вре­доно­сы, лежащие в такой пап­ке, будут стар­товать авто­мати­чес­ки и при­нимать­ся пакос­тить сра­зу пос­ле заг­рузки. Так­же обра­щай вни­мание на фай­лы .lnk, в них иног­да пря­чут­ся коман­ды PowerShell или CMD.

 

Сценарий входа в систему Windows (T1037.001)

За авто­мати­чес­кое выпол­нение скрип­тов при вхо­де в сис­тему отве­чает куст реес­тра NTUSER.DAT, точ­нее, ключ Environment\UserInitMprLogonScript, где перечис­ляют­ся исполня­емые фай­лы. К при­меру, APT-груп­па XDSpy записы­вала сюда адрес вре­донос­ного фай­ла, сох­ранен­ного в AppData\Local\Temp.

Закрепление вредоносного исполняемого файла
Зак­репле­ние вре­донос­ного исполня­емо­го фай­ла
 

Службы Windows (T1574.011)

Зло­умыш­ленни­ки могут исполь­зовать неп­равиль­ные раз­решения на клю­чи реес­тра той или иной служ­бы, что­бы выпол­нять полез­ные наг­рузки.

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

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

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

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


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

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

    Подписаться

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