Глава 7. Знай своего врага

Как правило, человеческий мозг склонен отбрасывать отрицательные мысли, быстро отвлекая себя более приземлёнными и радостными соображениями. Однако невольно сталкиваясь с суровой и неприятной реальностью, он внезапно изрыгает все негативные последствия, о Когда ты пойман с поличным при попытке взлома, у тебя появляются видения серии вызывающих панику ситуаций от ночного рейда группы спецназа до всей жизни целиком, проведённой в тюрьме, где раз в год приветствуют семью через стеклянное окно.

Но давайте слегка остынем. Именно для столь мрачных ситуаций мы и потратили своё время на создание двухуровневого стека серверов взаимодействия с нашей целью. Может быть это и неудобно сидеть на протяжении шести часов в холодном вокзале или в кафе для сокрытия своего местоположения, но такая цена слишком смехотворно низка по сравнению с иным вполне вероятным сценарием оказаться в наручниках посреди ночи. При условии того, что наши платформа анонимности и хакерская инфраструктура будут крепко стоять на ногах, мы должны пребывать в относительной безопасности. Итак, давайте не будем слишком бояться попасть в тюрьму, а вместо этого попытаемся разобраться как нас вычислили и с какими именно системами безопасности мы столкнулись.

Исследование места преступления

Давайте детализируем наши действия до сих пор. Мы запустили чистую фишинговую компанию по сбору учётных записей при помощи веб- страницы, которую каждый пользователь имел возможность отобразить лишь один раз. Нам известно, что наше электронное письмо оказалось убедительным, ибо мы собрали 35 паролей. Тридцать шесть часов спустя мы подключились к экстранет- сайту Citrix, воспользовавшись частным сервером, располагающемся в Лондоне, где базируется большое число персонала Strat Jumbo чтобы это выглядело убедительным.

Пока ничего подозрительного. Вполне вероятно, что была обнаружена наша фишинговая компания, или о ней сообщил какой- то сотрудник, однако если ИТ- команды зайдут столь далеко, что заставляют всех сотрудников сбрасывать свои пароли после всякой попытки фишинга, их уволят в течение нескольких недель. Кроме того, когда мы сверялись с журналами в своём веб- сервере, они не показывали никаких необычных проверок нашей фишинговой страницы. Весь обмен закончился через 17 часов после начала нашей компании. Таким образом наша фишинговая компания не является виновницей.

Кроме того, нам известно, что наш Лондонский сервер атаки не был помещён в чёрный список после этих событий, ибо мы всё ещё способны осуществлять доступ к атакуемой платформе Citrix. Всякий порядочный исследователь проследил бы след учётной записи Лауры до сервера Cirix и обнаружил бы файл нашего проекта MSBuild, который мы сбросили с целью обхода режима с Ограничением языка. Данный файл в явном виде указывал бы на злой умысел, а следовательно спровоцировал бы блокировку того IP, с которого было установлено наше подключение (наш атакующий сервер), но этого не случилось.

Судя по всему, команда безопасности просто сбросила пароли в экстренной попытке заблокировать или предотвратить возможную атаку. Это быстрое и ощутимое действие по облегчению симптомов, которое указывает на то, что они не выявили основную причину данной проблемы. Мы подождём несколько дней, чтобы узнать не предпримут ли они какие- либо активные действия против наших IP адресов, передового сервера и фишингового веб- сайта. Это даст нам достойное представление об их навыках реакции на происшествия.

Ничего. Никакие отдельные запросы не достигали наших серверов.

Отлично. Давайте продолжим свой обращённый в прошлое сеанс. После приземления на атакуемый сервер Citrix мы вызвали кучу ошибок при игре с правилами AppLocker. Быть может это вызвало некое предупреждение. Точно так же мы могли бы предупредить синюю команду, когда пытались вызывать запрещённые режимом с Ограничениями языка методы PowerShell. Такие ошибки вряд ли можно квалифицировать как серьёзные инциденты, но они могли бы быть выявлены каким- то инструментарием мониторинга, анализирующим журналы.

Далее следовал этап разведки вручную. Мы можем не винить все локальные команды, подобные ipconfig и net localgroup, поскольку это естественные команды, которые не отправляют никакого обмена и обычно не взводят флаг в продуктах безопасности. Прочие команды net, такие как net group /domain и net group "domain admins" /domain, с другой стороны могут оказаться виновницами. Такие виды команд испускают пакеты к контроллерам домена, той всемогущей группе серверов, которые выполняют аутентификацию пользователей в Active Directory и осуществляют доставку конфигураций систем. Эти команды способны запрашивать и даже записывать сведения в самих контроллерах домена при помощи удалённого протокола SAM (Security Account Manager, Диспетчера учётных записей безопасности), относящегося к управлению учётными записями между клиентом и сервером формата для обмена данными. Такие данные записываются в некий файл в виртуальном общем ресурсе, присутствующем по умолчанию во всех компьютерах Windows: общем ресурсе IPC$. . Рисунок 7.1 отображает как SAM подключается к совместному ресурсу IPC$ для считывания и записи сведений.

 

