Форензика | Зашифрованный трафик

Форензика | Зашифрованный трафик


Привет, попробуем разобраться с задачкой "Зашифрованный трафик" с платформы codeby.games и параллельно с тем чуть больше узнаем о том, что из себя представляет Wireshark и SSL-протокол.

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

В архиве к заданию находятся два файла – task.pcapng и sslkey.log.

Справочка: .pcap и .pcapng – расширения дампов сетевого трафика, сокращенно от Packet Capture и Packet Capture Next Generation соответственно. Собственно, "пикапы" содержат в себе всю информацию о пакетах данных и их содержимом за определенный промежуток времени. В тасках эти файлы, как правило, небольшие, однако в реальных кейсах количество записей в дампе может переваливать за шестизначное значение. Такие файлы можно открывать при помощи специальных программ, как Wireshark, WinDump, Netresec Network Miner. Мы же будем работать с ПО Wireshark.

С дампом разобрались, а что со вторым файлом?В контексте сетевого взаимодействия используются два наиболее распространенных типа шифрования – TLS и SSL. На сегодняшний день все SSL-протоколы и TLS-протоколы версии 1.0 и 1.1 признаны устаревшими и к использованию не рекомендуются. Подробно вдаваться в детали их работы в рамках райтапа не будем, подробнее эту тему можно изучить здесь и здесь.

Для понимания происходящего в задании достаточно понимать, что SSL протокол использует асимметричную криптографию для шифрования передаваемой информации, а значит работает с уже знакомыми нам открытым и закрытым ключом. Последние нам и даны в файлике sslkey.log. Поехали дальше.

Открываем Wireshark (в Linux Kali предустановлен) и первым делом стараемся не потеряться в количестве пакетов и кнопочек. Подробно останавливаться на функционале программы в рамках райтапа, опять же, не будем, но неплохой мастер-класс по работе с этим ПО можно найти вот здесь

После открытия дампа на глаза сразу же попадается огромное количество записей, содержащих в поле информации сочетание "Protected payload". И если попробовать пошариться по пакетам, ничего особо интересного мы и не найдем.

Значит все-таки куда-то нужно применить наши ключи из второго файла. Делается это следующим образом

Открываем меню Preferences

Далее идем в Protocols

И здесь, по идее, мы хотим найти наш SSL-протокол, у нас ведь SSL-ключи, верно? Однако, мы его не найдем. Связано это с тем, что последний SSL-протокол устарел еще аж в 1996 и на замену ему пришел протокол TLS. Принцип генерации ключей у них один, а потому существует своего рода "обратная совместимость", поэтому ищем TLS и импортируем туда ключи.

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

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

Откроем этот пакет и попробуем изучить его содержимое

Интересует нас, само собой, вкладка Decrypted TLS. В самом конце пакета находим флаг. Однако можно не пытаться его вводить, он все равно неверный;) Копаем дальше.

Далее пришло время узнать об очень полезной фишке Wireshark'a – извлечении файлов из дампа.

Переходим в File –> Export objects –> HTTP (потому что на скриншоте выше мы видим, что при передаче Secret.zip использовался протокол HTTP)

Находим нужный пакет

Выбираем "Сохранить", задаем имя и загружаем нужный нам файл.

Попробуем распаковать полученный архив, видим, что он запаролен и снова видим фейк-флаг. Применим его в качестве пароля

Получаем извлеченный файл flag, видим, что это ELF-файл, однако запускать его вовсе не обязательно

Проверяем его через команду stirngs и видим что-то очень похожее на base64, попробуем вывести

Декодируем полученную строку через любой декодер или через саму кали, она такое тоже умеет, да.

Этот флаг и будет ответом к заданию.

Report Page