GigaHackers
2.3K subscribers
61 photos
2 videos
10 files
59 links
Информация предоставлена исключительно в образовательных или исследовательских целях. Противоправные деяния преследуются по закону.
Авторы: @WILD_41, @Oki4_Doki и @VlaDriev
加入频道
Быстро расширяем скоуп за счёт Passive DNS

При проведении разведки на внешнем периметре важно быстро обнаружить доменные имена, чтобы затем провести сбор фруктов. Одним из таких методов является Passive DNS.
По сути это "телефонная книга" Интернета, где хранятся все записи о доменных именах, из которых резолвились IP.
Это позволит нам найти все доменные имена, которые были "забыты" на исследуемом нами скоупе.
На сегодняшний день есть несколько ресурсов, предоставляющих доступ к Passive DNS, которые я использую:
1. Virus Total - Имеет ограничение на 500 запросов, не так много, но для небольших подсетей подойдет. Имеет API, что позволяет легко автоматизировать поиск
2. RiskQ - 3к запросов по API в месяц без ограничений, но сейчас зарегистрироваться не получится, так как Microsoft купила платформу, поэтому, если есть возможность достать ключ, то отлично
3. RapidDNS - удобная вещь, хороший ресурс, но не имеет своего API, поэтому придется помучаться с парсингом HTML.
После получения доменных имен следует проверить их на доступность, так как очень часто из 100 доменных имен в лучшем случае будут отвечать 30.
Можно использовать следующую связку bash для быстрого чека результатов:
cat subdomain.txt | httpx -status-code -silent -proxy | anew avaliableHost.txt

В результате в интерактивном режиме вы сможете увидеть доступные сайты, а также с каким кодом ответа они возвращают ответ, что позволит наметить вектора дальнейших атак.
Кроме того, завернув в прокси запросы, вы сможете собрать в target все доступные хосты для краулинга, перебора директорий и тд.
Доброй охоты!!
Автор: @WILD_41
#WEB
[ Форма восстановления пароля как вектор атаки ]

Стоит отметить, что чаще всего описанное ниже относится к багбаунти или пентесту веба, чем к пентесту внешки.

Что же мы можем вытянуть из этой функциональности?

1️⃣ Захват аккаунта
Векторами для захвата аккаунта как правило являются:

Инъекция в заголовок Host - это достаточно старая уязвимость, но тем не менее ее до сих пор можно встретить при проведении пентеста. Чаще всего ее можно увидеть, если приложение или сервер отражают заголовок Host, переданный в HTTP-запросе, в формах и ссылках веб-приложения. Таким образом, если мы отправим запрос на восстановление пароля с подменённым Host заголовком, то есть шанс, что он отразится на итоговой ссылке на сброс пароля, которая придет на почту. При переходе по ссылке мы сможем получить токен смены пароля;

Брут id - на проектах я встречал случаи, когда URL для сброса пароля включал в себя id пользователя, при переборе которого менялся пароль у другого пользователя;

Доступность функциональности - иногда при прохождении процедуры восстановления пароля основные ручки уже могут быть вам доступны, это стоит проверить;

Слабые токены - я всегда проверяю, не являются ли токены просто хешированными названиями почты. Также стоит проверить как вообще ведется работа с токенами, то есть:
✳️ Можно ли пользоваться истекающим токеном;
✳️ Используется ли общий пул токенов - взять пул и попробовать восстановить у второй тестовой учетной записи;
✳️ Используется ли GUID в качестве токена - если да, то меняем на GUID от второй учетки;

Утечка токена через заголовок Referer - в целом тоже неплохая low бага, особенно в сочетании с open-rediect, если такая возможность есть.


2️⃣ Инъекции в структуру email-адреса - существуют также вариации, когда приложение некорректно обрабатывает название почты, что позволит нам отправить другой адрес, интерпретированный как легитимный. Через использование таких символов как {} . + - + можно поиграться с сокращениями домена @gmail = @googlemail
[email protected][email protected]
john.doe(intigriti)@example.com → [email protected]
[email protected] = [email protected] = [email protected]
[email protected] = [email protected] = [email protected]
[email protected] = [email protected]


3️⃣ Обход 2FA - после смены пароля приложение зачастую либо перенаправляет нас на страницу авторизации, либо сразу авторизует нас. Если перенаправляет сразу во внутрь приложения и не спрашивает второй фактор, то мы получаем 2FA bypass

4️⃣ Раскрытие информации (токены,id) - иногда при попытке восстановления почты, которая уже существует в системе, могут раскрываться различные идентификаторы пользователя

#WEB
PassiveReconSubdomains.pdf
2.1 MB
[ Passive Recon: Subdomains]

Всем привет!

Вчера наш коллега Иван Клоченко @iank13 выступил с докладом на тему пассивного поиска поддоменов. Посмотреть выступление можно здесь.

Ключевые моменты доклада:
💬 Что такое DNS
💬 Разница между DNS и Vhost
💬 Работа с passive DNS
💬 Популярные словари для поиска
💬 Утилиты для поиска