Рисунок 7.1


Перехваченные Wireshark данные управления учётной записью

Вслед за этим обменом, наш сервер возвращает описывающие объекты безопасности данные, такие как учётные записи, группы и домены, причём в формате, который отвечает протоколу SAM (Security Account Manager Remote), что отражено на Рисунке 7.2.

 

Рисунок 7.2


Возвращаемые нашим сервером данные, описывающие объекты безопасности

Хотя это совершенно законный способ взаимодействия с системой, факт в том, что SAMR редко применяется в реальной среде, поэтому его можно рассматривать как подозрительную активность. Большая часть программного обеспечения и приложений промежуточного уровня обычно запрашивают у контроллеров домена сведения при помощи более распространённого языка протокола LDAP, в то время как ИТ- администраторы полагаются на такие команды как Get-ADuser и Set-ADuser, часть модулей администрирования AD PowerShell. Эти команды взаимодействуют с веб службами AD DS (Active Directory Domain Services) при помощи (веб) запросов SOAP по порту 9389. Сколь бы маловероятным это не казалось, принимая во внимание их политики и столь быстрый ответ, нам не следует отбрасывать возможность того, что Strat Jumbo пометил этот необычный обмен с его контроллерами домена.

Эти смутные намёки на вторжение могли усилиться, когда мы загрузили PowerView и запустили полные разведывательные пакеты. Теперь то нам известно, что эти команды были зарегистрированы и отправлены в единое место и, тем самым, потенциально могли бы быть обнаружены неким продуктом безопасности. Затем мы проследовали ещё дальше и запустили безумно шумную команду Invoke-ShareFinder. Давайте посмотрим что превращает данный сценарий в столь громкий. В Листинге 7.1 цикл обходит все машины из AD и подключается к каждой из них для получения перечня общих ресурсов.

 

Листинг 7.1. Шумный цикл в Invoke-ShareFinder


