Coffee cube
276 subscribers
118 photos
17 videos
24 files
81 links
Этот канал посвещен моему пути в сфере Информационной безопасности.

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

По всем вопросам можете писать мне в ЛС: @ju57_4_cu63
Download Telegram
Привет^3☕️

Замечал и за собой, и за другими🤔: придя к одному паттерну поведения, мы часто перестаём замечать альтернативные варианты.

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

Пример такого подхода вы увидите в одной из следующих лабораторных работ🙂:

spbctf_2_x86
spbctf_3_x86_64

↖️ 📕тг🤬чатик ✏️посты

#reverse #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
2👨‍💻411
Привет^3☕️

Во время поиска уязвимостей или просто при изучении сервиса иногда можно наткнуться на странные зашифрованные или закодированные данные😶. К сожалению (а может и к счастью — если смотреть с точки зрения безопасности🤔), расшифровать их напрямую не удаётся.

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

Ведь зачем ломать голову и пытаться расшифровать строку вручную, если сайт любезно сделает это за нас?)☺️

Authentication bypass via encryption oracle

↖️ 📕тг🤬чатик ✏️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
262👨‍💻1
Привет^3☕️

Некоторые из вас уже слышали эту историю, но, как оказалось, всё было куда интереснее, чем я предполагал.😱

Недавно я стал жертвой хакерской атаки.🥴 В ней хакеры покусились на святое — мой сервер . Сам “взлом” вряд ли можно назвать полноценным взломом, но инцидент получился забавным, поучительным и, как ни странно, идеально подошёл для небольшого разбора.

Решил показать вам эту историю со стороны — как выглядит инцидент информационной безопасности, какие вопросы возникают в процессе расследования и как вообще ведётся разбор подобного очень “серьёзного” кейса.😁

Так что запасайтесь попкорном, наливайте кофе и готовьтесь посмеяться.😂

P.S: советую запустить видосик. Так будет еще смешнее

Взлом майнкрафт сервера

↖️ 📕тг🤬чатик ✏️посты

#linux #story
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥54👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
Привет^3☕️

На очереди достаточно интересный вид уязвимостей — Race Condition.⚡️

Это уязвимость в логике приложения. Чаще всего она позволяет обойти или превысить ограничения, заложенные в бизнес-логике.

Рассмотрим простой пример — одноразовая скидка на заказ.😐
Логика может выглядеть так:
- Проверить, что промокод ещё не использован.
- Применить скидку к сумме заказа.
- Обновить запись в БД, отметив использование промокода.

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

Как искать

Чтобы обнаружить такую уязвимость, стоит выполнить следующие шаги:
- Найти полезный или критичный endpoint, который можно использовать один раз, либо он ограничен по количеству обращений.
- Отправить несколько запросов в очень короткий промежуток времени, пытаясь превысить лимиты.

Даже если запросы отправлены одновременно, всё равно существуют внешние факторы☠️ — сеть, задержки, балансировка, разные времена обработки — которые могут привести к расхождению и, соответственно, к успешной эксплуатации уязвимости.

Bypassing rate limits via race conditions
Limit overrun race conditions

↖️ 📕тг🤬чатик ✏️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
36👍1👨‍💻1
Привет^3☕️

Как вы можете знать, я занимаюсь вирусной аналитикой. И это далеко не всегда только про реверс.😇 Хотя сам процесс реверса может быть интересным и очень познавательным, есть и другой навык, тесно связанный с ним — бинарная эксплуатация.

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

К сожалению, в своей практической работе я почти не сталкивался с этим направлением. Но оно невероятно сложное, глубокое и интересное.😵‍💫 Что-то я уже знаю, а что-то мне только предстоит изучить. Поэтому предлагаю пройти этот путь вместе со мной.

Настоятельно рекомендую освоить реверс хотя бы на базовом уровне. Без него - никак.🤔 Можете использовать для этого мои разборы)

Ну что ж, приступим:

