Fsecurity | HH
2.09K subscribers
1.72K photos
105 videos
62 files
6.15K links
Канал про ИБ
Наш Discord: https://discord.gg/Eg8aDS7Hn7
Пожертвовать:
> https://www.donationalerts.com/r/xackapb
Download Telegram
Forwarded from s0ld13r ch. (s0ld13r)
"Это не баг, а фича" или же backdoor by design pt. 1 😃

Когда мы ищем векторы RCE в инфре, мы привыкли охотиться за сложными CVE. Но иногда дверь оставлена открытой специально - по архитектурным соображениям. Сегодня поговорим про Java Debug Wire Protocol (JDWP) 👩‍💻

🔍 Что это такое?

Это протокол для отладки Java-приложений в реальном времени. Он позволяет смотреть состояние потоков, память и execution flow, не перезагружая приложение. Чтобы его включить, разработчику достаточно добавить одну строку:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005


🤭 В чем подвох?

Протокол не предусматривает никакой авторизации. Если порт 5005 торчит наружу или доступен во внутренней сети - это легитимный RCE «из коробки».

🤬 Проблема старых инструментов:

Популярный jdwp-shellifier написан на Python 2 и использует только Runtime.exec(). Главный минус - вы не видите вывод команды в консоли (blind execution). Если сеть ограничена и вы не можете кинуть reverse shell или сделать curl на свой сервер, эксфильтрация данных превращается в квест.

Я переписал и проапгрейдил этот инструмент, сделав его современным и более «зубастым» назвав его JDWP Knife.

Ключевые фичи:

• Python 3.6+ 👩‍💻
• Интерактивность: Вывод env, ls и cat прямо в консоль 👩‍💻
• Удобство: Минимум лишних движений при разведке 🕵️‍♂️

✍️ Примеры использования:

# 1. Discover JDWP
echo "JDWP-Handshake" | nc -w3 TARGET 5005

# 2. Identify service
python3 jdwp-knife.py -t TARGET -p 5005 --props

# 3. Extract credentials
python3 jdwp-knife.py -t TARGET -p 5005 --env | grep -iE 'pass|secret|key|token|jdbc|aws'

# 4. Read interesting files
python3 jdwp-knife.py -t TARGET -p 5005 --cat /etc/passwd


Будьте аккуратны с debug портами в проде, иногда удобство в разработке может привести к компрометации всей инфраструктуры
😉

💻 jdwp-knife: https://github.com/s0ld13rr/jdwp-knife

🧢 s0ld13r
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥2👎1😁1🤮1💩1💅1
Fsecurity | HH pinned «Ролик будет про Adaptix c2»
Fsecurity | HH pinned «Спустя два месяца затишья сделал ролик про Adaptix C2 👾 Поддержите видео лайком и комментарием, если оно будет вам полезно! Приятного просмотра: https://youtu.be/nbZxp55qs98»
This media is not supported in your browser
VIEW IN TELEGRAM
👍21
Forwarded from RedTeam brazzers (Миша)
Всем привет!

В продолжение анализа на очереди первый по популярности протокол, используемый в NXC, это SMB. В нем принцип определения привилегированности учетной записи основан на подключении к пайпу \svcctl поверх установленного SMB-соединения с последующей попыткой открытия менеджера управления службами с SC_MANAGER_ALL_ACCESS, что, само собой, разрешено только высокопривилегированной УЗ, ведь это право дает полный доступ до управления службами на конечном устройстве.

Для подключения используются функции из протокола MS-SCMR, а именно OpenScManager(). Отмечу, что подключение к svcctl может оказаться роковым в вопросах уклонения от обнаружения (ведь его используют и psexec.py и smbexec.py), поэтому алгоритм следует поменять.

Мы поверх SMB соединения можем подключиться к любому другому пайпу, который имеет какой-нибудь контроль доступа. Можно попробовать и более экзотичные варианты по типу попытки дропа файла на C$. Но мой выбор остановился на протоколе MS-EVEN6. Причем именно его шестой версии потому, что обычный MS-EVEN, который я использовал тут подключается поверх пайпа \pipe\eventlog, а некоторые детектят таким образом коерс через Coercer. Поэтому я переделал функцию под MS-EVEN6, который поддерживает подключение через обычный TCP-коннект. Можно увидеть мой код тут

А как бы меняли логику Вы?

@RedTeambro