Гайд от белого хакера, который прошел через огонь, воду, несколько битв и кучу атак

на кибербитве Standoff
Как |
Капитан одной из лучших команд кибербитвы Standoff составила исчерпывающий гайд для всех редтимеров, которые хотят стать частью легендарного ивента и быть в числе лидеров
Если ты это читаешь — значит, ты интересуешься кибербитвой Standoff.

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

Опыт, который описан в тексте, полноценно принадлежит команде Cult. Если вы обнаружите расхождение со своим опытом, я (капитан команды Cult — N3m351d4) и все комьюнити будем рады узнать, как участвует в Standoff ваша команда.

Одно из заблуждений, останавливающих новичков, — уверенность в том, что команды делают нечто невообразимо сложное. Это абсолютно неверно: на самом деле для решения любой задачи достаточно знаний среднестатистического специалиста по анализу защищенности, а добрая треть задач поддастся даже студенту, имеющему опыт игры в CTF и решения уязвимых машин на любой из доступных площадок. Выиграть можно, но готовьтесь приложить усилия. Моя команда добилась отличных результатов благодаря агрегации информации и обмену знаниями на протяжении нескольких лет. Это говорит о том, что нет ничего невозможного!

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

@n3m351da
Капитан команды ℭ𝔲𝔩𝔱
Привет!
Прочитав этот гайд, ты станешь самодостаточным, станешь хранителем знаний и мудрости. Только самые упорные пройдут путь целиком, не пропуская шагов, и познают все истины. А если ты найдешь 7 пасхалок, скрытых в разделах гайда, тебя ждет поистине королевская ачивка на платформе Standoff 365.
Карта гайда
Здесь начинается твой путь
|
Здесь заканчивается твой путь по гайду
Системы, развернутые на онлайн-полигоне, во многих аспектах схожи с инфраструктурой кибербитвы Standoff. Поэтому я настоятельно рекомендую вам ознакомиться с ними.

По задумке разработчиков, онлайн-полигон является моделью государства либо нескольких государств, представленных набором виртуальных компаний и отраслей экономики. Большинство отраслей на полигоне являются системообразующими для реальных государств: подобные инфраструктуры либо их части могут быть категорированы как КИИ.

Одна из критически важных отраслей — энергетика. На полигоне в качестве примера энергетической компании представлена HighTechEnergy.
Как и в реальной жизни, инфраструктура компании в виртуальном государстве может быть представлена несколькими веб-приложениями, доступными извне: к примеру, сайтом и веб-сервисами для сотрудников и клиентов. Помимо этого, организация может иметь свой почтовый сервер, CRM-систему и файловые хранилища, доступные из корпоративной VPN. Не стоит забывать и о пользователях — их рабочие станции зачастую объединены в домен для удобного администрирования. Сами пользователи имеют разные должности и права, в том числе на доступ к сетевым корпоративным ресурсам.

Инфраструктуры компаний могут быть схожими, но технологический сегмент всегда является уникальным. Получение несанкционированного доступа к нему повлечет за собой реализацию самых весомых критических событий, задевающих благосостояние всего виртуального государства.
Выше изображено схематичное представление виртуального офиса: внешний и внутренний периметр, пользовательский, серверный и технологический сегмент.
Из чего состоит онлайн-полигон
Рисунок 2
Рисунок 1
Внешний периметр онлайн-полигона во время соревнований может быть представлен по-разному. Рассмотрим два наиболее часто встречающихся варианта:
— Классический — аналогичный внешнему периметру компаний на онлайн-полигоне Standoff (рис. 2). Может быть представлен несколькими эксплуатируемыми веб-приложениями, среди которых обязательно будет сайт компании, и VPN-сервером (для подключения сотрудников к внутренней сети).
— С гейтами (рис. 3). Гейт — это сервер с одним или несколькими веб-приложениями, имеющий сетевую связность с внутренней сетью (классический вариант может подобной связности не иметь).
В зависимости от способа организации внешнего периметра изменяются количество и варианты путей получения первоначального доступа. Далее мы рассмотрим, какие векторы атак применимы к каждой из схем.
Внешний периметр и его разновидности
Рисунок 3
При организации периметра первым, классическим способом могут быть следующие варианты развития событий (рис. 4).

Первый вариант — соберите информацию с веб-сервисов внешнего периметра. Там можно обнаружить VPN-конфигурацию и адреса электронной почты доменных пользователей для подключения к внутренней сети. Дополнительно, используя полученную информацию, можно провести фишинговую атаку: отправить письма под учетной записью, предоставленной организаторами. После этого инициируйте VPN-подключение к внутренней сети.

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

Следует отметить, что, когда на внешнем периметре есть гейты, организаторы не предоставляют участникам учетные записи для фишинга. Соответственно, чтобы провести фишинговую атаку, потребуется собрать информацию, подобрать учетные данные или выполнить другие манипуляции для получения доступа к почтовому серверу и последующей отправки писем.
Как ломать внешний периметр
Рисунок 4
Рисунок 5
Представим, что вы выбрали компанию, которую будете атаковать, прочитали ее описание и узнали, что скоуп внешнего периметра выглядит так, как на рисунках ниже.
В случае если вам дан диапазон IP-адресов, имеет смысл сначала определить работающие узлы, а уже затем — открытые порты и доступные сетевые сервисы. Таким образом, разведка внешнего периметра пройдет быстрее. Если внешний периметр представлен набором известных IP-адресов, то можно сразу приступать к поиску открытых портов и определению сервисов.

