Fsecurity | HH
2.02K subscribers
1.77K photos
108 videos
64 files
6.41K links
Канал про ИБ
Наш Discord: https://discord.gg/Eg8aDS7Hn7
Пожертвовать:
> https://www.donationalerts.com/r/xackapb
Download Telegram
Forwarded from CyberSecrets
Задача для собеседования №2

Продолжаем тему задачек и рассмотрим второй сценарий. И опять чтение LAPS, но это совпадение.

Сценарий
В результате анализа векторов в BloodHound было обнаружено, что на сервер SCCM имеет привилегии локального администратора на сервере SERVER, который в свою очередь имеет права на чтение атрибута LAPS для сервера SERVERDB. На сервере SERVERDB есть сессия администратора AD-ADMIN.

Дополнительное условие, на сервере SERVER отключена SMB подпись.

Задача попытаться захватить учетную запись администратора AD-ADMIN.

Решение:

Если на сервере `SCCM` не настроена защита от принудительной аутентификации (фильтр RPC), то мы можем попытаться выполнить принудительную аутентификация и перенаправить NTLN аутентификацию на сервер `SERVER`. В качестве полезной нагрузки может быть несколько вариантов:
- Добавить себя в группу локальных администраторов;
- Прочитать данные из LSA, получив локальные учетные данные;
- Выполнить LDAP запрос на чтение атрибута `ms-Mcs-AdmPwd`

Рассмотрим третий вариант. Хотя учетная запись `SCCM` входит в группу локальных администраторов, компьютерам запрещен интерактивный вход на удаленную машину. Поэтому все команды будут выполняться от SYSTEM. Если команды от SYSTEM на доменной машине, то при обращении к LDAP будет использоваться учетной запись компьютера, в нашем случае `SERVER`.

Чтобы выполнить запрос к LDAP воспользуемся ADSI запросом:

```
$object = [ADSI]"LDAP://CN=SERVERDB,CN=Computers,DC=domain,DC=local"
$name, $laps = $object.Properties["name","ms-Mcs-AdmPwd"]
Write-Output "$name has LAPS password $laps"
```

Переведем это в последовательность base64, чтобы избавиться от лишних спецсимволов. Запускаем NTLM Relay в качестве цели указываем SERVER, а в качестве полезной нагрузки ` -c "powershell -enc <base64>"`.

Теперь выполняем принудительную аутентификацию сервера `SCCM` и наблюдаем за результатами. Если все было сделано правильно мы получим пароль LPAS и можем зайти на сервер ` SERVERDB` и попытаться захватить учетную запись `AD-ADMIN` с помощью дампа билетов Kerberos или имперсонализации токенов доступа.

Если, что-то пойдет не так, то всегда остаются два первых варианта.



#Внутрянка #Задачи
Forwarded from Ralf Hacker Channel (Ralf Hacker)
В продолжение все той же темы CVE-2025-33073...

https://www.synacktiv.com/publications/ntlm-reflection-is-dead-long-live-ntlm-reflection-an-in-depth-analysis-of-cve-2025

Еще один ресерч, на это раз от Synactiv. Вот только у них не LPE, а Auth RCE от имени SYSTEM (если подпись SMB на машине не требуется).

Even though CVE-2025-33073 is referred by Microsoft as an elevation of privilege, it is actually an authenticated remote command execution as SYSTEM on any machine which does not enforce SMB signing.


#rce #lpe #ad #relay #pentest #redteam
Forwarded from Похек
This media is not supported in your browser
VIEW IN TELEGRAM
Сегодня мы погрузимся в ностальгию и разберем, как старенькая, но любимая многими игра "Герои Меча и Магии V" может стать лазейкой для выполнения вредоносного кода.

Вектор атаки: карты — это не то, чем кажутся
В "Героях V" есть редактор карт, с помощью которого игроки могут создавать свои миры и делиться ими. Эти карты имеют расширение .h5m, но на самом деле это обычные ZIP-архивы. Внутри такого архива лежит несколько файлов, но для нас самый интересный — name.txt. Этот файл содержит название карты, и игра считывает его, как только вы заходите в меню выбора карт для начала новой игры.

Игра использует собственную библиотеку для работы с ZIP-архивами. Когда вы открываете список карт, игра должна распаковать name.txt из каждого .h5m файла, чтобы показать вам их названия.

