1.Что такое C2
Инфраструктура C2 — одна из самых важных инструментов в арсенале RT. В этой статье мы расскажем о нескольких простых методах, которые красные команды используют для укрепления своей инфраструктуры C2.
C2 существует в различных формах, но, несмотря на это, все они имеют одну основную функцию: они позволяют RT (или злоумышленникам) связываться со скомпрометированной машиной. Во время наступательной кампании пентестеры могут накопить несколько скомпрометированных машин, но поддерживать, организовывать и контролировать их в большом количестве может быть сложно и непосильно. Вдобавок ко всему, чтобы гарантировать долговечность кампании, вредоносные коммуникации между скомпрометированной машиной и обратно должны быть безопасными, запутанными и надежными, добавляя дополнительный уровень сложности.
1.1 C2 в дикой природе
Не все C2 рождаются одинаковыми. Использование правильного оборудования с особым дизайном имеет первостепенное значение для успеха боя. Скрытое наступательное сражение может длиться недели, если не месяцы, если имитировать реалистичного скрытного атакующего. Это предъявляет значительные требования и нагрузку на инфраструктуру C2. Этичные красные команды и противники из реального мира неохотно делятся многими инструментами и приемами. Оба являются поставщиками лучших сред C2 для управления своей вредоносной кампанией.
В полевых условиях есть несколько фреймворков C2 для Red Teamers. Metasploit (https://docs.rapid7.com/metasploit/manage-meterpreter-and-shell-sessions/) невероятно популярен благодаря интуитивно понятному использованию и упрощенному подходу к командной строке (для скрипткиддисов). Тем не менее, Metasploit сильно проигрывает из-за своей хрупкости и отсутствия ремонтопригодности — красная команда не может доверять ненадежным инструментам! Существуют и другие фреймворки C2, такие как PowerShell Empire (https://www.powershellempire.com/) или его преемник (версия с графическим интерфейсом) Covenant (https://stealthbits.com/blog/next-gen-open-source-c2-frameworks/) , которые предлагают красной команде гибкость , которую они хотят от инфраструктуры C2. Тем не менее, есть конкретный C2, который соответствует большинству, если не всем требованиям красной команды, и является явный фаворит (https://intel471.com/blog/cobalt-strike-cybercriminals-trickbot-qbot-hancitor) противника: Cobalt Strike.
На JUMPSEC мы столкнулись с противниками, которые невероятно коварно использовали Cobalt Strike. Мы нашли несколько интересных способов выследить этот C2, но на самом деле это игра в кошки-мышки . По мере того, как защитники настраивают и совершенствуют свои средства мониторинга, злоумышленники со временем будут менять свое поведение, чтобы избежать обнаружения, а это означает, что защитники должны определять новые модели поведения и методы для отслеживания.
Независимо от обфускации, C2 должны управляться и делать отчеты. Этот маячок представляет собой ebb and flow, которые должны происходить, и поэтому защитник может сосредоточиться на том, чтобы обнаружить его в своей сети. Конечно, это нелегкий подвиг. Красная команда JUMPSEC и синяя команда работают вместе, чтобы применить инновационные исследования в области наступательной безопасности, проведенные красной командой, в оборонительном контексте, чтобы постоянно развивать обнаружение для новейших методов.
Поскольку криминальные противники часто выбирают Cobalt Strike в качестве своего предпочтительного оружия (https://www.recordedfuture.com/2020-adversary-infrastructure-report/) , синие команды уделяют ему пристальное внимание. Исследователи оборонной безопасности посвятили целые отчеты (https://talos-intelligence-site.s3..../000/095/031/original/Talos_Cobalt_Strike.pdf) обнаружению связи Cobalt Strike C2! Неудобное внимание синей команды вынудило операторов красной команды убедиться, что их инфраструктура C2 настроена для каждой оценки, остается скрытой и не должна быть замечена синей командой в течение длительного периода времени.
В этой статье мы поделимся некоторыми советами красной команды по усилению С2, чтобы наступательные бои оставались гибкими, надежными и неуловимыми. Есть много способов усилить инфраструктуру C2. Давайте сосредоточимся на одном конкретном компоненте — редиректорах, которые, как мы обнаружили, очень важны для обфускации.
2. Редиректоры
2.1 Что такое редиректор?
Редиректоры являются важным компонентом для продвинутой работы с красными командами. Редиректоры позволяют вредоносному трафику приходить и уходить по своему усмотрению, но остаются скрытыми от обнаружения . Задача перенаправителя состоит в том, чтобы скрыть основную инфраструктуру C2 от посторонних глаз синей команды и позволить оператору красной команды скрытно взаимодействовать со скомпрометированной машиной. Редиректоры стремятся замаскировать и защитить свой внутренний сервер, основной сервер оркестрации для всех C2.
Редиректоры предлагают много преимуществ в отношении запутывания, но они также обеспечивают преимущество устойчивости и постоянства . Если синяя команда сможет успешно идентифицировать и заблокировать IP-адрес, связанный с инфраструктурой C2, оператор красной команды может быстро запустить перенаправитель и продолжать скрывать IP-адрес основного внутреннего сервера.
2.2 Пример C2 без перенаправителя
Чтобы понять преимущества перенаправителя, давайте продемонстрируем, как легко внимательный защитник синей команды может закрыть и испортить жизнь красной команды, в котором используется ванильный C2.
Мы можем использовать msfvenom для создания полезной нагрузки, которая не делает ничего особенного, она просто создает исполняемый файл, который будет обращаться к нашему серверу C2. Никакой обфускации, никаких хитрых методов C2-через-DNS, никакого перенаправления — ничего!
Если мы возьмем эту полезную нагрузку C2 и запустим ее на машине, нас неизбежно поймает любая синяя команда, стоящая своих денег. Используя netstat на целевой машине, с точки зрения защитника ясно видно, что машина в настоящее время обменивается данными со странным и новым IP-адресом через порт 8080 на основе необычного исполняемого файла (C2test.exe).
Для защитника это всегда будет вызывать подозрение — они не узнают исполняемый файл (даже если он будет называться менее очевидным) и не узнают частный IP-адрес. Синяя команда поместит машину в карантин и разорвет вредоносное соединение, над созданием которого мы так усердно работали.
3. Редиректоры спасают красную команду
Вышеприведенный пример является хрестоматийным примером плохой практики красной команды. Лучшим подходом является использование перенаправителей, чтобы предотвратить раскрытие инфраструктуры при первом же препятствии.
Существует множество техник перенаправления, и мы не можем испортить себе все удовольствие, поделившись ими (знаете, синяя команда тоже умеет читать?). Мы сосредоточимся на техническом подходе к перенаправлению сетевого трафика.
3.1 Тупое перенаправление пайпа
Тупое перенаправление пайпа делает именно то, что написано написано. Он слепо перенаправляет наш вредоносный трафик от узла к узлу, но ему не хватает изощренности для управления трафиком. Однако это позволяет нам запутать IP-адрес главного сервера, так что это все, что имеет значение на данный момент.
Чтобы добиться перенаправления этого пайпа, мы можем положиться на socat с различными реализациями брандмауэра для его улучшения.
3.1.1 Socat
Следующая команда socat будет запущена на нашем сервере перенаправителя, чтобы включить перенаправление мусорного канала на наш сервер C2.
Это позволяет сетевому трафику TCP через порт 8080 машины перенаправления обмениваться данными через порт 8080 сервера C2. Итак, теперь наш сервер C2 может взаимодействовать с нашим одноразовым сервером перенаправления, теперь нам нужно установить связь взломанной машины с сервером перенаправления. Затем это обеспечивает красивую цепочку связи от сервера C2 до перенаправителя и скомпрометированной машины, которая остается скрытой от глаз защитников.
Теперь нам нужно сгенерировать полезную нагрузку, которая завершит звено в цепочке и позволит скомпрометированной машине связаться с нашим сервером перенаправления, посредником.
Мы можем взять эту исполняемую полезную нагрузку и раскрыть ее на целевой машине. При выполнении она подключается к нашему серверу перенаправления, который затем вслепую перенаправляет TCP-порт 8080 на наш основной сервер C2. На приведенном ниже снимке экрана мы видим, что для связи используется ретранслятор с тремя машинами: на верхнем изображении показана целевая машина 172.16.15.135, взаимодействующая с сервером перенаправителя на xx13.49:8080, затем машина перенаправителя взаимодействует с сервер C2 на xxx223:8080. Если синяя команда поймает нас сейчас, мы потеряем только сервер перенаправления, а не нашу основную инфраструктуру.
3.1.2 Socat и Uncomplicated Firewall
Есть, однако, один недостаток в этом методе перенаправления пайпа socat. Любой, у кого есть IP - адрес перенаправителя, теперь может подключиться к нашему слушателю через указанный порт. Давайте проясним это с помощью инструмента сетевого сканирования nmap, который показывает, что мы используем прокси (перенаправитель). Защитник обязательно заметит, есть ли неизвестный веб-прокси на связи с машиной в их внутренней сети.
Чтобы избежать этой ситуации, давайте сделаем наш перенаправитель канала немного умнее. Мы можем настроить брандмауэр, который защитит нашу инфраструктуру и разрешит прямое подключение только перенаправителю. В этом случае мы собираемся использовать ufw, что означает Uncomplicated Firewall и доступно для различных дистрибутивов UNIX.
Давайте настроим UFW на нашем основном сервере C2 и сервере перенаправления, чтобы разрешить мониторинг трафика:
- Давайте настроим порт 22 , который обычно зарезервирован для служб SSH.
- Давайте настроим трафик с нашего IP - редиректора, исходящий и входящий с TCP-порта 8080 .
- А затем давайте закончим, запретив исходящий трафик в любом другом месте .
Здесь у нас есть конфигурация брандмауэра, которая позволяет C2 обмениваться данными от нашего злонамеренного основного сервера к нашему злонамеренному основному перенаправителю. Затем нам нужно дублировать нашу работу на брандмауэре сервера перенаправления.
Когда мы все закончим, наши следы должны быть заметены. Мы можем подтвердить это с помощью nmap. Когда мы сканируем наш IP-адрес Core C2, он теперь отображается как отфильтрованный, что указывает на то, что трафик защищен и доступен только через сервер перенаправления. Круто для нас, не очень для синей команды!
3.1.3 Перенаправление IPTables
IPtables — это инструмент Unix, который позволяет детально контролировать сетевой трафик, вплоть до уровня пакетов. Это невероятно мощный инструмент, который можно использовать как для защиты, так и для нападения — давайте попробуем последнее.
Можно добиться того же результата, что и перенаправление тупого канала socat, но вместо этого использовать IPTables. Здесь мы точно указываем, какие пакеты сетевого трафика следует принимать или отбрасывать, а также куда их следует перенаправлять или перенаправлять чтобы соответствовать нашей специальной спецификации для маскировки трафика, поступающего на наш главный сервер C2 и исходящего от него.
Конечный результат аналогичен socat и ufw , и нам удается взаимодействовать с сервером C2, перенаправителем и скомпрометированной конечной точкой, не раскрывая сервер C2 синей команде! На снимке экрана ниже мы активно запускаем вредоносные команды на скомпрометированном компьютере, используя детализированные правила iptables для запутывания нашего перенаправленного вредоносного сетевого трафика.
3.2 Перенаправление с помощью Apache mod_rewrite
Альтернативный метод перенаправления тупых каналов использует Apache mod_rewrite, который предлагает ряд методов для укрепления нашей инфраструктуры.
По сути, apache mod_rewrite позволяет прокси-серверу вести себя по-разному, если ему передается различная произвольная информация, такая как пользовательский агент, операционная система, IP-адрес и многое другое. Это создает более разнообразный сетевой трафик, поскольку правила, которые мы даем, будут определять, следует ли отбрасывать, принимать или перенаправлять трафик в соответствии с конкретным предписанным поведением. Использование этого метода требует значительного времени и усилий по сравнению с socat и брандмауэрами, взамен обеспечивая улучшенные результаты.
Мы можем добиться этого, указав наборы правил и файл .htaccess в корневом каталоге веб-сервера. В нашем случае мы собираемся создать правило, которое перенаправляет любопытных посетителей на нашу страницу labs.jumpsec.com. Давайте углубимся в настройку этого.
3.2.1 Настройка Apache Mod_Rewrite
Для начала нам нужен Apache2 на нашем сервере перенаправления. Затем нам нужно открыть его файл конфигурации и изменить AllowOverride с None на All внутри /etc/apache2/apache.conf чтобы начать процесс злоупотребления mod_rewrite в наших собственных злонамеренных целях.
Затем мы можем включить перезапись модуля Apache2 и перезапустить веб-службу Apache, чтобы изменения вступили в силу.
Затем в корневом каталоге веб-сервера мы должны создать файл .htaccess. Это будет фильтровать трафик на основе заданных нами критериев и, следовательно, является важным компонентом всей этой операции (так что давайте не будем делать здесь ошибок!). Установите разрешения chmod файла .htaccess на 644 .
3.2.2 Вредоносные правила
Теперь, когда мы установили необходимое, давайте приступим к работе. Нам нужно создать наш набор правил, который будет фильтровать прокси-трафик на основе произвольного поведения / строк, которые мы передаем веб-серверу.
Давайте создадим правило, которое ведет себя по-разному в зависимости от того, имеет ли входящий запрос определенный каталог. Только мы будем знать секретный каталог, который будет способствовать вредоносному трафику. Всем остальным мы перенаправим их на этот замечательный сайт, который мы знаем…
В приведенном выше наборе правил мы видим, что если каталог /jstest явно включен в трафик http (s), он будет перенаправлен на наш основной сервер C2, работающий на xxx223. Если какой-либо трафик попытается прийти, который не включает этот конкретный каталог /jstest, тогда веб-сервер apache будет вести себя по-другому и перенаправит любопытного, любознательного исследователя на labs.jumpsec.com.
Для невольного посетителя нашего сервера-посредника перенаправления он просто посещает веб-сайт лабораторий JUMPSEC. Они включили секретный каталог /jstest в свой запрос, и поэтому они не обнаружат созданную нами скрытую вредоносную инфраструктуру.
И наоборот, предлагая каталог /jstest в запросе, мы можем контролировать и выдавать команды через нашу обфусцированную линию связи. В нашем примере ниже у нас могло быть что-то невероятно сложное и вредоносное… вместо этого мы решили выдать предупреждение.
3.2.3 Интеграция mod_rewrite в другое место
Замечательно использовать mod_rewrite для произвольного изменения поведения нашего веб-сервера. Однако удобство использования этого метода по умолчанию C2 громоздко. В приведенном ниже примере мы видим, что он немного неуклюж и не подходит для быстрых действий, которые нужны оператору красной команды.
Эту технику apache mod_rewrite можно использовать как компонент другой инфраструктуры C2. Ранее мы говорили о Metasploit , и хотя он не самый надежный среди аналогов, он довольно гибкий и хорошо подходит для добавления новых компонентов.
В Metasploit мы можем использовать uriflag -URI. Если мы запустим полезную нагрузку meterpreter на скомпрометированном компьютере, мы можем гарантировать, что только полезные нагрузки с этим флагом URI могут подключаться к нашему серверу C2, не позволяя никому заинтересованному заглянуть в наши домены. Этот шаг не только гарантирует, что наш C2 останется скрытым , но также улучшит удобство использования наших перенаправлений.
4. За пределами C2
В этой статье был рассмотрен только один из многих элементов наступательного арсенала безопасности. Надежный и запутанный C2 — одно из наиболее важных действий, которые предпринимают как успешные красные команды, так и настоящие злоумышленники при компрометации сети. Я надеюсь, что эта высокоуровневая статья продемонстрирует, что создание скрытой инфраструктуры является важным шагом в эффективном моделировании скрытой атаки.
В целом о репертуаре атакующих путей красной команды можно говорить гораздо больше. И еще есть что рассказать о самом C2! Существует так много способов настроить инфраструктуру C2, что некоторые даже написали и развернули инфраструктуру C3 в рамках своих обязательств. Злоумышленники в реальной жизни использовали C3 для создания API-интерфейсов уровня ядра, которые они затем используют для связи, а не используют протоколы и службы, которые использует C2 (например, SSH или HTTP). Пределы для командно-административного управления действительно безграничны.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://labs.jumpsec.com/obfuscating-c2-during-a-red-team-engagement/