Cybred
9.78K subscribers
402 photos
35 videos
100 files
611 links
Download Telegram
Advent of Cyber 2023

Традиционно получаем премиум, как и в прошлые годы. Или что-нибудь лучше (за первые места Steam Deck и периферия).
https://github.com/Xacone/BestEdrOfTheMarket

The Best EDR Of The Market (BEOTM) наивный EDR (Endpoint Detection and Response) с открытым исходным кодом, созданный как испытательный стенд для понимания и обхода методов обнаружения, используемых во многих реальных EDR.

Работает в пользовательском пространстве и использует методы, которые основаны на динамическом анализе состояния целевого процесса (памяти, вызовов API и т. д.),

Используемые техники:
Multi-Levels API Hooking
SSN Hooking/Crushing
IAT Hooking
Shellcode Injection Detection
Reflective Module Loading Detection
Call Stack Monitoring

Находятся в разработке:
Heap Monitoring
ROP Mitigation
AMSI Patching Mitigation
ETW Patching Mitigation

Статьи из блога автора, рассказывающая о работе BEOTM более подробно — https://xacone.github.io/BestEdrOfTheMarket.html
https://labs.nettitude.com/blog/creating-an-opsec-safe-loader-for-red-team-operations/

Гайд по написанию собственного лоадера, который можно протестировать на стенде из предыдущего поста. Предполагает обход EDR с техникой, названной Tartarus' Gate (пришедшей на смену Halo’s Gate) с косвенными системными вызовами.

Готовый код в репозитории https://github.com/nettitude/Tartarus-TpAllocInject
https://www.youtube.com/watch?v=gjvu-l6vKFE

Обход аутентификации Windows Hello (с помощью отпечатков пальцев) на трех ноутбуках с лучшими (как утверждают исследователи) датчиками: Dell Inspiron 15, Lenovo ThinkPad T14 и Microsoft Surface Pro X/8.

Что забавно — худшим оказался Microsoft Surface, поскольку он не использует SDCP (Secure Device Connection Protocol), который разработала сама же компания Microsoft для валидации датчиков и шифрования данных.
Где искать логи и как их читать

Работая с логами, приходится обращаться ко множеству файлов от разных разработчиков. Все они отличаются собственным форматом, который меняется от файла к файлу. Большинство содержат очень много информации, и их бывает трудно разобрать без каких-либо справочных материалов.

Вот небольшая подборка шпаргалок, которые помогут вам разобраться в некоторых типах журналов, с которыми можно столкнуться в ходе расследования.

What2Log — платформа, на которой собраны все файлы с аудитными логами в Linux и Windows
RULER project — у антивирусов тоже есть свои логи: репозиторий, в котором собрана информация о каждой антивирусе - какие данные собирает и куда их пишет
Malware Archaeology — коллекция шпаргалок по ведению журналов для различных типов журналов Windows.
Linux Logs Explained — список всех файлов и путей различных журналов, создаваемых Linux
Windows Security Log Encyclopedia — объяснение всех идентификаторов событий в Windows
Windows Security Identifiers — идентификаторы безопасности и их связь с учетками и группами в Windows
What are Azure Active Directory reports? — понимание журналов аудита Azure AD
Sign-in log schema in Azure Monitor — описание формата журналов входа в Azure
Detailed properties in the audit log, Microsoft 365 Compliance — подробный разбор логов O365
https://vulncheck.com/blog/cve-2023-44604-activemq-in-memory

В ноябре Huntress Labs, Rapid7, и ArticWolf выпустили отчет, в котором рассказали об активной эксплуатации CVE-2023-46604 в ActiveMQ. Как выяснилось, рансомварщики из HelloKitty и TellYouThePass использовали сырой PoC, вызывающий cmd.exe с curl.exe или msiexec.exe.

Очевидно, долго оставаться незамеченным с таким эксплойтом невозможно, поэтому буквально через пару дней после начала компании, они и привлекли к себе внимание.

Атаки не должны быть шумными, поэтому Jacob Baines предлагает апгрейд обычного эксплойта для CVE-2023-46604, который позволит выполнить код в памяти процесса (без вызова других программ) и избежать обнаружения EDR.
https://github.com/MegaManSec/SSH-Snake

SSH-Snake это bash-скрипт для автоматического обхода сети с использованием ssh-ключей, обнаруженных на скомпрометированных системах, и создания полной карты всех взломанных хостов.

Принцип работы:
1. Найти на текущей машине все приватные ssh-ключи
2. Просканировать сеть и найти живые хосты, к которым можно подключиться
3. Попытаться подключиться к хостам с ключами, найденными в первом пункте
4. После подключения к новому устройству, повторить все шаги, начиная с первого.

Возможности:
переходит от одной системы к другой только с помощью bash и stdin, не создавая никаких файлов
как только попал на новую систему, автоматически пытается повыситься до рута, используя sudo
ищет закрытые ключи в часто используемых файлах и папках, обход гибко настраивается
запоминает, какие машины уже были просканированы, чтобы не подключаться к ним снова
генерирует на выходе готовый граф, и отдельно сохраняет все найденные приватные ключи
https://github.com/DERE-ad2001/Frida-Labs