Want the flag
call
String
31337

↖️ 📕тг🤬чатик ✏️посты

#pwn #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥431👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
Привет^3☕️

Продолжаем разбирать Race Condition.⚡️

😎 Race Condition на одном эндпоинте

Параллельная отправка нескольких запросов с разными параметрами на один и тот же эндпоинт может вызвать состояние гонки. Такие атаки могут требовать нескольких попыток, так как операции должны выполниться в определённом порядке.

Подтверждение адреса электронной почты или любые действия, основанные на отправке писем - отличная цель для Race Condition.🤩

Электронные письма часто отправляются в отдельном фоновом потоке после того, как сервер уже вернул HTTP-ответ. Это создаёт внутрисерверное окно гонки - идеальный момент, когда две параллельные операции могут конфликтовать друг с другом.

☝️Race Condition на нескольких эндпоинтах

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

При тестировании таких гонок становится сложнее выровнять окна выполнения, даже если запросы отправляются одновременно.

Проблема часто возникает по двум причинам:
☀️ задержки, вызванные сетевой архитектурой;
☀️ задержки, связанные с обработкой, специфичной для каждого эндпоинта.

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

Одним из подходов может быть connection warming: если после отправки пробного запроса (например, GET /) последующие запросы обрабатываются в пределах короткого временного окна, то такие задержки можно считать шумом и игнорировать. В противном случае задержка действительно становится помехой и способна скрыть существующую гонку.

👀 Дополнительно:
☀️ Гонки на нескольких эндпоинтах сложнее, так как окно уязвимости распределено между независимыми обработчиками.
☀️ Иногда помогает не только одновременная отправка, но и выравнивание нагрузки - например, многократными запросами до нужного момента.
☀️ Параллельное тестирование можно усиливать подходами вроде задержки сетевых пакетов, искусственного флуда, использования тестовых прокси.

Примеры каждого из типов уязвимости можете найти в лабах ниже🫢:

Single-endpoint race conditions
Multi-endpoint race conditions

↖️ 📕тг🤬чатик ✏️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
3👨‍💻321
Привет^3☕️

Продолжаем реверсить и постепенно подключать gdb, чтобы упростить себе жизнь. Ведь зачем разбирать что-то сложное и запутанное, если можно просто поставить бряку и ничего не реверсить?)😙

Вы также могли заметить, что я начал использовать LLM в своей работе.🤫 Давно хотел попробовать - и вот дошли руки. Поэтому если у вас есть опыт применения ИИ в реверсе, поделитесь им в комментариях.

• task2
• task4

↖️ 📕тг🤬чатик ✏️посты

#reverse #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥41👨‍💻1
Привет^3☕️

Наш чатик живет бурной жизнью и потихоньку растет)

Один из участников недавно опубликовал свою первую статью на хабре (и даже не ии сгенерированную, шок🤯) на не самую простую тему. Давайте все дружно поддержим его.☺️

• Введение в атомики. С++

↖️ 📕тг🤬чатик • ✏️посты

#life
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤‍🔥73👏3🤝1
This media is not supported in your browser
VIEW IN TELEGRAM
Привет^3☕️

Часто возникает необходимость генерировать псевдослучайные числа и последовательности. Псевдослучайными я называю их не просто так.😒 Абсолютно случайную величину мы получить не можем, потому что алгоритмы генерации используют некоторое стартовое значение. А значит - если известны алгоритм и этот стартовый параметр, мы можем предсказать всю последовательность "случайных" чисел.🤷‍♂️

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

Гораздо хуже ситуация, когда в качестве случайного значения используется _временная метка_. На неё мы можем влиять сами - и это делает предсказание значительно проще.😐 В следующей лабе временные метки применяются для генерации ссылки на сброс пароля. Предлагаю проверить мои слова на практике и убедиться, что использование временных меток в таких целях — плохая идея:

Exploiting time-sensitive vulnerabilities

