StackOFF
34 subscribers
14 photos
2 videos
11 links
О И Б
Мнение автора может не совпадать со здравым смыслом
Download Telegram
Пример атаки 51% в действии. Все манипуляции производились в cheapETH. Это небольшая сеть, созданная Джорджом Хоцом (GeoHot). В распоряжении хакера оказался пул, который по мощности превосходил в несколько раз (1.39GH/s) актуальную мощность сети (527MH/s). Имея такие вычислительные ресурсы хакер обогнал сеть на несколько блоков, после чего подключился к основной сети. Это привело к тому, что легитимная сеть подтянула блоки из пула. Стоит отметить, что это лишь демонстрация без двойного расходования, поскольку цель была именно показать то, насколько просто маленькие сети подвержены влиянию мощных пулов. В реальном мире было несколько громких случаев с 51%.
В 2014 году майнинговый пул ghash.io получил 51% мощности хэширования в сети биткойна, но после добровольно снизил мощность.
В 2018 году таким образом у Bitcoin Gold утекло $18.000.000.
Современные браузеры это уже давно не только рендеры HTML. Часто натыкался на рекламу очередного браузера, но с чем-то новым в виде отдельного компонента. Это может быть VPN, плеер, месенджеры, встроенная нода Tor (и я сейчас не про ТОР браузер), криптокошелек.
Представьте, что каждый из этих компонентов теперь потенциальный вектор атаки. За примером далеко ходить не нужно.
В Opera многие из этих пунктов уже есть. А еще там есть Web Flow. Это некий аналог мессенджера между вашими мобильными и штатными девайсами, на который стоит браузер Opera. Основной функцией является синхронизация текcтов и файлов.
Сегодня в блоге оперы появился пост про уязвимость, которая приводит к RCE через Web Flow.
Еще вы узнаете, что в браузерах иногда бывают скрытые расширения, а также что .batники еще живы :)
Переполнение буффера в 2023 году

В сети появился PoC для эксплуатации CVE-2023-4911 (Looney Tunables). Уязвимный код находится в динамическом загрузчике glibc, поэтому возможна эксплуатация на большом количестве систем. В основе атаки лежит манипуляция переменной окружения GLIBC_TUNABLES. Детали можно почитать здесь.
Повышение привилегий до root было успешно проверено на Fedora {37,38}, Ubuntu {22.04,23.04}, Debian {12,13}.

Быстро чекнуть систему на наличие уязвимости можно так:
env -i "GLIBC_TUNABLES=glibc.malloc.mxfast=glibc.malloc.mxfast=A" "Z=`printf '%08192x' 1`" /usr/bin/su --help
Если видно Segmentation fault (core dumped), то 🙈.

Рабочий сплоент https://github.com/leesh3288/CVE-2023-4911
🌭2👍1
Несколько раз встречал в сети dashboard traefik, в котором можно найти информацию в том, что крутится в контейнерах, а иногда и креды от сервисов.
Дорк, чтобы посмотреть в живую: intitle:traefik inurl:dashboard
Телега без премиума не даёт писать много текста, поэтому чуть больше деталей тут.
👍1🌭1
Приветствую, уважаемые папищики.
Надеюсь, я не утомил вас слишком частым постингом в этом канале. Постараюсь делать это реже, чтобы не надоедать 👌
Октябрь продуктивный месяц. Сегодня выложу из загашника подготовленный в прошлом году пост.
Buffer overflow + request smuggling = ?
Возможно, данная техника прошла мимо вас, но она (как по мне) носит долгоиграющие последствия. Речь пойдет про request smuggling, который обычно упоминается с сочетании с HTTP протоколом. Но не простой смаглинг, а на уровне транспорта и клиентов. Наиболее полго раскрыл тему Paul Gerste на прошлогоднем Defcon.

Для работы с внешними сервисами в различных языках программирования есть так называемые "драйвера". Это некоторая реализация общения между вашим кодом и внешней системой, например - СУБД. Канал данных между ними может быть любой. Чаще всего используется UNIX-сокет, в современных микросервисных архитектурах чаще всего TCP, но обдолбанные могут юзать и UDP :)

