Введение
Привет! Извиняюсь за долгий выпуск продолжения нашего "экшн-сериала", после The Standoff 2020 я (@clevergod) и все ребята "ушли в работу с головой", и новость о весеннем марафоне The Standoff 2021 выбила из колеи.
Кто пропустил первые 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 всегда рад помочь в становлении молодых специалистов, все участники открыты помогать друг другу. Всем добра, любви, и чтобы Ваша работа над собой приносила только положительные эмоции!
clevergod
Еще раз хочу выразить большую благодарность организаторам мероприятия и всей нашей команде, в том числе Nitro Team за очень классно проведенное время, за опыт и за интересные таски.
Готовлю статью о The Standoff 2021, так что ждите...