Зачастую перед началом кибербитвы организаторы дают командам файлы с результатами сканирования внешнего периметра утилитой nmap, чтобы снизить нагрузку на сеть. Если вам предоставили подобный файл, вы сразу можете приступить к сбору информации и поиску уязвимых сервисов, минуя разведку. К сожалению, на следующий день внешний периметр может слегка поменяться и вам потребуется провести сканирование заново.
Какие же утилиты использовать для разведки сети? Существует огромное количество сканеров с открытым исходным кодом, которые можно скачать или получить в составе дистрибутивов, таких как Kali Linux. Например, сканировать сеть, искать открытые порты и определять сервисы можно с помощью следующих инструментов:
• nmар (и другого софта на его основе, например Zenmap). Он крайне популярен у пентестеров и имеет огромное количество параметров для любого случая.
• masscan .

Перед сканированием сети важно не только выбрать нужные параметры, но и верно задать ограничение на количество отправляемых сканером запросов в секунду, иначе вас могут заблокировать. «Наш маленький секрет»
Разведка сети и сканирование портов
Рисунок 6
Рисунок 7
Получив список IP-адресов, открытых портов, имеющихся сервисов и их версий, вы можете приступить к дальнейшему сбору информации:
— Если вам доступен веб-сервер, поищите на нем дополнительную информацию. Например, соберите адреса электронной почты, указанные на сайте, чтобы позже провести фишинговую атаку. Дополнительно попробуйте найти скрытые страницы и директории веб-сервиса с помощью перебора — в этом вам помогут утилиты dirsearch, gobuster и их многочисленные аналоги. Так можно выявить потенциально важные для реализации критических событий файлы, информацию о версии веб-сервиса и его плагинов, о версии сервера и прочие данные.
— Если вам встретились сервисы, работающие по протоколу SMB или FTP, можно попробовать получить к ним анонимный доступ или провести атаку с перебором паролей (например, при помощи Hydra).

На первоначальном этапе можно найти известные уязвимости и эксплойты, опираясь на информацию о версиях сервисов, полученную по результатам сканирования. Для этого используются:
— Exploit Database — сайт, на котором хранятся эксплойты к некоторым уязвимостям (или SearchSploit, его версия для командной строки).
— Сайт cve.mitre.org или его аналоги.
— Поисковые запросы, содержащие название программного обеспечения и его версию: Wing Ftp server 4.3.8 exploit, Wing Ftp server 4.3.8 CVE и т. п.
Обнаружив уязвимый сервис и эксплойт, вы сможете, например, удаленно выполнить код (RCE) на атакуемом вами узле. Но не все уязвимости можно проэксплуатировать подобным образом. Далее мы рассмотрим поиск и эксплуатацию неверсионных недостатков веб-приложений.
Сбор информации и поиск уязвимых сервисов
Итак, представим, что перед нами веб-сервис, не содержащий версионных уязвимостей. Необходимо протестировать его и либо убедиться, что в нем не заложены уязвимости, либо обнаружить недостаток и проэксплуатировать его.
Первый вариант тоже важен: сервисы могут быть развернуты для сбора информации и иного взаимодействия.

За эксплуатацию веб-уязвимостей можно получить баллы, влияющие на вашу позицию в рейтинге. На рисунке ниже представлен список уязвимостей, отчеты о которых принимает жюри.
Немного о каждом из перечисленных типов:
— Path Traversal — часто встречается на онлайн-полигоне и довольно просто эксплуатируется.
— SQLi — вторая по частоте в моем личном рейтинге. Обычно ее можно проэксплуатировать перехватив запрос к сервису с помощью Burp Suite и использовав sqlmар.
— SSRF и XXE — очень редко встречаются на онлайн-полигоне.
— RCE — выполнить код на целевом устройстве зачастую становится возможно в ходе эксплуатации цепочки уязвимостей (например, вы нашли SQLi и с ее помощью выполнили код).
— LPE — в свою очередь, проэксплуатировать эту уязвимость невозможно без предварительного выполнения кода (то есть без RCE).

Как искать подобные уязвимости, в двух словах рассказать не получится. Почитать о том, что они собой представляют, можно на сайте OWASP. Там же можно ознакомиться с методологией тестирования веб-приложений (OWASP Web Security Testing Guide).

Еще вам обязательно пригодятся:
— Платформа Burp Suite — для тестирования приложений.
— Web Security Academy (PortSwigger) — для тренировки навыков.
— Инструмент sqlmap — для внедрения SQL-кода (конечно, с ограничением количества отправляемых запросов).
— Скрипты LinPEAS и WinPEAS — для поиска векторов повышения привилегий (LPE) в системах.
— Минимальные знания и опыт поиска веб-уязвимостей, которые можно получить участвуя в bug bounty (например, на платформах CTFlearn, Root Me, Standoff Bug Bounty, TryHackMe).
Поиск и эксплуатация веб-уязвимостей
Рисунок 8
Если вам удалось проэксплуатировать уязвимость типа RCE либо LPE на одном из узлов внешнего периметра, имеет смысл определить:
— пользовательские файлы (ключи, документы, скрипты, VPN-конфигурации);
— запущенные сервисы (например, обнаружив базу данных SQL, можно получить учетные данные для спреинга);
— сетевые интерфейсы и их связность с другими сетями (например, веб-сервер внешнего периметра типа «гейт» обязательно имеет доступ к ранее недоступной вам подсети — вы сможете просканировать ее, развернуть прокси-сервер и получить доступ к новым серверам).
Постэксплуатация на узлах внешнего периметра
Как уже говорилось ранее, иногда возможно получить доступ к внутренней сети через узлы внешнего периметра. Но помимо этого, на онлайн-полигоне реализована механика фишинга, представленная в двух вариантах:
— Участники получают учетные записи на внешнем почтовом сервере, с которого должны проводиться атаки.
— Учетные данные не выдаются, и фишинговые атаки проводятся с почтового сервера во внутренней сети.

