вольтаж
1.11K subscribers
38 photos
6 videos
7 files
63 links
Кибершумные заметки о безопасности веба, инфры и головы

связь - @w0ltage
Download Telegram
+ презентация
В который раз вводя "localhost" в консоли, посетила мысль:

Зачем каждый раз писать localhost в консоли или браузерной строке, если могу добавить в /etc/hosts запись о "доменах" l и д, указывающих на локалхост?


Для этого надо:
0. открыть /etc/hosts с правами записи
1. добавить строку 127.0.0.1 l xn--d1a в конец файла

Теперь все программы хоста смогут обращаться к (допустим) локальному сервису на 8080 порту через l:8080 или д:8080


Что за xn--d1a?
Это
д в Punycode кодировке, понимаемая DNS, которые в свою очередь признают только 26 латинских букв, из-за чего кириллицу приходится кодировать в Punycode

#tricks #machineops
❤‍🔥1👍1
Мало кто знает, что для осинта можно использовать поиск коллекций в Postman. Часто разработчики оставляют публичные репозитории, содержащие в себе как описание всех API ручек, так и токены авторизации, пароли от админок и бд, сертификаты.

https://www.postman.com/search?q=%D0%B1%D0%B4&scope=all&type=all
4🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
cheat sheets для всего

Вдохновившись modmenu в играх, и одновременно сгорев с неудобства всех cheat sheets для програм, написал скрипт с меню шпаргалок - cheatmenu.

Скрипт парсит YAML-файл с объявленными "шпаргалками", после даёт выбрать приложение по которому показать подсказки, а уже потом генерирует меню всех объявляенных подсказок.

Текущие фичи: выбранные шпоры копируются в буфер обмена; среди шпор можно искать по ключевым словам;

Обо всём остальном (и даже больше!) уже написано в репозитории. Там же лежит скрипт для автоматической установки.

Работает только на Linux, в частности на X.Org (крутейше) и на Wayland (небрежно).


Как появятся идеи по улучшению или по новым "подсказкам", то делай pull request, или создавай issue на Github, или же пиши мне, а там уже разберёмся.

#tool #machineops
❤‍🔥4👀1
Что если у тебя конфиг Burp Suite?
и тебе лень конвертировать того в YAML

Благо мне ещё раньше стало лень вручную синхронизировать свой конфиг с каким-то YAML в недрах cheatmenu. Поэтому написал скрипт по конвертации любого конфига Burp профиля в YAML-файл, подходящий для cheatmenu.


Пошаговый гайд для самых маленьких

# клонируем репозиторий
git clone https://github.com/tokiakasu/cheatmenu.git

# переходим в репозиторий
cd cheatmenu

# запускаем скрипт установки, ставим зависимости и обновляем шпаргалки
./cheatmenu/setup.sh

# переходим в папку с конвертером
cd cheatmenu/sheets/burpsuite/converter

# конвертируем конфиг в YAML
# вместо "profile_burp.json" подставь путь к своему конфигу
python3 burp2yaml.py profile_burp.json

# в результате скрипт создаст файл "burpsuite.yaml".
# замени дефолтный YAML со сгенерированным
mv burpsuite.yaml ../burpsuite.yaml





После запускай cheatgenerator.sh (лежит в директории со скриптом установки setup.sh), выбирай в меню "burpsuite" и проверяй появились ли твои шорткаты
❤‍🔥62
Пока каналы переполнены советами, крутыми тулзами и историями успеха, поделюсь рефлексией на прошедший Standoff Hacks, включая все свои фейлы, что из них вынес и почему интерес к ИБ разгорелся ещё сильнее.

https://teletype.in/@hackthishit/hacks-reflection

#me #mindops
12❤‍🔥2
Как тестировать мобильные приложения, если вебер

Будучи вебером, ВСЕГДА обходил тестирование мобилок стороной, думая "слишком сложно, где-то между реверсом и стегой". Пиком навыков было - запустить apkleaks, проверить доступ к firebase и протыкать найденные URL'ы.

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

Спустя часы страданий в Android Studio и JADX, нашёл идеальный гайд от IppSec, с начальным сетапом для тестирования мобильных приложений, работающий с первого раза

За 22 минуты узнаешь
- как эмулировать Android (с root!) через Genymotion (под капотом VirtualBox)
- как проксировать траффик Android через Burp
- как поставить Frida, о которой слагают легенды мобильщики
- как обходить SSL Pinning на примере Instagram


Окупилась ли смена роли? Да, в тайне от веба, приложение общалось с вкусными и беззащитными API endpoint'ами :)

#mobile #android
🔥12👍1
Пока подводят итоги года, подведу итоги своих 2.2 годов, ощущавшихся как 5 лет 🎅

Почему? Потому что 2.2 года назад я закончил 3 курса колледжа, и по воле случая, ушёл в академический отпуск, попав в самостоятельное инфобезное плавание.

