Bitlocker-1. PicoCTF 2025 Writeup от @Max_RSC
Неожиданный интерес со стороны аудитории вдохновил меня и побудил быстрее взяться за дело. Итак, задачка Bitlocker-1 с PicoCTF 2025, категория forensics, уровень сложности medium.
Нам предоставлен диск bitlocker-1.dd, зашифрованный с использованием BitLocker. Наша цель — взломать хеш пароля BitLocker, получить доступ к диску и извлечь содержащиеся на нем данные.
Первым шагом мы извлекаем хеш пароля с помощью утилиты bitlocker2john:
Теперь запускаем инструмент для взлома хешей. Я использовал Hashcat, но также можно было воспользоваться John the Ripper:
В условиях задачки упоминается, что пароль является простым, поэтому в целях экономии времени я применил облегченную версию словаря rockyou:
После некоторого времени работы Hashcat успешно находит пароль:
Как можно заметить, пароль соответствует имени пользователя (Jacky), значит, мы на верном пути.
Теперь мы можем открыть зашифрованный диск с помощью инструмента cryptsetup:
Также можно воспользоваться инструментом dislocker — здесь кому как больше нравится.
Открываем диск и сразу же находим флаг.
#picoctf2025 #forensics
Неожиданный интерес со стороны аудитории вдохновил меня и побудил быстрее взяться за дело. Итак, задачка Bitlocker-1 с PicoCTF 2025, категория forensics, уровень сложности medium.
Нам предоставлен диск bitlocker-1.dd, зашифрованный с использованием BitLocker. Наша цель — взломать хеш пароля BitLocker, получить доступ к диску и извлечь содержащиеся на нем данные.
Первым шагом мы извлекаем хеш пароля с помощью утилиты bitlocker2john:
bitlocker2john -i bitlocker-1.dd > bitlocker.hash
Теперь запускаем инструмент для взлома хешей. Я использовал Hashcat, но также можно было воспользоваться John the Ripper:
john --wordlist=rockyoulight.txt bitlocker.hash
В условиях задачки упоминается, что пароль является простым, поэтому в целях экономии времени я применил облегченную версию словаря rockyou:
hashcat -m 22100 -a 0 bitlocker.hash rockyoulight.txt
После некоторого времени работы Hashcat успешно находит пароль:
$bitlocker$0$16$cb4809fe9628471a411f8380e0f668db$1048576$12$d04d9c58eed6da010a000000$60$68156e51e53f0a01c076a32ba2b2999afffce8530fbe5d84b4c19ac71f6c79375b87d40c2d871ed2b7b5559d71ba31b6779c6f41412fd6869442d66d:jacqueline
Как можно заметить, пароль соответствует имени пользователя (Jacky), значит, мы на верном пути.
Теперь мы можем открыть зашифрованный диск с помощью инструмента cryptsetup:
sudo cryptsetup bitlkOpen bitlocker-1.dd windows
Также можно воспользоваться инструментом dislocker — здесь кому как больше нравится.
Открываем диск и сразу же находим флаг.
#picoctf2025 #forensics
❤19 3
flags are stepic. PicoCTF 2025 Writeup от @Max_RSC
Продолжаем серию разборов задач по форензике с PicoCTF 2025. Рассмотрим задачку flags are stepic уровня сложности medium.
Несмотря на то, что за эту задачку предлагалось всего 100 баллов, справиться с ней удалось немногим, а некоторые участники охарактеризовали её как уцуцугу.
Запускаем инстанс и переходим на сайт. Сначала мне показалось, что здесь что-то вроде Navy Signals Code — необходимо составить флаг из флагов стран. Однако всё оказалось гораздо интереснее.
Подсказка"In the country that doesn't exist, the flag persists" намекает на то, что флаг нужно искать в несуществующей стране. Такую страну можно быстро найти — это Upanzi Network. Скачиваем флаг этой "страны" на свой компьютер:
Здесь начинается этап, который вызвал наибольшие трудности. Имели место и вовсе курьезные ситуации, когда на тематических форумах участники предлагали денежное вознаграждение за помощь в решении этой задачки :D
Итак, что нужно делать? Название задачки решило всё: flags are stepic. Немного погуглив, я нашел man-страницу стегоутилиты stepic:
Думаю, идея ясна. Осталось разобраться с синтаксисом, который оказался довольно простым:
Таким образом, вторая часть задачки – это стеганография. Стеганография как часть форензики.
Дальше всё банально:
Получаем флаг.
#picoctf2025 #forensics
Продолжаем серию разборов задач по форензике с PicoCTF 2025. Рассмотрим задачку flags are stepic уровня сложности medium.
Несмотря на то, что за эту задачку предлагалось всего 100 баллов, справиться с ней удалось немногим, а некоторые участники охарактеризовали её как уцуцугу.
Запускаем инстанс и переходим на сайт. Сначала мне показалось, что здесь что-то вроде Navy Signals Code — необходимо составить флаг из флагов стран. Однако всё оказалось гораздо интереснее.
Подсказка
wget http://standard-pizzas.picoctf.net:61688/flags/upz.png
Здесь начинается этап, который вызвал наибольшие трудности. Имели место и вовсе курьезные ситуации, когда на тематических форумах участники предлагали денежное вознаграждение за помощь в решении этой задачки :D
Итак, что нужно делать? Название задачки решило всё: flags are stepic. Немного погуглив, я нашел man-страницу стегоутилиты stepic:
# stepic (1) - Python image steganography
Думаю, идея ясна. Осталось разобраться с синтаксисом, который оказался довольно простым:
stepic -d -i upz.png -o output.jpg
Таким образом, вторая часть задачки – это стеганография. Стеганография как часть форензики.
Дальше всё банально:
strings -n 8 output.jpg | grep -i pico
Получаем флаг.
#picoctf2025 #forensics
❤9👍7
task.zip
653.5 KB
Event-Viewing. PicoCTF 2025 Writeup от @Max_RSC
Продолжаем серию разборов задач по форензике с PicoCTF 2025. Рассмотрим задачку Event-Viewing уровня сложности medium.
На этот раз нам нужно было покопаться в журналах событий Windows, чтобы найти улики по каждому из вредоносных инцидентов. Но иногда можно и нужно схитрить. В условиях соревнований время — это золото, так что если есть возможность решить задачку быстрее, даже если совсем не так, как задумывал автор, почему бы и нет? В конце концов, после соревнований всегда можно вернуться к задачке и решить ее по-другому.
Мы знаем, что флаг будет закодирован в base64. Давайте запустим парсер, который выведет все события в удобочитаемом формате, а затем просто отфильтруем вывод с помощью команды grep. Парсер, который я использую для таких задач, я прикрепил к посту. Главное, чтобы парсер и файл Windows_Logs.evtx находились в одной директории.
В условии сказано, что флаг состоит из трех частей. Первую часть найти проще всего, ведь мы знаем, что флаг начинается с picoCTF, что в base64 выглядит как cGljb0NURn.
Запускаем команду:
И вот она, первая часть флага: cGljb0NURntFdjNudF92aTN3djNyXw==
Теперь, зная, что base64-строки часто заканчиваются на '==', давайте выведем все строки с двумя знаками '==' подряд. Выполняем команду:
И находим вторую часть флага: MXNfYV9wcjN0dHlfdXMzZnVsXw==
С третьей частью флага могут возникнуть проблемы, ведь она не обязательно будет заканчиваться на '==', потому что на PicoCTF флаги уникальны для каждой команды. Здесь есть несколько вариантов. Если с фантазией все в порядке, то можно догадаться, что третья часть флага начинается со слова "tool". Или можно просто поискать по последнему символу флага, то есть по '}'. В base64 слово "tool" (вернее "t00l") будет выглядеть как dDAwb.
В результате мы быстро находим последнюю часть флага: dDAwbF8zZjJhMWI0Y30K=
#picoctf2025 #forensics
Продолжаем серию разборов задач по форензике с PicoCTF 2025. Рассмотрим задачку Event-Viewing уровня сложности medium.
На этот раз нам нужно было покопаться в журналах событий Windows, чтобы найти улики по каждому из вредоносных инцидентов. Но иногда можно и нужно схитрить. В условиях соревнований время — это золото, так что если есть возможность решить задачку быстрее, даже если совсем не так, как задумывал автор, почему бы и нет? В конце концов, после соревнований всегда можно вернуться к задачке и решить ее по-другому.
Мы знаем, что флаг будет закодирован в base64. Давайте запустим парсер, который выведет все события в удобочитаемом формате, а затем просто отфильтруем вывод с помощью команды grep. Парсер, который я использую для таких задач, я прикрепил к посту. Главное, чтобы парсер и файл Windows_Logs.evtx находились в одной директории.
В условии сказано, что флаг состоит из трех частей. Первую часть найти проще всего, ведь мы знаем, что флаг начинается с picoCTF, что в base64 выглядит как cGljb0NURn.
Запускаем команду:
python3.12 evtx_parser.py | grep cGljb0NURn
И вот она, первая часть флага: cGljb0NURntFdjNudF92aTN3djNyXw==
Теперь, зная, что base64-строки часто заканчиваются на '==', давайте выведем все строки с двумя знаками '==' подряд. Выполняем команду:
python3.12 evtx_parser.py | grep '=='
И находим вторую часть флага: MXNfYV9wcjN0dHlfdXMzZnVsXw==
С третьей частью флага могут возникнуть проблемы, ведь она не обязательно будет заканчиваться на '==', потому что на PicoCTF флаги уникальны для каждой команды. Здесь есть несколько вариантов. Если с фантазией все в порядке, то можно догадаться, что третья часть флага начинается со слова "tool". Или можно просто поискать по последнему символу флага, то есть по '}'. В base64 слово "tool" (вернее "t00l") будет выглядеть как dDAwb.
python3.12 evtx_parser.py | grep dDAwb
В результате мы быстро находим последнюю часть флага: dDAwbF8zZjJhMWI0Y30K=
#picoctf2025 #forensics
❤11