Coffee cube
473 subscribers
163 photos
18 videos
25 files
145 links
Этот канал посвещен моему пути в сфере Информационной безопасности.

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

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

Было бы глупо предположить, что разработчики не задумывались о способах защиты от уязвимостей при загрузке файлов ( ну пожалуйста ).

Сегодня поговорим об обходах различных методов защиты.

👎Блеклист

Звучит здорово. Если мы не хотим получить какой-то файл, то просто запретим его. 🎆ГЕНИАЛЬНО!🎆
Но есть нюанс: вы запретили .html, а вот к вам уже летит .xhtml. Здорово...

Обойти блеклист вполне реально - нужно лишь попробовать достаточное количество расширений.
Лучше использовать вайтлисты: Надо - разрешил. Вот и все.

🗿Покажите на что вы способны

Окей, вы используете вайтлист. Молодцы. Защищены ли вы теперь? Нуууу нет. Как так вышло?

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

📌Например:

символ \0 можно закодировать в URL как %00.
Во многих языках программирования он означает конец строки.

Файл с именем file.py%00.png может пройти вайтлистинг, а при нормализации превратиться в file.py.

Защита: проверяйте подозрительные символы в передаваемых путях.

💃Вы хотите веселья? Их есть у меня

Есть такие интересные файлы — полиглоты.
Они изменяют свое поведение в зависимости от того, кто и как их открывает.

Это может сработать, если проверяется не только расширение, но и содержимое (меджик, хедер или футер).
Тема интересная, думаю, стоит поговорить о таких файлах в отдельном посте.

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


✍️Самостоятельно попробовать разные обходы можно в данных лабах:
✏️Web shell upload via extension blacklist bypass
✏️Web shell upload via obfuscated file extension
✏️Remote code execution via polyglot web shell upload


➥ ☕️ тг • 🤬чатик • ✍️посты

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤7👍2❤‍🔥1✍1😎1
Привет^3✨

Вторая часть гайда по обмену души на навыки реверса.😵 В данной лабе мы вспомним, что алгоритмы очень важно знать. Вернемся к истокам и реализуем всемогущий Bubble sort.🧙

❓Можно подсказку?❓

Конечно можно, но не про лабу) Настоятельно рекомендую переименовывать переменные, функции и оставлять комментарии прямо в дизассемблере. Так же удобно пользоваться закладками и метками.

А зачем? Нада...😳 Каждая названная функция и переменная может помочь с пониманием контекста и алгоритма.

🤌На что стоит обратить внимание:
➖строки в коде;
➖вызовы printf и scanf (по форматированной строке можно понять тип переменной и даже имя);
➖сообщения об ошибках, которые могут содержать имена функций для отладки.

✍️Примеры


printf("Login %s, passwd %s\n", some_var, another_var);


или


fprintf(stderr, "payload_dec error: ...\n");


Лаба не очень сложная, но все же рекомендую потыкать ее ручкам ну или лапками(такое тоже было). В путь: spbctf_4_x86_64


➥ ☕️ тг • 🤬чатик • ✍️посты

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

❓SSRF — кто ты такой?❓

Server-Side Request Forgery или подделка запроса на стороне сервера — это уязвимость веб-приложения, которая заставляет сервер отправлять запросы в несанкционированные места. В типичной атаке сервер вынуждают подключаться к сервисам, доступным только внутри инфраструктуры организации. В других случаях можно достучаться и до внешних систем. Итог — утечка чувствительных данных.

👊Чем это грозит?

С помощью данной уязвимости можно:
➖Прочитать локальные файлы
➖Получить доступ к внутренним системам
➖Обойти ограничения
➖Просканировать внутреннюю сеть

Куда мы без примера-то

В атаке SSRF сервер можно заставить выполнить HTTP-запрос на свой же loopback-интерфейс: 127.0.0.1 или localhost.

Предположим, сайт магазина позволяет просматривать товары. Для этого фронтенд дергает API, передавая URL на соответствующий endpoint бекенда через HTTP-запрос .