Будет интересно всем, кто занимается Bug Bounty и пентестами веб-приложений


#DNS #UCS #WEB #learn
Please open Telegram to view this post
VIEW IN TELEGRAM
[Кросс-доменные запросы (CORS): защита от кражи данных в сети.]

Всем привет!

Вышел мой комментарий на тему Кросс-доменные запросы (CORS): защита от кражи данных в сети. Совместно с коллегами раскрыли все аспекты CORS:

📌 Что такое CORS и как он работает
📌 Зачем нужен механизм CORS и как он помогает избежать кражи данных
📌 Безопасное использование CORS

#WEB #publication
[ Bitrix — поговорим о наболевшем ]

Всем привет!👋

Многие неоднократно слышали о CMS Bitrix — весьма удобная система для управления сайтом. Однако сильно уязвимая из "коробки". Об эксплуатации многих нюансов и уязвимостей было не раз сказано в комьюнити этичных хакеров.

Сейчас я хочу внести свой скромный вклад и рассказать о замеченных мною недостатках и особенностях этой CMS.

Данные мелочи не раз помогали мне как на Bug Bounty, так и на проектах по внешнему пентесту.

Надеюсь, что эти маленькие нюансы в сумме смогут помочь вам и вашей команде на проектах.

Приятного чтения:)

#bitrix24 #web #bug_bounty
[Обход фильтров в SSTI в Jinja2]

Не так давно в рамках подготовки к OSWE столкнулся с необходимостью обходить фильтры SSTI, проверяющие непосредственный темплейт.
Уязвимое приложение проверяло наличие .__ в строке передаваемого темплейта, что не давало просто использовать пейлоад из HackTricks и наслаждаться RCE на уязвимой машине.
Поэтому ловите несколько способов модификации пейлоада, чтобы обойти подобные фильтры или даже WAF целиком:

