03.09.2020       Выпуск 350 (31.08.2020 - 06.09.2020)       Статьи

CTF. Пароли в Firefox. Пароль Android. Атака Bit-Flipping. Решение задач с r0от-мi Crypto. Часть 3

В данной статье ломаем шифры перестановки и Виженера, расшифруем сохраненный в браузере Mozilla Firefox пароль, расправляемся с блокировкой Android и разбираемся с атакой Bit-Flipping.

Читать>>




Экспериментальная функция:

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

Просим обратить внимание, что текст по ссылке и здесь может не совпадать.

image

В данной статье ломаем шифры перестановки и Виженера, расшифруем сохраненный в браузере Mozilla Firefox пароль, расправляемся с блокировкой Android и разбираемся с атакой Bit-Flipping. Предыдущие части:

Часть 1 —

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python.

Часть 2 —

Crypt, XOR, взлом нешифрованного ZIP и ГПСЧ.
Организационная информация

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

  • 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

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






Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus