Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1 | ДОСТУПНЫЙ ОТДЫХ
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1
Интересное

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Данная статья содержит решений заданий Encoding ASCII и Encoding UU направленные на кодировки, Hash Message Digest 5 и Hash SHA-2 — на нахождение прообраза хеша, Shift cipher — шифр сдвига, и Pixel Madness — на составление картинки.

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

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

Вдобавок к этому я поделюсь своим опытом в компьютерной криминалистике, анализе малвари и прошивок, атаках на беспроводные сети и локальные вычислительные сети, проведении пентестов и написании эксплоитов.

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

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

Encoding — ASCII
Начнем с самого первого задания — Encoding-ASCII.

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Переходим к самому заданию. Видим последовательность 16-ых символов. Самое первое предположение — это обычный hex (все символы представлены в 16-м виде).

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

s = «4C6520666C6167206465206365206368616C6C656E6765206573743A203261633337363438316165353436636436383964356239313237356433323465»
s.decode(«hex»)
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Получаем ответ и идем далее.

Encoding — UU
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Переходим к самому заданию. Даже не смотря на подсказку в названии задания, отличить файлы в UUE (кодировка для передачи файлов, содержащих не текстовые данные) формате легко — они начинаются со строки:

Begin_права-на-файл_название-файла
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

s = »’begin 644 root-me_challenge_uudeview
B5F5R>2!S:6UP;&4@.RD*4$%34R`](%5,5%)!4TE-4$Q%»@«
`
end»’

f = open(‘./uu.enc’, ‘w’)
f.write(s)
f.close()

import uu
uu.decode(‘uu.enc’, ‘uu.dec’)
ans = open(‘uu.dec’, ‘r’).read()
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Сдаем флаг.

Hash — Message Digest 5
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Нас просят найти прообраз для хеша md5. Это можно легко сделать с помощью этого сайта (https://md5decrypt.net/). Но мы, в целях обучения конечно, используем hashcat. Для этого используем следующие параметры и коды:

  • -a 0 — перебор по словарю;
  • -m 0 — тип хеша MD5;
  • File.hash — файл с хешем;
  • rockyou.txt — наш словарь;
  • —force — игнорировать ошибки.
Читать  Нарушителей самоизоляции определяют с помощью видеокамер

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Переходим к следующему заданию.

Hash — SHA-2
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

В качестве ответа нужно дать SHA1 хеш от прообраза этого хэша. Дело в том, что в данной лишний символ.

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Удалим его. Для того, чтоюы определить алгоритм хеширования используем программу hashid.

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Из представленных алгоритмов наиболее вероятен SHA-256. Как решать такое задание с помощью hashcat показал, теперь сделаем его с помощью этого
сайта.

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Осталось взять SHA-1 от этой строки.

from hashlib import *
sha1(‘4dM1n’).hexdigest()
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Shift cipher
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Ну с алгоритмом шифровани нам помогают. Тот же самый Шифр Цезаря, только сдвиг происходит не в диапозоне от нуля до длины алфавита, а по всем возможным 256 значениям одного байта. Напишем программу, которая сначала сдвинет каждый символ на 1, потом на 2 и т.д. до 255.

s = open(‘ch7.bin’, ‘r’).read()
for x in range(255):
“”.join( chr((ord(y) + x)%256 ) ) for y in s)
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Среди строк найдем ту, которая содержит ответ.

Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Pixel Madness
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Нам дают несколько выражений, а в конце говорят, что 0 — это белый цвет, а 1 — черный. Скорее всего в итоге должна получиться картинка. Предполагаю, что в выражении нужно не умножать, а повторять необходимое количество раз определенный символ.

Быстро можно выполнить выражение с помощью функции eval, но сначала нужно изменить формат 0x1 на ‘0’*1.

