Имитация атаки с помощью Caldera MITRE

Имитация атаки Caldera MITRE

Прак­тичес­ки любая ата­ка всег­да выпол­няет­ся с внеш­ним управле­нием — то есть с при­мене­нием коман­дно­го сер­вера (C&C). Что­бы «дер­гать за ниточ­ки» цель, необ­ходимо обес­печить связь с ата­куемо­го хос­та, поэто­му на него уста­нав­лива­ется спе­циаль­ный агент.

Еще по теме: Лучшие инструменты аудита безопасности Linux

В веб‑интерфей­се перехо­дим на вклад­ку agents, затем в открыв­шемся вид­жете нажима­ем на кноп­ку под­готов­ки аген­та.

Вклад­ка agents в веб‑интерфей­се Caldera
Вклад­ка agents в веб‑интерфей­се Caldera

Кноп­ка уста­нов­ки аген­та

Те­перь сле­дует опре­делить тип аген­та (GoLang-агент — самый популяр­ный), ука­зать плат­форму, на которой будем его раз­ворачи­вать, и оста­ется лишь запол­нить адрес нашего сер­вера управле­ния (на котором у нас раз­вернут кон­тей­нер) с ука­зани­ем пор­та веб‑интерфей­са.

Нас­трой­ки аген­та
Нас­трой­ки аген­та

Пос­ле запол­нения ты уви­дишь коман­ду для уста­нов­ки аген­та на хос­те, с парамет­рами, которые мы ука­зали выше:

Вы­пол­ним эту коман­ду в PowerShell на машине, где пла­ниру­ется эму­лиро­вать активность ата­кующих. Для луч­шего эффекта рекомен­дуем уста­новить агент с пра­вами адми­нис­тра­тора. По умол­чанию Windows будет нам мешать, но мы соз­дадим необ­ходимые исклю­чения для кор­рек­тной уста­нов­ки. Инте­рес­но, что свой­ства работы это­го аген­та занесе­ны в базу зна­ний о вре­доно­сах в от­дель­ной статье Microsoft.

Ис­клю­чение для аген­та в Windows Defender
Ис­клю­чение для аген­та в Windows Defender

Ес­ли уста­нов­ка прош­ла успешно, в веб‑интерфей­се появит­ся сле­дующее.

Ус­пешно уста­нов­ленный агент
Ус­пешно уста­нов­ленный агент

Щел­кнув на этой стро­ке, мы смо­жем уви­деть парамет­ры хос­та и нас­трой­ки аген­та.

Па­рамет­ры аген­та
Па­рамет­ры аген­та

Агент пока толь­ко уста­нов­лен и не выпол­няет никаких дей­ствий. Теперь под­готовим логиро­вание на нашем хос­те.

Подготовка мониторинга событий — Sysmon и журналы Windows

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

Сис­темный монитор (Sysmon) — это служ­ба Windows и драй­вер устрой­ства. Рань­ше эта ути­лита была частью пакета прог­рам­мно­го обес­печения Sysinternals, теперь при­над­лежаще­го Microsoft. Уста­нов­ка Sysmon поз­воля­ет отсле­живать и регис­три­ровать сис­темные дей­ствия в жур­нале событий Windows. Он пре­дос­тавля­ет под­робные све­дения о соз­дании про­цес­сов, о сетевых под­клю­чени­ях и изме­нени­ях вре­мени соз­дания фай­лов.

Sysmon очень лег­ко уста­новить и раз­вернуть. Заг­рузить тул­зу мож­но с сай­та Microsoft (кста­ти, есть вер­сия и для Linux). Прог­рамма запус­кает­ся в качес­тве служ­бы. Основную слож­ность пред­став­ляет нас­трой­ка кон­фигура­ции, с исполь­зовани­ем которой ути­лита выпол­няет свою работу, но, к счастью, есть уже готовые и обка­тан­ные ва­риан­ты.

Ре­комен­дуем выб­рать кон­фигура­цию по умол­чанию — default (sysmonconfig.xml). Для уста­нов­ки кон­фигура­ции исполь­зуй такую коман­ду:

От­сле­дить вре­донос­ные или ано­маль­ные явле­ния в сис­теме мож­но, собирая дан­ные, которые генери­руют аген­ты сбо­ра событий Windows (Event Collector) или SIEM (winlogbeat и дру­гие сто­рон­ние средс­тва). При рас­сле­дова­нии киберин­циден­тов это поз­волит понять, как зло­умыш­ленни­ки зак­репля­ются и дей­ству­ют в сети. Так, бла­года­ря ана­лизу событий в ОС мы узна­ли, что в ком­понен­тах бра­узе­ра Chrome исполь­зует­ся защита про­изводс­тва ком­пании ESET.

Для работы с событи­ями жур­налов Windows мы будем исполь­зовать сов­ремен­ную SIEM-сис­тему. На скрин­шотах ниже показан про­дукт «Лабора­тории Кас­пер­ско­го» KUMA (Kaspersky Unified Monitoring and Analysis Platform). В целом не так важ­но, как собирать эти события и где их ана­лизи­ровать, глав­ное — содер­жание!

