Категория > Новости > Таймлайн всего. Используем Plaso для сбора системных событий - «Новости»

Таймлайн всего. Используем Plaso для сбора системных событий - «Новости»


5-09-2021, 00:00. Автор: Forster
Sysmon для безопас­ника». Ког­да мы пой­дем по сле­дам зло­умыш­ленни­ка, ты пой­мешь, в чем цен­ность этой ути­литы.

Опи­сывать зараже­ние и пос­тэкс­плу­ата­цию сис­темы не буду, что­бы в даль­нейшем нам было инте­рес­нее добывать из обра­за ули­ки. Все рав­но, если ты вни­матель­но чита­ешь статьи из руб­рики «Взлом», ничего нового я тебе не рас­ска­жу.


Пос­ле того как мы от души пошали­ли в подопыт­ной сис­теме, приш­ла пора сни­мать мас­ку кибер­прес­тупни­ка и дос­тавать чемодан­чик кри­мина­лис­та.



info


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



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


Вык­лючим обе вир­туал­ки, под­кинем в Kali вто­рым жес­тким дис­ком вир­туаль­ный диск от Windows и нас­тро­им для Kali Shared Folder на жес­тком дис­ке тво­его хос­тового ком­па, где будет дос­таточ­но сво­бод­ного мес­та, что­бы сде­лать побай­товую копию дис­ка вин­ды. Если ты выделил на нее 40 Гбайт, то на дис­ке дол­жно быть минимум столь­ко же сво­бод­ного мес­та.


Заг­рузим­ся в Kali, соз­дадим точ­ку мон­тирова­ния и под­монти­руем Shared Folder:


$ sudo/usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs -o subtype=vmhgfs-fuse,allow_other

На­ходим инте­ресу­ющий нас жес­ткий диск:


Таймлайн всего. Используем Plaso для сбора системных событий - «Новости»

В нашем слу­чае это sda. Запус­каем соз­дание побай­товой копии:


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


 

Plaso


Plaso (рекур­сивный акро­ним от исланд­ско­го Plaso Langar Að Safna Öllu, или для тех, кто не очень понима­ет исланд­ский, «Plaso хочет соб­рать все») — инс­тру­мент, раз­работан­ный на Python, основная задача которо­го — пос­тро­ить супер­тай­млайн‑все­го‑воз­можно­го‑что‑про­исхо­дило‑в-сис­теме и вып­люнуть все это в один гигабай­тный CSV.


Ре­лиз 1.0.0 сос­тоял­ся 5 декаб­ря 2012 года, хотя если смот­реть глуб­же, на ути­литу log2timeline, написан­ную на Perl, то пер­вое упо­мина­ние на Forensics Wiki датиру­ется аж 28 августа 2009-го. В те вре­мена некото­рые нынеш­ние компь­ютер­ные хулига­ны еще толь­ко начали посещать час­тные дет­ские дош­коль­ные учрежде­ния, в которых им, к сожале­нию, ничего про уго­лов­ный кодекс не рас­ска­зыва­ли.


 

Установка


Для уста­нов­ки Plaso (на момент написа­ния статьи акту­аль­ный релиз 20210606) осо­бых скил­лов не тре­бует­ся, на Linux так и вооб­ще все, что тебе нуж­но, — тер­минал и дос­туп в интернет. На слу­чай, если тебе захочет­ся покопать­ся в исходни­ках, кло­нируй ре­пози­торий, если не захочет­ся — исполь­зуй pip.


$ pip install plaso elasticsearch

Да­лее уста­нав­лива­ем все тре­буемые зависи­мос­ти:


В фай­ле requirements.txt отсутс­тву­ют опци­ональ­ные зависи­мос­ти chardet, fakeredis и mock, поэто­му еще одна коман­да, и все успешно заведет­ся:


На вин­де дела обсто­ят пос­ложнее толь­ко лишь из‑за того, что тебе при­дет­ся доус­тановить в сис­тему Build Tools for Visual Studio. Но проб­лема реша­ется эле­мен­тарно, если у тебя есть в загаш­нике уста­новоч­ный пакет Visual Studio 2017 (имен­но с ним у меня все получи­лось). Запус­ти уста­нов­ку и выбери в раз­деле Individual components ком­понент VC++ 2015.3 v14.00 (v140) toolset for desktop. Пос­ле это­го все зависи­мос­ти уста­новят­ся через pip.


 

Набор инструментов


В сос­тав Plaso вхо­дит нес­коль­ко ути­лит, они находят­ся в катало­ге tools.


image_export — ути­лита для извле­чения из устрой­ства или его обра­за фай­лов по раз­личным кри­тери­ям: начиная c рас­ширения и путей, закан­чивая сиг­натура­ми и вре­менем соз­дания или модифи­кации. Кро­ме того, дан­ный инс­тру­мент пос­ле извле­чения фай­лов сге­нери­рует файл hashes.json, в который попадут хеш‑зна­чения всех извле­чен­ных фай­лов для даль­нейшей про­вер­ки, нап­ример на VirusTotal.


При­меры запус­ка:


py image_export.py disk1.dd

Па­рамет­ры --names, --extensions и --date-filter не дол­жны выз­вать у тебя никаких воп­росов, рас­смот­рим под­робнее толь­ко извле­чение по сиг­натурам.


py image_export.py --signatureslist

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


Нап­ример, извлечь все фай­лы Windows PE мож­но с исполь­зовани­ем готовой сиг­натуры exe_mz:


py image_export.py --signaturesexe_mz disk1.dd

log2timeline — основной инс­тру­мент, с которо­го, собс­твен­но, две­над­цать лет назад все и началось. Он исполь­зует­ся для извле­чения раз­ных событий из фай­лов, катало­гов (нап­ример, точек мон­тирова­ния), устрой­ства или его обра­за. В резуль­тате работы ути­лита фор­миру­ет файл в фор­мате Plaso, в даль­нейшем он и будет исполь­зовать­ся для ана­лиза.



Перейти обратно к новости