Для того чтобы отправлять фишинговые письма, необходимо заранее найти доменные адреса электронной почты пользователей. Обычно они имеют вид g_loves@city.stf, где g — первая буква имени пользователя, loves — фамилия, city — название компании, stf — повторяющийся домен верхнего уровня. Адреса часто можно собрать с узлов на внешнем периметре.

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

Если вы отправили письмо на верный адрес, вам ответит бот. Варианты ответа зависят от того, было ли вложение открыто и запущено. Соответственно, если бот пишет, что не видит вложения, — вы прикрепили файл не того формата либо с полезной нагрузкой что-то не так. Если же бот отвечает, что ваше письмо — это то, чего он ждал, либо что он получил файл и у него все работает, значит, ему удалось открыть ваше письмо и запустить полезную нагрузку. Если бот не ответил на письмо в течение 10 минут, имеет смысл написать в поддержку и узнать, корректно ли он работает и должен ли этот пользователь читать письма (не все это делают).

Далее расскажем, как создать письмо с вложением для фишинга на онлайн-полигоне.
Механики фишинга
Фишинговое письмо должно содержать полезную нагрузку, позволяющую выполнить команду на компьютере сотрудника компании. На полигоне боты могут открывать письма с различной вредоносной нагрузкой — это может быть, например, файл, ссылка или плагин.

Рассмотрим создание вредоносной нагрузки на примере файлов Microsoft Word формата DOC, наиболее часто используемых для фишинга. В подобных файлах есть поддержка макросов, с помощью которых можно выполнять код на компьютере жертвы (при условии, что она разрешит выполнение макроса).

Существует большое количество способов создания макросов: можно писать их самостоятельно либо использовать утилиты для генерации (например, msfvenom и macro_reverse_shell). Скрипт macro_reverse_shell также популярен для генерации макросов для фишинга. Запуская его, необходимо указать IP-адрес вашего устройства и порт, на котором вы будете слушать входящие соединения, развернуть слушатель на указанном выше порте (например, с помощью nc) и отправить письмо с макросом на адрес для фишинга. Если все сделано верно, то вы получите доступ к компьютеру сотрудника виртуальной компании.

Протестировать советы и скрипты вы можете на онлайн-полигоне Standoff. Следует учитывать, что на новых сегментах полигона работает антивирус — Windows Defender. Однако спустя некоторое время другие пользователи могут его отключить, и вы встретите меньше трудностей, чем на соревнованиях Standoff.

Далее рассмотрим, как подготовить полезную нагрузку, не детектируемую антивирусными решениями.

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

Тестирование проходит следующим образом:

1. Разверните две виртуальные машины и настройте между ними сеть. Если вы тестируете фишинг для Windows, то одной из виртуальных машин должна быть система с Windows, а второй — атакующая система, с которой будет установлено соединение.
2. Создайте документ и запишите в него сгенерированный макрос с указанием порта и адреса атакующей виртуальной машины, на которой развернут слушатель.
3. Откройте документ и разрешите выполнение макроса.

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

Чтобы обойти антивирус, вы можете:
— найти альтернативные скрипты для генерации нагрузки;
— самостоятельно написать обфусцированный код;
— поискать обфускаторы для макросов в интернете и на GitHub.

Когда полезная нагрузка заработает на целевой машине, вы можете попробовать протестировать ее в системе, имеющей доступ в интернет. Вот несколько статей, в которых описан процесс обхода антивируса:
— Malicious VBA Macro’s: Trials and Tribulations — статья о генерации полезной нагрузки для фишинга с последующей обфускацией макроса с помощью EvilClippy и macro_pack и с обходом антивируса.
— VBA Obfuscation — сборник утилит для обфускации макросов.
— MS Word Macros with Powercat Reverse Shell — подробный пример создания письма с вредоносным макросом для ранних версий Windows.

Ориентируясь на указанные выше статьи и обращаясь с подобными запросами к интернету, вы сможете узнать о большом количестве способов обхода антивирусов, в частности Windows Defender.

Важно понимать, что подобрать работающий обфускатор или генератор макросов — задача достаточно сложная и ресурсоемкая: как только новый софт появляется в открытом доступе, разработчики антивируса стараются нивелировать его действие.
Обход антивируса
Внутренний периметр виртуальной компании или отрасли зачастую делится на следующие сегменты (рис. 9):

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

Файловый сервер — на нем можно найти файлы, относящиеся к критическим событиям (например, к утечке конфиденциальных документов), или учетные данные и другие артефакты.
CRM-система для финансистов или эйчаров — на таком сервере можно найти информацию, относящуюся к критическим событиям (к утечке данных сотрудников или утечке финансовой информации), либо уязвимость и получить за нее баллы;
Почтовый сервер — часто фигурирует в отчетах о реализации критических событий, так как с его помощью осуществляется фишинговая атака, один из важнейших шагов к инфильтрации в сеть виртуального офиса. Помимо этого, в некоторых версиях почтовых серверов могут быть известные уязвимости.
Сервер, на котором развернут GitLab, — если вы видите GitLab или другую платформу для разработки, то нужно попытаться не только проэксплуатировать известные уязвимости, но и собрать информацию (например, учетные данные), оставленную в коде сервисов.

