Форум информационной безопасности - Codeby.net

Статья Session hijacking атаки JWT токены: от перехвата до detection в SIEM

  • 123
  • 0
Два ключа на тёмной стали: оригинал с гравировкой кода и янтарная копия из смолы со структурой токена внутри. Холодный бирюзовый свет монитора и тёплое янтарное свечение.


🔐 PAT, слитый в историю чата ChatGPT, оставался валидным месяцами и давал admin-доступ к production-репозиториям нескольких организаций. Два API-вызова — и весь периметр замаппирован. Без единой записи в аудит-логе.

JWT none algorithm: алг подменяется на none, подпись удаляется — legacy-библиотеки принимают. Key confusion RS256→HS256: публичный ключ RSA как HMAC-секрет. Hashcat -m 16500 на слабом секрете — 4 секунды до генерации произвольных токенов с role: admin. AITM-прокси (Evilginx) перехватывает session cookie после легитимного MFA — Conditional Access Policies не спасают.

Таблица behavioral detection: impossible travel HIGH, refresh token reuse CRITICAL, velocity anomaly HIGH, User-Agent switch MEDIUM. Псевдоправило корреляции для любого SIEM. Hardening-чеклист из девяти пунктов с готовой строкой Set-Cookie с HttpOnly, Secure, SameSite=Strict.

💡 Восемь техник ATT&CK — восемь точек где нужны правила. Большинство SOC покрывают две-три.

Статья Malware разработка на Rust: стелс-агент для red team, обход EDR и сравнение с C++

  • 192
  • 0
Монитор с зелёным текстом компилятора Rust и фрагментом дизассемблера Ghidra с нечитаемыми символами. Янтарное свечение CRT в кромешной тьме.


🦀 Функционально идентичный шеллкод-лоадер: 71.7 КБ на C и 151.5 КБ на Rust. Бинарь вырос вдвое — детект упал. Ghidra превращает Rust-код в нечитаемое месиво: monomorphization, ownership-модель, pattern matching ломают привычные паттерны статического анализа.

OPSEC-конфигурация Cargo.toml: opt-level = "z", LTO, strip = true, panic = "abort". Флаги nightly: location-detail=none убирает пути к файлам, fmt-debug=none исключает Debug-имена типов, build-std пересобирает std без строк. Шифрование строк в compile-time через str_crypter — URL C2 невидим для FLARE-FLOSS. C-style enum с transmute вместо serde — ни одного строкового литерала поля структуры в бинаре.

Что Rust реально меняет: сигнатурный match с известными семействами и время ручного triage аналитика. Что не меняет: VirtualProtect+CreateThread детектируется одинаково на любом языке. Против ETW-TI в Elastic 8.x+ переписывание на Rust ничего не даёт.

💡 Агент, падающий из-за use-after-free на третью неделю операции, обходится...

Статья Разработка расширений Burp Suite на Python и Java: автоматизация пентеста веб-приложений

  • 195
  • 0
Матричный принтер на антистатическом коврике печатает зелёный текст с кодом на перфорированной бумаге. Янтарный индикатор питания слабо освещает сцену в кромешной тьме.


🔧 API финтех-сервиса требовал HMAC-подпись в каждом запросе — тело, timestamp, сессионный секрет. Ни один BApp Store-плагин не поддерживал схему. Два часа на кастомное расширение с автопереподписью сэкономили неделю ручной возни с Postman.

Montoya API против legacy Extender API: PortSwigger прекратил поддержку IBurpExtender и IScannerCheck — все русскоязычные гайды на Хабре устарели. Единая точка входа MontoyaApi с 24 методами: http(), proxy(), scanner(), ai(). Immutable-объекты запросов через withUpdatedHeader() исключают race condition при параллельном Intruder.

Java 21 + Gradle стартовый проект из Burp → Extension.java → ./gradlew jar → загрузка JAR. HttpHandler перехватывает исходящие запросы, вычисляет HMAC через javax.crypto.Mac и добавляет заголовок X-Signature прозрачно для Repeater и Intruder. Python через Jython — Python 2.7 в 2025 году, только для одноразовых скриптов.

💡 Команда с кастомными сканерами под типовые мисконфигурации закрывает...