foreach ($server in $servers){
    $counter = $counter + 1
    Write-Verbose "[*] Enumerating server $server ($counter of $($servers.count))"
    --snip--
    if(-not $NoPing){
        $up = Test-Server -Server $server
    }
--snip--
$shares = Get-NetShare -HostName $server
--snip--
 	   

Мы инициируем настолько много запросов на совместные ресурсы, сколько имеется серверов. Внезапно открывающий 60, 100 или 200 сетевых сеансов отдельный пользователь запросто может вызывать пронзительное предупреждение безопасности изо всех сил. Вполне может быть, что именно это стало той последней каплей, которая побудила команду безопасности всерьёз задуматься о предыдущих расплывчатых сигналах, неким образом соединить эти пункты и решить "на всякий случай" сбросить все пароли.

Естественно, это всего лишь основанная на чистых слепых рассуждениях гипотеза, поэтому давайте попробуем частично подтвердить свою версию, проведя более тщательный анализ полученных нами от Strat Jumbo сведений. Если мы сможем выяснить с какой именно безопасностью мы столкнулись, мы сможем быть более уверенными в том на чём нас поймали.

Выявляем врага

SIEM (Security Information and Event Management, Информация о безопасности и управление событиями), мониторинг сетевой среды, аналитика угроз, EDR (endpoint detection and response, выявление конечных точек и реагирование на них), глубокая проверка пакетов - все эти блестящие инструменты и методы защиты часто обладают центральной консолью управления, которая применяется для настройки политик и отображает красивые информационные панели. Такие консоли, нередко просто выступая в качестве корпоративных активов, как правило для аутентификации администраторов пользуются Active Directory. Применение AD позволяет избегать применения локальных общих учётных записей и упрощает управление пользователями, размещая пользователей в чётко обозначенные группы. Некоторое программное обеспечение даже требует учётных записей домена для получения сведений о рабочих станциях, учётных записях пользователей, журналов Windows и тому подобного.

Видите к чему я клоню? Нам посчастливилось получить учётные записи пользователей и сведения о группах когда мы поместили оболочку в атакуемом сервере Citrix, прежде чем нас выкинули из этой сетевой среды. Нам просто следует просмотреть эту информацию, ища относящиеся к группам безопасности, известным производителям средств защиты или продуктов анализа пакетов ключевые слова, которые выявляют наличие инструмента безопасности. Начнём мы с базового перечня ключевых слов и постепенно расширим его по мере необходимости: SOC (для security operations center, центра управления безопасностью), threat (угроза), CERT (для Computer Emergency Response Team, группы реагирования в чрезвычайных ситуациях компьютеров), SIEM и так далее. Мы выполняем быстрый grep по своему файлу groups.txt с некоторыми из этих отобранных ключевых слов:


root@FrontLine:~# grep -Ei "soc|siem|threat|security|log|cert|sec|cisrt" groups.txt
Backup Operators                                      Backup Operators can override...
Remote Desktop Users                                  Members of this group...
Performance Log Users                                 Members of this group...
Event Log Readers                                     Members of this group...
Protected Users                                       Members of this group...
Soc_Team                                              QRadar admin team1
Microsoft Advanced Threat Analytics Administrators ...2
		

Этот простой поиск по ключевым словам немедленно выявляет нам верных противников: QRadar SIEM1 и Microsoft Advanced Threat Analytics (ATA)2. Это те два инструмента, которые ИТ персонал применяет для обнаружения наших действий и, именно то что нам требуется чтобы избегать их срабатывания, раз мы желаем продолжать двигаться вперёд.

QRadar это инструмент мониторинга событий безопасности. Он агрегирует журналы, передаваемые различными системами, такими как Windows, межсетевые экраны, коробки Linux и ставит им в соответствие предварительно определённые правила безопасности. Например, администраторы могут отслеживать такие хорошо знакомые сценарии взлома:

  • Успешную аутентификацию во множестве устройств одной учётной записью

  • Множество отказов в аутентификации из одной и той же учётной записи

  • Большое число нарушений доступа на чтение в определённой машине

  • Сканирование портов (множество запросов портов в определённой машине)

  • Изменение локальных или глобальных групп с привилегиями (администраторов домена, администраторов и им подобных)

  • Кража учётных данных, выявленных путём поиска событий, связанных с манипуляцией LSASS (Local Security Authority Subsystem Service, службой подсистемы локальной безопасности) - идентификаторы событий 4614, 4610, 4611 и 4622

Конечно, мы не знаем кто именно из этих администраторов Strat Jumbo выполняет мониторинг, но мы можем предположить, что там включены классические атаки PowerShell, поскольку они удосужились включить ведение журнала Блоков сценариев (Script Block Logging).

Нам следует избегать применения готовых инструментов, поскольку мы можем быть уверены, что группы безопасности будут помечать общие команды из сред с открытым исходным кодом, таких как PowerView и Empire, фильтровать такие строки как PowerUp, Invoke-UserHunter, PowerView и так далее.

Если вы считаете это плохой новостью, подождите, пока не услышите про Microsoft ATA. ATA подключается к обмену Active Directory в поисках подозрительного поведения. Рисунок 7.3 отображает его общую архитектуру, согласно Microsoft.

 

Рисунок 7.3


Общая архитектура ATA

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

 

Рисунок 7.4


Отмечаемый подозрительным обмен

Отличительные признаки атак аналогичны решению некого антивируса, но работает с запросами, отправляемыми в контроллер домена. ATA ищет контрольные признаки, указывающие на следующие типы атак:

  • DNS Zone transfer При которых мы пытаемся выгрузить все записи DNS с целью разведки в домене

  • SAMR reconnaissance Например, перечисление пользователей и групп через семейство команд .NET, таких как net user /domain

  • Pass-the-hash Где мы отправляем хэш NT пароля и таким образом способны выполнять аутентификацию в машине Windows без реального знания пароля

  • Overpass-the-hash and pass-the-ticket Когда мы выделяем билеты Kerberos из некого активного пользователя и воспроизводим их в контроллере домена с тем, чтобы выдавать себя за этого пользователя. Позднее в этой книге мы углубимся в Kerberos

  • Golden ticket requests Здесь мы подделываем действительный на протяжении 10 лет билет Kerberos и пользуемся им для сохранения своих с трудом завоёванных привилегий администратора домена

  • Session enumeration К примеру, перечисление активных пользователей в некоторой машине

  • DCSync Это когда мы пользуемся повторяющейся репликацией AD свойств для выделения всех хэшей паролей из данного контроллера домена. Через мгновение мы вернёмся к этому.

Я почти слышу ваш вздох: "Но как мы можем взломать компанию без Pass-the-hash и DCSync?" Настало время проявить немного творчества! Одно можно сказать наверняка: атака на Strat Jumbo для проникновения в G&S Trust может оуказаться не столь быстрым и простым путём, как мы ожидали.

Ресурсы