Пользовательский сегмент — это сегмент с рабочими станциями сотрудников виртуальной компании. В домене есть группы пользователей с различными правами:
HR — пользователи, чьи электронные адреса можно найти на внешнем периметре. Зачастую у них несложный и подбираемый брутфорсом пароль. Особых прав в домене нет, но пароль может подходить к учетной записи на HR-портале компании.
Финансовый департамент — учетные данные таких пользователей можно использовать для спреинга на CRM-платформах, связанных с движением финансов компании.
IT-департамент — сотрудники этого департамента могут иметь привилегированные учетные записи на серверах и в сервисах, касающихся разработки программного обеспечения. Ферма ужасов
Администраторы — учетные записи администраторов могут быть трех типов:
■ администратор рабочих станций (WSAdmin, workstation admin) — с неограниченным доступом к рабочим станциям пользователей;
■ администратор серверов (SRVadmin, server admin) — с неограниченным доступом к серверам домена (стоит отметить, что в домен могут быть не введены некоторые серверы: например, в Windows это Exchange и SharePoint, в Linux — Axelor, Dolibarr);
■ администратор домена (domain admin) — самая привилегированная учетная запись в домене.
SCADA-инженеры — это пользователи, которые имеют сетевой доступ к технологическому сегменту.
Директор — у него целесообразно искать конфиденциальные документы для реализации критических событий или данные для получения доступа к закрытым для других пользователей сетевым ресурсам.

Технологический сегмент — это сегмент с доступом к серверам SCADA и программируемым логическим контроллерам. Критические события, реализуемые в этом сегменте, опаснее других за счет того, что эмулируемые системы являются киберфизическими: если в реальной жизни злоумышленник попадет в технологический сегмент и получит доступ к управлению ПЛК, это может вызвать физическое разрушение промышленного оборудования и впоследствии — техногенную катастрофу.
В этом разделе было описано самое простое устройство внутреннего периметра, базово инфраструктура компаний состоит из подобных сегментов. Но вероятно, вам встретится инфраструктура сложнее представленной. Например, в банковском сегменте для разных филиалов банка может быть несколько доменов с разными пользовательскими, серверными и «технологическими» сегментами.
Внутренний периметр
Рисунок 9
Чаще всего инфраструктура компании состоит из Windows-домена, нескольких серверов на Linux и из технологического сегмента (рабочей станции на Windows, не введенной в домен, и ПЛК). О том, как ломать Active Directory, можно почитать в интернете (например, в статье Active Directory Methodology).
Не так давно на соревнованиях Standoff появились домены, состоящие из рабочих станций на Linux. Такие домены строятся с помощью FreeIPA — ПО, функции которого схожи с функциями Active Directory в Windows.
Варианты структуры Active Directory
В подразделе 1.1.1 мы описали векторы атак, с помощью которых вы можете попасть во внутренний периметр компании. Рассмотрим, какие знания и утилиты могут потребоваться, когда вы успешно провели фишинговую атаку и попали на рабочую станцию сотрудника группы HR. «Путь к просветлению»
Как ломать внутренний периметр
Чтобы собрать с рабочей станции дополнительную информацию для перемещения внутри периметра, можно попробовать повысить свои привилегии. Вам пригодятся:
— заранее собранный набор эксплойтов для повышения привилегий в различных версиях Windows — это могут быть инструменты, содержащие в названии слово Potato (часто хорошо отрабатывают на полигоне);
— утилита WinPEAS — для поиска векторов повышения привилегий;
— наборы материалов и чек-листов из интернета по запросу Windows local privilege escalation (например, Checklist — Local Windows Privilege Escalation).
Повышение привилегий
Если вам удалось повысить свои привилегии на узле — это замечательно! В таком случае вы можете собрать максимальный объем полезной информации. Вам пригодятся:

Mimikatz — для извлечения паролей и билетов Kerberos;
BloodHound — для поиска векторов перемещения по Active Directory;
встроенные команды Windows (подробнее — в статье Information Gathering — Windows);
SauronEye — утилита для быстрого поиска данных в файловой системе Windows. На рабочей станции можно поискать файлы форматов:
KDBX (KeePass) — в них могут храниться пароли;
DOC, DOCX, TXT — потенциально содержат заметки пользователей и другие артефакты.

Не на всех узлах есть возможность повысить привилегии. Даже если вам этого не удалось, не стоит пренебрегать поиском по файловой системе.
Не забывайте, что если на узле включен антивирус, он может распознать некоторые из перечисленных утилит, определить их как вредоносные и ограничить ваше взаимодействие с системой.
Сбор информации на узле
У пользователей с разными ролями могут различаться сетевая видимость и права доступа. Например, с АРМ инженера SCADA можно получить сетевой доступ к технологическому сегменту, а с гейта во внешнем периметре — к серверному сегменту. Для того чтобы подключиться к сетевому ресурсу, доступ к которому можно получить только с определенной рабочей станции, необходимо осуществить пивотинг (к примеру, с помощью Chisel).

Для перемещения внутри периметра также применяется спреинг паролей: используются учетные данные и хеш-суммы, полученные на этапе сбора информации, например с помощью Mimikatz. Спреинг возможен, если в целевой системе доступны стандартные порты служб PsExec, WinRM и протоколов SMB или RDP.

Не стоит забывать, что учетные данные некоторых пользователей позволяют получить административные привилегии на недоменных серверах Linux. Это можно использовать, например, для эксплуатации уязвимости типа Authenticated RCE.

Если у вас есть учетные данные разработчика, то имеет смысл осуществить спреинг на платформе GitLab.
С примерами того, как еще можно перемещаться по Active Directory, можно ознакомиться в статье Lateral Movement.
Пивотинг и перемещение внутри периметра
По мере выполнения заданий на онлайн-полигоне будет увеличиваться количество узлов, к которым вы получили доступ. Для того чтобы сохранить ранее полученные права, в несколько кликов поднимать прокси-сервер для пивотинга и запускать автоматизированные инструменты на узлах, используются серверы command and control.

Один из самых известных С2-фреймворков — Metasploit. Вы могли встречать его в составе дистрибутива Kali Linux. С помощью Metasploit можно переключаться между доступными вам узлами и выполнять на них команды.

