CTF. Курс молодого бойца. Начальные задания категории Crypto #2.
https://t.me/hacker_sanctuary
Данный пост будет носить практический характер. В нём мы рассмотрим задания начального уровня в категории Crypto. Данные задания часто встречаются в простых CTF'ах и иногда, как разминочные, в более крупных.
Задания будут взяты с известного сайта с различными задачами (CTF и не только) - https://www.root-me.org/
Будем решать задачи из категории: Cryptanalysis
Прямая ссылка: https://www.root-me.org/en/Challenges/Cryptanalysis/
Предыдущие задания из данной категории вы можете найти на канале.
Часть 1 - https://telegra.ph/CTF-Kurs-molodogo-bojca-Nachalnye-zadaniya-kategorii-Crypto-08-19
Ссылка на пост - https://t.me/hacker_sanctuary/93
Пример 1.
Решим задание "Hash - SHA-2". Исходя из названия речь пойдёт об алгоритме хеширования SHA2 или SHA256 (это два разных названия одного и того же алгоритма).
Прямая ссылка на задание - https://www.root-me.org/en/Challenges/Cryptanalysis/Hash-SHA-2.
Прочтём описание.

Нам дан хеш (полученный по алгоритму SHA2), однако в нём есть символы, которые не должны содержатся в хеше (символы хеша это цифры от 0 до 9 и буквы от a до f, так как чаще всего для представления хеша используется 16-ричная система счисления). Ещё нам сказано, что ответ это SHA1 хеш от пароля.
Скопируем строку, которую нам дают в задании и отчистим её от неверных символов.

Есть всего один лишний символ (буква "k") уберём её и получим строку 16ричных чисел длиной в 64 символа (формат SHA256 хеша). Воспользуемся онлайн сервисами для поиска данного хеша в базах.
Хороший сервис предоставляет сайт https://crackstation.net/

Получаем пароль "4dM1n". Теперь нужно взять от него SHA1 хеш. Можно использовать онлайн сервисы или python.

Получаем хеш a7c9d5a37201c08c5b7b156173bea5ec2063edf9, который и является ответом на задание.
Данное задание акцентирует внимание на такой теме как хеширование, формат хешей и известные алгоритмы хеширования.
Пример 2.
Следующее задание, которые будем решать называется "Shift cipher". Судя по названию речь пойдёт об шифре сдвига.
Прямая ссылка на задание - https://www.root-me.org/en/Challenges/Cryptanalysis/Shift-cipher
Начинаем задание и получаем некоторый файл с именем "ch7.bin", откроем его в hex-редакторе.

Немного взглянем на него и подумаем. Шифр сдвига - это по сути шифр Цезаря, однако в шифре Цезаря ключ сдвига не должен превышать размер алфавита. В конце файла мы видим некоторые значения, которые не отображаются в ASCII-символы. Данный факт может натолкнуть на мысль, что здесь не просто шифр цезаря. Давайте попробуем перебирать различные ключи, например от 0 до 100. Для этого используем python.

Нам повезло и мы почти сразу получили пароль.
Заключение.
Рассмотренные в данном посте задания достаточно тривиальны, однако уже требует определённых навыков и знания в отличие от первых заданий. Второе задание достаточно просто решается с помощью программирования. Первое задание больше основано на знании форматов хешей и использовании общедоступных ресурсов.