В данной статье ломаем шифры перестановки и Виженера, расшифруем сохраненный в браузере Mozilla Firefox пароль, расправляемся с блокировкой Android и разбираемся с атакой Bit-Flipping. Предыдущие части:
Часть 1 — Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python.
Часть 2 — Crypt, XOR, взлом нешифрованного ZIP и ГПСЧ.
Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
- PWN;
- криптография (Crypto);
- cетевые технологии (Network);
- реверс (Reverse Engineering);
- стеганография (Stegano);
- поиск и эксплуатация WEB-уязвимостей.
Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Mozilla Firefox Password
Нам нужно найти пароль пользователя. Скачиваем и открываем архив, в котором находится директория .mozilla. В данной директории есть папка с расширениями и папка с именем браузера.
Так как расширения нас не интересуют, то заходим в диру-браузер. Там конфигурационный файл профиля и еще одна директория.
Заходим в папку и просматриваем файлы.
Все пароли, хранящиеся в базе данных, зашифрованы, поэтому просто так посмотреть их не получится. Для расшифрования можно использовать этот скрипт.
python3 firefox_decrypt.py ~/Загрузки/.mozilla/firefox/o0s0xxhl.default/
Шифр Виженера
Нам дан зашифрованный текст, и нужно найти его автора. Так как это шифр Виженера, то воспользуемся онлайн декодером.
Выбираем автоматический режим.
И получаем открытый текст и ключ. Осталось загуглить текст и найти автора.
Android lock pattern
Нам дают дамп файловой системы андроид и просят найти пароль. Это очень легко сделать, имея доступ к файловой системе. Хеш пароля (SHA1) находится в файле /data/system/gesture.key.
Мы можем либо взять и пробрутить хеш, либо воспользоваться androidpatternlock.
Найден как пароль, так и графический ключ.
Шифр перестановки
Нам дают зашифрованное сообщение и просят его расшифровать. Так как это шифр Rail Fence, то воспользуемся уже знакомым нам онлайн декодером.
И теперь среди предложенных нам расшифровок нужно выбрать ту, которая имеет осмысленный текст.
И получаем ответ.
AES CBC — Атака Bit-Flipping
Нам дают хост и порт для подключения. Подключимся с помощью netcat.
Нам предоставляют варианты действий — зарегистрироваться или войти. Сначала зарегистрируемся.
И нам предоставили частично открытый и зашифрованный текст. Теперь логинимся с данным токеном.
Но после входа, мы не можем получить доступ к данным, так как не являемся членом группы.
С заданием разобрались, теперь давайте разберемся с атакой Bit-Flipping. Эта атака обычно происходит в тех случаях, когда функция шифрования принимает некоторые входные данные, добавляет случайную строку и добавляет к ней другую строку перед ее шифрованием (наш случай).
Ниже представлена схема расшифрования сообщения по алгоритму AES CBC.
Дело в том, что предыдущий блок шифртекста ксорится с последующим блоком, для того, чтобы снять наложение текста, в итоге мы имеем расшифрованный текст.
Таким образом, если мы изменим один байт шифртекста в предыдущем блоке, то изменится один байт открытого текста в следующем блоке.
Теперь вернемся к заданию. В открытом тексте имеется параметр is_member=false. Как изменить, сложно представить. Но так как у нас есть символы уравнения, для того, чтобы весь текст был кратен размеру блока, мы можем изменить их так, чтобы при расшифровывании получалась строка is_member=true.
Разберемся, как это сделать. Данная строка должна получиться при расшифровывании в последнем блоке — EvilP2. Для этого нам нужно собрать блок EvilC1.
Как это сделать: Мы имеем CC1 и PP2. Проксорив их между собой, мы можем получить DC2. Так как мы знаем, что EvilP2 содержит “;is_member=false]” и знаем DC2, то проксорив их между собой, можно получить EvilC1.
Регистрируемся еще раз.
Инициализируем начальные параметры.
Теперь получим известные нам блоки.
Теперь получим новые блоки.
Собираем нагрузку.
Пробуем залогиниться.
И ничего не вышло, нас обнаружили. Скорее всего это из-за наличия двух одинаковых параметров. Давайте убьем первый.
И теперь успешно логинимся и забираем токен.
Вы можете присоединиться к нам в Telegram. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
armid
я думал в firefox защита мастер паролем, надежней устроена.
Paranoich
Уже не «мастер-пароль», а «основной пароль».
support.mozilla.org/ru/kb/ispolzovanie-master-parolya-dlya-zashity-sohranyon
А о слабой защите писали ещё лет 10 назад, а пару лет назад на это же указал и Владимир Палант (автор адблока).
Впрочем это лишь защита паролей в браузере. Не думаю, что кто-то хранит в браузере важные пароли. На то есть кипасс и иже с ним.
gecube
Никто уже в кипасс не хранит пароли — они в связке ключей в гуглохроме. Удобно? Да. Оно даже напоминает, если пароли утекли, что их нужно поменять. Забота о пользователе. Секурно ли? Ну, под вопросом, под большим вопросом
Paranoich
Я бы не был столь категоричен.
Ставить браузер от гугля специально для хранения паролей? Ну так себе идея. Таскать браузер с собой на флешке? Не выйдет, профиль пользователя у хрома гвоздями прибит к конкретному компьютеру.
Да и данные отличные от пары логин-пароль хранить затруднительно.
Как заполнять логины в приложениях на мобильных устройствах с помощью хрома? Ну и запускать хром ради заполнения паролей в Firefox/Safari — тоже неудобно.
Это подходит разве что тому, кто сидит за одним десктопом и из дома не выходит.
gecube
Вы правы только наполовину (к сожалению).
Браузер chrome есть и на десктопе, и на телефоне/планшете — и синхронизация закладок/паролей/истории работает просто чудесно. Это для пользователя прям очень удобно.
Касательно приложений — если они используют стандартную функцию отображения страницы браузера для логина (ну, например, редирект на фейсбук в играх), то в ней вроде бы автоподстановка работает, но это не 100% — возможно есть какие-то нюансы. В экосистеме эппла так точно предлагается их, тамошняя штука для автоввода паролей, но возможно, что она попросту на уровне приложения экранной клавиатуры работает — не разбирался в деталях.
google chrome ставят не потому что он хороший или пароли хранит, а потому что в нем наиболее адекватно отображается большинство страниц, да, и в целом, это сейчас лидер рынка.
никто про другие данные и не говорил :-/
вот это да — Safari на apple внезапно работает гораздо лучше Chrome (я внимательно смотрел, реально в Chrome есть мелкие глюки). И тогда вся концепция ломается, конечно, но нас производители очень активно пытаются подсадить на одну из экосистем — либо гугл-андроид, либо iphone-mac.