Развертывание фреймворка и настройка инфраструктуры для его работы — непростая задача. Вам потребуется:
— Выбрать С2-фреймворк — например, Sliver, Mythic, Cobalt Strike. Не все инструменты могут идеально работать с вашей операционной системой. Желательно протестировать каждый из них и выбрать наиболее удобный.
— Развернуть инфраструктуру для фреймворка (подробнее — в статье «Что такое Command and Control? Описание инфраструктуры управления и контроля»).
— Проверить, детектируют ли антивирусы в целевой системе генерируемую фреймворком нагрузку. Если да, принять меры для их обхода, описанные ранее.

Если вам не хватает функций C2-фреймворка, доступных «из коробки», модернизируйте его самостоятельно.
Использование С2-инфраструктуры
Ранее мы говорили о том, что, проходя по внутренней инфраструктуре, можно попасть в технологический сегмент предприятия и реализовать внутри него опасное критическое событие. Например, остановить работу гидроагрегата на гидроэлектростанции или нарушить работу доменной печи.

Киберфизические системы чаще всего состоят из двух частей. Это:
— Узел, обычно с Windows, на котором развернута система SCADA — специализированное программное обеспечение для мониторинга и управления промышленным контроллером.
— Промышленный контроллер (ПЛК), управляющий технологическим оборудованием виртуального предприятия.

Учетные данные от виртуальной машины, на которой развернута SCADA, разбросаны по инфраструктуре в виде артефактов: файлов, паролей из репозиториев и менеджеров паролей.

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

На рисунке ниже представлено несколько векторов реализации критического события в технологическом сегменте.
АСУ ТП
Рисунок 10
Если вам удалось получить доступ к устройству, на котором развернута SCADA, то рассмотрите следующие векторы реализации критического события:
— Использование стандартных или «пустых» учетных данных для авторизации в интерфейсе SCADA.
— Повышение привилегий в системе, поиск учетных данных в конфигурационных файлах и использование их для дальнейшей авторизации.
— Модификация конфигурационных файлов и смена пароля в SCADA, если это возможно без повышения привилегий.

Если вы изменили конфигурацию или сменили пароль, сообщите об этом организаторам либо самостоятельно верните систему в исходное состояние.
SCADA
Если вам не удалось получить доступ к интерфейсу SCADA, то, возможно, задание решается путем прямого взаимодействия с ПЛК. В таком случае можно рассмотреть следующие векторы атаки:
— Подключиться к контроллеру напрямую и внести изменения в прошивку, используя специальное программное обеспечение (зачастую предоставляемое производителем на официальном сайте).
Если вы изменили прошивку или конфигурацию контроллера, сообщите об этом организаторам или самостоятельно верните систему в исходное состояние.
— Авторизоваться в веб-интерфейсе контроллера, а затем отправить ему команду STOP.
— Отправить команду STOP с помощью специального сетевого протокола (последний шаг к реализации критических событий, в названии которых фигурирует слово «остановка» — например, «остановка гидроагрегата»).
— Отправить команду FORCE после авторизации на контроллере с помощью специального сетевого протокола (последний шаг к реализации критических событий, в названии которых фигурирует слово «авария»).

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

Путь к компрометации системы, например к эксплуатации RCE, LPE или к реализации критического события, зачастую состоит из цепочки шагов. Матрица MITRE ATT&CK описывает тактики и техники, которыми пользуются злоумышленники. Тактики разделены на столбцы по этапам кибератаки — от разведки и первоначального доступа до эксфильтрации данных из корпоративной сети.

На сайте Standoff 365 представлена матрица MITRE ATT&CK для Standoff 13. Здесь можно отфильтровать техники, заложенные в заданиях на онлайн-полигоне, — их более 76% от общего количества. Перец соревнованиями настоятельно рекомендуем ознакомиться с этой матрицей, убедиться, что вы знакомы с большинством техник, и постараться заполнить пробелы (рис. 11).
Матрица MITRE ATT&CK и дополнительные знания
Рисунок 11
Во время соревнований вы будете взаимодействовать не только с виртуальной инфраструктурой, но и с порталом Standoff 365.
Взаимодействие с полигоном
Для того чтобы участвовать в соревнованиях, необходимо подать заявку. У вас должна быть учетная запись на сайте Standoff 365, а также группа, куда вы добавите членов команды, с логотипом и описанием (рис. 12).
После того как ваша заявка будет принята, на странице кибербитвы вам станут доступны все разделы и материалы:
— конфигурационный файл VPN (рис. 13);
— дополнительные ресурсы — словари для перебора паролей, учетные записи и банковские реквизиты;
— описания заданий.
Взаимодействие с порталом Standoff 365
Рисунок 12
Рисунок 13
Перед соревнованиями уточните у организаторов, какой протокол будет использоваться для подключения к инфраструктуре. Убедитесь, что провайдеры членов команды его не блокируют.
Доступные вам задания делятся на два типа: задания на поиск уязвимостей и задания на реализацию критических событий.
Получить баллы за найденную уязвимость можно двумя способами:
1. Отправить на портал флаг (сдать отчет с автопроверкой) — флаги встречаются на узлах внешнего периметра (гейтах, о которых мы говорили ранее). Подробнее о том, как получить флаг на проэксплуатированном узле, — в статье «Как заработать баллы» на справочном портале.
2. Написать отчет об уязвимости для жюри — если узел находится во внутреннем периметре (DMZ).

К отчету для жюри необходимо приложить скриншот, демонстрирующий эксплуатацию уязвимости, или другое доказательство. Пример отправленного мной отчета об уязвимости Path Traversal — на рисунке ниже (на скриншоте демонстрируется ответ сервера с содержимым файла /etc/passwd). Возможные доказательства в зависимости от типа уязвимости:
— Внедрение SQL-кода — скриншот с содержимым базы данных.
— Удаленное выполнение кода (RCE) — вывод команд whoami и hostname.
— Повышение привилегий (LPE) — вывод команд whoami и id.