Репозиторий с задачами для изучения Frida на примере Android приложений. Они не похожи на хардкорные таски из Capture The Flag (CTF), но помогут вам начать знакомство с Frida и ее API. Если вы новичок или middle, это идеальное хранилище для обучения. Задачи организованы таким образом, чтобы охватить все — от основ до промежуточного уровня.

Навигация:
Challenge 0x1
: Frida setup, Hooking a method
Challenge 0x2 : Calling a static method
Challenge 0x3 : Changing the value of a variable
Challenge 0x4 : Creating a class instance
Challenge 0x5 : Invoking methods on an existing instance
Challenge 0x6 : Invoking a method with an object argument
Challenge 0x7 : Hooking the constructor
Challenge 0x8 : Introduction to native hooking
Challenge 0x9 : Changing the return value of a native function
Challenge 0xA : Calling a native function
Challenge 0xB : Patching instructions using X86Writer and ARM64Writer
https://github.com/PhonePe/mantis

Mantis — это фреймворк для автоматизации рабочего процесса разведки и обнаружения уязвимостей.

На вход он принимает домен верхнего уровня, после чего переходит к сбору поддоменов, директорий и виртуальных хостов, который он завершает комплексным сканированием секретов, неправильных конфигураций и классических багов.

По сути, это оркестратор, который вместо вас запускает dirb, nmap, nuclei и другие утилиты с нужными ключами. В этом посте я рассказывал об ещё одном таком решении, reconFTW.

Небольшой отзыв с опытом его использования — 4300$ Bounty from Opensource automate recon tools, why not?
https://patchapalooza.com/

PatchaPalooza вебсайт, транслирующий подробный анализ ежемесячных обновлений безопасности Microsoft.

Он забирает информацию из API MSRC CVRF, сохраняет и анализирует данных об обновлениях, и составляет наглядную сводку с исправленными уязвимостями, которую можно сортировать по риску и актуальности.

Существует версия в виде скрипта https://github.com/xaitax/PatchaPalooza
https://github.com/oppsec/juumla

Juumla — это python-инструмент, созданный для определения версии Joomla, сканирования уязвимостей и чувствительных файлов.

Например, под Joomla! < 4.2.8 существует недавняя CVE-2023-23752, которая дисклоузит пользователей, учетку от базы данных, и другие секреты.
Метод закрепления через Git из The Art of Linux persistence.

Git — это распределенная система контроля версий, которая отслеживает изменения в файлах, и обычно используется для координации работы программистов, которые совместно пишут исходный код.

Но есть в Git две концепции, которые интересные не только среднестатистическому программисту, но и хакеру: хуки и конфигурационные файлы. Хуки существуют разные: pre-commit/post-commit/pre-merge/post-merge/ и живут они в директории проекта, в .git/hooks/.

Представляют собой исполняемые файлы на одном из скриптовых языков и могут содержать в себе любые команды, которые будут вызваны при выполнении одного из условий:
pre-commit исполняется при каждом выполнении команды git commit, перед тем как Git запросит ввод комментария к коммиту или создаст объект коммита.
prepare-commit-msg вызывается после pre-commit, чтобы составить комментарий к коммиту в текстовом редакторе
commit-msg очень похож на prepare-commit-msg, но вызывается после того, как пользователь введет сообщение коммита
post-commit вызывается сразу после commit-msg
post-checkout очень похож на post-commit, но вызывается каждый раз при успешном переключении с помощью git checkout

Нам необходимо создать любой из этих файлов, например, pre-commit, написать в нем полезную нагрузку, — это будет реверс-шелл с https://www.revshells.com/. А дальше дождаться, когда программист начнет работать на виртуалке с бэкдором, и получить сессию.
https://ntlm.pw/

База данных предварительно вычисленных NTLM-хэшей "ntlm to password" на 8 миллиардов записей.

Искать лучше через API, стоимость поиска зависит от способа:
через форму на главной: 10 поинтов/хэш
через API: 5 поинтов/хэш
через балковое (для частых запросов) API: 4 поинта/хэш

Квота на использование пополняется на 5000 поинтов каждые 15 минут.

Пример использования:
Invoke-WebRequest https://ntlm.pw/[32-character hash] | Select-Object -Expand Content
https://github.com/efchatz/pandora

Pandora — Red Team-инструмент для извлечения учетных данных из менеджеров паролей.

Поддерживает 14 программ с 18 различными реализациями (например, можно дампить учетные данные как из десктопного приложения, так и из браузерного расширения одного и того же продукта), включая 1Password, LastPass, Bitwarden и другие.
Разработчики любят писать микросервисы для "перекладывания JSON". Стандарт устоявшийся и, как правило, не сулит проблем. Но так ли это на самом деле?

Возьмем небольшое приложение с двумя микросервисами:
Cart — реализует бизнес-логику корзины
Payment — используется для обработки платежей

Cart написан на Python с Flask и принимает ID товаров с их количеством. Попробуем отправить в него запрос с двумя одинаковыми ключами:
"cart": [
{
"id": 0,
"qty": 5
},
{
"id": 1,
"qty": -1,
"qty": 1
}
]

Сервис провалидирует JSON в соответствии со схемой jsonschema.validate(instance=data, schema=schema). Убедится, что id: 0 <= x <= 10 and qty: >= 1. На этом этапе не будет ошибки (не смотря на то, что один из отправленных qty не подходит под условие), поскольку Flask использует стандартный JSON-парсер из Python, а тот сериализует данные, отдавая приоритет последнего ключа (qty = 1).

Дальше провалидированный JSON отправляется в микросервис Payment.

А микросервис Payment написан уже на Go и использует другой парсер buger/jsonparser. Он уже не валидирует JSON (ведь валидация была на предыдущем шаге), но использует приоритет первого ключа (qty = -1). Считает итоговую сумму total = total + productDB[id]["price"].(int64) * qty и генерирует чек.

Мы смотрим в чек, который вернулся в ответе, и видим ошибку. Нам будет отправлено шесть товаров стоимостью 700 долларов, но с нас взяли только 300 долларов, из-за расчетов со вторым ключом.

Такие ошибки возникают из-за того, что существует много стандартов JSON:
1. json.org
2. IETF RFC 4627
3. ECMAScript 262
4. ECMA 404
5. IETF RFC 7158
6. IETF RFC 7159
7. JSON5
8. HJSON

И в каждом из них свои правила парсинга JSON: о том, как обрабатывать дублирующие ключи, что делать с большими числами с плавающей точкой, что считать валидным, а что нет. И на каждом из этих этапов могут возникнуть коллизии, позволяющие обходить средства защиты или вызывающие баги в бизнес логике.

Полезные ссылки:
https://seriot.ch/json/parsing.htmlбольшая таблица-сравнение: как разные парсеры обрабатывают разные значения.
https://bishopfox.com/blog/json-interoperability-vulnerabilities я рассказал только об одном баге, но их гораздо больше: здесь можно почитать обо всех остальных.
https://github.com/a1phaboy/JsonDetect расширение для Burp для определения того, какой парсер используется.
https://github.com/Hackmanit/TInjA

TInjA (the Template INJection Analyzer) — CLI-утилита для проверки веб-приложений на наличие уязвимостей инъекции шаблонов.

Она поддерживает 44 наиболее актуальных шаблонизатора (по состоянию на 2023 год) для восьми различных языков программирования и поддерживает поиск как SSTI, так и CSTI.
https://docs.google.com/spreadsheets/d/1dwSMIAPIam0PuRBkCiDI88pU3yzrqqHkDtBngUHNCw8

Таблица, отдельные скриншоты которой гуляют по разным чатам. Рекомендуемые коробки для подготовки к сдаче экзаменов от OffSec: PEN-200 (OSCP), PEN-300 (OSEP) и WEB-300 (OSWE).

И актуальная (последнее видео вышло 11 дней назад) серия видео с развертыванием и решением похожей локальной лаборатории: OSCP Practice Lab: Active Directory Attack Path #1, #2, #3.
https://github.com/moonD4rk/HackBrowserData

HackBrowserData это инструмент командной строки, который умеет расшифровывать и экспортировать данных из 18 браузеров на Windows, MacOS и Linux.

Извлекаемые данные:
— сохраненные пароли
— история браузера
куки пользователя
кредитные карты
история скачиваний
список расширений
localStorage
закладки

Пример использования:
hack-browser-data.exe -b chrome -f json -dir results -cc


На замену SharpChromium.
This media is not supported in your browser
VIEW IN TELEGRAM
Именованные пайпы — один из известных способов повышения привилегий в Windows.

CVE-2018-11479
— если не эксплуатировали, то слышали про эту уязвимость в Windscribe VPN.

Системный процесс WindScribeService.exe устанавливает пайп \\.\pipe\WindscribeService с CreateProcess, в который можно отправить путь к любому исполняемому файлу и породить новый процесс от имени SYSTEM.

Освежить память эксплойтом можно тут https://pastebin.com/eLG3dpYK, а для Metasploit давно есть готовый модуль https://www.exploit-db.com/exploits/48021.

И если раньше ресерчить приходилось через Powershell, то теперь появился вполне неплохой https://github.com/cyberark/PipeViewer/, который листит всю информацию о доступных пайпах с их разрешениями (подсвечивая опасные), позволяет использовать готовые фильтры и создавать интерактивные пайп-чаты.
Living Off the Foreign Land

По мере совершенствования EDR, все чаще можно встретить вариант, когда на целевой машине поднимается SOCKS-сервер, а все "вредоносные программы" запускаются на собственной виртуалке.

Подход заключается в том, чтобы стать "offensive-администратором" в удаленной сети — настроить маршрутизацию протоколов типа Kerberos к себе и использовать встроенные утилиты Windows под видом легитимных действий для разведки, горизонтального перемещения и повышения привилегий с собственного ПК.

Цикл статей:
Setup Linux VM for SOCKS routing
Configuring the Offensive Windows VM
Using Windows as Offensive Platform

Командлеты и бинари:
https://lofl-project.github.io/