POST /product/stock
HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

stockApi=http://stock.weliketoshop.net:8080/product/stock/check%3FproductId%3D6%26storeId%3D1


Можно модифицировать этот запрос и направить его на другой URL:


POST /product/stock
HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 118

stockApi=http://localhost/admin


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

🍪Печеньки Практика

Потрогать руками этот тип уязвимости можно в следующих лабах:
✏️Basic SSRF against another back-end system
✏️Basic SSRF against the local server
✏️Blind SSRF with out-of-band detection
✏️SSRF with blacklist-based input filter
✏️SSRF with filter bypass via open redirection vulnerability


➥ ☕️ тг • 🤬чатик • ✍️посты

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

Сегодня поговорим о вечном)🤓

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

Что могло пойти не так?

Малварщики хоть и конченные плохие, но тем не менее не совсем глупые😒. Поэтому золотым граалем обфускации является ✨XOR✨. Цель у злоумышленников не надежно зашифровать данные, а лишь усложнить статический анализ.

Так что я считаю, что побаловаться с XOR должен каждый. Вы еще не раз встретите его в моих разборах. Вперед, поксорьтесь со всеми🥺:

• Bytes and Big Integers
• XOR-1. Starter
• XOR-2. Properties

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

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

API можно не только писать, но еще и эксплуатировать в своих целях. Об этом и поговорим)

Чаво😼

Application Programming Interface - это интерфейс общения между клиентом и сервером. Современные приложения почти полностью завязаны на API:
• фронтенд подгружает данные через API;
• мобильные приложения общаются с сервером тоже через API;
• микросервисы внутри крупных систем связываются через... API;
• интеграции (платежи, карты, рассылки) строятся на внешних что? Правильно - API;

Именно поэтому безопасность API важна безопасность всего приложения.

С чего начинается атака?

Чтобы API тестировать - нужно найти хоть какие-то ендпонты)
➖какие есть эндпоинты;
➖ какие параметры они принимают;
➖какие методы поддерживают (GET, POST, PATCH, OPTIONS и т.д.);
➖есть ли ограничения по частоте запросов и как работает авторизация.

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

🧙Пример атаки

Многие фреймворки автоматически связывают параметры из запроса с полями в базе. Если разработчик не ограничил список полей, можно «подбросить» лишние:


PATCH /api/users/123
{
"username": "wiener",
"email": "wiener@example.com",
"isAdmin": true
}


Если сервер примет isAdmin и сохранит - вжух, и админка у нас в кармане.

😼Как защищаться

• Делать allowlist допустимых параметров и методов;
• Проверять типы входящих данных;
• Прятать документацию, если API не публичное;
• Унифицировать обработку ошибок, чтобы не сливать лишнюю информацию;
• Не забывать про старые версии API.

Вперед к приключениям тестированию💃

Попробовать поискать и проэксплуатировать ендпоинты API, а не писать их можно в следующих лабах:

• Exploiting a mass assignment vulnerability
• Exploiting an API endpoint using documentation
• Exploiting server-side parameter pollution in a query string
• Finding and exploiting an unused API endpoint


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

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

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

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

📎Ссылка на лабу

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

#reverse #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍6🔥2👨‍💻1
Нет времени объяснять. 😒 Какие темы для постов вам нравятся?
Anonymous Poll
54%
🌐 Веб
33%
👨‍💻 Крипта
39%
😵‍💫 Реверс
37%
😄 Мемы
13%
💬 Другое (напишу в комментариях)
1👍1🤔1
Привет^3☕️

Чтож... Поговорим про уязвимости в процессе аутентификации.

Что это такое?❓

Аутентификация — это проверка подлинности лица, которое хочет получить доступ к системе. Если говорить проще, то система задаёт нам вопрос: «А ты точно продюсер?» Если система совсем глупая, то можно ответить «Да» и ни о чём не переживать. Но чаще всего это нужно будет подтвердить.😍