Как сдавать отчеты об уязвимостях
Рисунок 14
На странице критического события есть вкладки «Описание» и «Задание». Для того чтобы правильно понять, что требуется сделать, я рекомендую внимательно читать содержимое обеих вкладок.

Чтобы реализовать критическое событие, необходимо предварительно прочитать описание сегмента и самого события. Так как в задании не указываются конкретные адреса нужных узлов, важно правильно интерпретировать текст. Из него зачастую понятно, связан ли узел с веб-приложением, устройством из DMZ или со SCADA. Бывает и так, что в описании указаны должность и имя целевого пользователя.

Если в тексте говорится об утечке персональных данных сотрудников из ERP-системы, мы можем предположить, что подобная система находится во внутреннем периметре, в сегменте с серверами. Доступ к ней будет у пользователей, ответственных за наем сотрудников. Если в тексте сказано «Получите доступ к компьютеру главного бухгалтера», можно понять, что необходимо обратить внимание на пользовательский сегмент. Если по заданию необходимо остановить работу гидроагрегата на ГЭС, это ведет нас в технологический сегмент сети.

В разделе «Заполнение шагов» на справочном портале можно прочитать о том, как заполнять отчеты о реализации критических событий, и об основных ошибках.
Для каждого шага в отчете есть большая форма (рис. 15). Заполнять ее достаточно долго и муторно, но нужно запастись терпением. «Роковые яйца»
Как сдавать отчеты о критических событиях
Далее представлен верно написанный отчет нашей команды о реализации критического события «Утечка персональных данных офисных сотрудников».
УК City | Утечка персональных данных офисных сотрудников
Рисунок 15
Шаг № 1
Выполненное действие
Проведение фишинговой атаки с вложением.

Время атаки или временной интервал
17 мая, 14:50 — 17 мая, 14:55

Описание атаки и используемой уязвимости (или CVE)
Пользователю был отправлен фишинговый документ .doc под видом резюме c адреса ckirkland@apps.stf на адрес T_Santos@city.stf.

Источник атаки (IP-адрес или FQDN)
XXX.XXX.XXX.XXX

Используемый доступ или учетная запись
T_Santos

Цель атаки (IP-адрес или FQDN)
10.156.14.135

Путь к файлу (необязательно)
C:\ProgramData\server.dll

Результат атаки
Получен доступ к машине 10.156.14.135 от лица пользователя T_Santos (17.05.2023 16:50).
Шаг № 2
Выполненное действие
Повышение привилегий на ресурсе.

Время атаки или временной интервал
17 мая, 16:53 — 17 мая, 16:55

Описание атаки и используемой уязвимости (или CVE)
При помощи Sweet Potato были повышены привилегии на узле.

Источник атаки (IP-адрес или FQDN)
XXX.XXX.XXX.XXX

Используемый доступ или учетная запись
T_Santos

Цель атаки (IP-адрес или FQDN)
10.156.14.135 Темная душа Блэкхолла

Путь к файлу (необязательно)

Результат атаки
Получен доступ к машине от имени системы.

Шаг № 3
Выполненное действие
Получение дампа учетных данных.

Время атаки или временной интервал
17 мая, 17:10 — 17 мая, 17:30

Описание атаки и используемой уязвимости (или CVE)
С помощью mimikatz дампим пароли пользователей на машине.

Источник атаки (IP-адрес или FQDN)
XXX.XXX.XXX.XXX

Используемый доступ или учетная запись
SYSTEM

Цель атаки (IP-адрес или FQDN)
10.156.14.135

Путь к файлу (необязательно)


Результат атаки
Получен пароль city\t_santos:XXXXXXXXXXXXXXX.

Шаг № 4
Выполненное действие
Сбор информации об узлах.

Время атаки или временной интервал
18 мая, 14:19 — 18 мая, 14:21

Описание атаки и используемой уязвимости (или CVE)
С хоста было произведено сканирование сегментов City с целью обнаружения веб-приложений.
portscan 10.126.11.0/24,10.156.12.128/25, 10.156.13.0/25, 10.156.13.128/25,10.156.14.0/25, 10.156.14.128/25, 10.156.15.0/25,10.156.15.128/25,10.156.18.0/25, 10.156.16.0/25, 10.156.16.128/25,10.156.17.0/25, 10.156.17.128/25,10.156.12.0/25,10.156.18.128/25 80,443

Источник атаки (IP-адрес или FQDN)
10.156.14.135

Используемый доступ или учетная запись
SYSTEM

Цель атаки (IP-адрес или FQDN)
10.156.12.166

Путь к файлу (необязательно)


Результат атаки
Обнаружена ERP-система Axelor на хосте 10.156.12.166.
Шаг № 5
Выполненное действие
Повышение привилегий на ресурсе.

Время атаки или временной интервал
18 мая, 14:40 — 18 мая, 14:46

Описание атаки и используемой уязвимости (или CVE)
Используя SOCKS5-соединение, организованное с помощью Beacon (Cobalt Strike), получили доступ к веб-приложению axelor.city.stf (10.156.12.166). В приложении удалось аутентифицироваться с учетными данными T_Santos:XXXXXXXXXXXXXXX.
Используя запрос, представленный ниже, получили права администратора.
Источник атаки (IP-адрес или FQDN)
10.156.14.135

Используемый доступ или учетная запись
T_Santos

Цель атаки (IP-адрес или FQDN)
10.156.12.166

Путь к файлу (необязательно)


Результат атаки
Для пользователя T_Santos получены права администратора в веб-приложении.