Суть уязвимости
Для общения по этим транспортным протоколам нужен общий язык. Как раз драйвер и описывает порядок, как маркируются сообщения, какая длина, тип и т.д. В MySQL под длину отведено 3 байта, затем порядковый номер пакета и сами данные, в PostgreSQL первый байт - это тип сообщения, затем 4 байта длина и сами данные.

Вроде бы всё хорошо, только вот что будет, если передать данные большего размера, чем максимальная длина, которую можно уместить в 4 байта? Всё будет по-разному. Во-первых, некоторые системы усекают максимальный размер до определенного числа.
Если используется знаковое число - 2147483647 (2^31 - 1), если беззнаковое - 4294967295 (2^32 - 1). В современном мире это не такой уж и большой объем данных.

Улавливаете мысль?
Драйвер сообщает во внешнюю систему, что длина пакета N, а по факту передает данные большей длины. Это вполне реалистичная ситуация. Предположим, что есть некоторый POST параметр, который пришел от пользователя. Его длина 4294967100, т.е. превышает допустимую вместимость uint32.
Получается, что мы можем сконструировать фейковый пакет данных для нужного драйвера, расчитать нужную длину и выполнить произвольное действие на внешней системе, в СУБД, например, выполнить произвольный запрос. Т.е. на выходе получается что-то вроде SQL Injection, основанной на Protocol manipulation + Request smuggling.

Несмотря на некоторые ограничения (понятно, что может существовать настройка, которая валидирует длину входящих данных на том же веб сервере, либо валидация входящих символом на алфавит и т.д.) были найдены в дикой природе уязвимые компоненты. Поль раскрыл детали про pgx, pgdriver, pq, pg (драйвера для PostgreSQL для golang), Npgsql - .Net компонент.

Потенциально узявимы языки, в которых типы строк (именно тип string чаще всего используется для такого рода хранения) превышают макс. длину uint32, а это Golang, Rust, Python, в других же языках. Есть фишки, которые позволяют обходить это ограничение в других языках, например в JS есть бинарные буфферы, а там своя длина. Т.е. потенциал у баги большой. Думаю, мы еще не раз услышим о подобном способе атаки на систему с помощью данной техники.
👍5
С развитием технологий и каналов передачи данных появляется всё больше интересных девайсов. Такая ручка доступна на рынке уже несколько лет. Если рассмотреть эту фичу со стороны ИБ: представьте, подарили вам ручку на день рождения, а там внутри "модуль" для передачи записей, только не на блокнот, а на расстояния побольше. По сути - идеальный съемник информации, вы пишете, но читает кто-то другой. А если добавить GSM модуль для передачи данных через интернет - вообще идеал.
👍1🌭1
Современный автомобиль это уже давно больше не транспорт, а технодевайс со своей периферией. Неудивительно, что появилось мероприятие Pwn2Own Automotive - место, где ломают авто.
С 21 по 23 января была сходка в Японии. Ломали всё: мультимедиа системы, ОС и даже электрозарядки.
В качестве конечной цели был DoS, внешнее воздействие на систему, удаленное выполнение команд и т.д.

Что в результате:
- продемонстрированно 76 Zдеев
- разыграно более $1.000.000
- победу одержала команда Fuzzware.io, которая увезла домой $215.500 призовых, заработав 28 очков
- больше всего платят за взлом электрозаправки (где есть шанс как-то поиметь с системы, там платят :))

Смотря на всё это приходит осознание того, что повседневный взлом выходит за рамки простого получения доступа к данным (не считаем различные APT и атаки на электростанции). Теперь целью могут стать не нюдсы в смартфоне, а полное физическое уничтожение жертвы. Подстроить аварию - дело 10 минут, дрон, который летит на авто для создания канала связи и ноутбук.
Есть автомобили с Steer-by-Wire (SBW) - с рулевым управлением без физической связи с колесами, например: Tesla Cybertruck. В этом случае водитель не сможет оказать никакого влияние на транспортное средство, как бы ни крутил руль.
Не нужно перекусывать тормозную магистраль или ставить СВУ. Всё как в кино...
💯1