Уроки форензики. Расследуем киберинцидент MrRobot

Содержание статьи

  • Используемые утилиты
  • Используемые плагины Volatility2 для извлечения данных
  • Исследование хоста Target1
  • Исследование машины Target2
  • Анализ хоста POS
  • Выводы

В этой статье мы про­ведем рас­сле­дова­ние инци­ден­та на при­мере лабора­тор­ной работы MrRobot с ресур­са CyberDefenders. Мы научим­ся извле­кать основные арте­фак­ты из обра­зов опе­ратив­ной памяти Windows и вос­ста­новим про­цесс ата­ки.

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

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

Итак, заг­рузим файл ар­хива с арте­фак­тами и прис­тупим к их иссле­дова­нию.

Используемые утилиты

Используемые плагины Volatility2 для извлечения данных

Рас­паковы­ваем архив с задани­ем и получа­ем три фай­ла, которые содер­жат обра­зы памяти ском­про­мети­рован­ных хос­тов: Target1, Target2 и POS. Фай­лы име­ют рас­ширение .vmss, то есть пред­став­ляют собой момен­таль­ные сним­ки вир­туаль­ной машины VMware. Если Volatility не может извлечь арте­фак­ты из этих фай­лов, мож­но вос­поль­зовать­ся пла­гином raw2dmp, который пре­обра­зует дамп памяти при­оста­нов­ленной вир­туаль­ной машины VMware в фор­мат, при­год­ный для ана­лиза. Так­же мож­но вос­поль­зовать­ся инс­тру­мен­том vmss2core.

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

Исследование хоста Target1

По­лучим пер­вичную информа­цию об иссле­дуемой машине, выяс­ним про­филь опе­раци­онной сис­темы, сетевой адрес и имя хос­та.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 imageinfo`

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

В клю­че реес­тра SYSTEMControlSet001ControlComputerNameComputerName содер­жится информа­ция об име­ни компь­юте­ра.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 printkey -K "ControlSet001ControlComputerNameComputerName"

Имя компь­юте­ра — FRONT-DESK-PC.

По­лучим сетевой адрес хос­та: в клю­че реес­тра SYSTEMControlSet001ServicesTcpipParametersInterfaces содер­жатся иден­тифика­торы сетевых адап­теров, в одном из которых хра­нит­ся информа­ция о сети.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 printkey -K "ControlSet001ServicesTcpipParametersInterfaces{9C3710A4-77FE-48CB-911B-742A81DE38BA}"

Про­филь ском­про­мети­рован­ной машины Win7SP1x86_23418, IP-адрес — 10.1.1.20, имя хос­та — FRONT-DESK-PC.

Нач­нем вос­ста­нав­ливать дей­ствия поль­зовате­ля в сис­теме. Пер­вым делом получим информа­цию о запущен­ных про­цес­сах и сох­раним ее в файл для удобс­тва ана­лиза.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 pstree > pstree.txt

Де­рево запущен­ных про­цес­сов

Мы видим запущен­ный про­цесс OUTLOOK.EXE с иден­тифика­тором 3196, в адресном прос­транс­тве которо­го содер­жится информа­ция об элек­трон­ных сооб­щени­ях и откры­тых фай­лах. Получим перепис­ку авто­ризо­ван­ного в Outlook поль­зовате­ля. Для это­го выг­рузим все фай­лы дан­ного про­цес­са и про­ана­лизи­руем их: в дес­крип­торе откры­того про­цес­са с иден­тифика­тором 3196 най­дем все объ­екты FILE.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 handles -p 3196 -t FILE > handles_3196.txt

От­кры­тые фай­лы про­цес­са OUTLOOK.exe

Мы обна­ружи­ли файл с рас­ширени­ем .ost, который содер­жит кеширо­ван­ные (сох­ранен­ные в памяти сис­темы) сооб­щения элек­трон­ного поч­тового ящи­ка поль­зовате­ля. Поп­робу­ем вос­ста­новить этот файл, исполь­зуя пла­гин dumpfiles, но сна­чала нам необ­ходимо узнать физичес­кий адрес дан­ного фай­ла в памяти. Запус­тим пла­гин filescan, най­дем инте­ресу­ющий нас файл и получим его физичес­кий адрес.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 handles -p 3196 -t FILE > filescan.txt

Фи­зичес­кий адрес фай­ла outlook2.ost

Ад­рес фай­ла outlook2.ost — 0x000000003ecec2b0. Теперь мож­но вос­ста­новить сам файл. В парамет­ре -Q пла­гина dumpfiles ука­зыва­ем адрес фай­ла, который нуж­но выг­рузить.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 dumpfiles -Q 0x000000003ecec2b0 -D dumpfiles/

Я поп­робовал вос­ста­новить все фай­лы кон­тей­нера outlook, но они ока­зались пус­тыми. Вос­поль­зуем­ся дру­гим методом выг­рузки сооб­щений. Для это­го получим дамп адресно­го прос­транс­тва про­цес­са OUTLOOK.EXE с помощью пла­гина memdump.

python2 vol.py -f c69-Grrcon2015/target1/Target1-1dd8701f.vmss --profile=Win7SP1x86_23418 memdump -p 3196 -D ./

Мы получи­ли дамп адресно­го прос­транс­тва, поп­робу­ем в нем най­ти сооб­щения. Откро­ем получен­ный файл в шес­тнад­цатерич­ном редак­торе и най­дем стро­ку From, а так­же Content-Type.

Об­наружен­ный заголо­вок пись­ма

Со­дер­жимое элек­трон­ного пись­ма

Про­ана­лизи­руем его заголо­вок: нас инте­ресу­ют поля Subject, From и Received.

Как ана­лизи­ровать заголов­ки элек­трон­ных писем, рас­ска­зыва­ется в одной из наших ста­тей.

На­ходим пер­вое поле Received и узна­ем, что сооб­щение отправ­лено с IP-адре­са 10.114.2.82. Как вид­но из содер­жимого, там при­сутс­тву­ет ссыл­ка http://180.76[.]254[.]120/AnyConnectInstaller.exe для заг­рузки фай­ла AnyConnectInstaller.exe.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *