Введение

Привет! Извиняюсь за долгий выпуск продолжения нашего "экшн-сериала", после The Standoff 2020 я (@clevergod) и все ребята "ушли в работу с головой", и новость о весеннем марафоне The Standoff 2021 выбила из колеи.

Кто пропустил первые 2 части, предварительно ознакомьтесь, чтобы "не смотреть кино с конца":

1 часть

2 часть

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

PS. просьба не забывать, что с момента победы прошло уже больше полугода и некоторые нюансы могут быть поданы с небольшим искажением, т.к. данная статья создавалась “на горячую”, затем была заброшена и в итоге написана с нуля. Также материала, в том числе скриншотов с разных подсетей и серверов настолько много, что если выпускать каждый месяц по статье, хватит на пару лет. Я постарался выбрать только то, что позволит отследить наше шествие...

Office 5 - Nuft 100

Вся суть изложения во всех подробностях осложняется тем, что организаторы PT ( Positive Technologies) реализовали настолько масштабный кибер-полигон, в котором мы неоднократно путались и прыгали с вектора к вектору. Вдобавок в прошлом 2020 году, в отличие от 2021 года, организаторы, команды защитников и зачастую команды противников вели невероятно ожесточенные сражения друг с другом как внутри сегментов сети, так и на периметре на первичных точках входа. Также на лету редактировался состав подсетей и Вам, как зрителю, будет очень сложно понять весь масштаб; но мы постараемся пояснить.

Напомню, первичный скан всех 6-ти подсетей содержал как минимум 10 машин внутри каждой, итого - уже более 60-ти хостов. Внутри первого взятого вектора была еще целая офисная сеть, состоящая из леса доменов, первичных, вторичных и read-only контроллеров, различных wsus, db, backup, file server, exchange, rdg, sharepoint и других серверов. Это множится на еще пару десятков хостов, за которыми находились пользовательские ПК, субдомены и связующие сервисы, а также SCADA. И это мы оцениваем по владениям только одного офиса. В качестве затравки к новой статье скажу, что в 2021 у нас было 3 полностью взятых офиса, и там была просто паутина из сервисов.. А пока вернёмся в 2020 год.

Риски

Вот такие риски можно было реализовать в домене Nuft:

Что мы знали о сетях?

Что мы имели в наличии?

Огромное спасибо хотел выразить Саше (@MOD_ON), который не только помогал с инфраструктурой, но и был нашим “художником”, выполняя схематичное отражение всех наших движений. Без него мы бы попросту плутали по кругу.

Вход в сеть

После получения RCE на 139 и 167 хостах во внешней сети офиса Nuft.gqs, мы бросились на поиск сетевых маршрутов и на сканирование внутренних сетей и сервисов.

Со 167 машины нас в 100500 раз выпилили и даже удалили БД; видимо лучше ни себе ни людям,

но имея один шаткий вектор, мы нашли подсеть 172.20.61.0/24 и незамедлительно захотели ее тщательно исследовать.

Далее мы увидели целую череду серверов и начали проводить первичный анализ.

В этом домене, судя по данным Zabbix, должно быть еще 89 хостов.

Сюрприз

Анализируя окружение, мы поняли, что не только не первыми попали в эту подсеть, но и то, что внутри уже идет жестокая “борьба за власть” на разных серверах, в т.ч. на PDC AD (основном контроллере домена).

Пришлось пустить в ход все возможные привески, боковые движения и весь подручный и наработанный на CTF-площадках и из реальных “боевых условий” инструментарий. В какой-то момент даже пришлось  установить свой софт на машины из полигона.

Первый риск

14.11.2020 - пока все воевали, мы выполнили свой первый риск!19:04 Реализован риск Команда атакующих Codeby реализовала риск «Утечка конфиденциальной информации и ценных документов» - Нефтяное месторождение

И одновременно еще один:

19:04 Реализован риск Команда атакующих Codeby реализовала риск «Утечка конфиденциальной информации и ценных документов» - Нефтехимический завод

Спустя некоторое время ребята “веберы” реализовали еще 2 риска:

21:17 Реализован риск Команда атакующих Codeby реализовала риск «Сбой системы продажи билетов. Сбой внутренних систем регистрации пассажиров, систем управления логистикой» - Аэропорт *2

22:48 Реализован риск Команда атакующих Codeby реализовала риск «Сбои в работе онлайн-касс» - Парк развлечений

По итогу дня мы реализовали 4 бизнес-риска, но в рамках разведки, проникновения, удержания и вечных сражений была еще целая ночь без сна впереди…

Майнинг - начало

Ночь принесла новые проблемы: часть ребят ушла спать, и в это время нас вынесли из домена в десятый раз… Немного отчаявшись, мы переключились на другой домен, в котором творилась такая же чехарда. Собрав коллективный разум в кучу, прикинув, какие доступы у нас есть, и сколько времени уйдет на реализацию, мы решили не распыляться на иные вектора. Часть тех, кто бодрствовал,  отправились на захваченный домен (пусть и похожий на общежитие, но уже родной), остальные занялись веб-уязвимостями и майнингом, который в том момент времени только запустили. Пока мы разбирались с криптой, другие команды не теряли времени и сразу пошли в отрыв...

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

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

Закреп и разведка

Но вернёмся к инфре. Не смотря ни на что, мы успели забрать дамп с домена:

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

И уже почти “нащупали” скаду, нас в очередной раз дропнули по всем фронтам…

После наверное 20-го выпиливания, мы решили, что нужно положить конец этому безрассудному поведению ряда команд и начать вести аналогичную игру в “короля горы”. В скриншотах ниже  отображена лишь малая часть той боли, которая заставила нас местами паниковать. Вот представьте себе: участвуя в The Standoff 2019, нам даже не дали возможности пощупать внутрянку, но здесь мы пробиваемся в DMZ. Но мало того, что не понимаем куда двигаться, в отличие от опытных  команд, которые ранее были внутри и сдавали риски, нас еще подрезают во всем. 

А потеря доверительных отношений в домене - это самое ужасное, что может произойти. На все наши обращения к организаторам по соблюдению правил игры, честной, интересной и конкурентной борьбы поступали отписки, в духе “мол ну как-то так ребята, крутитесь…”

В какой-то момент кто-то из команд противников просто уронил весь домен:

Нам сменили все креды, поудаляли локальных админов и все наши “закрепы”:

Понимаете,  когда идет легкая борьба за “власть” - это еще куда ни шло, но когда команды противников начинают откровенно хамить, разрывая доверительные отношения и меняя GPO, это уже ни в какие ворота…

Недоступность RPC сервера и разрушение леса домена:

И когда были заменены все креды на все учетки, в том числе на SA к DB, наше терпение лопнуло и было решено поступить иначе.

У матросов, нет вопросов

Начинаем анализировать логи (я ж SOC как ни крути) и идем хулиганить, меняя все, что видим: доменных админов, локальных админов. Восстанавливаем связи, появляются новые коннекты, отслеживаем их и дропаем, ставим свои лог-коллекторы, выпиливаем, переписываем GPO, запихиваем свои бек-коннекты на все леса домена. Так мы боролись практически весь вечер и всю ночь...

Восстанавливаем правопорядок и находим новые сегменты сети, сокращая отставание добычи криптовалюты:

В какой-то момент времени мы понимаем, что народу у нас не хватает. Активность ребят в крайние дни оставляет желать лучшего, все устали, вымотались. Лично я очень напрыгался по голосовым каналам в совокупности с постоянными диалогами с капитаном по телефону, параллельно слушая все происходящее во всех каналах, отвлекаясь на рабочие и семейные моменты.  Мы абсолютно не понимали за что хвататься, что держать: майнинг, домен или точки входа, на которых к слову было еще жарче. Команда, изначально состоящая из 2 основных направлений “Веберы” и “Инфраструктурщики”, была вынуждена сгруппироваться в одно направление, и в какой-то момент нам свои же ребята кинули картинку-мем:

SCADA

Самое ужасное, что могли реализовать организаторы - это уязвимость BlueKeep на хостах со скадой, потому что угадать с нагрузкой, да и еще не положить машину было крайне сложно. Женя с Тимуром бороли этот вектор и прошла просто вечность, прежде чем им это удалось. Приходилось не просто угадывать грум-сайз, но и дампить трафик пока машина уходит в reboot:

Кроме проблем с BlueKeep нам не хватало только борьбы за SCADA хосты, и она не заставила себя долго ждать. Нас снова выпирают ребята из команды back2oaz.

Через Михаила Левина договариваемся работать на скада хостах по 2 часа, меняясь и соблюдая договоренности.

И реализуем свой первый крупный бизнес-риск - это разлив нефти, а следом еще один!

15.11.2020

10:30 Реализован риск Команда атакующих Codeby реализовала риск «Нарушение процесса производства химических веществ» -Нефтехимический завод

10:40 Реализован риск Команда атакующих Codeby реализовала риск «Остановка процесса производства химических веществ» - Нефтехимический завод

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

В итоге мы забираем домен NUFT  у всех нерадивых, а затем выясняем, что даже организаторы не могут на него попасть, и просят у нас создать для них учетную запись :)

Догоняем лидеров и больше суток держимся на первом месте:

16.11.2020

09:41 Реализован риск Команда атакующих Codeby реализовала риск «Остановка процесса добычи нефти» - Нефтяное месторождение

23:48 Реализован риск Команда атакующих Codeby реализовала риск «Нарушение процесса транспортировки нефтепродуктов в нефтехранилища» - Нефтяное месторождение

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

Таблица лидеров меняется, и мы нагоняем упущенное:

Но в целом наша команда опережает самых лютых противников, с которыми, как предполагаем, мы и сражались в том самом, теперь уже нашем домене…

Набираем обороты в добыче и реализовываем еще риски, пробиваясь в другие подсети.

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

17.11.2020

00:16 Реализован риск Команда атакующих Codeby реализовала риск «Утечка персональных данных пассажиров» - Аэропорт

09:00 Реализован риск Команда атакующих Codeby реализовала риск «Остановка процесса транспортировки нефтепродуктов в нефтехранилища» - Нефтяное месторождение

13:59 Реализован риск Команда атакующих Codeby реализовала риск «Трансляция неавторизованного контента на рекламных видеоэкранах» - Телерадиокомпания

Финал

Хочу выразить огромную благодарность Саше, Антону, Богдану, Евгению за очень плотную поддержку и огромную проделанную работу в захвате и удержании доменных сетей, без Вас, ребята, мы бы просто не справились. Так же низкий поклон ребятам, которые занимались точками входа: Мурату(@manfromkz), Олегу, Magichk’у, Сергею, Диме, Паше, Леше и другим ребятам, которые участвовали. Отдельное спасибо Батыру и его NitroTeam - Вы, ребята, добрейшие, отзывчивые и лучшие спецы. Низкий поклон владельцу форума Codeby.net - Сергею, за то, что нас поддерживал и собрал под эгидой форума. Всему форуму за поддержку: читателям, участникам форума, грей и ред командам. Ну и конечно моему френду - Тимуру, за то, что мы рука об руку шли к этой победе, тренировались, набирали команду, находились на связи больше 20 часов в сутки. Ряду ребят из нашей команды после “финального гонга” при очередном входящем звонке я сказал, что слышать не могу их голос, и мы здорово посмеялись. Вы себе можете представить, что по окончанию марафона после награждения, мы всей командой часами продолжали обсуждать наше шествие, допущенные ошибки. Эмоции, которые мы испытали - распирали, и очень стало не хватать продолжения, и это продолжалось еще долгими вечерами...

Организаторам The Standoff 2020 всей команде Positive Hack Days, тем кто освещал и не всегда верил в нашу победу (да, Юлия, мы это помним :)) - большое спасибо за площадку, за атмосферу, за интерес к ИБ сообществу. Вы - большие молодцы.

Послесловие:

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