Запуск Caldera-агента

Итак, мы име­ем на хос­те нас­тро­енное по умол­чанию логиро­вание Windows и уста­нов­ленный с некой кон­фигура­цией Sysmon. Теперь запус­тим агент‑ими­татор и пос­мотрим, что получит­ся.

Ак­тивнос­ти аген­та в веб‑интерфей­се KUMA
Ак­тивнос­ти аген­та в веб‑интерфей­се KUMA

В сис­теме монито­рин­га (SIEM) мы отклю­чили все пра­вила кор­реляции (которые под­све­тили бы все подоз­ритель­ные активнос­ти). Наша задача — най­ти подоз­ритель­ные события вруч­ную. События отсорти­рова­ны по парамет­ру EventRecordID жур­налов ОС Windows — в SIEM это стол­бец ExternalID.

Что мы видим? Про­изо­шел запуск оснас­тки PowerShell (события до ID 50002), далее глаз цеп­ляет­ся за событие, в ходе которо­го из про­цес­са PowerShell соз­дает­ся новый файл (в стол­бце Name, который обоз­нача­ет суть события, сто­ит File Created). Соз­данный файл с име­нем sandcat-go.windows.exe запус­кает­ся на выпол­нение (Name = Image loaded). Здесь же мы видим его кон­троль­ную сум­му (ее мож­но исполь­зовать как IOC для поис­ка в раз­личных базах, нап­ример на VirusTotal). Вдо­бавок у это­го фай­ла нет циф­ровой под­писи. Подоз­ритель­но? Вро­де бы да.

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

Мы видим, что в под­писи отсутс­тву­ют зна­чения ряда полей. Срав­ни получен­ный резуль­тат с под­писью нор­маль­ного фай­ла, какого‑нибудь вин­дового сис­темно­го. В отли­чие от sandcat-go.windows.exe, у него запол­нена информа­ция о ком­пании и дру­гие харак­терные стро­ки.

Сис­темный, хороший исполня­емый файл с валид­ной информа­цией по сер­тифика­ту
Сис­темный, хороший исполня­емый файл с валид­ной информа­цией по сер­тифика­ту

Сис­темный, хороший исполня­емый файл с валид­ной информа­цией по сер­тифика­ту

Файл однознач­но вызыва­ет сом­нения. Инте­рес­но, что дела­ет этот подоз­ритель­ный объ­ект пос­ле уста­нов­ки?

Зак­репле­ние подоз­ритель­ного фай­ла
Зак­репле­ние подоз­ритель­ного фай­ла

В пер­вую оче­редь вре­донос­ной прог­рамме нуж­но зак­репить­ся в сис­теме, и она про­писы­вает себя в авто­запуск в качес­тве служ­бы, исполь­зуя клю­чи реес­тра. Что даль­ше? У подоб­ных фай­лов обыч­но име­ется внеш­нее управле­ние, а зна­чит, дол­жны при­сутс­тво­вать и сетевые соеди­нения. Эти события логиру­ются, и боль­шой SIEM все видит (Name = Network connection detected).

Се­тевая активность подоз­ритель­ного фай­ла
Се­тевая активность подоз­ритель­ного фай­ла

В сетевой активнос­ти учас­тву­ет сам сер­вер управле­ния (Caldera), так как в нас­трой­ках сетевой ком­муника­ции аген­та не исполь­зует­ся прок­си.

Че­го‑то не хва­тает, да? Кажет­ся, мы упус­тили сами коман­ды, которые про­исхо­дили в PowerShell… А ведь их мож­но отыс­кать, сто­ит толь­ко нем­ножко пот­рудить­ся. Для это­го нуж­но нас­тро­ить уро­вень логиро­вания в сис­теме. Нажима­ем Winkey + R и запус­каем gpedit.msc. В раз­деле «Кон­фигура­ция компь­юте­ра → Administrative Templates → Windows Components → Windows PowerShell» вклю­чаем ведение ауди­та по сле­дующим событи­ям.

Под­кру­чива­ем логиро­вание в Windows
Под­кру­чива­ем логиро­вание в Windows

В свой­ствах пер­вого (вес­ти логиро­вание модулей) про­пиши в качес­тве Value знак * — это вклю­чит логиро­вание всех модулей PowerShell.

Нас­трой­ка Turn on Module Logging
Нас­трой­ка Turn on Module Logging

А в свой­ствах вто­рого (вклю­чить регис­тра­цию бло­ков сце­нари­ев PowerShell) уста­нав­лива­ем фла­жок.

Нас­трой­ка Turn on PowerShell ScriptBlock Logging
Нас­трой­ка Turn on PowerShell ScriptBlock Logging