↖️ 📕тг🤬чатик ✏️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤‍🔥31🤔1
Привет^3☕️

Настал тот самый момент.😦 У нас есть буфер - и мы должны его переполнить. Обязаны.
"Что за ересь?" - спросите вы.
А это всего лишь одна из уязвимостей, встречающихся в бинарных программах.

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

В языке C по-прежнему распространено выделение фиксированного количества памяти для хранения переменных. Например, мы выделили 256 байт под имя, а какой-то безумец вводит 257. Вопиющая наглость. К такому никто не был готов.😞

Поможет ли нам язык C? - Нет. Он тоже в шоке. Но если мы сказали ему "сохраняй данные", он будет сохранять.🍿 Даже если придётся залезть поверх уже существующих значений. Смекаешь?

Эксплуатируя переполнение буфера, мы можем изменить данные, к которым у нас не должно быть доступа: локальные переменные на стеке, глобальные переменные, а иногда и адрес возврата (но это уже лёгкий спойлер).

Предлагаю вооружиться gdb, длинными строками и попробовать попереполнять буфер своими руками:

Easy Overflow 1
Easy Overflow 2
Easy Overflow 3

↖️ 📕тг🤬чатик • ✏️посты

#pwn #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
221👨‍💻1
Привет^3☕️

Я достаточно долгое время изучал фишинговые вложения.😌 В них часто использовались особенности файлов, которые позволяют запускать код. Одним из таких форматов является XML. Более того, многие другие файлы используют XML в качестве основы. В вебе это тоже интересно, так как данные между клиентом и сервером могут передаваться не только в JSON-формате, но и в XML. А неправильная его обработка может привести к XXE.

Who is XXE?🤨

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

Если говорить проще, мы можем добавить код в XML-документ, и, возможно, он будет выполнен на стороне сервера. А это уже можно использовать с разными целями.

XML-сущности🤓

Для выполнения кода используются XML-сущности. Это способ представления элемента данных внутри документа без использования самих данных напрямую. Например, сущности &lt; и &gt; представляют символы < и >. Эти символы используются как метасимволы для обозначения XML-тегов.

Например, можно использовать следующий синтаксис для её создания:

<!DOCTYPE payload [ <!ENTITY myentity "my entity value"> ]>

Это определение означает, что любое использование ссылки на сущность &myentity; внутри XML-документа будет заменено на заданное значение my entity value.

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

<!DOCTYPE payload [ <!ENTITY xxe SYSTEM "https://bad.site/"> ]>

Как всегда, начнём разбирать всё с простых лаб, постепенно усложняя🥺:

Exploiting XXE using external entities to retrieve files
Exploiting XXE to perform SSRF attacks
Exploiting XXE via image file upload

↖️ 📕тг🤬чатик ✏️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
2🤔311🥱1👨‍💻1
Привет^3 ☕️

Не только же про ИБ писать, правда?🫤

В этом году я успел купить себе адвент-календарь. Поэтому перед рабочим днём завариваю дрип-кофе из этого прикольного набора и включаю какую-нибудь новогоднюю песню по QR.

Отсюда возникает два вопроса: что у тебя с Новогодним настроением?🥳 И как обычно начинается твой рабочий день?🕺

#оффтоп
Please open Telegram to view this post
VIEW IN TELEGRAM
761
This media is not supported in your browser
VIEW IN TELEGRAM
Привет^3☕️

Иногда возникают ситуации, когда совсем непонятно, что именно делает код.🕺 В таких случаях может помочь динамическая отладка или переписывание отдельных фрагментов, чтобы посмотреть, как они работают на практике. При этом важно сохранять код максимально близким к оригиналу, чтобы не тратить время на отладку лишних изменений.📕

Для подобных манипуляций удобно использовать Python. Хотя иногда могут возникнуть сложности с типами данных, но это чаще всего решаемо. Можно, конечно, использовать и C, но это потребует значительно больше времени и усилий.😼