Шаг № 6
Выполненное действие
Реализация недопустимого события.

Время атаки или временной интервал
18 мая, 15:25 — 18 мая, 15:25

Описание атаки и используемой уязвимости (или CVE)
Используя запрос GET /axelor/XXX/XXX/XXX, определили эндпоинты для выполнения запроса GET /axelor/ZZZ/ZZZ/ZZZ и получения данных.
Используя запросы GET /axelor/ННН/ННН/ННН и GET /axelor/YYY/YYY/YYY, получили персональные данные офисных сотрудников.

Результат атаки
Удалось получить информацию о сотрудниках, включая данные из полей Name, Birth date, Marital status, Social security number, Pay company, Employment, Company department, Annual gross salary.
Полученные данные в формате JSON: employee.json, EmployeeContract.json. Записи в этих файлах связаны по полю employmentContractList.

|

1. Из employee.json:
Name: P0003 - Fischer Carie;
Birth date: 1990-05-08
Marital status: 2
Social security number: 873360-167033
employmentContractList:
0:
fullName: P0003 - Fischer Carie-2019-09-16
id: 2
2. Из employee_contract.json:
Pay Company:
code: CT
name: City
id: 1
Employment: Junior 1 BANK
Company department:
code: BANK
name: Bank department
id: 2
Annual gross salary: 600000.00

Из-за того что во время соревнований инфраструктуру атакует множество хакеров, некоторые серверы могут падать, а веб-сервисы — не отвечать. В таком случае необходимо уточнить у технической поддержки, корректно ли функционирует узел с заданием.
Проблемы и поддержка
Для того чтобы попасть на соревнования, нужно:
Как попасть на соревнования
Следить за новостями в телеграм-канале Standoff 365, чтобы не пропустить анонс битвы и начало подачи заявок.
Создать логотип, придумать описание команды и быть готовым рассказать о себе, своих достижениях и о мотивации участвовать в Standoff.
Собрать команду из 10 человек (или знать минимум 10 человек, которые согласятся поддержать вас, выделить время и принять участие в Standoff).
Про команду мы поговорим чуть позже, а сейчас — про правила соревнований.
Из-за того что Standoff является одной из самых масштабных кибербитв, известных мне, правила участия также достаточно объемны. Ознакомиться с ними можно на справочном портале Standoff 365 либо на странице анонсированной кибербитвы.

Если ваша команда участвует в киберучениях, вы получите PDF-файл с правилами Standoff и приглашение на встречу с организаторами. Во время нее они расскажут о битве и ответят на вопросы. Важно отметить, что все участники команды должны не только ознакомиться с вышеуказанной информацией, но и понять ее. Капитан команды должен это проконтролировать.

Следует помнить, что во время соревнований нельзя удалять и останавливать сервисы, мешать другим командам или, наоборот, обмениваться с ними решениями. Не стоит генерировать много трафика автоматизированными утилитами: на полигоне практически нет задач, которые требуют агрессивного сканирования (например, с помощью Acunetix или Invicti). Навык поиска уязвимостей вручную здорово поможет вам как на Standoff, так и в профессиональном плане: сокращение объема трафика, генерируемого при тестировании на проникновение, даст вам плюс тысячу к скрытности. Кроме того, вы покажете, что способны на нечто большее, чем просто на нажатие кнопки «Старт».

Перед стартом соревнований вы получите результаты сканирования внешнего периметра инфраструктуры — это сделано для того, чтобы вы смогли пропустить этап разведки в первые часы битвы и сразу приступить к заданиям. Если вы будете генерировать слишком много трафика, организаторы ограничат пропускную способность вашего VPN-канала, а возможно, и оштрафуют вас. Будьте аккуратны.
Правила соревнований
Команда, состоящая из 10 человек, — одно из обязательных условий участия. Как же ее собрать? Для этого потребуется:

— Позвать коллег, однокурсников, дать клич в профильных каналах и чатах — желательно с указанием требований к участникам.
— Убедиться, что в команде есть люди, умеющие:
○ ломать веб и повышать привилегии в Linux;
○ ломать Active Directory, повышать привилегии в Windows и перемещаться внутри периметра;
○ создавать вредоносные вложения для фишинга и обходить антивирусы (например, Windows Defender);
○ пользоваться C2-фреймворками, например Metasploit или Cobalt Strike.