Уязвимость: переполнение кучи на доверии
Проблема возникает в процессе распаковки. Вот как это выглядит на техническом уровне:
➡️Выделение памяти: Игра смотрит на метаданные файла name.txt внутри ZIP-архива, а именно на поле m_UncompressedSize. Это поле говорит, сколько места понадобится для распакованного файла. На основе этого значения игра выделяет буфер в памяти (в куче) с помощью кастомного аллокатора H5_alloc.
➡️Распаковка: Затем вызывается функция Uncompress, которая использует библиотеку zlib, а конкретно функцию inflateBack. Эта функция распаковывает данные.
➡️Копирование: inflateBack вызывает специальную callback-функцию zlib_out, которая и копирует распакованные данные в тот самый буфер, который был выделен на первом шаге.

Ключевая уязвимость заключается в том, что игра слепо доверяет значению m_UncompressedSize из заголовка ZIP-файла. Что, если мы создадим вредоносный архив, где m_UncompressedSize будет маленьким (например, 0x800 байт), а реальный размер распакованных данных — гораздо больше (например, 0x2000 байт)? В этом случае zlib_out попытается записать 0x2000 байт в буфер размером 0x800 байт. Результат — классическое переполнение кучи (heap overflow).

Эксплуатация: от переполнения к RCE
Теперь самое интересное — как превратить это переполнение в выполнение своего кода.

Поиск цели: Наша задача — перезаписать что-то важное в памяти. Идеальная цель — указатель на таблицу виртуальных функций (vtable) какого-нибудь объекта. Если мы заменим этот указатель на свой, то при вызове метода этого объекта управление перейдет к нашему коду.

Исследователи обнаружили, что из-за особенностей работы кастомного аллокатора H5_alloc можно довольно предсказуемо разместить наш вредоносный буфер рядом с определенным объектом. С помощью скрипта для IDA Python они выяснили, что объект типа NGScene::CLightStateNode почти всегда находится на одном и том же расстоянии от буфера, выделяемого для name.txt.

➡️Построение цепочки: У игры не включена рандомизация адресного пространства (ASLR), так что адреса кода и данных известны заранее. Однако мы не контролируем стек напрямую, поэтому классический ROP (Return-Oriented Programming) не подходит. Вместо этого используется техника JOP/COP (Jump/Call-Oriented Programming).

Схема эксплойта выглядит так:
0️⃣Создается карта .h5m со специально подготовленным файлом name.txt. В его ZIP-заголовке указывается маленький размер, а внутри — большой объем данных (шеллкод).
1️⃣Когда игра пытается показать название карты, происходит переполнение кучи.
2️⃣Переполнение перезаписывает vtable объекта NGScene::CLightStateNode, указывая на первый гаджет в нашей JOP-цепочке.
3️⃣Когда игра пытается освободить этот объект, вызывается его деструктор через подмененную vtable, и управление передается нашему первому гаджету.
4️⃣Цепочка гаджетов выполняет "пивот" стека: указатель стека (ESP) перемещается так, чтобы он указывал на контролируемую нами область памяти внутри перезаписанного объекта.
5️⃣Далее выполняется стандартная ROP-цепочка, которая загружает kernel32.dll, находит адрес функции WinExec и запускает calc.exe.

Вуаля! При простом наведении на вредоносную карту в меню игры у пользователя запускается калькулятор, а мог бы запуститься любой другой вредоносный код.

🔗Источник

🌚 @poxek | 🌚 Блог | 📺 YT | 📺 RT | 📺 VK | 🌚 Мерч
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🤝1🫡1
ELF-малварь атакует облако
🧠 Unit 42 раскрывает активную адаптацию Linux ELF-бинарников для атак на облачные окружения.

📌 Контекст
😵 70–90% облачных инстансов используют Linux
☠️ Злоумышленники адаптируют ELF-малварь под:
Backdoors
Droppers
RAT
Wipers
Exploit-бинарники

🔍 Техники злоумышленников
🧬 LD_PRELOAD hijacking — внедрение в процессы через dynamic linker
💉 Внедрение в sshd, перехват SSH-коммуникаций
📡 SOCKS5-прокси и обратные шеллы
🧪 Runtime-инъекции, ICMP-knocking, cron persistence
🗂️ Использование .so-библиотек как малвари

Семейства ELF-малвари
1. NoodleRAT (Linux/Windows)
Backdoor, способный выполнять широкий набор C2-операций:
🧰 Возможности:
Обратный шелл (reverse shell)
SOCKS-прокси (tunneling)
Шифрование трафика
Планировщик задач (scheduled execution)
Загрузка/выгрузка файлов
Маскировка под системные процессы (process name spoofing)
📌 Варианты под Windows и Linux (ELF)
🎯 Цели: Тайланд, Индия, Япония, Малайзия, Тайвань
🕵️ Задействованные акторы: Rocke, Cloud Snooper

