#writeup #misc
Discard от @Max_RSC
Дан шестнадцатеричный дамп. Назовем его stegofile и обратим:
Посмотрим, что мы получили:
Эта непонятная последовательность символов представляет собой примитивный шифр ROT-47. Чтобы перевести ROT-47 в ASCII, воспользуемся замечательным сервисом dCode:
Мы получили ссылку. Нетрудно догадаться, куда она ведет. Переходим.
Мы пришли на Discord-сервер, который называется CTF. Похоже, что здесь множество чатов. Неужели нужно идти в каждый? Нет. Организаторы оставили подсказку: "25". Вспомним другую подсказку: "Го в войс". Может быть, в 25-м по счету чате войса находится скрытое послание? На сервере два войса, поэтому мне пришлось проверить 25-е чаты в обоих. В первом чате не оказалось ничего, зато во втором было прикреплено вложение – архив WoW.zip.
Скачиваем и распаковываем архив. Мы получили файл WoW.img. На первый взгляд дан файл образа диска, но выполнив:
...мы поймем, что на самом деле это картинка с расширением .png. Утилита binwalk сообщает, что в картинкe спрятан архив. Достаем егo:
В архиве находится текстовый документ, который начинается со слов "Snow may be the only thing...". Слово "snow" наводит на мысль, что мы имеем дело со стеганографией и нужно использовать инструмент stegsnow.
Выполняем эту команду и получаем флаг.
#HackOsint2024
Discard от @Max_RSC
Дан шестнадцатеричный дамп. Назовем его stegofile и обратим:
xxd -r stegofile > res
Посмотрим, что мы получили:
cat res
Эта непонятная последовательность символов представляет собой примитивный шифр ROT-47. Чтобы перевести ROT-47 в ASCII, воспользуемся замечательным сервисом dCode:
https://www.dcode.fr/rot-47-cipher
Мы получили ссылку. Нетрудно догадаться, куда она ведет. Переходим.
Мы пришли на Discord-сервер, который называется CTF. Похоже, что здесь множество чатов. Неужели нужно идти в каждый? Нет. Организаторы оставили подсказку: "25". Вспомним другую подсказку: "Го в войс". Может быть, в 25-м по счету чате войса находится скрытое послание? На сервере два войса, поэтому мне пришлось проверить 25-е чаты в обоих. В первом чате не оказалось ничего, зато во втором было прикреплено вложение – архив WoW.zip.
Скачиваем и распаковываем архив. Мы получили файл WoW.img. На первый взгляд дан файл образа диска, но выполнив:
file WoW.img
...мы поймем, что на самом деле это картинка с расширением .png. Утилита binwalk сообщает, что в картинкe спрятан архив. Достаем егo:
binwalk --dd='.*' WoW.img
В архиве находится текстовый документ, который начинается со слов "Snow may be the only thing...". Слово "snow" наводит на мысль, что мы имеем дело со стеганографией и нужно использовать инструмент stegsnow.
stegsnow -C WhatLiesInside.txt
Выполняем эту команду и получаем флаг.
#HackOsint2024
❤12
#misc
Роботы и UUID
Друг скинул мне этот сайт, но, как мне кажется, он не так прост. Еще друг сказал: "думай как робот".
https://picode.pythonanywhere.com
Хинт: Надо найти флаг, который состоит из двух частей.
Формат флага: KFCctf{...}
Автор: @while_not_False
Роботы и UUID
Друг скинул мне этот сайт, но, как мне кажется, он не так прост. Еще друг сказал: "думай как робот".
https://picode.pythonanywhere.com
Хинт: Надо найти флаг, который состоит из двух частей.
Формат флага: KFCctf{...}
Автор: @while_not_False
🥴9🖕5💊3❤1👍1🌚1
Очередной райтап от рок-звезды нашего канала @Max_RSC
#misc #SpookyCTF2024
the-true-bloop
Нам предоставлен зашифрованный флаг, который, как сообщает автор таска, зашифрован с использованием шифра Виженера. Кроме того, прикреплены четыре аудиофайла (1.wav, 2.wav, 3.wav, 4.wav), которые, надо понимать, каким-то образом помогут нам определить ключ.
Зашифрованный флаг выглядит следующим образом:
g4ed_j05_dX_b0Ww0q_0f_wu4rcK
Поскольку таск относится к категории misc, можно сделать вывод, что в данном случае не требуется выполнение криптоанализа. Следовательно, аудиофайлы – ключ к разгадке.
После прослушивания аудиофайлов мы замечаем, что звуки различаются по высоте, при этом первый и четвертый звуки являются идентичными. Однако, diff сообщает о том, что файлы различаются:
По-видимому, это было сделано с целью запутать решающего.
Я уверен, что многие подумали о спектрограммах или SSTV, но это не тот случай, и именно по этой причине таск привлек мое внимание.
Внимательно прослушав аудиофайлы, я сделал предположение, что первый и второй звуки различаются на тон. Используя программу Sonic Visualiser, я проверил их частоты и обнаружил следующее: первый (и четвертый) звуки имеют частоту 293 Гц, второй — 329 Гц, а третий — 440 Гц. Здесь полезно вспомнить, что 440 Гц — это международный стандарт настройки музыкальных инструментов, который определяет частоту ноты A4 (ля первой октавы). Таким образом, я предположил, что наши "таинственные" звуки — это ноты, и оказался прав: первый звук соответствует ноте D4 (ре первой октавы), второй — E4 (ми первой октавы), а третий — A4 (ля первой октавы). Интервал между нотами D (ре) и E (ми) составляет целый тон — мое предположение оказалось верным.
Поскольку первый и четвертый звуки одинаковы, это дает нам слово "DEAD" (D4 + E4 + A4 + D4).
Далее все достаточно очевидно: мы используем любой онлайн-расшифровщик для шифра Виженера и расшифровываем флаг, применив полученный ключ.
Привет! Я обещал прислать райтапы на интересные таски со SpookyCTF. Сначала хотел прислать ссылки на чужие райтапы, а потом подумал – почему бы не написать самому, если я могу сделать лучше? Первый райтап:
#misc #SpookyCTF2024
the-true-bloop
Нам предоставлен зашифрованный флаг, который, как сообщает автор таска, зашифрован с использованием шифра Виженера. Кроме того, прикреплены четыре аудиофайла (1.wav, 2.wav, 3.wav, 4.wav), которые, надо понимать, каким-то образом помогут нам определить ключ.
Зашифрованный флаг выглядит следующим образом:
g4ed_j05_dX_b0Ww0q_0f_wu4rcK
Поскольку таск относится к категории misc, можно сделать вывод, что в данном случае не требуется выполнение криптоанализа. Следовательно, аудиофайлы – ключ к разгадке.
После прослушивания аудиофайлов мы замечаем, что звуки различаются по высоте, при этом первый и четвертый звуки являются идентичными. Однако, diff сообщает о том, что файлы различаются:
diff 1.wav 4.wav
# Binary files 1.wav and 4.wav differ
По-видимому, это было сделано с целью запутать решающего.
Я уверен, что многие подумали о спектрограммах или SSTV, но это не тот случай, и именно по этой причине таск привлек мое внимание.
Внимательно прослушав аудиофайлы, я сделал предположение, что первый и второй звуки различаются на тон. Используя программу Sonic Visualiser, я проверил их частоты и обнаружил следующее: первый (и четвертый) звуки имеют частоту 293 Гц, второй — 329 Гц, а третий — 440 Гц. Здесь полезно вспомнить, что 440 Гц — это международный стандарт настройки музыкальных инструментов, который определяет частоту ноты A4 (ля первой октавы). Таким образом, я предположил, что наши "таинственные" звуки — это ноты, и оказался прав: первый звук соответствует ноте D4 (ре первой октавы), второй — E4 (ми первой октавы), а третий — A4 (ля первой октавы). Интервал между нотами D (ре) и E (ми) составляет целый тон — мое предположение оказалось верным.
Поскольку первый и четвертый звуки одинаковы, это дает нам слово "DEAD" (D4 + E4 + A4 + D4).
Далее все достаточно очевидно: мы используем любой онлайн-расшифровщик для шифра Виженера и расшифровываем флаг, применив полученный ключ.
🔥11❤8
#misc
First blood
В сети появился таинственный злодей, который всегда и везде оказывается первым. Он начал с участия в CTF, но теперь его амбиции зашли слишком далеко: он разрабатывает некое устройство и строит зловещие планы по захвату мира.
Я уже давно занимаюсь расследованием этого дела, но безуспешно — он всегда на шаг впереди.
Последнее, что мне удалось обнаружить:
Формат флага: CTF{}, флаг состоит из трех частей.
Автор: @denis_bardak
First blood
В сети появился таинственный злодей, который всегда и везде оказывается первым. Он начал с участия в CTF, но теперь его амбиции зашли слишком далеко: он разрабатывает некое устройство и строит зловещие планы по захвату мира.
Я уже давно занимаюсь расследованием этого дела, но безуспешно — он всегда на шаг впереди.
Последнее, что мне удалось обнаружить:
seturo.duj
cucruhi
j4hcydqjehnnb
281550
Формат флага: CTF{}, флаг состоит из трех частей.
Автор: @denis_bardak
🔥8❤1👍1
Forwarded from NullByte | Games | CTF
Нашей команде дали задание изучить какой-то странный сервер. Все, что мы смогли обнаружить - не менее странный сервис. Хоть мы и смогли достать часть его исходного кода - дальше MOTD продвинуться мы не смогли. Поможешь?
Категория:
Правила ивента: [ссылка]
ТехПоддержка: [ссылка]
#NY2025 #Challenge #MISC
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤1
task.py
4.7 KB
#misc
КОД-ДНК
Просто еще один инструмент для обфускации кода :)
Формат флага: KFCctf{}
Хинт:
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
КОД-ДНК
Просто еще один инструмент для обфускации кода :)
Формат флага: KFCctf{}
Хинт:
AA-0
AC-1
...
TT-F
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
👍4🗿3💊3❤1🙊1
image.png
171.6 KB
#misc
ШредерAPP 2
Я сделал выводы из своего прошлого опыта и купил новый шредер, но, как выяснилось, он тоже уязвим к восстановлению данных. В результате злоумышленник сумел восстановить картинку и узнать мой пароль от...
Формат флага: KFCctf{}
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
ШредерAPP 2
Я сделал выводы из своего прошлого опыта и купил новый шредер, но, как выяснилось, он тоже уязвим к восстановлению данных. В результате злоумышленник сумел восстановить картинку и узнать мой пароль от...
Формат флага: KFCctf{}
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
🌭7👍3
#misc
Нестандартный QR-code
Вчера моему другу пришел QR-код, в сообщении упоминалась антискан вотермарка и что-то еще.
Формат флага: KFCctf{}.
Хинт:He1Lo=hE1lO
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
Нестандартный QR-code
Вчера моему другу пришел QR-код, в сообщении упоминалась антискан вотермарка и что-то еще.
Формат флага: KFCctf{}.
Хинт:
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
❤3👍1😁1👌1🗿1
#misc #osint #stegano
First blood
В сети появился таинственный злодей, который всегда и везде оказывается первым. Он начал с участия в CTF, но теперь его амбиции зашли слишком далеко: он разрабатывает некое устройство и строит зловещие планы по захвату мира.
Я уже давно занимаюсь расследованием этого дела, но безуспешно — он всегда на шаг впереди.
Последнее, что мне удалось обнаружить:
Формат флага: CTF{}, флаг состоит из трех частей.
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
First blood
В сети появился таинственный злодей, который всегда и везде оказывается первым. Он начал с участия в CTF, но теперь его амбиции зашли слишком далеко: он разрабатывает некое устройство и строит зловещие планы по захвату мира.
Я уже давно занимаюсь расследованием этого дела, но безуспешно — он всегда на шаг впереди.
Последнее, что мне удалось обнаружить:
seturo.duj
cucruhi
j4hcydqjehnnb
281550
Формат флага: CTF{}, флаг состоит из трех частей.
Автор: @denis_bardak
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
👍4👌1
task.zip
20.3 KB
#misc
Шифрование для перфокарты
Вчера мне попалась на глаза схема шифрования перфоленты и теперь мне не терпится разобраться, как она функционирует. Не мог бы ты мне в этом помочь?
Формат флага: KFCctf{...}
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
Шифрование для перфокарты
Вчера мне попалась на глаза схема шифрования перфоленты и теперь мне не терпится разобраться, как она функционирует. Не мог бы ты мне в этом помочь?
Формат флага: KFCctf{...}
Автор: @while_not_False
Напоминаем, что флаг нужно сдавать боту @writeup_ctf_bot
👍3
Строка.zip
64.5 KB
#misc #network #coding #tctf2025
Капибегущая строка
Для начала надо экспортировать данные из wireshark в csv файл. Кода у меня нет, можно сделать чрез файл-Export Packet Dissections но там будут лишние строки и у меня код перестал работать. Потом надо написать код преобразующий полученные данные в матрицу, чтобы потом анимировать бегущую строку. Краткое пояснение логики "преобразования матрицы" (функция create_address_mapping)
Под "преобразованием матрицы" здесь понимается процесс отображения одномерного набора адресов устройств (например, 0x0100, 0x0101, ..., 0x0140) на двумерную сетку (матрицу) координат (строка, столбец) для визуализации.
Логика этого преобразования следующая:
Получение и фильтрация адресов: Функция получает на вход множество (set) всех уникальных адресов назначения, найденных в CSV-файле. Сначала отбираются только корректные шестнадцатеричные адреса (начинающиеся с 0x).
Числовое представление и сортировка: Отобранные адреса (которые являются строками) преобразуются в целые числа. Это критически важно для правильной сортировки. Если сортировать строки, то "0x10a" может оказаться раньше "0x109". После преобразования в числа адреса сортируются по возрастанию. Теперь у нас есть упорядоченный список адресов от самого младшего к самому старшему.
Итерация и вычисление координат: Скрипт проходит по этому отсортированному списку адресов. Для каждого адреса известен его порядковый номер (индекс) в этом списке (начиная с 0). Этот индекс используется для вычисления координат на сетке:
Номер строки (row) вычисляется как результат целочисленного деления (//) индекса на количество столбцов в сетке (GRID_COLS). Это показывает, сколько полных строк уже "заполнено" адресами перед текущим.
Номер столбца (col) вычисляется как остаток от деления (%) индекса на количество столбцов в сетке (GRID_COLS). Это показывает позицию адреса внутри его строки.
Предположение о порядке: Этот метод расчета координат предполагает так называемый "row-major order" (построчный порядок). Это значит, что сетка заполняется адресами слева направо, сверху вниз, сначала полностью заполняется первая строка, потом вторая и так далее.
Проверка границ: Скрипт проверяет, не превышает ли вычисленный номер строки (row) максимально допустимый (GRID_ROWS - 1). Если превышает, выводится предупреждение, так как адресов оказалось больше, чем ячеек в заданной сетке.
Создание карты: Результатом является словарь (mapping), где каждому исходному шестнадцатеричному адресу (строке) сопоставляется кортеж с его вычисленными координатами (строка, столбец). Эта карта затем используется функцией create_animation для отрисовки пикселя каждого устройства в нужном месте кадра.
Пример:
Допустим, GRID_COLS = 13.
Адрес с index = 0 -> row = 0 // 13 = 0, col = 0 % 13 = 0 -> Координаты (0, 0)
Адрес с index = 12 -> row = 12 // 13 = 0, col = 12 % 13 = 12 -> Координаты (0, 12)
Адрес с index = 13 -> row = 13 // 13 = 1, col = 13 % 13 = 0 -> Координаты (1, 0) (переход на следующую строку)
Адрес с index = 26 -> row = 26 // 13 = 2, col = 26 % 13 = 0 -> Координаты (2, 0)
Таким образом, упорядоченный список адресов "разворачивается" в двумерную сетку заданного размера
Автор: @K1rlII
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капибегущая строка
Для начала надо экспортировать данные из wireshark в csv файл. Кода у меня нет, можно сделать чрез файл-Export Packet Dissections но там будут лишние строки и у меня код перестал работать. Потом надо написать код преобразующий полученные данные в матрицу, чтобы потом анимировать бегущую строку. Краткое пояснение логики "преобразования матрицы" (функция create_address_mapping)
Под "преобразованием матрицы" здесь понимается процесс отображения одномерного набора адресов устройств (например, 0x0100, 0x0101, ..., 0x0140) на двумерную сетку (матрицу) координат (строка, столбец) для визуализации.
Логика этого преобразования следующая:
Получение и фильтрация адресов: Функция получает на вход множество (set) всех уникальных адресов назначения, найденных в CSV-файле. Сначала отбираются только корректные шестнадцатеричные адреса (начинающиеся с 0x).
Числовое представление и сортировка: Отобранные адреса (которые являются строками) преобразуются в целые числа. Это критически важно для правильной сортировки. Если сортировать строки, то "0x10a" может оказаться раньше "0x109". После преобразования в числа адреса сортируются по возрастанию. Теперь у нас есть упорядоченный список адресов от самого младшего к самому старшему.
Итерация и вычисление координат: Скрипт проходит по этому отсортированному списку адресов. Для каждого адреса известен его порядковый номер (индекс) в этом списке (начиная с 0). Этот индекс используется для вычисления координат на сетке:
Номер строки (row) вычисляется как результат целочисленного деления (//) индекса на количество столбцов в сетке (GRID_COLS). Это показывает, сколько полных строк уже "заполнено" адресами перед текущим.
Номер столбца (col) вычисляется как остаток от деления (%) индекса на количество столбцов в сетке (GRID_COLS). Это показывает позицию адреса внутри его строки.
Предположение о порядке: Этот метод расчета координат предполагает так называемый "row-major order" (построчный порядок). Это значит, что сетка заполняется адресами слева направо, сверху вниз, сначала полностью заполняется первая строка, потом вторая и так далее.
Проверка границ: Скрипт проверяет, не превышает ли вычисленный номер строки (row) максимально допустимый (GRID_ROWS - 1). Если превышает, выводится предупреждение, так как адресов оказалось больше, чем ячеек в заданной сетке.
Создание карты: Результатом является словарь (mapping), где каждому исходному шестнадцатеричному адресу (строке) сопоставляется кортеж с его вычисленными координатами (строка, столбец). Эта карта затем используется функцией create_animation для отрисовки пикселя каждого устройства в нужном месте кадра.
Пример:
Допустим, GRID_COLS = 13.
Адрес с index = 0 -> row = 0 // 13 = 0, col = 0 % 13 = 0 -> Координаты (0, 0)
Адрес с index = 12 -> row = 12 // 13 = 0, col = 12 % 13 = 12 -> Координаты (0, 12)
Адрес с index = 13 -> row = 13 // 13 = 1, col = 13 % 13 = 0 -> Координаты (1, 0) (переход на следующую строку)
Адрес с index = 26 -> row = 26 // 13 = 2, col = 26 % 13 = 0 -> Координаты (2, 0)
Таким образом, упорядоченный список адресов "разворачивается" в двумерную сетку заданного размера
Автор: @K1rlII
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5⚡1❤1
#misc #telegram #tctf2025
Капиблогер (обе версии)
В боте, который выдается, не нажимать кнопку /start, а изменить тему чата, тогда создастся чат, но не пропишется /start и не выдастся роль.
Автор: @iamgosten
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капиблогер (обе версии)
В боте, который выдается, не нажимать кнопку /start, а изменить тему чата, тогда создастся чат, но не пропишется /start и не выдастся роль.
Автор: @iamgosten
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯11⚡1👍1🔥1🤨1
#misc #telegram #tctf2025
Капиблогер (обе версии)
Надо отправить боту сообщение "Конкурсы" без начального "/start" - тогда пользователь не будет авторизован и будет возвращаться везде 0 - то есть мы станем организатором.
Пример кода:
Автор: @tonysdx
💬 Канал & Чат & Бот с тасками | 📺 RUTUBE | 📺 YouTube
Капиблогер (обе версии)
Надо отправить боту сообщение "Конкурсы" без начального "/start" - тогда пользователь не будет авторизован и будет возвращаться везде 0 - то есть мы станем организатором.
Пример кода:
from telethon import TelegramClient
import asyncio
async def main():
# Create application https://my.telegram.org/apps
api_id = ...
api_hash = '...'
session_name = "wtf"
client = TelegramClient(session_name, api_id, api_hash)
await client.start()
msg = await client.send_message('@capyblogger_XXXXXX_bot', 'Конкурсы')
print(f'Отправлено сообщение {msg.id} в чат {msg.chat_id}')
await client.run_until_disconnected()
asyncio.run(main())
Автор: @tonysdx
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3⚡1👍1