📎 Передаем бинари через побайтовую запись
Представим ситуацию, у нас есть исполнение кода на UNIX-like хосте. Мы хотим запивотиться через него с помощью одного из наших инструментов и нам нужно залить бинарник с агентом или прокси. Но есть проблема - egress трафик в нашу сторону заблокирован, а инструментов для bind-коммуникации типо
Решением может стать побайтовая запись исходного файла через доступную нам оболочку на жертве. Это можно сделать через команду
Со своей стороны нам нужно подготовить последовательность байтов из нашего бинарника, которые будем записывать на жертве. Для примера можно взять следующий скрипт:
Полученный вывод (как на скриншоте) мы копируем и исполняем на жертве. Так у нас появляется работающий бинарник, буквально собранный по байтам.
Таким образом, имея возможность исполнять команды на UNIX-like хосте, мы можем загружать и исполнять наши нагрузки без какой-либо “прямой” передачи файла по сети.
#notes
Представим ситуацию, у нас есть исполнение кода на UNIX-like хосте. Мы хотим запивотиться через него с помощью одного из наших инструментов и нам нужно залить бинарник с агентом или прокси. Но есть проблема - egress трафик в нашу сторону заблокирован, а инструментов для bind-коммуникации типо
netcat
на хосте нет.Решением может стать побайтовая запись исходного файла через доступную нам оболочку на жертве. Это можно сделать через команду
printf
и оператор дозаписи в файл >>
.Со своей стороны нам нужно подготовить последовательность байтов из нашего бинарника, которые будем записывать на жертве. Для примера можно взять следующий скрипт:
cat met.elf | od -An -t o1 -v | tr ' ' '/' | while read line
do echo "printf '$line' >> out.bin" | tr '/' '\\'
done
Полученный вывод (как на скриншоте) мы копируем и исполняем на жертве. Так у нас появляется работающий бинарник, буквально собранный по байтам.
Таким образом, имея возможность исполнять команды на UNIX-like хосте, мы можем загружать и исполнять наши нагрузки без какой-либо “прямой” передачи файла по сети.
#notes
🎞 OPSEC Fundamentals for Remote Red Teams
Атакующие в работе формата Red Team могут столкнуться с обнаружением не только со стороны команды защищающихся, но и сервисов от специализированных компаний и Threat Intelligence. А также с попытками атак со стороны других атакующих, охотящихся за легкими доступами.
Автор рассказывает, какая информация доступна защищающимся и что делать атакующим, чтобы оставаться незамеченными как можно дольше, а также не допускать утечек информации. И как превратить эти действия в процесс и вписать в текущую работу команды.
Разобрана работа на разных уровнях: локальная рабочая станция, IP-адреса источника, third-party сервисы, инфраструктура в интернете и тестирование новых инструментов. Показаны типичные ошибки и примеры их исправления.
Ссылка на доклад (YouTube)
#speech
Атакующие в работе формата Red Team могут столкнуться с обнаружением не только со стороны команды защищающихся, но и сервисов от специализированных компаний и Threat Intelligence. А также с попытками атак со стороны других атакующих, охотящихся за легкими доступами.
Автор рассказывает, какая информация доступна защищающимся и что делать атакующим, чтобы оставаться незамеченными как можно дольше, а также не допускать утечек информации. И как превратить эти действия в процесс и вписать в текущую работу команды.
Разобрана работа на разных уровнях: локальная рабочая станция, IP-адреса источника, third-party сервисы, инфраструктура в интернете и тестирование новых инструментов. Показаны типичные ошибки и примеры их исправления.
Ссылка на доклад (YouTube)
#speech
📎 Sniff LDAP for Fun and Profit
На проектах можно столкнуться с сценарием, когда у нас есть только доступ к сети цели, например розетке. И стоит задача получить как можно больший доступ к домену, привилегиям и системам без какой-либо дополнительной информации.
Одним из векторов для получения доступа к домену может стать MitM-атака для перехвата учетных данных жертвы по LDAP. Если у жертвы не раскатано на домен требование на использование TLS/SSL в LDAP, то мы либо просто увидим нешифрованный трафик между клиентом и сервером, либо сможем использовать downgrade-атаку на клиента.
Перехватив учетные данные, мы можем идти за информацией о домене напрямую. Например с помощью LDAPDomainDump. Этот инструмент умеет собирать и парсить информацию о домене и выдавать отчеты в виде читаемого HTML, а также json/csv/tsv/grep для последующей обработки.
Это один из способов получения доступа к домену нашей цели, просто находясь в ее сети. Теперь мы имеем возможности для дальнейшего продвижения и развития атаки.
#notes
На проектах можно столкнуться с сценарием, когда у нас есть только доступ к сети цели, например розетке. И стоит задача получить как можно больший доступ к домену, привилегиям и системам без какой-либо дополнительной информации.
Одним из векторов для получения доступа к домену может стать MitM-атака для перехвата учетных данных жертвы по LDAP. Если у жертвы не раскатано на домен требование на использование TLS/SSL в LDAP, то мы либо просто увидим нешифрованный трафик между клиентом и сервером, либо сможем использовать downgrade-атаку на клиента.
tcpdump -i eth0 -w tsss -G 300 -W1 -port 389
Перехватив учетные данные, мы можем идти за информацией о домене напрямую. Например с помощью LDAPDomainDump. Этот инструмент умеет собирать и парсить информацию о домене и выдавать отчеты в виде читаемого HTML, а также json/csv/tsv/grep для последующей обработки.
ldapdomain dump -u 'domain\user' -p 'pass' -o file <dc>
Это один из способов получения доступа к домену нашей цели, просто находясь в ее сети. Теперь мы имеем возможности для дальнейшего продвижения и развития атаки.
#notes
🎞 Регионы памяти, или Как я не туда шеллкод загрузил
Все чаще в сети мелькает информация про выполнение кода в памяти, внедрение шеллкода, BYOI-методы. Может показаться, что почти все проблемы с антивирусами могут решиться, если найдется способ помещения нагрузки в память. Действительно, раньше это было отличной панацеей, но времена меняются. Современные антивирусы научились определять и обнаруживать в том числе ранее неизвестные угрозы путем анализа регионов памяти.
В докладе пойдет речь о том, насколько важно учитывать и определять верное место для полезной нагрузки, как предотвратить множество детектов антивирусом и как атакующему оставаться скрытым от глаз защитных средств. Рассмотрены различные методы внедрения, используя как популярные Mapping Injection, Function Stomping, Transacted Hollowing, так и более изощренные варианты, основанные на злоупотреблении фабричным способом инстанцирования COM-объектов. Помимо прочего, исследуем артефакты, возникающие в регионах, и найдем ответ на вопрос «Куда помещать шеллкод при инъекциях?».
Ссылка на доклад (YouTube)
#speech
Все чаще в сети мелькает информация про выполнение кода в памяти, внедрение шеллкода, BYOI-методы. Может показаться, что почти все проблемы с антивирусами могут решиться, если найдется способ помещения нагрузки в память. Действительно, раньше это было отличной панацеей, но времена меняются. Современные антивирусы научились определять и обнаруживать в том числе ранее неизвестные угрозы путем анализа регионов памяти.
В докладе пойдет речь о том, насколько важно учитывать и определять верное место для полезной нагрузки, как предотвратить множество детектов антивирусом и как атакующему оставаться скрытым от глаз защитных средств. Рассмотрены различные методы внедрения, используя как популярные Mapping Injection, Function Stomping, Transacted Hollowing, так и более изощренные варианты, основанные на злоупотреблении фабричным способом инстанцирования COM-объектов. Помимо прочего, исследуем артефакты, возникающие в регионах, и найдем ответ на вопрос «Куда помещать шеллкод при инъекциях?».
Ссылка на доклад (YouTube)
#speech
⚙️ PowerView на Python
PowerView[.]py - это альтернатива замечательному оригинальному скрипту PowerView.ps1. Большинство модулей, используемых в PowerView, доступны здесь (некоторые флаги изменены). Основная цель - добиться интерактивной сессии без необходимости многократной аутентификации в ldap.
Для использования сначала инициализируем сессию с LDAP-сервером. Доступны разные способы аутентификации, в том числе по сертификатам.
Далее мы можем использовать знакомые командлеты PowerView, список реализованных командлетов есть в репозитории. Вывод любого командлета можно отправить в файл через флаг
Инструмент поддерживает relay-режим для атак вида ntlm-relay. После прохождения аутентификации также устанавливается сессия и можно выполнять различные команды.
Таким образом, мы можем сохранить и использовать функционал PowerView прямо на своей локальной машине. Но в трафике это может выглядеть, как “какой-то незадокументированный хост с именем kali пришел в наш LDAP”. Для избежания такой ситуации рекомендую соблюдать правила OPSEC для локального хоста, а в идеале проксироваться через легитимный.
Ссылка на инструмент (GitHub)
#tools
PowerView[.]py - это альтернатива замечательному оригинальному скрипту PowerView.ps1. Большинство модулей, используемых в PowerView, доступны здесь (некоторые флаги изменены). Основная цель - добиться интерактивной сессии без необходимости многократной аутентификации в ldap.
Для использования сначала инициализируем сессию с LDAP-сервером. Доступны разные способы аутентификации, в том числе по сертификатам.
powerview range.net/lowpriv:Password123@192.168.86.192
Далее мы можем использовать знакомые командлеты PowerView, список реализованных командлетов есть в репозитории. Вывод любого командлета можно отправить в файл через флаг
-OutFile
. Также доступна фильтрация результатов и преобразование вывода в таблицы.
Get-DomainUser -Identity Administrator
Get-DomainUser -OutFile ~/domain_user.txt
Get-DomainUser -Where 'samaccountname [contains][in][eq] admins'
Get-DomainUser -Properties samaccountname,memberof -TableView
Инструмент поддерживает relay-режим для атак вида ntlm-relay. После прохождения аутентификации также устанавливается сессия и можно выполнять различные команды.
powerview 10.10.10.10 --relay [--relay-host] [--relay-port] [--use-ldap | --use-ldaps]
Таким образом, мы можем сохранить и использовать функционал PowerView прямо на своей локальной машине. Но в трафике это может выглядеть, как “какой-то незадокументированный хост с именем kali пришел в наш LDAP”. Для избежания такой ситуации рекомендую соблюдать правила OPSEC для локального хоста, а в идеале проксироваться через легитимный.
Ссылка на инструмент (GitHub)
#tools
🎞 DevOps for Red Team Initial Access Operations
В этом докладе рассказывается о некоторых проблемах разработки вредоносного ПО для операций первоначального доступа Red Team и о том, как конвейеры непрерывной интеграции/непрерывной разработки (CICD) могут быть использованы для решения этих проблем.
В начале презентации будут представлены некоторые из известных техник, используемых современным программным обеспечением для защиты конечных точек, а затем будет описано, как подход CICD может быть использован для создания уникальных артефактов вредоносного ПО для обхода и успешного проведения операций первоначального доступа.
Ссылка на доклад (YouTube)
#speech
В этом докладе рассказывается о некоторых проблемах разработки вредоносного ПО для операций первоначального доступа Red Team и о том, как конвейеры непрерывной интеграции/непрерывной разработки (CICD) могут быть использованы для решения этих проблем.
В начале презентации будут представлены некоторые из известных техник, используемых современным программным обеспечением для защиты конечных точек, а затем будет описано, как подход CICD может быть использован для создания уникальных артефактов вредоносного ПО для обхода и успешного проведения операций первоначального доступа.
Ссылка на доклад (YouTube)
#speech
⚙️ Custom Command & Control (C3)
C3 (Custom Command and Control) - это инструмент, позволяющий редтимерам быстро разрабатывать и использовать кастомные каналы взаимодействия с C2.
Фреймворк позволяет расширять возможности уже известных C2-серверов, например в связке с Cobalt Strike ExternalC2. Можно реализовывать свои каналы коммуникаций, внедрение в процессы и поведение имплантов на стороне жертвы. Также для кастомных каналов можно разработать и внедрить listener-ы на уже захваченных машинах.
В коде уже реализованы external- и internal- каналы коммуникации, такие как Mattermost, GitHub и Discord для external, и MSSQL для internal. Для работы самого сервера доступен WebController, работающий с API-ключами. Подробнее про работу с C3 можно почитать в Operational Guide.
Такой подход позволит красной команде реализовывать собственные, нетипичные разработки для операций наступательной безопасности. При этом сохраняется эффективность и удобство уже знакомых C2-серверов. Появляется возможность внедрять собственные тактики, техники и процедуры.
Ссылка на инструмент (GitHub)
#tools
C3 (Custom Command and Control) - это инструмент, позволяющий редтимерам быстро разрабатывать и использовать кастомные каналы взаимодействия с C2.
Фреймворк позволяет расширять возможности уже известных C2-серверов, например в связке с Cobalt Strike ExternalC2. Можно реализовывать свои каналы коммуникаций, внедрение в процессы и поведение имплантов на стороне жертвы. Также для кастомных каналов можно разработать и внедрить listener-ы на уже захваченных машинах.
В коде уже реализованы external- и internal- каналы коммуникации, такие как Mattermost, GitHub и Discord для external, и MSSQL для internal. Для работы самого сервера доступен WebController, работающий с API-ключами. Подробнее про работу с C3 можно почитать в Operational Guide.
Такой подход позволит красной команде реализовывать собственные, нетипичные разработки для операций наступательной безопасности. При этом сохраняется эффективность и удобство уже знакомых C2-серверов. Появляется возможность внедрять собственные тактики, техники и процедуры.
Ссылка на инструмент (GitHub)
#tools
🎞 Вам письмо: старые новые атаки на почту
Доклад о том, как старые неразрешенные вопросы реализации и клеймо «легаси» повлияли на уязвимость современной электронной почты к внедрению кода.
Разобраны особенности работы почты и основных почтовых протоколов, а также виды внедрения кода в почтовую функциональность и возможности имперсонации в крупных почтовых сервисах.
Ссылка на доклад (YouTube)
#speech
Доклад о том, как старые неразрешенные вопросы реализации и клеймо «легаси» повлияли на уязвимость современной электронной почты к внедрению кода.
Разобраны особенности работы почты и основных почтовых протоколов, а также виды внедрения кода в почтовую функциональность и возможности имперсонации в крупных почтовых сервисах.
Ссылка на доклад (YouTube)
#speech
⚙️ k8spider. Разведка в кластере Kubernetes
Инструмент будет полезен на этапе разведки внутри инфраструктуры Kubernetes, после первичного проникновения в под внутри кластера. С его помощью мы можем определить другие работающие поды и сервисы в кластере. Используются техники разведки с использованием запросов к DNS-серверу кластера Kubernetes.
k8spider использует несколько техник для сбора информации изнутри:
▫️ Service ip-port BruteForcing. Делает SRV-запросы по доменным именам для получения сервисов;
▫️ AXFR Domain Transfer Dump. Делает AXFR-запрос по заданной зоне;
▫️ Coredns WildCard Dump. Делает wildcard-запрос по заданной зоне (
▫️ Pod Verified IP discovery. Делает PTR-запросы по IP-адресам для получения доменных имен.
С помощью этих техник инструмент получает IP-адреса, доменные имена и порты сервисов, работающих в кластере. А мы используем эту информацию для, например, подключения к базе данных или другого сервиса.
Для примера приведена работа инструмента в режиме all-in-one (
Таким образом, оказавшись в инфраструктуре Kubernetes, мы сможем быстро определить, что находится вокруг. Это позволит нам найти вектора для горизонтального или вериткального прдвижения в кластере и инфраструктуре в общем.
Ссылка на инструмент (GitHub)
#tools
Инструмент будет полезен на этапе разведки внутри инфраструктуры Kubernetes, после первичного проникновения в под внутри кластера. С его помощью мы можем определить другие работающие поды и сервисы в кластере. Используются техники разведки с использованием запросов к DNS-серверу кластера Kubernetes.
k8spider использует несколько техник для сбора информации изнутри:
▫️ Service ip-port BruteForcing. Делает SRV-запросы по доменным именам для получения сервисов;
▫️ AXFR Domain Transfer Dump. Делает AXFR-запрос по заданной зоне;
▫️ Coredns WildCard Dump. Делает wildcard-запрос по заданной зоне (
any.any.svc. + zone
);▫️ Pod Verified IP discovery. Делает PTR-запросы по IP-адресам для получения доменных имен.
С помощью этих техник инструмент получает IP-адреса, доменные имена и порты сервисов, работающих в кластере. А мы используем эту информацию для, например, подключения к базе данных или другого сервиса.
Для примера приведена работа инструмента в режиме all-in-one (
all
). Также мы можем использовать точечные техники (другие режимы) и настраивать область поиска, например задать CIDR с флагом -c
.
# in kubernetes pods
root@pod:~# echo $KUBERNETES_SERVICE_HOST
# if KUBERNETES_SERVICE_HOST is empty, you can use the following command to set it.
# export KUBERNETES_SERVICE_HOST=x.x.x.x
# or ./k8spider -c x.x.x.x/16 all
root@pod:~# ./k8spider all
INFO[0000] PTRrecord 10.43.43.87 --> kube-state-metrics.lens-metrics.svc.cluster.local.
INFO[0000] PTRrecord 10.43.43.93 --> metrics-server.kube-system.svc.cluster.local.
INFO[0000] SRVRecord: kube-state-metrics.lens-metrics.svc.cluster.local. --> kube-state-metrics.lens-metrics.svc.cluster.local.:8080
INFO[0000] SRVRecord: metrics-server.kube-system.svc.cluster.local. --> metrics-server.kube-system.svc.cluster.local.:443
INFO[0000] {"Ip":"10.43.43.87","SvcDomain":"kube-state-metrics.lens-metrics.svc.cluster.local.","SrvRecords":[{"Cname":"kube-state-metrics.lens-metrics.svc.cluster.local.","Srv":[{"Target":"kube-state-metrics.lens-metrics.svc.cluster.local.","Port":8080,"Priority":0,"Weight":100}]}]}
Таким образом, оказавшись в инфраструктуре Kubernetes, мы сможем быстро определить, что находится вокруг. Это позволит нам найти вектора для горизонтального или вериткального прдвижения в кластере и инфраструктуре в общем.
Ссылка на инструмент (GitHub)
#tools
🎞 System Calls for Hackers
Для написания вредоносов под Windows используются различные вызовы функций операционной системы. Такой подход позволяет вредоносам быть похожими на обычные программы, а не использовать пользовательский
Разобран процесс поиска и определения нужных функций и структур, а также показан перехват сделанных вызовов и параметров. Хороший материал для начинающих в MalDev.
Ссылка на видео (YouTube)
#speech
Для написания вредоносов под Windows используются различные вызовы функций операционной системы. Такой подход позволяет вредоносам быть похожими на обычные программы, а не использовать пользовательский
cmd /c
. В видео автор показывает разницу между вызовами верхнеуровневых функций из Kernel32.dll и низкоуровневых системных вызовов из ntdll.dll на примере кода для создания файла.Разобран процесс поиска и определения нужных функций и структур, а также показан перехват сделанных вызовов и параметров. Хороший материал для начинающих в MalDev.
Ссылка на видео (YouTube)
#speech
⚙️ SploitScan. Поиск эксплойтов и всего с ними связанного
В ходе пентеста инфраструктуры часто встречаются сервисы с известными и уязвимыми версиями софта. Такие вещи в первую очередь проверяются на недавние (а иногда и очень старые) CVE, которые способны дать импакт для текущего тестирования (пробива).Но обработка самих этих CVE затрудняется, потому что приходится по одному искать и обрабатывать детальную информацию об импакте уязвимости, как ею пользоваться и доступные эксплойты. С этим нам может помочь инструмент SploitScan.
SploitScan - это мощный и удобный инструмент, предназначенный для упрощения процесса выявления эксплойтов для известных уязвимостей. По факту он агрегирует множество источников об уязвимостях и предоставляет все это нам для дальнейшей обработки в красивом интерфейсе.
Инструмент поддерживает много разных фичей, рассказывающих об уязвимостях и эксплойтах со всех сторон. Неполный список:
▫️ Поиск информации о CVE: Получает сведения о CVE из NVD;
▫️ Интеграция с EPSS: Включает данные Exploit Prediction Scoring System (EPSS), предлагая оценку вероятности эксплуатации CVE, что помогает в определении приоритетов.
▫️ Агрегация публичных эксплойтов: Собирает общедоступные эксплойты, улучшая понимание уязвимостей.
▫️ CISA KEV: показывает, был ли CVE внесен в список известных эксплуатируемых уязвимостей (KEV) CISA.
▫️ Оценка рисков с помощью ChatGPT: Использует OpenAI для предоставления подробной оценки рисков, сценариев потенциальных атак, рекомендаций по снижению рисков и резюме.
▫️ Отчеты HackerOne: Показывает, использовался ли CVE в программах HackerOne Bug Bounty, включая общий ранг и распределение серьезности.
Перед началом работы следует добавить свои API-ключи для сервисов VulnCheck и OpenAI, с которыми инструмент пойдет за информацией, файл
Инструмент упрощает поиск векторов для эксплуатации и дальнейшее написание отчета, благодаря автоматическому походу в ChatGPT заводой для отчета детальной информацией об уязвимости. Таким образом, мы можем ускорить процесс поиска и разработки векторов для эксплуатации инфраструктуры заказчика.
Ссылка на инструмент (GitHub)
#tools
В ходе пентеста инфраструктуры часто встречаются сервисы с известными и уязвимыми версиями софта. Такие вещи в первую очередь проверяются на недавние (а иногда и очень старые) CVE, которые способны дать импакт для текущего тестирования (пробива).Но обработка самих этих CVE затрудняется, потому что приходится по одному искать и обрабатывать детальную информацию об импакте уязвимости, как ею пользоваться и доступные эксплойты. С этим нам может помочь инструмент SploitScan.
SploitScan - это мощный и удобный инструмент, предназначенный для упрощения процесса выявления эксплойтов для известных уязвимостей. По факту он агрегирует множество источников об уязвимостях и предоставляет все это нам для дальнейшей обработки в красивом интерфейсе.
Инструмент поддерживает много разных фичей, рассказывающих об уязвимостях и эксплойтах со всех сторон. Неполный список:
▫️ Поиск информации о CVE: Получает сведения о CVE из NVD;
▫️ Интеграция с EPSS: Включает данные Exploit Prediction Scoring System (EPSS), предлагая оценку вероятности эксплуатации CVE, что помогает в определении приоритетов.
▫️ Агрегация публичных эксплойтов: Собирает общедоступные эксплойты, улучшая понимание уязвимостей.
▫️ CISA KEV: показывает, был ли CVE внесен в список известных эксплуатируемых уязвимостей (KEV) CISA.
▫️ Оценка рисков с помощью ChatGPT: Использует OpenAI для предоставления подробной оценки рисков, сценариев потенциальных атак, рекомендаций по снижению рисков и резюме.
▫️ Отчеты HackerOne: Показывает, использовался ли CVE в программах HackerOne Bug Bounty, включая общий ранг и распределение серьезности.
Перед началом работы следует добавить свои API-ключи для сервисов VulnCheck и OpenAI, с которыми инструмент пойдет за информацией, файл
config.json
. Далее мы запускаем инструмент и скармливаем ему нужный нам CVE-ID. Также доступен импорт из популярных сканеров уязвимостей и вывод в разные форматы: json, csv, html, …
# single CVE query
sploitscan CVE-2024-1709
# import from vulnerability scanner
sploitscan --import-file path/to/yourfile.nessus --type nessus
# export results
sploitscan CVE-2024-1709 -e html
Инструмент упрощает поиск векторов для эксплуатации и дальнейшее написание отчета, благодаря автоматическому походу в ChatGPT за
Ссылка на инструмент (GitHub)
#tools
🎞 Кто стучится в почту? Social engineering 2024
Недавно я выкладывал доклад о TTPs в рамках социальной инженерии на проектах. Теперь хочу поделиться продолжением от того же автора с недавнего PHDays.
В рамках этого доклада спикер расскажет о разновидностях полезной нагрузки, которые не попали в материал прошлого выступления, но являются не менее востребованными и актуальными как эффективные векторы для получения первоначального доступа.
Прошлый материал дополняется обсуждением таких методов, как PDF или SVG smuggling, PDF polyglot, PDF luring, входящих в арсенал полезной нагрузки и векторов для фишинга в дикой природе.
Ссылка на доклад (YouTube)
#speech
Недавно я выкладывал доклад о TTPs в рамках социальной инженерии на проектах. Теперь хочу поделиться продолжением от того же автора с недавнего PHDays.
В рамках этого доклада спикер расскажет о разновидностях полезной нагрузки, которые не попали в материал прошлого выступления, но являются не менее востребованными и актуальными как эффективные векторы для получения первоначального доступа.
Прошлый материал дополняется обсуждением таких методов, как PDF или SVG smuggling, PDF polyglot, PDF luring, входящих в арсенал полезной нагрузки и векторов для фишинга в дикой природе.
Ссылка на доклад (YouTube)
#speech
⚙️ GCPwn. All-in-one инструмент для эксплуатации GCP
GCPwn - инструмент, созданный в процессе изучения Google Cloud Platform и использующий новые клиентские библиотеки GRPC, созданные Google. Он состоит из множества модулей для разведки и эксплуатации внутри инфраструктуры GCP.
Инструмент позиционируется как универсальный для тестирования GCP. В нем содержатся типовые скрипты для автоматизации известных TTP, так и результаты исследований в виде модулей эксплойтов.
GCPwn сохраняет все полученные данные и политики для ролей по мере выполнения модулей. Это упрощает организацию и отслеживание имеющихся прав в инфраструктуре. Также некоторые модули в инструменте работают на уже полученных данных в ходе разведки.
Для примера приведу примеры команд для разведки и поиска векторов эксплуатации. Для начала можно запустить все модули для разведки в Identity Access Management (IAM):
Далее, на основе полученных политик ролей, можно запустить модули поиска векторов эксплуатации и повышения привилегий из контекста текущей учетной записи:
Для начала изучения работы с gcpwn можно ознакомиться с докладом об инструменте на недавно прошедшем fwd:cloudsec 2024.
Ссылка на инструмент (GitHub)
#tools
GCPwn - инструмент, созданный в процессе изучения Google Cloud Platform и использующий новые клиентские библиотеки GRPC, созданные Google. Он состоит из множества модулей для разведки и эксплуатации внутри инфраструктуры GCP.
Инструмент позиционируется как универсальный для тестирования GCP. В нем содержатся типовые скрипты для автоматизации известных TTP, так и результаты исследований в виде модулей эксплойтов.
GCPwn сохраняет все полученные данные и политики для ролей по мере выполнения модулей. Это упрощает организацию и отслеживание имеющихся прав в инфраструктуре. Также некоторые модули в инструменте работают на уже полученных данных в ходе разведки.
Для примера приведу примеры команд для разведки и поиска векторов эксплуатации. Для начала можно запустить все модули для разведки в Identity Access Management (IAM):
# Quickest: Run all enumeration modules + testIAM Permissions
modules run enum_all --iam
# Longer + Downloads: Run all enumeration modules + testIAM Permissions including ~9000 for projects/folder/org + download everyting
modules run enum_all --iam --all-permissions --download
Далее, на основе полученных политик ролей, можно запустить модули поиска векторов эксплуатации и повышения привилегий из контекста текущей учетной записи:
# Review Permissions User Has Thus Far
creds info
# Return Policy Summary from IAM Bindings if Applicable
modules run process_iam_bindings [--txt] [--csv]
# Analyze IAM Bindings + Other Items (like allUsers) if Applicable
modules run analyze_vulns [--txt] [--csv]
Для начала изучения работы с gcpwn можно ознакомиться с докладом об инструменте на недавно прошедшем fwd:cloudsec 2024.
Ссылка на инструмент (GitHub)
#tools
🎞 Half Measures and Full Compromise: Exploiting Microsoft Exchange PowerShell Remoting
В докладе автор делится опытом исследования процесса десериализации объектов PowerShell Remoting в MS Exchange. Это исследование основано на нашумевшем эксплойте ProxyNotShell и развивает его идею атаки на десериализацию объектов. В результате - огромное количество CVE от RCE до DOS с несколькими успешными и безуспешными итерациями патча этих уязвимостей.
Показаны механизмы и вектора для эксплуатации с примерами уязвимого исходного кода на C#. Также автор показывает границу его исследования и возможности по развитию еще не исследованных векторов для атаки.
Ссылка на доклад (YouTube)
#speech
В докладе автор делится опытом исследования процесса десериализации объектов PowerShell Remoting в MS Exchange. Это исследование основано на нашумевшем эксплойте ProxyNotShell и развивает его идею атаки на десериализацию объектов. В результате - огромное количество CVE от RCE до DOS с несколькими успешными и безуспешными итерациями патча этих уязвимостей.
Показаны механизмы и вектора для эксплуатации с примерами уязвимого исходного кода на C#. Также автор показывает границу его исследования и возможности по развитию еще не исследованных векторов для атаки.
Ссылка на доклад (YouTube)
#speech
📎 DNSFS. Сохраняем свои данные в кеше DNS-серверов
Некоторые исследователи задаются вопросом, а где в Интернете можно сохранить свои данные за бесплатно? Желательно на уровне протокола, изначально не предполагающего такого использования.
Сначала предложили использовать протокол ICMP и его ping-функционал, появился инструмент PingFS. Он сохраняет данные за счет предположения, что принимающая сторона должна отправить эти самые данные в ответе на ping-запрос. Но практического применения у такого подхода не нашлось, так как нужно было бесконечно отправлять-принимать данные без гарантии, что где-то в Интернете пакет не дропнется.
Далее пришла идея использовать DNS, а именно функционал кеширования в DNS-серверах. Нам известно, что DNS-сервера кешируют свои ответы для увеличения производительности и доступности. Получив запрос от клиента, сервер отдаст ему ответ и закеширует его в памяти для следующего такого запроса. Причем сам запрос может быть любым, в том числе TXT-записи с текстовым форматов данных.
Для этого нужно было найти много публичных DNS-серверов, которые могут резолвить публичные доменные имена, а не ограничены только внутренним доменом. Для этого автор отсканировал часть интернета по порту 53 со специфичным запросом на доменное имя. Далее нужно было отсеять DNS-сервера с динамическими IP-адресами.
Получив список долго-живущих DNS-серверов, исследователь начал выяснять, какое количество и насколько долго можно хранить свои данные в кеше сервера, делая разные по времени и количеству данных запросы. По итогу получился список из 400 тысяч DNS-серверов, позволяющих в течении дня сохранить в себе по 9 TXT-запросов по 187 байт информации. В итоге получился инструмент DNSFS, обеспечивающий работу этой концепции.
Код DNSFS представляет собой относительно простую систему: каждый загруженный файл разбивается на фрагменты по 180 байт, и эти фрагменты «устанавливаются» в кэш путем запроса к узлу DNSFS через публичный резолвер для TXT-записи. Резолвер приходит на мастер-сервер за записью, отдают клиенту и кешируют запись. Через несколько секунд данные удаляются из памяти DNSFS, и они больше не находятся на мастер-сервере.
Чтобы распределить нагрузку на хранилище, в запросе имя файла и номер чанка хэшируются, а затем балансируются по списку резолверов, чтобы обеспечитьдостаточно справедливое распределение.
Пример использования DNSFS для загрузки и скачивания файла:
Таким образом, мы можем использовать сервера DNS как облачное хранилище за бесплатно. Также мы буквально можем эксфильтровать данные на открытые легитимные DNS-сервера, но это уже совсем другая история…
Ссылка на исследование
Ссылка на инструмент (GitHub)
#notes
Некоторые исследователи задаются вопросом, а где в Интернете можно сохранить свои данные за бесплатно? Желательно на уровне протокола, изначально не предполагающего такого использования.
Сначала предложили использовать протокол ICMP и его ping-функционал, появился инструмент PingFS. Он сохраняет данные за счет предположения, что принимающая сторона должна отправить эти самые данные в ответе на ping-запрос. Но практического применения у такого подхода не нашлось, так как нужно было бесконечно отправлять-принимать данные без гарантии, что где-то в Интернете пакет не дропнется.
Далее пришла идея использовать DNS, а именно функционал кеширования в DNS-серверах. Нам известно, что DNS-сервера кешируют свои ответы для увеличения производительности и доступности. Получив запрос от клиента, сервер отдаст ему ответ и закеширует его в памяти для следующего такого запроса. Причем сам запрос может быть любым, в том числе TXT-записи с текстовым форматов данных.
Для этого нужно было найти много публичных DNS-серверов, которые могут резолвить публичные доменные имена, а не ограничены только внутренним доменом. Для этого автор отсканировал часть интернета по порту 53 со специфичным запросом на доменное имя. Далее нужно было отсеять DNS-сервера с динамическими IP-адресами.
Получив список долго-живущих DNS-серверов, исследователь начал выяснять, какое количество и насколько долго можно хранить свои данные в кеше сервера, делая разные по времени и количеству данных запросы. По итогу получился список из 400 тысяч DNS-серверов, позволяющих в течении дня сохранить в себе по 9 TXT-запросов по 187 байт информации. В итоге получился инструмент DNSFS, обеспечивающий работу этой концепции.
Код DNSFS представляет собой относительно простую систему: каждый загруженный файл разбивается на фрагменты по 180 байт, и эти фрагменты «устанавливаются» в кэш путем запроса к узлу DNSFS через публичный резолвер для TXT-записи. Резолвер приходит на мастер-сервер за записью, отдают клиенту и кешируют запись. Через несколько секунд данные удаляются из памяти DNSFS, и они больше не находятся на мастер-сервере.
Чтобы распределить нагрузку на хранилище, в запросе имя файла и номер чанка хэшируются, а затем балансируются по списку резолверов, чтобы обеспечить
Пример использования DNSFS для загрузки и скачивания файла:
# upload
curl --data-binary @file.txt DNSFS_IP:PORT/upload?name=file
# download
curl DNSFS_IP:PORT/fetch?name=file > file.txt
Таким образом, мы можем использовать сервера DNS как облачное хранилище за бесплатно. Также мы буквально можем эксфильтровать данные на открытые легитимные DNS-сервера, но это уже совсем другая история…
Ссылка на исследование
Ссылка на инструмент (GitHub)
#notes
🎞 Red Team IoT Tactics
Физические девайсы часто используются в Red Teaming кампаниях для получения первоначального доступа и закрепления в сети жертвы. Обычно для таких целей используются коммуникации через GSM или Wi-Fi. Но здесь есть проблема, что серьезные заказчики умеют отслеживать (и глушить) такие коммуникации внутри защищаемых объектов.
В докладе автор задается вопросом, а что если мы будем использовать более низкие частоты? Мы получим возможность использовать бОльшие расстояния, но с меньшей скоростью. Это прекрасная возможность для операций Command&Control и для этого уже есть работающие протоколы, например ZigBee и LoRa для IoT-устройств. Эти протоколы позволяют использовать частоты в пределах 900 MHz и решений для отслеживания нелегитимного использования таких частот по сути нет, тем более что немногие следят за Wi-Fi. В докладе автор показывает пример управления USB Rubber Ducky, отправляя ему команды через протокол LoRa и частоты RFM95.
Также автор затронул недавно вышедший стандарт IEEE 802.11ah (HaLow), работающий на частотах 902-928 MHz. Он позволяет передавать информацию со скоростью до 80 МБит/сек на расстояние больше 1 км (!). Подробнее о протоколе можно почитать в статье на Хабре. В продаже уже есть сетевые карты для работы с HaLow, например ALFA Network WiFi HaLow HAT, но размеры пока что великоваты (6x8 см).
Подробнее о теме использования можно прочитать в дополняющейся серии статей Offensive IoT for Red Team Implants, где объясняются технические детали и приведены примеры на попробовать :).
Ссылка на доклад (YouTube)
#speech
Физические девайсы часто используются в Red Teaming кампаниях для получения первоначального доступа и закрепления в сети жертвы. Обычно для таких целей используются коммуникации через GSM или Wi-Fi. Но здесь есть проблема, что серьезные заказчики умеют отслеживать (и глушить) такие коммуникации внутри защищаемых объектов.
В докладе автор задается вопросом, а что если мы будем использовать более низкие частоты? Мы получим возможность использовать бОльшие расстояния, но с меньшей скоростью. Это прекрасная возможность для операций Command&Control и для этого уже есть работающие протоколы, например ZigBee и LoRa для IoT-устройств. Эти протоколы позволяют использовать частоты в пределах 900 MHz и решений для отслеживания нелегитимного использования таких частот по сути нет
Также автор затронул недавно вышедший стандарт IEEE 802.11ah (HaLow), работающий на частотах 902-928 MHz. Он позволяет передавать информацию со скоростью до 80 МБит/сек на расстояние больше 1 км (!). Подробнее о протоколе можно почитать в статье на Хабре. В продаже уже есть сетевые карты для работы с HaLow, например ALFA Network WiFi HaLow HAT, но размеры пока что великоваты (6x8 см).
Подробнее о теме использования можно прочитать в дополняющейся серии статей Offensive IoT for Red Team Implants, где объясняются технические детали и приведены примеры на попробовать :).
Ссылка на доклад (YouTube)
#speech
📎 Vulnerabilities in Open Source C2 Frameworks
Сегодня хочу поделиться интересным исследованием про уязвимости в популярных Command&Control фреймворках.
Вы когда-нибудь задумывались, а что такое вообще C2-фреймворк? У нас есть какой-то сервер или C2, принимающий подключения. Есть агенты или жертвы, подключающиеся к С2 и обменивающиеся с ним данными. А еще есть оператор или клиент, взаимодействующий с агентами через интерфейс C2.
А что из себя представляют эти сервер, агент и клиент? На самом деле это такие же программы, принимающие input и возвращающие output. Получается, что в них также могут быть уязвимости, например из-за отсутствия валидации ввода пользователя? Да, все так и есть.
Авторы разбирают уязвимости в различных частях фреймворков, от оператора (клиента), самого сервера (C2) и до агента (victim). Например:
▫️ CVE-2024-6127: агент компрометирует C2, позволяя записывать файлы на сервере;
▫️ CVE-2022-39197: агент компрометирует оператора, отображая в его UI вредоносный код;
▫️ CVE-2024-41111: оператор компрометирует C2, получая RCE на сервере;
▫️ CVE-2023-34758: внешний нарушитель перехватывает контроль над агентом из-за слабой криптографии;
▫️ HavocExploit: внешний нарушитель DOS-ит сервер C2.
Эти уязвимости могут иметь разный импакт на инфраструктуру, но их наличие может сорвать всю Red Team операцию, еще до ее начала.
Важно понимать, что C2-фреймворки являются таким же ПО и они могут содержать в себе уязвимости. Атакующим следует думать о защите своей инфраструктуры, закрывая сервера за редиректорами и вводя системы отслеживания доступов к инфраструктуре (как насчет blue team для red team?). Будет иронично увидеть открытый шелл на своем Team Server 🫡.
Ссылка на исследование
Ссылка на репозиторий с PoC (GitHub)
#notes
Сегодня хочу поделиться интересным исследованием про уязвимости в популярных Command&Control фреймворках.
Вы когда-нибудь задумывались, а что такое вообще C2-фреймворк? У нас есть какой-то сервер или C2, принимающий подключения. Есть агенты или жертвы, подключающиеся к С2 и обменивающиеся с ним данными. А еще есть оператор или клиент, взаимодействующий с агентами через интерфейс C2.
А что из себя представляют эти сервер, агент и клиент? На самом деле это такие же программы, принимающие input и возвращающие output. Получается, что в них также могут быть уязвимости, например из-за отсутствия валидации ввода пользователя? Да, все так и есть.
Авторы разбирают уязвимости в различных частях фреймворков, от оператора (клиента), самого сервера (C2) и до агента (victim). Например:
▫️ CVE-2024-6127: агент компрометирует C2, позволяя записывать файлы на сервере;
▫️ CVE-2022-39197: агент компрометирует оператора, отображая в его UI вредоносный код;
▫️ CVE-2024-41111: оператор компрометирует C2, получая RCE на сервере;
▫️ CVE-2023-34758: внешний нарушитель перехватывает контроль над агентом из-за слабой криптографии;
▫️ HavocExploit: внешний нарушитель DOS-ит сервер C2.
Эти уязвимости могут иметь разный импакт на инфраструктуру, но их наличие может сорвать всю Red Team операцию, еще до ее начала.
Важно понимать, что C2-фреймворки являются таким же ПО и они могут содержать в себе уязвимости. Атакующим следует думать о защите своей инфраструктуры, закрывая сервера за редиректорами и вводя системы отслеживания доступов к инфраструктуре (как насчет blue team для red team?). Будет иронично увидеть открытый шелл на своем Team Server 🫡.
Ссылка на исследование
Ссылка на репозиторий с PoC (GitHub)
#notes