2. Winnti
Бэкдор, загружаемый через LD_PRELOAD, без изменения легитимных бинарей.
🧰 Возможности:
Выполнение удалённых команд
Эксфильтрация файлов
Прокси-соединения через SOCKS5
📦 Структура:
libxselinux (основной ELF)
libxselinux.so (подгружаемая библиотека)
🕵️ Задействованные APT-группы:
Starchy Taurus (aka Winnti Group, BARIUM)
Nuclear Taurus (Tumbleweed Typhoon, THORIUM, Bronze Vapor)

3. SSHdInjector
Модифицирует SSH-демон в рантайме для получения постоянного доступа.
🧰 Возможности:
Кража SSH-учёток
Выполнение удалённых команд
Загрузка дополнительной малвари
Доступ к файловой системе
Обратный шелл
Эксфильтрация данных
🕵️ Задействованные группы:
Digging Taurus (aka Daggerfly, Evasive Panda)
🎯 Цели: госучреждения, телеком, разведка

4. Pygmy Goat
Изначально найден на Sophos XG, использует уязвимость libsophos.so (CVE-2022-1040).
📍 Внедрение в SSH через LD_PRELOAD, перехват SSH-сессий
🧰 Возможности:
Обратный шелл
Сниффинг трафика (packet capture)
Создание cron-задач
Туннелирование через SOCKS5
Активация по ICMP-пакетам ("port knocking") или "магическим байтам" в SSH
🎯 Цели: Азиатский госсектор, НПО, здравоохранение, транспорт

5. AcidRain / AcidPour (Sandworm / Razing Ursa)
🔨 Wiper-малварь для Linux-устройств:
AcidRain: под MIPS (роутеры, модемы)
AcidPour: под x86 (облачные хранилища, ICS)
🧰 Возможности:
Использует IOCTL для стирания данных
Удаляет себя после выполнения (defense evasion)
📌 Могут применяться в облаке при доступе к shell через webshell или container escape

🔗 https://unit42.paloaltonetworks.com/elf-based-malware-targets-cloud/
🦔 THF
Please open Telegram to view this post
VIEW IN TELEGRAM
3
Discord сервер
👆🏻Тут можно пообщаться и найти много полезной информации 🦈
Forwarded from s0i37_channel
Добавил к своей defence коллекции крошечный скрипт (https://github.com/s0i37/defence/blob/main/services.py) который показывает какой протокол пытается найти у вас удалённая сторона.

Скриптик просто сверяется по базе nmap какой payload вам отправили и на что он больше всего похож.
Discord сервер
👆🏻Тут можно пообщаться и найти много полезной информации 🦈
Forwarded from Заметки Слонсера (Slonser)
Думаю многим багхантерам знакома ситуация когда нашел Self-XSS и её не сдать по правилам программы
Используя современные возможности браузеров я попытался исправить эту ситуацию
Читайте в моем последнем ресерче
https://blog.slonser.info/posts/make-self-xss-great-again/
«Ваше лицо скомпрометировано!»

В одной из бизнес-центров, где расположен офис наших партнеров, внедрили две системы пропусков:
1. По одноразовому QR-коду
2. По биометрии, а именно лицу

И если с первой всё окей, работает как часы и вполне надежно, то со второй есть проблемы. Терминал с камерой для QR и лица - один и тот же, и лицо, как и QR, распознаются, судя по всему, одним ПО! Уже чувствуете подвох?

Для проверки QR достаточно считать пиксели и проверить одноразовый код в базе, а вот для проверки лица этого явно недостаточно. Ведь основа биометрии не секретность, как мы писали неоднократно ранее. Основа биометрии — качество проверки, умение отличить настоящее лицо от подделки!

Отличить настоящего человека от:
- Фотки на телефоне
- Распечатанного фото
- Человека в накладной маске
- Человека в тонкой (проводящей тепло) маске
И иных способов мимикрии.

Как вы понимаете, уже первую строчку терминал БЦ не прошел, бликующей фотографии лица на экране телефона оказалось достаточно, чтоб войти в БЦ. Никакой проверки на «живость» в помине нет. Притом что сотрудник уже входил и обратно не выходил. Малейший антифрод тоже отсутствовал.

Партнеры предъявили это охране, и как они отреагировали?
Заблокировали вход сотруднику по лицу, мотивировав тем, что «Ваше лицо скомпрометировано!». Видимо считая, что каждый должен ходить в парандже и приоткрывать свое секретное лицо исключительно на входе в БЦ.

Когда нам рассказали, мне было очень смешно, и я предложил в будущем сфоткать лицо начальника охраны и «скомпрометировать» и его. Интересно, какая будет реакция?