Самый базовый способ — проверка пароля. Не буду напоминать, что хранить пароль в БД в открытом виде нельзя. Так же не стоит скидывать его мне в личку @ju57_4_cu63 вместе с логином.😎

А в чём подвох?🤔

Даже не зная пароля, на этом этапе можно получить полезную информацию. Картинка к посту, конечно, мемная, но со смыслом.

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

И это всё?😏 Конечно нет. Для выявления существующих пользователей может помочь задержка по времени при проверке пароля, различия в ответах сервера для существующего и несуществующего пользователя, даже блокировка аккаунта при вводе некорректного пароля.

Чё ж делать, чё ж делать🔥

Вот небольшой список рекомендаций:

➖Не стоит сливать действующие пароли: если пароль известен - мало что поможет. Все попытки аутентификации по HTTP нужно перенаправлять на HTTPS;
➖При некорректной попытке входа не сообщайте пользователю, какое именно поле неверно. Лучше использовать универсальную ошибку;
➖Валидируйте пароли, запрещая слишком простые и слишком длинные.

Идите и пробуйте сами😉

Описанные методы можно потрогать в следующих лабах) Удачки😮

• Username enumeration via different responses
• Username enumeration via subtly different responses
• Username enumeration via response timing
• Username enumeration via account lock


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

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

Наконец то это свершилось. 17-го сентября в 10:00 (мск) состоится мой стендап 😃мое выступление про бесфайловые атаки на Linux на конференции VolgaCTF. Запасайтесь попкорном🍿 - будет трансляция! Ссылку обязательно скину, как только она появится.

В своём докладе я расскажу про тренды в малваре, связаные с запуском файлов прямо в оперативной памяти👻. Приведу пару примеров, которые встречал в процессе работы, а также покажу PoC 👨‍💻 для этих техник.

Готовьтесь смеяться, кринжевать и узнавать что-то новое)🧚


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

#анонс
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍16❤6🏆2👨‍💻1
Привет^3☕️

Это служба безопасности Сбербанка. На вашем счёте замечена подозрительная активность. Назовите код из SMS... Ну пожалуйста... Вечер в хату...😐

Как вы могли догадаться, речь пойдёт про двухфакторную аутентификацию. Чтобы не ломать себе мозг и язык - просто 2FA.

Что такое 2FA и с чем его едят? 🤌

Это дополнительный уровень защиты: помимо пароля, система требует ещё что-то — код из SMS, push-уведомление, токен или приложение (Google Authenticator, Authy, Multifactor и т.д.).
Идея в том, что даже если пароль украдут, вход будет затруднён.

Я Конор, и я проверю, как это работает на самом деле😼

➖email-коды - это вообще не 2FA, а та же однофакторка, только с костылями;
➖у некоторых сервисов 2FA проверяется только при логине в веб, но не в мобильном приложении или через API;
➖"обязательная" 2FA может отключаться, если угадать резервные коды или сбросить пароль;
➖ну а иногда разница в том, есть она или нет, нулевая.

Как атакуют😇

➖Фишинг: создаётся фейковая страница, куда жертва вводит и пароль, и одноразовый код;
➖Вишинг: ребята из службы безопасности Сбербанка лично звонят вам за кодом;
➖Пробелы в логике: например, вход через "забыли пароль" обходит весь процесс 2FA.

Лабки🐈‍⬛️

Очевидно, что фишить никого я не предлагаю. Но попробовать обойти 2FA всё ещё можно вот в этих лабах:

•2FA simple bypass
•2FA broken logic


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

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

Продолжаем постигать дзен криптографии🙏. AES — пффф, конечно нет. RSA — рано. Постквантовая криптография — банально🗿. Сегодня опять XOR. Да, мой ваш любимый XOR.

В лабах попытаемся подобрать ключик для наших флагов. Это вполне себе реально. И довольно часто может пригодиться в реверсе. Поэтому стоит попробовать:3 🙌