Уходя в академ, я был весьма average студентом, который лишь на 3 курсе впервые запустил Linux и только спустя неделю запомнил как выходить из vim'а.

Что успело произойти за время академа

— 1 год
- провёл свыше 30 лекций студентам (и не только)
- проработал год куратором группы студентов безопасников (пообещав себе больше никогда этим не заниматься)
— 2 год
- понял как самообучаться (как-нибудь напишу пост об этом)
- попал на стажировку в DeteAct и успешно пропустил её, поставив в приоритет Школу ИБ от Яндекса
- провалил собеседование в бизон
- делал CTF таски (порой п‌р‌о‌к‌л‌я‌т‌ы‌е‌ ‌ ) для Codeby
- выбил бесплатные проходки на PHDays 12 и OFFZONE
- нашёл свои первые баги на багбаунти
- перешёл с Python на Go, выпустив subchase
- успешно прошёл собеседование и устроился пентестером в бизон
- выиграл свой первый хакатон
- выступил с докладом Offensive DevTools
- поучаствовал в Standoff Hacks
-
избавился от игровой зависимости, продав консоль и удалив все аккаунты (потратил в играх 6.000+ часов)
- отчислился из колледжа по собственному желанию

По пунктам - всё круто и радужно, одни победы, но в этих 2 годах было невероятное количество стресса и изоляции. Преподавательство и кураторство приводило к нервным срывам. При отборе на стажировку были панические атаки. При попытках бросить игры и перенаправить энергию в ИБ, я терял "игровых друзей", которых знал 6+ лет.

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

Желаю тебе, в новом году, найти то, ради чего захочешь просыпаться каждый день. Чтобы баги видел издалека, сканеры не ошибались, а фаззеры не клали сайты 💻

#newyear #me
Please open Telegram to view this post
VIEW IN TELEGRAM
👍96
К чему вся эта стата из жизни автора?

К тому, что не надейся на чудо в новому году, а начни ебашить, создавая своё чудо. Будет сложно, больно, но каждая победа будет better than anything else you can imagine.

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

Всё, давай до следующего года, и чтоб в конце следующего года тоже написал "этот год был круче и сложнее всех предыдущих, но я ни о чём не жалею и горжусь собой" 👏
Please open Telegram to view this post
VIEW IN TELEGRAM
10❤‍🔥5
это мы читаем
2
Forwarded from HaHacking
🎄 #события #заметки #web #infrastructure #mobile #offense #defense #devsecops #malware #reverse #forensics #iot

➡️От лица HaHacking хочу поздравить каждого с наступившим Новым годом (дракона, кстати 💻)! 🔔⭐️

⭐️ Желаю срабатывания своих кавычек и несрабатывания чужих WAF'ов, побольше ивентов и инвайтов на ивенты, а также моральных сил, чтобы стойко переносить любой инцидент или статус отчёта! И, конечно, всего общечеловеческого: родных и близких рядом, искристой улыбки на лице и тепла на душе;


🎁 В честь праздника – символический подарок:

🧩 Бот @HaHacking2023bot

🧩 Карта qwqoro.github.io


Собрала 150 статей 2023 года выпуска, которые оставили наиболее яркий след в моей памяти; Благо спектр любопытных для меня тем довольно широкий, так что каждый сможет найти на созданной мною карте уголок, соответствующий его интересам и уровню погружения 🚗

⬆️ Организовала для них небольшой город, распределила по категориям и кратко описала каждую статью в карточках внутри зданий ‼️


Читайте, вдоволь наевшись салатов, тепло вспоминайте уходящий год и радушно встречайте следующий. С Новым годом!


➡️Enjoy! 🐇

   @HaHacking  🐇🎄
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥62
вольтаж
Сегодня читал доклад по использованию Chrome DevTools при тестировании веба. Рассказал что лежит за пределами "посмотреть код элемента" и какими суперсилами обладает панели разработчика, с помощью которых ты сможешь тестировать веб без бурпа под рукой #research…
Кроме невероятной панели разработчика, в Chrome также невероятно удобно разделять проекты на профили.

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

Получил проект, поставил расширения, зашёл в нужные аккаунты, пробил веб, написал отчёт и удалил/архивировал профиль.

За наводку спасибо крутому пентестеру Артёму (его канал)

#chrome #tricks
3🔥3
Есть 100 хостов с доступным SSH. Нужно прогнать Terrapin Scanner на потенциальную уязвимость к атаке Terrapin. Сканер принимает только один хост в качестве цели. Твои действия?

Можно завернуть в shell'овский цикл, построчно проходясь по файлу и подставляя строки как переменные в команду.


cat hosts.txt \
| while read line; do \
Terrapin-Scanner --connect $line; \
done


Из минусов - много букв + итерируешься только последовательно, без всякой параллельности / асинхронности


