Райтап на задачу «Слив флагов»

musa2ap

Автор:

musa2ap

6 ноября 2026

14

06.11.2026
Слив флагов
Категория:

Forensic

Задача «Слив флагов»

3T0T_FL4G_1MB4

Автор:

3T0T_FL4G_1MB4

Первая кровь:
velvetway
Сложность:
easy
Дата публикации:
13.12.2025
Решений:
99
Рейтинг:
5/5
Ссылка:
Решать

Открываем папку задания. Кроме flags.wim, есть только описание. Сам архив весит около 227 КБ. Для «тысяч флагов» это подозрительно мало, значит, внутри лежат очень маленькие файлы, а не гигабайты данных.

Расширение .wim — это Windows Imaging Format. Такой формат используют для образов Windows, но он же подходит и для обычного набора файлов. Внутри может быть несколько образов; в нашем случае образ один.

Сначала не распаковываем, а смотрим, что внутри (байты, количество файлов). Используем встроенный DISM либо скачиваем wimlib (я буду использовать DISM). Его нужно запускать от имени администратора:

dism /Get-WimInfo /WimFile:"D:\CTF_writeup\Forensic\слив флагов\flags.wim"

В выводе важны количество образов и размер. Утилита wimlib дополнительно показывает File Count: в образе 1000 файлов и около 45 000 байт данных. То есть каждый файл весит примерно 45 байт — это явно не полноценные документы, а короткие строки. DISM показывает индекс, имя образа и размер, но не всегда выводит число файлов.

Решение задачи «Слив флагов»: иллюстрация 1

Теперь нужно достать файлы, распакуем образ:

mkdir C:\wim_mount
dism /Mount-Wim /WimFile:"D:\CTF_writeup\Forensic\слив флагов\flags.wim" /Index:1 /MountDir:C:\wim_mount /ReadOnly

После этого появятся все нужные для нас файлы TXT.

Решение задачи «Слив флагов»: иллюстрация 2

Открываем любой файл, например flag_001.txt. Внутри одна строка из 44 символов и знака «=» в конце:

ZWVlMWNjMDA0NTI2NzM3MTY5NzRlNzk2ZjdhOGZhNGM4=

Это похоже на Base64, декодируем его с помощью PowerShell.

Решение задачи «Слив флагов»: иллюстрация 3

Ошибка. Проверяем ещё раз и понимаем, что ошибка из-за лишнего 45-го элемента. Смотрим на строку: лишний =. Убираем его, добавив в скрипт пару строк.

В ответе получится что-то вроде:

eee1cc00452673716974e796f7a8fa4c8

Очевидно, на флаг не похоже. В NTFS у файла может быть не только основное содержимое, но и дополнительные именованные потоки (Alternate Data Streams, ADS). Проводник их не показывает, а многие архиваторы теряют при распаковке. Именно поэтому флаг мог спрятаться так, что обычный поиск по содержимому ничего не находит.

Проверяем все файлы сразу:

Get-ChildItem C:\wim_mount\flags -File | ForEach-Object {
Get-Item $_.FullName -Stream * | Where-Object Stream -ne ':$DATA'}

В выводе появится строка вида:

flag_404.txt:hidden:$DATA

Читаем скрытый поток и декодируем его так же, как обычный файл (код напишите сами):

Решение задачи «Слив флагов»: иллюстрация 4

На этом шаге в консоли появится наш флажок.

Если монтировали образ через DISM, не забудьте демонтировать его.

Если вы нашли опечатку или ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter

Также по теме:

Райтап на задачу «Слив флагов»

/Разборы задач

Райтап на задачу «Слив флагов»

Исследуем WIM-образ через 7-Zip, находим альтернативный поток flag_404.txt и декодируем спрятанную строку Base64.
Прочитать

7

Райтап на задачу «CTF-ер, который смог»

/Разборы задач

Райтап на задачу «CTF-ер, который смог»

Исследуем повреждённый ZIP в HxD и восстанавливаем изображение с помощью Take bytes и Raw Inflate в CyberChef.
Прочитать

6