🔸 Для обхода фильтра по .__ можно использовать |attr()
{{ ''|attr('__class__’)}}

🔸 Можно использовать сложение строк или закодировать
{{request|attr("__"+"class"+"__")}}
{{''['\x5f\x5fclass\x5f\x5f']}}

🔸 Также можно обратиться к атрибутам по индексу
request["__class__"]

🔸 Кроме того, можно использовать Statements для определения переменных в темплейте
{% set string = "ssti" %}

{% set class = "__class__" %}

{{ string|attr(class)}}

{% with a = config.__class__.mro()[-1].__subclasses__() %} {{ a }} {% endwith %}

🔸 Для обхода фильтра по __ можно использовать requests.args для передачи частей полезной нагрузки в параметрах запроса и |join для соединения элементов в одну строку
{{request|attr([request.args.usc*2,request.args.class,request.args.usc*2]|join)}}&class=class&usc=_

🔸 Для обхода фильтра по [] можно использовать |getlist(). Данный метод возвращает всех значения, связанные с определенным ключом в запросе
{{request|attr(request.args.getlist(request.args.l)|join)}}&l=a&a=_&a=_&a=class&a=_&a=_


🔸 В случае, если встретился фильтр по |join, можно использовать |format для форматирования строк по переданным значениями
{{request|attr(request.args.f|format(request.args.a,request.args.a,request.args.a,request.args.a))}}&f=%s%sclass%s%s&a=_


Конечно количество фильтров может быть разнообразным, но тут уже скорее встает вопрос комбинации предложенных выше методов. 👆


Для закрепления я разработал небольшой стенд 🔥. Кому будет интересно, то можете проверить знания и навыки в деле!

@GigaHack

#web #stand #SSTI #learn #OSWE
[Полезный читшит для SSRF, CORS и open-redirect]

В последнее время у portswigger-а активно пополняются заметки по различным темам. Эта шпаргалка содержит полезные нагрузки для обхода проверки URL. Приведенные списки слов полезны для реализации следующих типов атак: SSRF, неправильные конфигурации CORS и open-redirect. Очень полезно, если кончились идеи, а ошибку с кодом 403 обходить надо. Также будет полезно и тем, кто только погружается историю с данными веб-уязвимостями.

https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet


#web #bypass #cheet_sheet
Всем привет! Сегодня выступаю на вебинаре у УЦ Маском (@mascom_uc). Расскажу о том как проводить разведку при пентесте внешнего периметра и веб-приложения и какие инструменты можно для этого использовать.

Ждём всех сегодня в 19.00 по МСК 😎
Кто ещё не записался, сделать это можно по 👉 ссылке

👉Презентация

#web #conference
[Как некорректная разработка API может привести к удалению пользователей]

Всем привет!👋
Пора снова делиться интересным профильным контентом

Летом @WILD_41 стал номинантом премии Pentest Award. Его кейс решили подробно разобрать и осветить на habr-е. ⚙️

При анализе веб-приложения была обнаружена связка уязвимостей, позволявшая удалить любого зарегистрированного пользователя из системы. Основано на реальных событиях😒

#web
Please open Telegram to view this post
VIEW IN TELEGRAM
[Сдача OSWE]

Всем привет! 👋

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

Моя первая попытка не увенчалась успехом. Уже сейчас я понимаю, что причинами моего поражения были волнение и излишняя торопливость, так как тренировочные лаборатории я решал буквально за 2-3 часа на машину вместе с автоматизацией. Это дало мне ложное представление, что экзамен будет таким же.
В результате первой попытки сдачи я пару раз провалился в rabbit hole и потратил кучу времени в попытках раскрутить уязвимости, которые ни к чему не вели. Как итог — потеря настроения, сил и концентрации.
После того как доступ к машинам протух, я написал отчет из того, что смог сделать, и изложил там свои мысли, которые у меня были касаемо двух нераскрученных уязвимостей. После этого отправил отчет и стал отсыпаться. Сил и настроения не было от слова совсем.

Вторая моя попытка была уже в 2025 году. Я ворвался на пересдачу сразу после начала рабочих будней. В результате мне удалось набрать необходимое количество флагов и написать отчет. Я бы не сказал, что мне было просто, но предыдущий опыт поставил мозги "на место". Я уже не закапывался в дебри, а старался смотреть на уязвимости более шаблонно и внимательнее читать различные cheet sheet и статьи. Как итог — все получилось... Ответ я получил очень быстро, буквально через пару дней. Когда увидел, что сдал, у меня было только одно чувство — облегчение.


P.S В следующих статьях я рассмотрю ресурсы и методологию, которую использовал при подготовке

@GigaHack

#OSWE #WEB
Please open Telegram to view this post
VIEW IN TELEGRAM
[ Сдача OSWE часть 2]

Всем привет! 👋

В продолжении истории о сдаче OSWE я хочу поговорить о том, как проходила моя подготовка к экзамену.
Для начала я отметил для себя, что моя главная цель при подготовке к экзамену — это научиться разбираться в исходном коде, написанном на различных стеках и с использованием определенных паттернов. На словах это звучит просто, но на деле это оказалось довольно обширной задачей, которую не получилось бы уместить в трех месячный курс (материалы к экзамену OSWE можно купить сроком на 3 мес. или на 1 год).

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

Процесс обучения я построил по принципу главное разобраться, не спеши. Обучение было построено на сочетании: программа OSWE + чтение ресурсов с перечнем статей для подготовки. Это позволило увеличить покрытие.

В целом главными моими талмудами были:
➡️ Агрегированный материал от Z-r0crypt
➡️ Полезный github
➡️ Материал от Hack The Box по OSWE

Количество ресурсов, что я пропылесосил конечно больше, но в целом эти 3 в качестве старта вполне хороши.
Для практики пользовался:
➡️ Список машин с HTB для OffSec-экзаменов
➡️ Гугл-документ со списком полезных машин к решению — OSWE like машины на HTB
➡️ TUDO — уязвимое приложение на PHP
➡️ Vulnerable Node — уязвимое приложение на NodeJS

Самое главная отличительная особенность OSWE — это необходимость автоматизации. Для меня это не было особой проблемой, но стряхнуть пыль с python нужно было. Единственной сложностью пожалуй было - это "распоточить" выполнение таких процессов как запуск HTTP-сервера, открытие порта для реверса.

На Github множество ресурсов, где делятся сниппетами кода из которых как из кубиков вы потенциально сможете собрать свой собственный эксплоит. Я не сторонник данного метода и вам не советую.

В итоге процесс обучения состоял из следующих шагов:

1️⃣ При чтении разделов, как только речь заходила о том, что меня как читателя вели за ручку до уязвимости (все лабораторные в методичках содержат пошаговые write-up-ы), я начинал самостоятельно искать уязвимость. Единственное, что для меня оставалось подсказкой — это ее название. Остальное же было моей задачей. С высоты прошедшего пути могу сказать, что такой подход дал свои плоды, но времени на это уходило очень много.
2️⃣ После обнаружения уязвимости и ее эксплуатации, я писал автоматизацию всего процесса в качестве тренировки.
3️⃣ Далее я решал HTB с похожими уязвимостями, чтобы закрепить пройденный материал.

Примерно из таких 3 циклически-повторяющихся шагов и состояло все мое обучение. Таким образом, я в сентябре вплотную подошел к лабораторным, которых я не делал. Я хотел сделать себе тестовый экзамен по всем канонам. Лично мне это было необходимо для того, чтобы отработать написание отчета и посмотреть сколько вообще на это необходимо времени.
Примерно из этого состояла моя подготовка. Сейчас могу сказать, что если бы я сдавал снова, то сделал примерно также.

Всем кто сдает OSWE или что-то ещё, удачи!!! Помните, что это просто экзамен 💼

P.S Я бы не рассматривал свой метод как ультимативный гайд, но надеюсь, что вы найдете для себя что-то полезное в моих словах.

@GigaHack

#OSWE #web
Please open Telegram to view this post
VIEW IN TELEGRAM