Ещё вариант, использовать загадочный xargs, "построчно" проходящий по вводу (stdin) или файлу, а после подставляющий строки как из цикла выше.


xargs -a hosts.txt -P 5 -I HOST \
Terrapin-Scanner --connect HOST


Через -I HOST определил "переменную" для строк из ввода, а с помощью -P 5 заставил запускать сканеры в 5 процессах одновременно.

Стоило нажать Enter, как xargs прошёлся по строкам от cat и начал запускать до 5 процессов Terrapin сканера одновременно, просканировав хосты за считанные секунды.

Этот же подход применим для любых других ситуациях, где нужно быстро распарсить и обработать построчные элементы.

#tricks #machineops
🔥8❤‍🔥2
Если нужно исполнить последовательность команд, связанных операторами, то оборачивай команды в sh -c "command1; command2" и передавай в xargs. Подобно команде ниже (взял отсюда)

xargs -a subs.txt -I@ sh -c 'assetfinder -subs-only @ | anew | httpx -silent  -threads 100 | anew httpDomain'
4❤‍🔥2
👁 Курс на мисконфиги. Как поймать проблемный CORS на проде

На новогодних праздниках, вместо поедания мандаринов, решил совместно с SidneyJob, провести исследование поведений браузеров при мисконфигурации CORS.

Разобрали как работает SOP и CORS, посмотрели возможные мисконфиги и способы их эксплуатации, провели несколько экспериментов, и даже вспомнили, как работают регулярки.

Мы даже сделали для этого отдельную лабу! В ней ты сможешь создавать свои PoC'и при мисконфигурация CORS'a и сразу же кидать на них ссылки уже в отчёте.

Всё получившееся собрали вместе и выпустили как нашу первую статью на xakep.ru. Приятного чтения!

https://xakep.ru/2024/01/18/cors-cheatsheet/

#web #client_side #research
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍4
Channel photo updated
Channel name was changed to «вольтаж»
Снимаю уровень серьезности с канала и возвращаюсь после солидного выгорания. Вновь буду тыкать кавычки и писать пласты текста

За одно, сменил никнейм с tokiakasu на @w0ltage , ибо как меня только не называли: токиасука, токийская лапша или "хз как читается".

По итогу, только я мог произнести его нормально. Что иронично, ибо tokiakasu переводится как "make it clear"
😁51
xz бэкдор

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

Для тех, кто в танке - в библиотеке liblzma, для пакета xz, позволяющим сжимать файлы в нечто с расширением .xz, обнаружили бэкдор, позволяющий спокойно подключиться к вашему SSH серверу.

Причём, бэкдор есть только в .tar архивах, приложенных к релизам 5.6.0-1, а сам бэкдор был найден не секьюрити ресерчером, а обычным прогером, когда тот заинтересовался "почему потребление CPU растет x10 при подключении по SSH"

Теперь к разбору цепочки поставок в компрометацию сервера

0. в файле конфигурации исполняется скрипт build-to-host.m4, модифицирующий Makefile для билда, если на хосте запущен процесс sshd в /usr/bin

1. делает он это через "тестирование" с архивами bad-3-corrupt_lzma2.xz и good-large-compressed.lzma (не используемые для тестов где-либо ещё)

2. тесты приводят к исполнению кода, сжатому в bad-3-corrupt_lzma2.xz, который распаковывает архив good-large-compressed.lzma

3. код внутри good-large-compressed.lzma исполняется, приводя к внедрению liblzma_la-crc64-fast.o (сам бэкдор) в Makefile для liblzma

4. после билда и успешной установки, бэкдор перехватывает исполнение через подмену ifunc resolvers для crc32_resolve() и crc64_resolve(), меняя код на вызов _get_cpuid()

ifunc - механизм glibc, позволяющая реализовывать функцию разными способами, и выбирая между реализациями во время работы программы


5. после бекдор мониторит динамическое подключение библиотек к процессу через тут же поставленный audit hook, ожидая подключение библиотеки RSA_public_decrypt@got.plt

6. увидев подключение RSA_public_decrypt@got.plt, бекдор подменяет адрес библиотеки на адрес подконтрольного кода

Готово! Теперь, при подключении по SSH, в контексте перед аутентфикацией по ключу, процесс исполнит подконтрольный злоумышленнику код =)

Для великих пывнеров, разрабов малвари и прочих заинтересованных, рекомендую почитать текст оригинального письма, описывающего бэкдор и описание ситуации с бэкдором на гитхабе

EN: https://w0ltage.github.io/blog/Articles/xz-v5.6.0-1-backdoor

#infrastructure #research #vulnerability_research
🤯8🔥6
Пометка из комментариев, если запутались "а как это сжатие в архив связано с ssh, это же разные бинари". Вся проблема в библиотеке lzma, которая иногда становится зависимостью OpenSSH