На выходных настолько нечего делать, что я решил посмотреть на менеджер пароля от Касперского, который я использую на работе для хранения всяких рабочих аккаунтов.
Дома, к слову, я использую KeePass и в целом знаю как он работает в плане защиты и шифрования паролей в памяти (на винде) и что можно их достать, если будет сделан полный дамп оперативной памяти (вот здесь хорошее описание этого процесса расшифровки - линк).
То есть по сути, если у вас снимут дамп оперативы, то в целом достанут и всю базу, если она была в памяти в это время. Конечно, есть шанс, что на расследователях будут некомпетентные люди, но это вряд ли.
А вот в менеджере паролей от Касперского всё попроще, вам достаточно иметь дамп процесса, потому что пароли хранятся в памяти в незащищённом виде).
Дамп делал в момент, когда запись была закрыта и пароль не должен был хранится в открытом виде.
Дома, к слову, я использую KeePass и в целом знаю как он работает в плане защиты и шифрования паролей в памяти (на винде) и что можно их достать, если будет сделан полный дамп оперативной памяти (вот здесь хорошее описание этого процесса расшифровки - линк).
То есть по сути, если у вас снимут дамп оперативы, то в целом достанут и всю базу, если она была в памяти в это время. Конечно, есть шанс, что на расследователях будут некомпетентные люди, но это вряд ли.
А вот в менеджере паролей от Касперского всё попроще, вам достаточно иметь дамп процесса, потому что пароли хранятся в памяти в незащищённом виде).
Дамп делал в момент, когда запись была закрыта и пароль не должен был хранится в открытом виде.
😁2👌1
А ещё раньше был прикол со слабой генерацией случайных паролей - https://blog.ledger.com/kaspersky-password-manager
Ledger
Kaspersky Password Manager: All your passwords belong to us | Ledger
The password generator included in Kaspersky Password Manager had several problems. The most critical one is that it used a PRNG not suited for cryptographic purposes. Its single source of entropy was the current time. All the passwords it created could be…
Forwarded from сегодня ничего не происходит
есть мнение, что распространять такие ссылки неэтично, но я считаю, что это необходимая мера для понимания масштаба утечек. мы все должны знать, какие из наших личных данных уже попали в паблик
за 2022 год утекло много данных из российских баз, которые были обогащены данными из предыдущих утечек. хакерская группа публикует инструмент для бесплатного поиска по этим данным, используя:
- Telegram ID
- номер телефона
- ФИО
- Email
- анонсирован поиск по адресам и другим данным
если компания собирает данные пользователей, они будут слиты
за 2022 год утекло много данных из российских баз, которые были обогащены данными из предыдущих утечек. хакерская группа публикует инструмент для бесплатного поиска по этим данным, используя:
- Telegram ID
- номер телефона
- ФИО
- анонсирован поиск по адресам и другим данным
если компания собирает данные пользователей, они будут слиты
sqlite3 популярная база, но по ней очень мало ресёчей именно по внутреностям, самый известный, пожайлуй, от чекпоинта (линк)
В нём предложены интересные примитивы для эксплуатации sqlite3 через создание своей базы, по сути они просто придумали методы по спрею кучи, перехвату любого SELECT запроса и замены его на свой, конвертации указателей в числа и обратно и через крафт базы засплоитили багу в модуле fts3 (кстати, он включен не во всех версиях sqlite3).
Сетап описанный в статье не всегда такой удачный, например у вас может не быть fts3 или версия может быть старше, где баги уже не будет. Но интересен тот факт, что при инициализации базы вызывается код который генерит таблицы и прочие структуры (в статье это описано почти в самом начале и называется DDL(Data Definition Language)). То есть по сути мы можем выполнить любой SQL запрос на момент иницализации самой базы (на самом деле на момент вызова первого SELECT запрсоа). Звучит как-то опасно, но от этого есть защита.
В новых версиях защита заключается в том, что этот запрос может начинатсья только с CREATE (в коде это выглядит как strncmp()), то есть по сути вы сможете только создать новую табличку.
А вот в старых версиях такой проверки нет, но при этом нигде в интернете нет информации про такие атаки...
Это из-за того, что в старой версии вы по сути тоже не можете выполнить произвольные запросы, потому что любой запрос в sqlite3 базу конвертируется в байткод, а во время инициализации базы выполнение VDBE кода запрещено.
Интересно, зачем они добавили ещё одну проверку, в новых версиях, если в старых уже не работали произвольные запросы или может есть какие-то байпассы, но про них нигде в паблике нет..
*На первом скрине скриншот с описанием для старой версии sqlite3, на втором для новой*
В нём предложены интересные примитивы для эксплуатации sqlite3 через создание своей базы, по сути они просто придумали методы по спрею кучи, перехвату любого SELECT запроса и замены его на свой, конвертации указателей в числа и обратно и через крафт базы засплоитили багу в модуле fts3 (кстати, он включен не во всех версиях sqlite3).
Сетап описанный в статье не всегда такой удачный, например у вас может не быть fts3 или версия может быть старше, где баги уже не будет. Но интересен тот факт, что при инициализации базы вызывается код который генерит таблицы и прочие структуры (в статье это описано почти в самом начале и называется DDL(Data Definition Language)). То есть по сути мы можем выполнить любой SQL запрос на момент иницализации самой базы (на самом деле на момент вызова первого SELECT запрсоа). Звучит как-то опасно, но от этого есть защита.
В новых версиях защита заключается в том, что этот запрос может начинатсья только с CREATE (в коде это выглядит как strncmp()), то есть по сути вы сможете только создать новую табличку.
А вот в старых версиях такой проверки нет, но при этом нигде в интернете нет информации про такие атаки...
Это из-за того, что в старой версии вы по сути тоже не можете выполнить произвольные запросы, потому что любой запрос в sqlite3 базу конвертируется в байткод, а во время инициализации базы выполнение VDBE кода запрещено.
Интересно, зачем они добавили ещё одну проверку, в новых версиях, если в старых уже не работали произвольные запросы или может есть какие-то байпассы, но про них нигде в паблике нет..
*На первом скрине скриншот с описанием для старой версии sqlite3, на втором для новой*
🤔2
ТинькоФФ просто гении про прогреву гоев, взяли и поделили на два стоимость заблокированных акций (и насколько я прочитал из комментов, некоторым людям открыли возможность продажи части этих акций).
То есть банк предложил "удобный" способ возврата заблокированных акций, выкупая их у людей. Правда вот цену поделили пополам.
На скрине показано как это отображается у меня в ЛК (например NetEra Energy за акцию стоит 83.2 на бирже, а не 40)
То есть банк предложил "удобный" способ возврата заблокированных акций, выкупая их у людей. Правда вот цену поделили пополам.
На скрине показано как это отображается у меня в ЛК (например NetEra Energy за акцию стоит 83.2 на бирже, а не 40)
💩3
Отлаживаю я бинарь под ARM64 в следующем сетапе:
1. qemu-static запускает бинарь и открывает порт
2. gdb-multiarch через gef-remote коннектится к порту
Казалось бы, обычный сетап и всё норм, но все регистры и указатели отображаются как 32-битные, хотя у меня 64-битный бинарь.
Проблема оказалась внутри GEF-а, а именно в том, что класс ARM64 унаследован от ARM, а он в свою очередь от Architecture. Во всех этих класса определяется свойство "ptrsize" которое отвечает за отображения всех значений в листингах через команды gef-a.
А вот у ARM64 не было определено это свойство, в итоге оно наследовалось от ARM (а он 32-битный) и всё ломалось/некорректно отображалось.
Достаточно просто добавить его в описание класса ARM64 и всё будет норм отображаться.
P.S. А, в актуальной версии и так оно есть, видимо у меня старый gef
1. qemu-static запускает бинарь и открывает порт
2. gdb-multiarch через gef-remote коннектится к порту
Казалось бы, обычный сетап и всё норм, но все регистры и указатели отображаются как 32-битные, хотя у меня 64-битный бинарь.
Проблема оказалась внутри GEF-а, а именно в том, что класс ARM64 унаследован от ARM, а он в свою очередь от Architecture. Во всех этих класса определяется свойство "ptrsize" которое отвечает за отображения всех значений в листингах через команды gef-a.
А вот у ARM64 не было определено это свойство, в итоге оно наследовалось от ARM (а он 32-битный) и всё ломалось/некорректно отображалось.
Достаточно просто добавить его в описание класса ARM64 и всё будет норм отображаться.
@property
def ptrsize(self) -> int:
return self._ptrsize
P.S. А, в актуальной версии и так оно есть, видимо у меня старый gef
https://vxtwitter.com/furrtek/status/1625696498078867456
Ааа, так вот как выглядит хардварный хакинг, а я то думал...
Ааа, так вот как выглядит хардварный хакинг, а я то думал...
vxTwitter / fixvx
Furrtek (@furrtek)
Voltage glitching attack illustrated
💖 2343 🔁 400
💖 2343 🔁 400
🔥2🤔1
Обзор на еду из автомата ВкусВилла, стоящего у нас в офисе.
Цена: 228 рублей
Отзыв: Прикольная шавуха. Привкус у мяса действительно как с мангала/костра, не знаю правда ли на углях было приготовлено, но похоже. Овощей маловато и соуса. Лаваш не толстый и в целом приятный. При поглощении не развалилась.
Оценка: 6/10.
Цена: 228 рублей
Отзыв: Прикольная шавуха. Привкус у мяса действительно как с мангала/костра, не знаю правда ли на углях было приготовлено, но похоже. Овощей маловато и соуса. Лаваш не толстый и в целом приятный. При поглощении не развалилась.
Оценка: 6/10.
👍2