www.opennet.ru
Выпуск Firefox 148.0.2. Продление поддержки Firefox 115. Проверка Firefox AI-моделью Claude Opus
Доступен корректирующий выпуск Firefox 148.0.2, в котором устранено 5 уязвимостей. 4 уязвимости вызваны проблемами при работе с памятью, такими как переполнения буферов и обращение к уже освобождённым областям памяти. Одно из переполнений буфера затрагивает…
🔗Ссылка:
https://opennet.ru/64954/
https://opennet.ru/64954/
Forwarded from purple shift
У экспертов по анализу защищённости часто возникает ситуация, когда во время пентеста уже получен доступ к внутренней инфраструктуре, а что интересного есть в этой инфраструктуре — непонятно.
Так как многие используют Kubernetes для разворачивания сервисов, кластеры K8s могут быть одной из интересных целей. Но их ещё нужно найти и понять, что в них.
Один из способов обнаружить ноды — найти, какие хосты используют SSL-сертификат с common name
На одном из проектов мы нашли таким способом 47 нод. И по некоторым хостнеймам и подсетям сделали вывод, что кластер не один. Но как узнать, какие сервисы запущены в этих кластерах?
Благодаря использованию одного места для сбора всей информации, мы выяснили, что у нас уже есть учётные данные пользователя с привилегией
В директории
Так как Kubernetes API доступен был только на localhost мастер-ноды, использовали опцию
Список нод поможет оценить размер кластера и отметить хосты, которые к нему относятся:
По названиям неймспейсов можно попытаться понять, какие сервисы запущены в кластере (например, minio или keycloak):
Для получения полных конфигов подов можно использовать вывод в формате yaml. Из результата выполнения команды можно получить список подов, информацию о том, какие образы используют контейнеры, на каких портах слушают сервисы, что примонтировано в файловую систему пода. Зачастую из передаваемых в контейнеры переменных окружения можно получить учетные данные или полезные параметры конфигурации сервисов. Параметр
В списке ingress-ов можно увидеть имена виртуальных хостов и правила маршрутизации трафика (на уровне L7):
Пример вывода:
Configmap-ы предназначены для хранения настроек в виде пар "ключ-значение". И хотя не рекомендуется хранить в них учётные данные, ключи и подобные настройки, они там все равно встречаются. А ещё скрипты, настройки coredns и другие конфигурационные файлы. Поэтому заглянем и туда:
Все секреты мы не забираем, а только получаем список. Если по конфигам подов или по названию секрета видим, что используется значение секрета, который нам нужен, то получаем только это значение:
Если в списке ingress-ов мы обнаружили виртуальный хост, а при обращении к нему получаем 404, то для поиска нужного пути можно посмотреть логи nginx (для каждого пода
Анализируя полученную информацию, мы можем получить доступ к сервисам. Например, мы в конфиге пода обнаружили, что используются значения из секрета minio для доступа к S3-хранилищу на узле minio.minio.svc.cluster.local. А в списке ingress-ов увидели, что виртуальный хост s3.domain.local доступен на хосте 10.10.10.10, и входящий трафик на порт 443/TCP перенаправляется на под minio в неймспейсе minio. Используя значения секрета, мы получили доступ к содержимому бакетов в S3-хранилище и реализовали один из бизнес-рисков.
Так как многие используют Kubernetes для разворачивания сервисов, кластеры K8s могут быть одной из интересных целей. Но их ещё нужно найти и понять, что в них.
Один из способов обнаружить ноды — найти, какие хосты используют SSL-сертификат с common name
Kubernetes Ingress Controller Fake Certificate. Например, это можно сделать с помощью скрипта для nmap ssl-cert. На одном из проектов мы нашли таким способом 47 нод. И по некоторым хостнеймам и подсетям сделали вывод, что кластер не один. Но как узнать, какие сервисы запущены в этих кластерах?
Благодаря использованию одного места для сбора всей информации, мы выяснили, что у нас уже есть учётные данные пользователя с привилегией
sudo на этих хостах после успешной атаки Password Spray.В директории
/etc/kubernetes/ на мастер-ноде был конфиг не только самой ноды, но и администратора кластера, что позволило не тратить время на повышение привилегий. Так как Kubernetes API доступен был только на localhost мастер-ноды, использовали опцию
-D при подключении по SSH к ноде, и с конфигом администратора кластера получили полный доступ к API. А затем собрали всю необходимую информацию о кластере K8s, добавив опцию для игнорирования недоверенного сертификата и переменную окружения для работы через прокси: export KUBECONFIG=~/admin.conf
HTTPS_PROXY=socks5://127.0.0.1:1080 kubectl --insecure-skip-tls-verify=true cluster-info
Список нод поможет оценить размер кластера и отметить хосты, которые к нему относятся:
kubectl get nodes -o wide
По названиям неймспейсов можно попытаться понять, какие сервисы запущены в кластере (например, minio или keycloak):
kubectl get namespaces
Для получения полных конфигов подов можно использовать вывод в формате yaml. Из результата выполнения команды можно получить список подов, информацию о том, какие образы используют контейнеры, на каких портах слушают сервисы, что примонтировано в файловую систему пода. Зачастую из передаваемых в контейнеры переменных окружения можно получить учетные данные или полезные параметры конфигурации сервисов. Параметр
-A для команды позволит получить сведения сразу для всех пространств имен:kubectl get pods -A -o yaml
В списке ingress-ов можно увидеть имена виртуальных хостов и правила маршрутизации трафика (на уровне L7):
kubectl get ingress -A
Пример вывода:
NAMESPACE NAME CLASS HOSTS ADDRESS PORTS
minio minio nginx s3.domain.local 10.10.10.10 80, 443
Configmap-ы предназначены для хранения настроек в виде пар "ключ-значение". И хотя не рекомендуется хранить в них учётные данные, ключи и подобные настройки, они там все равно встречаются. А ещё скрипты, настройки coredns и другие конфигурационные файлы. Поэтому заглянем и туда:
kubectl get configmaps -A -o yaml
Все секреты мы не забираем, а только получаем список. Если по конфигам подов или по названию секрета видим, что используется значение секрета, который нам нужен, то получаем только это значение:
kubectl get secrets -A
kubectl get secret -n <namespace> <secret_name>
Если в списке ingress-ов мы обнаружили виртуальный хост, а при обращении к нему получаем 404, то для поиска нужного пути можно посмотреть логи nginx (для каждого пода
ingress-nginx-controller).kubectl get logs -n ingress-nginx ingress-nginx-controller-<id>
Анализируя полученную информацию, мы можем получить доступ к сервисам. Например, мы в конфиге пода обнаружили, что используются значения из секрета minio для доступа к S3-хранилищу на узле minio.minio.svc.cluster.local. А в списке ingress-ов увидели, что виртуальный хост s3.domain.local доступен на хосте 10.10.10.10, и входящий трафик на порт 443/TCP перенаправляется на под minio в неймспейсе minio. Используя значения секрета, мы получили доступ к содержимому бакетов в S3-хранилище и реализовали один из бизнес-рисков.
Forwarded from BEAR-C2
Static Kitten APT Adversary Simulation
This is a simulation of attack by (Static Kitten) APT group targeting multiple sectors across the Middle East including diplomatic, maritime, financial, and telecom entities. The campaign uses icon spoofing and malicious Word documents to deliver "RustyWater" a Rust-based implant representing a significant upgrade to their traditional toolkit, the attack campaign was active early as January 2026. The attackers has relied on PowerShell and VBS loaders for initial access and post-compromise operations. The introduction of Rust based implants represents a notable tooling evolution toward more structured modular and low noise RAT capabilities.
https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/Iranian%20APT/Static%20Kitten
This is a simulation of attack by (Static Kitten) APT group targeting multiple sectors across the Middle East including diplomatic, maritime, financial, and telecom entities. The campaign uses icon spoofing and malicious Word documents to deliver "RustyWater" a Rust-based implant representing a significant upgrade to their traditional toolkit, the attack campaign was active early as January 2026. The attackers has relied on PowerShell and VBS loaders for initial access and post-compromise operations. The introduction of Rust based implants represents a notable tooling evolution toward more structured modular and low noise RAT capabilities.
https://github.com/S3N4T0R-0X0/APTs-Adversary-Simulation/tree/main/Iranian%20APT/Static%20Kitten
www.opennet.ru
10 уязвимостей в GStreamer, приводящих к удалённому выполнению кода
В мультимедийном фреймворке GStreamer, используемом в GNOME, выявлено 10 уязвимостей, все из которых помечены как допускающие удалённое выполнение кода при обработке некорректно оформленных мультимедийных данных в форматах AVI, RTP, H.266, JPEG, ASF и RealMedia…
🔗Ссылка:
https://opennet.ru/64964/
https://opennet.ru/64964/
www.opennet.ru
В 2025 году Google выплатил 17.1 млн долларов вознаграждений за выявление уязвимостей
Компания Google подвела итоги программы выплаты вознаграждений за выявление уязвимостей в Chrome, Android, приложениях Google Play, продуктах Google и различном открытом ПО. Общая сумма выплаченных в 2025 году вознаграждений составила 17.1 млн долларов, что…
🔗Ссылка:
https://opennet.ru/64978/
https://opennet.ru/64978/
Forwarded from PurpleBear (Vadim Shelest)
Hacked Perplexity Computer and got unlimited Claude Code 🤖
Сегодня хочу рассказать про интересное исследование Perplexity Computer - отличный пример того, где ломается agent‑инфраструктура.
Исследователь изучал sandboxing multi‑agent системы и обнаружил внутри sandbox установленный Claude Code (Node.js, bypass‑permissions mode) Поэтому возник вполне логичный вопрос - где хранится Anthropic API key и как он изолирован?
6 попыток вытащить ключ провалились - модель и prompt‑safety реально отработали хорошо:
🔴 dump
🔴 троян на shared FS - агент понял подвох
🔴
🔴 system prompt - не найден
А потом классика supply‑chain атак 😎
Claude Code - это Node.js → запускается через npm → npm читает
Через .npmrc можно задать:
💣 Эксплоит = 3 команды:
1️⃣ preload‑скрипт, который пишет
2️⃣ запись
3️⃣ любая задача
Результат - доступ к Perplexity proxy‑token к Anthropic API.
И самое интересное:
🔴 токен не IP‑restricted
🔴 не sandbox‑bound
🔴 не ephemeral
🔴 биллинг на Perplexity
100k+ токенов × несколько запусков → деньги не списываются.
Фактически unlimited Claude Code за их счёт 💸
Модель всё сделала правильно - сломалась именно архитектура.
Если вы строите agent‑infra, стоит подумать про:
🔐 токен должен быть привязан к sandbox
⏳ токен должен быть короткоживущим
💳 usage должен биллиться на пользователя
Иначе proxy - это просто лишний network hop, который ничего не защищает.
Большинство multi‑agent продуктов сегодня устроены примерно так же 😎
Сегодня хочу рассказать про интересное исследование Perplexity Computer - отличный пример того, где ломается agent‑инфраструктура.
Исследователь изучал sandboxing multi‑agent системы и обнаружил внутри sandbox установленный Claude Code (Node.js, bypass‑permissions mode) Поэтому возник вполне логичный вопрос - где хранится Anthropic API key и как он изолирован?
6 попыток вытащить ключ провалились - модель и prompt‑safety реально отработали хорошо:
🔴 dump
process.env - отказ🔴 троян на shared FS - агент понял подвох
🔴
.bashrc / PATH hijack —-не сработало🔴 system prompt - не найден
А потом классика supply‑chain атак 😎
Claude Code - это Node.js → запускается через npm → npm читает
~/.npmrc → home‑директория доступна на shared filesystem.Через .npmrc можно задать:
node-options=--require /path/to/preload.js--require подгружает JS до старта приложения и до любых safety‑проверок.💣 Эксплоит = 3 команды:
1️⃣ preload‑скрипт, который пишет
process.env в файл2️⃣ запись
.npmrc3️⃣ любая задача
Результат - доступ к Perplexity proxy‑token к Anthropic API.
И самое интересное:
🔴 токен не IP‑restricted
🔴 не sandbox‑bound
🔴 не ephemeral
🔴 биллинг на Perplexity
100k+ токенов × несколько запусков → деньги не списываются.
Фактически unlimited Claude Code за их счёт 💸
Модель всё сделала правильно - сломалась именно архитектура.
Если вы строите agent‑infra, стоит подумать про:
🔐 токен должен быть привязан к sandbox
⏳ токен должен быть короткоживущим
💳 usage должен биллиться на пользователя
Иначе proxy - это просто лишний network hop, который ничего не защищает.
Большинство multi‑agent продуктов сегодня устроены примерно так же 😎
X (formerly Twitter)
Yousif Astarabadi (@YousifAstar) on X
I hacked Perplexity Computer and got unlimited Claude Code
www.opennet.ru
Уязвимости в AppArmor, позволяющие получить root-доступ в системе
Компания Qualys выявила 9 уязвимостей в системе мандатного управления доступом AppArmor, наиболее опасные из которых позволяют локальному непривилегированному пользователю получить права root в системе, выйти из изолированных контейнеров и обойти ограничения…
🔗Ссылка:
https://opennet.ru/64984/
https://opennet.ru/64984/
Forwarded from Adaptix Framework
Куда идти дальше TG бота? Наверное в Android клиент😂
https://github.com/BlackSnufkin/GeckoDroid
А если серьезно, круто развивается проект)
https://github.com/BlackSnufkin/GeckoDroid
А если серьезно, круто развивается проект)