Что­бы най­ти логи, наж­ми Win-R, запус­ти eventvwr, а затем в окне Application and Services Logs перей­ди в раз­дел Microsoft → Windows → PowerShell → Operational. Для про­вер­ки вве­ди в кон­соль PowerShell коман­ду whoami и най­ди ее в логах.

Ра­бота логиро­вания PowerShell
Ра­бота логиро­вания PowerShell

Те­перь точ­но будет инте­рес­нее!

Начало атаки

Что­бы запус­тить ата­ку по заранее под­готов­ленно­му сце­нарию, в веб‑интерфей­се Caldera выбира­ем пункт меню Operations, затем при­думы­ваем имя опе­рации и ука­зыва­ем активность, которая будет эму­лиро­вать­ся. В нашем слу­чае это Discovery (один из эта­пов атак выпол­нения раз­ведки, под­робнее о нем читай на сай­те MITRE, а допол­нитель­ные под­робнос­ти — в этой статье). Так­же мож­но запол­нить и дру­гие парамет­ры опе­рации, но ты это сде­лаешь, ког­да наберешь­ся опы­та.

Соз­дание опе­рации в интерфей­се Caldera
Соз­дание опе­рации в интерфей­се Caldera

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

Ре­зуль­тат выпол­нения опе­рации в интерфей­се Caldera
Ре­зуль­тат выпол­нения опе­рации в интерфей­се Caldera

В ходе эму­ляции ата­ки про­веря­лись раз­личные парамет­ры: какие юзе­ры есть в сис­теме, уста­нов­лен ли анти­вирус и так далее. Про­иллюс­три­руем в качес­тве при­мера, как Caldera опре­деля­ет, при­сутс­тву­ет ли в сис­теме анти­вирус. Дела­ется это с помощью три­виаль­ного WMI-зап­роса. Про­вер­ка показа­ла, что на хос­те уста­нов­лен стан­дар­тный Windows Defender.

Ре­зуль­тат про­вер­ки наличия анти­виру­са в ходе опе­рации
Ре­зуль­тат про­вер­ки наличия анти­виру­са в ходе опе­рации

Вер­немся к SIEM. Теперь сре­ди соб­ранных событий, которых вне­зап­но ста­ло боль­ше, мож­но отсле­дить, под учет­кой какого поль­зовате­ля дей­ство­вали «зло­умыш­ленни­ки» (его SID) и какие кон­соль­ные коман­ды они выпол­няли.

Об­наруже­ние про­вер­ки наличия анти­виру­са аген­том в SIEM
Об­наруже­ние про­вер­ки наличия анти­виру­са аген­том в SIEM

Поп­робу­ем нем­ного усложнить задачу для защит­ников: будем исполь­зовать обфусци­рован­ные коман­ды PowerShell и пос­мотрим, как они выг­лядят в логах. Для это­го соз­дадим новую опе­рацию Obfuscation_Commands с эму­ляци­ей активнос­тей чер­вя. Фун­кция обфуска­ции нас­тра­ивает­ся в парамет­рах скрыт­ности (stealth).

Нас­трой­ка обфуска­ции команд в опе­рации
Нас­трой­ка обфуска­ции команд в опе­рации

При выпол­нении опе­рации мож­но запус­кать некото­рые коман­ды в кон­соли вруч­ную и получать вывод.

Имитация атаки Caldera MITRE

Имитация компьютерной атаки Caldera MITRE

Симуляция компьютерной атаки Caldera MITRE

Руч­ное выпол­нение команд в опе­рации
Руч­ное выпол­нение команд в опе­рации

Но руч­ная коман­да получи­лась необ­фусци­рован­ной. Пос­мотрим, что будет при запус­ке нашей «зачер­влен­ной» ком­пании.

За­гадоч­ная коман­да в опе­рации
За­гадоч­ная коман­да в опе­рации

Ко­ман­ды запус­кают­ся с клю­чом -Enc или -E. Если ты однажды заметишь подоб­ное, всег­да обра­щай на это прис­таль­ное вни­мание: обыч­но это что‑то опас­ное. В жур­налах сис­темы у нас про­исхо­дит кое‑что поин­терес­нее: сна­чала выпол­нялась абра­кадаб­ра, а потом мы явно видим эту коман­ду (чудо ауди­та!). На иллюс­тра­ции стрел­ками ука­заны RecordID в жур­нале, соот­ветс­тву­ющие инте­ресу­ющим нас записям.

Раз­гадка загадоч­ной коман­ды в опе­рации
Раз­гадка загадоч­ной коман­ды в опе­рации

Та­ким обра­зом, мы симули­рова­ли дей­ствия ата­кующе­го с помощью Caldera. С этим фрей­мвор­ком лег­ко про­вес­ти ата­ку подоб­но Red Team и про­качать навыки Blue и Purple Team.

Заключение

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

Ка­кие выводы мож­но сде­лать, про­ана­лизи­ровав эту смо­дели­рован­ную ата­ку?

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

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

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер и компьютерный ниндзя. Новые статьи в нашей Телеге!

Добавить комментарий