Чтобы быть уверенными в том, что во время соревнований в команде будет десять человек, заранее возьмите отпуск или отгул на работе или отпроситесь с учебы, а также позовите в команду нескольких запасных игроков. В моей команде случались форс-мажоры — и в нужное время отсутствовало до 7 человек.
Команда
Чек-лист для подготовки к игре от команды Cult
Начать готовиться заранее
К прошлому Standoff мы готовились три месяца, к позапрошлому — месяц, к следующему начали готовиться за полгода. Чем дольше длится подготовка, включающая планирование, обсуждение стратегии и заучивание плана действий, тем меньше шансов, что участники растеряются. Капитан должен учитывать, что разные люди ведут себя по-разному. Например, если один человек запутается, то он задаст вопрос. Другой же постесняется сказать о своих проблемах и усугубит ситуацию. Очень важно узнать о каждом участнике побольше и сработаться заранее.
Порешать задачи вместе
Совместное решение задач поможет вам определить уровень вашего взаимодействия. Делать это можно на любой платформе, но подготовка на онлайн-полигоне Standoff даст преимущество: на соревнованиях могут встретиться похожие задания. Скорее всего, в первый раз вы будете похожи на лебедя, рака и щуку («в товарищах согласья нет»). Капитан должен проанализировать, почему так происходит, и создать алгоритмы ваших действий для любой ситуации.
Определить порядок коммуникации
Для того чтобы во время битвы в команде не начался хаос, необходимо заранее определиться с методами и порядком коммуникации. Согласно правилам и общей концепции игры, на полигоне всегда есть несколько технологических сегментов, а основные виды заданий связаны с поиском уязвимостей и реализацией критических событий. Поэтому целесообразно создать канал в Discord или телеграм-чат со специальной структурой, чтобы систематизировать обсуждение разноплановых задач.
Собрать базу знаний
База знаний с удобным поиском и навигацией — самое ценное, что может быть у команды. Она должна содержать однострочные программы (они же one-liners, например на поднятие шеллов, поиск файлов для дальнейшего продвижения по сети, развертывание прокси-сервера), райтапы заданий с онлайн-полигона Standoff, правила битвы, список и описания команд, перечень полезных ресурсов. «Стать посвященным». База знаний должна быть неперегруженной, а тексты — емкими и понятными для любого участника команды.
Использовать визуализацию данных
Вы уже знаете, что в начале кибербитвы получите от организаторов результаты сканирования внешнего периметра инфраструктуры. Допустим, в них будет 50 узлов с веб-приложениями. Как же не запутаться в том, что нужно выполнить, что было выполнено и с чем возникли проблемы? Я рекомендую любую коллаборативную платформу из моего доклада на Talks («Коллаборативные платформы для анализа защищенности»). Необязательно использовать все ее функции. Достаточно оставлять тег с никнеймом человека, который занимается узлом, напротив IP-адреса.
Помимо веб-приложений, вам придется иметь дело с Active Directory.

Для того чтобы визуализировать структуру домена и логические связи внутри него, потребуется BloodHound. Утилиту можно использовать локально или развернуть на сервере для всех участников команды.
Найти и использовать материалы других команд
Для того чтобы получить более широкое представление о соревнованиях, было бы неплохо ознакомиться с райтапами и статьями других команд. Некоторые команды смело пишут о том, как нарушают правила игры (изменяют порты, обрывают соединения других игроков, меняют пароли в системах), но их примеру следовать не стоит. Нужно лишь взять информацию на заметку. Помимо этого, в подобных райтапах могут встречаться примеры решенных задач, схемы сетей и сегментов.
Подготовить нагрузку для фишинга и С2-инфраструктуру
Как правило, фишинг на Standoff — это отправка «резюме» пользователю из группы HR. Что сразу стоит отметить: на узлах работает антивирус, но изредка его отключают другие команды. За некоторое время до начала соревнований следует подготовить несколько вариантов полезной нагрузки с его обходом. Вовремя разосланные фишинговые письма дают команде большое преимущество.

Желательно, чтобы у вас также был С2-сервер. Во внутренней сети очень много узлов, и такой сервер значительно упростит горизонтальное перемещение.
Подготовить инфраструктуру команды
Мы уже перечислили достаточно большое количество утилит, которые неплохо бы развернуть и протестировать до соревнований. Если ваша команда строит подобного рода инфраструктуру впервые — обязательно убедитесь в том, что вас не забанят, что ничего лишнего не торчит в интернете и что китайские сканеры не могут вас обнаружить ;)
Заранее узнайте у организаторов, какая технология используется для подключения к инфраструктуре, чтобы убедиться, что провайдеры членов команды не блокируют протокол.
Придумать тактику
До игры нужно определиться с порядком ваших действий. Как только все подключатся к полигону, могут возникнуть проблемы с доступностью. Поэтому желательно, чтобы часть команды в первые же минуты разослала фишинговые письма в каждую из представленных на полигоне компаний. Остальные свободные участники, специализирующиеся на вебе, могут начать решать задачи с внешнего периметра сети. По мере продвижения во внутреннюю сеть и обнаружения там веб-сервисов на них можно переключать людей с решения веба на внешнем периметре на внутренний периметр с помощью пивотинга.
Сделанное тобой великолепно. Невообразимо!
Мы так горды твоими свершениями!
Теперь у тебя есть два пути.
Сюда пойдёшь — ачивку на платформе заработаешь
Сюда пойдёшь — опыта на онлайн-полигоне наберёшь
Укажи свой никнейм и все 7 пасхалок из текста гайда, чтобы получить уникальную ачивку на платформе.
Заполни форму
Записи стримов, в которых российские белые хакеры
ломают банковский сегмент онлайн-полигона Standoff
Хакай как профи
BooL и mimicate — топовые российские white hats и пользователи платформы Standoff365.com — собрались как-то вечером и порешали задания на онлайн-полигоне Standoff в банковском сегменте.
Что делали хакеры
Во время стрима хакеры:
— искали уязвимости в виртуальной инфраструктуре банка с реалистичными копиями систем и ПО;
— применяли техники матрицы MITRE ATT&CK;
— рассказывали про тулинг.

Еще шуточки были.
Реализация критического события «Вывод денег со счетов банка через АРМ КБР»
By mimicate
Реализация критического события «Оплата товаров с чужих счетов по QR-кодам»
By BooL
Как на все это смотрел SOC
Пока BooL и mimicate интеллигентно крушили банковский сегмент, руководитель группы продуктов безопасности Standoff следил за их действиями через средства защиты информации и, конечно, активно комментировал
SOC-опыт со стороны архитектора СЗИ Standoff
By Рэм
Гайд на решения критических событий в банковском сегменте онлайн-полигона Standoff365
Тут можешь насладиться стримом целиком
Гайд прочитан, видео просмотрены, осталась только она — и-н-с-т-р-у-к-ц-и-я.
А точнее, наш онбординг-материал, который поможет тебе быстрее разобраться в  правилах битвы и задачах красных команд.
Что точно нужно знать всем красным командам
Чтобы инструкция была совсем «инструкцией», мы даже собрали ее в PDF.