• Favourite byte
• You either know, XOR you don’t

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

#crypto #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤4🔥2👨‍💻2✍1
Привет^3

Надеюсь, что попкор и прохладительные напитки у вас под рукой, так как через час вы будете созерцать мое выступелние. Трансляцию можно найти вот на этой странице. Я выступаю на треке B. Жду вас там в 10:00 по мск🥹
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤8👏6🔥2👨‍💻1
VolgaCTF_presentation.pdf
18.1 MB
Немного измененная презентация с доклада:3
5👍6🔥3👏3👨‍💻1🆒1
Совсем забыл. В презентации есть пасхалка) Она сомнительная, но веселая. Кто первый найдет и скинет ее мне в личку - может забрать вот этот рюкзак. Он прикольный, но у меня есть свой любимчик)

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

#оффтоп
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤5👍1😎1
Привет^3☕️

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

Пасхалка связана с моей работой, а именно с вирусной аналитикой. Стоит всегда обращать внимание на подобное, так как оно помогает разобраться в работе малварая.

И так, подсказка: все скрины делал я, в том числе скрины вредоносов. В декомпиляторах есть замечательная возможность их патчить. Поэтому ищите пасхалку в скринах декомпилированного кода:3

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

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

В предыдущих постах мы начали реверсивно инжинировать. Но вирусная аналитика - это не только реверс. Часто приходится разбираться в техниках, которые используют разработчики ВрПО(кто понял - тот понял)👾 для того, чтобы усложнить нам жизнь.🚽

Сегодня разберем одну из таких техник, а именно обнаружение отладчика.🐈‍⬛️

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

#reverse #malware
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤7✍1🔥1😁1😭1👨‍💻1
Привет^3☕️

Зачем брутить пароль, если его можно просто сбросить?😎

Об этом и поговорим.

А в чем собственно дело?🙂

Вот вы сохранили хэшированный пароль. Добавили в него уникальную соль как по-питерски✨. Казалось бы - все секурненько. Но нет. Ведь защищать только проверку пароля недостаточно)

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

Следует проверять весь функционал сайта, который связан с аутентификацией.

Предлагаю вам оценить данный подход😮:

• Password reset broken logic
• Password reset poisoning via middleware

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

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍5❤3✍1
Привет^3☕️

В ROT мне ноги — сегодня снова криптография, и даже немножечко программирования.👨‍💻

Лабу не назовешь сложной, но она дает повод попробовать Python для автоматизации. Новички часто спрашивают: нужно ли им знать программирование, чтобы идти в ИБ? Ответ неоднозначный, но все же скорее нет, чем да. 🙂

Задач в ИБ много, и все разнообразные. Почти всегда они не связаны с программированием, но в тоже время умение автоматизировать какие-то задачи может здорово пригодиться: воспроизвести алгоритм при реверсе, написать какой-нибудь деобфускатор или написать имитацию C2 сервера, чтобы поймать запрос.

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

В разборе я буду использовать python модуль — pwntools. Его часто используют для pwn, поэтому имеет смысл с ним познакомиться. При желании лабу можно решить на любом языке, даже на brainfuck земля вам пузом. 🫡⌨️

• Encoding Challenge

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

#crypto #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤5✍1❤‍🔥1
Привет^3☕️

Я уже писал про брутфорс в контексте взлома архива 📄. Поэтому рекомендую почитать пост и статью, там есть полезные ссылки на различные вордлисты.

Если не получается обойти стену, то можно ее проломить.💪 Брутфорс никто не отменял. Сложно ли это - нет. Долго ли это - да. Но таков путь.🤨

Сайты защищаются от подобных атак: блокируют IP, используют CAPTCHA. Ну а вдруг прокатит?)🤔

Предлагаю вам попробовать самим🍸:
• Broken brute-force protection, IP block
• Brute-forcing a stay-logged-in cookie
• Offline password cracking
• Password brute-force via password change


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

#web #writeup
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤4👨‍💻1