s = »»0x3+1×1+0x1+0x1+0x7+1×2+0x15+1×1+0x8+1×1+0x8+1×1+0x1+1×1+0x1+1×1+0x1+1×1+0x1+1×1+0x3+1×1+0x1+1×1+0x3+1×1+0x1+1×4+0x2+1×1+0x25
‘0x2+1×1+0x4+1×1+0x4+1×3+0x1+1×2+0x2+1×8+0x11+1×4+0x1+1×3+0x6+1×2+0x4+1×1+0x4+1×2+0x7+1×4+0x4+1×2+0x7+1×2+0x3+1×2+0x3
‘0x3+1×1+0x2+1×1+0x2+1×1+0x11+1×2+0x2+1×3+0x7+1×1+0x4+1×2+0x2+1×2+0x7+1×1+0x6+1×1+0x2+1×1+0x4+1×3+0x1+1×1+0x4+1×1+0x2+1×1+0x2+1×1+0x3+1×1+0x2+1×3+0x2+1×2+0x3
‘1×1+0x2+1×1+0x4+1×1+0x2+1×1+0x1+1×1+0x2+1×1+0x2+1×1+0x1+1×2+0x2+1×2+0x1+1×2+0x3+1×1+0x3+1×1+0x2+1×2+0x1+1×3+0x3+1×1+0x2+1×1+0x4+1×2+0x1+1×1+0x4+1×1+0x3+1×2+0x12+1×2+0x1+1×1+0x3+1×7+0x3
‘0x3+1×1+0x7+1×1+0x1+1×1+0x4+1×1+0x2+1×2+0x2+1×2+0x4+1×1+0x2+1×1+0x1+1×2+0x1+1×8+0x1+1×1+0x4+1×1+0x5+1×1+0x3+1×2+0x2+1×1+0x1+1×2+0x2+1×1+0x3+1×2+0x9+1×1+0x1+1×2+0x2+1×3+0x2+1×1
‘0x7+1×1+0x4+1×1+0x4+1×1+0x1+1×1+0x1+1×7+0x3+1×1+0x1+1×2+0x3+1×1+0x1+1×6+0x1+1×1+0x3+1×1+0x2+1×1+0x14+1×2+0x8+1×1+0x10+1×2+0x3+1×2+0x1+1×1+0x1
‘0x6+1×5+0x4+1×1+0x7+1×1+0x2+1×1+0x3+1×2+0x4+1×1+0x8+1×1+0x3+1×2+0x1+1×2+0x3+1×1+0x8+1×1+0x2+1×2+0x1+1×1+0x3+1×7+0x5+1×2+0x2+1×1+0x2+1×2+0x3
‘0x1+1×1+0x2+1×1+0x1+1×2+0x5+1×1+0x6+1×2+0x3+1×1+0x2+1×1+0x1+1×2+0x20+1×8+0x1+1×1+0x1+1×1+0x4+1×2+0x3+1×1+0x2+1×2+0x3+1×2+0x7+1×2+0x3+1×2+0x4
‘0x2+1×1+0x3+1×5+0x5+1×2+0x7+1×1+0x4+1×2+0x2+1×1+0x2+1×2+0x1+1×1+0x3+1×1+0x6+1×2+0x2+1×2+0x3+1×2+0x2+1×3+0x1+1×1+0x6+1×3+0x3+1×5+0x3+1×1+0x4+1×1+0x5
‘0x4+1×2+0x3+1×2+0x3+1×1+0x5+1×2+0x2+1×1+0x1+1×1+0x1+1×1+0x1+1×2+0x9+1×1+0x3+1×1+0x2+1×1+0x1+1×1+0x2+1×1+0x1+1×2+0x2+1×1+0x2+1×1+0x1+1×1+0x4+1×3+0x1+1×1+0x2+1×2+0x3+1×2+0x3+1×1+0x5+1×1+0x4+1×1+0x2
‘0x6+1×5+0x4+1×1+0x1+1×1+0x2+1×2+0x6+1×1+0x1+1×7+0x4+1×3+0x3+1×1+0x4+1×1+0x2+1×2+0x4+1×1+0x6+1×1+0x6+1×8+0x3+1×1+0x5+1×1+0x7
‘0x2+1×1+0x3+1×6+0x4+1×1+0x1+1×3+0x4+1×1+0x2+1×2+0x4+1×1+0x5+1×1+0x2+1×1+0x3+1×2+0x3+1×1+0x2+1×3+0x1+1×1+0x2+1×2+0x3+1×3+0x2+1×3+0x9+1×1+0x4+1×2+0x7+1×2»’

s = s.replace(«x», «‘*»).replace(«+»,»+'»)
examp = s.split(‘n’)
bits = [eval(i) for i in examp]

print(bits)
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Теперь создадим картинку с помощью библиотеки PIL. Допишем следующий код, выпоним и откроим получившуюся картинку.

from PIL import Image

width, height = len(bits[0]), len(bits)

pic = Image.new(‘RGB’, (width, height))
pix = pic.load()

for i in range(height):
for j in range(width):
pix[j,i] = ( bits[i][j]==’0′ and (255,255,255) or (0,0,0) )

pic.save(‘pixel.png’)
Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python. Решение задач с r0от-мi Cryto. Часть 1

Я приблизил картинку, читаем слово SOLUTION. На самом деле тут больше стеги, чем крипты. Данная статья будет интересна, скорее всего, только новичкам.

Дальше больше и сложнее… Вы можете присоединиться к нам в Telegram. Там можете предлагать свои темы и участвовать в голосовании на выбор темы для следующих статей.
Источник

Читать  10-летняя девочка сделала защитную "занавеску", чтобы безопасно обнимать бабушку и дедушку во время карантина (2 фото + видео)

I heart FeedBurner