Кроме того, LLM может помочь объяснить непонятные фрагменты или даже воссоздать функцию за вас. Пользуйтесь этим - вам ведь нужно разобраться в бинаре, а не писать его красивую копию)🤔

cosy
mixer
sparta

↖️ 📕тг🤬чатик • ✏️посты

#reverse #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
23👨‍💻1
Привет^3☕️

Не знаю как у вас, но у меня на работе запретили крэк и таблетки. 😳Держусь из последних сил 💊

А у вас какие планы на праздники?🎄

#оффтоп
Please open Telegram to view this post
VIEW IN TELEGRAM
35😁2🥴1
Привет^3☕️

Результат эксплуатации XXE не всегда виден в ответе сервиса. В таких случаях чаще всего речь идёт о Blind XXE.

Типовая ошибка - считать, что уязвимости нет, если в ответе пусто.😐 На практике это просто значит, что результат не возвращается напрямую.

Поэтому для проверки используют out-of-band отстук:
☀️ есть запрос на внешний сервис → пейлоад отработал;
☀️ нет запроса → либо точка не та, либо формат XML не подошёл.

Если отстука нет🤐

☀️ проверить другие поля XML;
☀️ изменить способ объявления сущностей;
☀️ попробовать другой формат пейлоада;

Blind XXE - это мем: ты не видишь результата? Нет? А он есть)😙

Поэтому немного паранои не помешает. Попробуй порешать следующие лабки:

Blind XXE with out-of-band interaction
Blind XXE with out-of-band interaction via XML parameter entities

P.S.: Давно была идея провести иследование на тему безопаности IoT, но на сами устройства нужны деньги. Чат яростно настаивал на том, чтобы открыть сбор) Подробности о ресерче вы можете найти в самом чате)

Сделать свой вклад🌟

↖️ 📕тг🤬чатик ✏️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤‍🔥22👨‍💻1
Привет^3☕️

Такого подхода к поддержке моего ресерча я не ожидал. Но мне нравится☺️

Лучше написать в личку @ju57_4_cu63 или хотя бы указать ник в тг.

А если кто надумал - воть🤑

#оффтоп
Please open Telegram to view this post
VIEW IN TELEGRAM
22😎1
Упс… не там свернул…🫤

#memes
Please open Telegram to view this post
VIEW IN TELEGRAM
1👻3🐳1👀1
Привет^3☕️

Продолжим пывнить.🍆 Как говорится, математика важна программистам. Для ИБ-шников это тоже полезный навык)

Нам предстоит вычислять разность между двумя адресами и делить полученное значение на размер типа данных.🤓

Так что не прогуливаем уроки, помним, что 2 + 2 * 2 = 6, а 9 + 7 = 10. Открываем декомпиллер, gdb и решаем следующие лабки:

Admin
Forging
Indexes

↖️ 📕тг🤬чатик • ✏️посты

#reverse #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
14👨‍💻1
Привет^3☕️

Оказывается не только я люблю мемы и пасхалки)😵‍💫 Встретил вот такое в одном семпле)🤨

#memes
Please open Telegram to view this post
VIEW IN TELEGRAM
14😁1🤔1
Привет^3☕️

GPT - В С Е

На днях почитывал книгу Рэймонда М. Самаллиана - "Как же называется эта книга?". Решил закинуть свое доказательство для проверки логики в GPT. Ему не понравилось...😐

#memes
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤣52🐳1
Привет^3☕️

В сегодняшних лабах снова посмотрим на уязвимость Blind XXE.🧐 На этот раз будем использовать пейлоад, состоящий из двух частей:
• внешний DTD, содержащий логику эксплуатации;
• лоадер для подключения внешнего DTD.

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

Итак, в путь🍿

Exploiting blind XXE to exfiltrate data using a malicious external DTD
Exploiting blind XXE to retrieve data via error messages

↖️ 📕тг🤬чатик ✏️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
221🤔1