Writeup Web | Просто найди его | HackerLab (WriteUp)

  • 193
  • 0
justfindhimhackerlab.webp


🌐 Кнопка выводит «совет» — POST-запрос с JSON уходит на GraphQL-эндпоинт. Первая мысль: SQL-инъекция, данные из БД. Реальность: интроспекция схемы через __schema раскрыла поле getFlag с параметром isAdmin — и флаг получен двумя запросами.

GraphQL — язык запросов для API со строгой типизацией. Ключевая особенность для пентестера: интроспекция включена по умолчанию и отдаёт полную схему API — все типы, поля, аргументы. Запрос {"query": "{__schema{queryType{name}}}"} показал структуру. Дальше — поле getFlag(isAdmin: Boolean), значение true, флаг в ответе.

Вектор: GraphQL Introspection → Schema Disclosure → прямой вызов привилегированного поля без авторизации. Классическая ошибка: логика доступа вынесена в клиентский параметр isAdmin вместо серверной проверки прав.

💡 Burp Repeater + pretty-print JSON — и GraphQL-схема читается как документация к собственному API.

Статья Feature engineering для сетевого трафика: почему качество фичей решает больше, чем выбор алгоритма в ML-моделях IDS

  • 191
  • 0
Монитор с зелёным свечением фосфорного текста на чёрном фоне отображает парсер сетевых логов и ASCII-график важности признаков. Сканирующие полосы и зернистость создают атмосферу ретро-терминала.


🤖 Две недели на подбор гиперпараметров LightGBM — F1 между 0.71 и 0.74. Один вечер на три новые фичи: стандартное отклонение IAT, энтропия payload и byte ratio. F1 прыгнул до 0.93. Алгоритм тот же, данные те же — изменилось то, что модель «видит» в трафике.

Три уровня признаков: пакетный (TCP-флаги, TTL), flow (byte_ratio, pkt_ratio, IAT-статистика из Zeek conn.log) и поведенческий (энтропия dst_port за окно, SYN-ratio). Маппинг на MITRE ATT&CK: std_iat < 0.5с при сессии >5 мин → beacon T1071, энтропия dst_port > 4 бит → сканирование T1046, HTTP на порту 53 → туннелирование T1572.

Python-пайплайн: zeek → pandas → производные фичи → LightGBM → SHAP для интерпретации. Три ловушки: IP-адреса в фичах вместо поведенческих агрегатов, временная утечка при двунаправленном окне, мультиколлинеарность 80+ фичей CICFlowMeter.

💡 Менять Random Forest на Transformer при плохих фичах — это ставить спортивный выхлоп на машину с пробитым...

Статья Side-channel атаки на практике: power analysis, timing attacks и electromagnetic emanation для пентестера

  • 193
  • 0
Плата ChipWhisperer Lite на антистатическом коврике с электромагнитным зондом у микроконтроллера STM32. Дисплей светится зелёным, отображая прогресс DPA-атаки на AES-128.


🔬 На пентесте IoT-шлюза UART и JTAG залочены, прошивка зашифрована AES-128. Единственный путь к ключу — дифференциальный анализ мощности: 50 000 трейсов с ChipWhisperer Lite, четыре часа захвата — все 128 бит восстановлены без знания внутренней архитектуры чипа.

DPA на AES: N plaintext-входов → трейсы потребления → корреляция Пирсона гипотезы о байте ключа с Hamming weight выхода S-box → побайтовое восстановление. STM32F3 без контрмер — 10 000 трейсов. SPA на RSA через square-and-multiply: один трейс и приватный ключ виден визуально по паттернам потребления. Timing attack через memcmp с ранним выходом: 1 000+ измерений на байт в локальной сети вытягивают сигнал из джиттера.

Decision tree: JTAG открыт → OpenOCD, UART есть → binwalk, интерфейсы залочены + plaintext контролируется → DPA, физический доступ без резки цепей → EM-анализ. ChipWhisperer-Nano ($50) + STM32 Nucleo ($15) + бесплатные Jupyter notebooks — стенд для старта.

💡 Masking 1-го порядка...
🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

Статистика форума

Темы
52 020
Сообщения
346 097
Пользователи
149 316
Новый пользователь
pradm