Разбор конкурса Wireless Fuzzy Frenzy на PHDays 12
Приветствую всех технических энтузиастов и отдельно — участников соревнования Wireless Fuzzy Frenzy, которое состоялось в рамках ежегодного фестиваля практической кибербезопасности PHDays 12. Пришла пора раскрыть карты и разобрать детально, с чем бы ты столкнулся, если бы решил принять участие в этом конкурсе 19 и 20 мая в Парке Горького с ноутбуком в руках, и не отступил перед трудностями.
Wireless Fuzzy Frenzy
Беспроводной, пушистый, безумный — каждое из этих слов выражает высокоуровневую концепцию, на которую я опирался, когда придумывал конкурс.
Беспроводной — потому что Wi-Fi: я хотел донести идею о связи виртуальной и реальной стороны кибербезопасности.
Пушистый — потому что дружелюбный к новичкам: некоторые задачи можно было решить с телефона, во всем можно было разобраться без предварительной подготовки.
Безумный — потому что конкурс был экспериментальным, и я до конца никак не мог спрогнозировать, как будут развиваться события.
Состязание состояло из трех задач, и первая подразделялась на три одинаковые подзадачи.
Нужно обнаружить три точки доступа, раскиданные по периметру, и сдать флаги.
Необходимо узнать имя и пароль скрытой сети, подключиться к внутреннему ресурсу, атаковать ZIP-архив по известному тексту и сдать флаг.
Провести брутфорс хендшейка, получить доступ к внутреннему ресурсу, обнаружить и сдать флаг.
Давайте начнем с первой задачи.
CYBER_FOX
Описание задачи:
Привет! На радиоэфире спрятались три «цифровые» лисы. Ваша задача проста — определить их точное расположение и забрать флаг. Удачи!
Как можно догадаться из названия, это модификация спортивной радиопеленгации, также известной как «охота на лис». Суть этой задачи — в установлении точного местоположения передатчика, сканировании кода на крышке коробочки и получении флага.
Возможные подходы к решению:
Можно воспользоваться любым софтом, который поддерживает отображение силы сигнала точки доступа в реальном времени (например, airodump-ng в Kali Linux или WiFi Analyzer Android).
Прогуляться по площадке, ориентируясь на сигнала, либо же обнаружить точку в эфире и впоследствии снять силу сигнала и свои координаты с трех позиций, получив в точке пересечения зону расположения передатчика.
Если бы задача была сложнее и не ограничивалась одним павильоном, нужно было бы использовать специализированный софт, который позволяет собирать координаты и названия точек. О существовании такого софта нам намекает файл, приложенный ко второй задаче (об этом немного позже). Примером такого софта является WiFi Tracker для Android.
Если вы сталкивались с таким хобби, как wardriving, то можно было использовать Kismet с подключенным GPS (или смартфон).
Самое популярное решение — просто пройтись с приемником, интуитивно сделать предположение о возможном расположении передатчика и проверить несколько вариантов.
Два передатчика находились у двух входов в шатер Standoff, где находился макет цифрового Государства F .
Третий было найти сложнее — он находился в зоне конкурса AI Track: Data Breakout.
Normal_Name
Описание задачи:
Я хотел иметь точку доступа с самым нормальным названием. Решил посмотреть, что есть у соседей. Обнаружил это: greetings-from-the-internet all lowercase.
Вместе с этим мы дали участникам файл.
Это выгрузка данных, собранных программой WiFi Tracker в одну из моих летних поездок на самокате. Однако давайте обратим внимание на фразу greetings-from-the-internet all lowercase.
Гуглим ее и натыкаемся на коллекцию открыток немецкого художника Арама Бартолла, которая находится в Музее криптографии в Москве.
Посмотрев повнимательнее, можно увидеть на одной из карточек надпись all lowercase.
Получаем пароль, но пока непонятно, от какой он точки. Просканировав эфир, можно увидеть скрытую сеть в конкурсной зоне.
То есть на этом этапе у нас есть пароль от точки, но мы не знаем ее названия, потому подключиться к ней не можем. Есть два варианта:
Выполнить деаутентификацию клиентов от точки и в момент подключения перехватить название, как написано в инструкции.
Попытаться раскопать файл и достать название из него. В файле нужно выделить столбец SSID и выполнить подсчет частоты символов в каждой позиции.
Отлично, название скрытой сети — TP-Link_-020.
Можем подключиться и выполнить сканирование сети. Находим точку, которая держит у себя HTTP-сервер, подключаемся и смотрим, что внутри.
Видим 100 архивов, часть из которых зашифрована.
Замечаем повторяющийся файл README в каждом архиве.
Сопоставляя факты, можно сделать верное предположение, что часть зашифрованных архивов можно расшифровать. Это атака на ZIP-архив по открытому слову.
Воспользуемся доступным инструментарием bkcrack.
Смотрим индекс файлов
Указываем какой файл нам известен и его индекс в архиве и успешно проводим атаку.
Расшифровываем все архивы используя найденный ключ.
Внутри архивов лежат разные картинки, сгенерированные нейросетью.
Одна фотография явно отличается и содержит в себе флаг.
What_you_doing
Описание задачи:
Мне стало интересно, чем занимается мой друг. Я отключил его от точки Wi-Fi и перехватил следующие данные:
● запись звука ввода пароля;
● отпечатки пальцев нажатий на клавиатуру;
● хендшейк аутентификации.
Помоги мне узнать, что происходит в его сети.
192.168.1.100
На этом этапе нужно сделать предположение, что перехваченный хендшейк можно «брутфорсить», снижая сложность задачи и используя перехваченные данные.
Из аудиофайла, где явно слышны нажатия по клавишам, получаем длину пароля в восемь символов. Из фото отпечатков получаем возможные символы в пароле — x7ef5h. Далее очищаем перехваченный хендшейк от лишней информации:
hcxpcapngtool -o test.hc2200 cap2-01.cap.
И выполняем брутфорс:
hashcat --force -a 3 -m 2200 test.hc2200 -1 'x7ef5h' ?1?1?1?1?1?1?1?1?1 -v.
Задание подготовлено так, чтобы вычисление можно было провести даже на слабеньком ноуте.
Через некоторое время получаем имя точки и подобранный пароль.
Отлично! Используем его и подключаемся к точке, которая существует в зоне конкурса, и сканируем ее по адресу 192.168.1.100.
На нем поднят HTTP server на 80-ом порту. Заходим посмотреть, что же там происходит.
А там — панорамное видео 360°, сделанное при помощи Stable Diffusion и плагина LoRA для генерации таких видео. Там высматриваем QR-код, распознаем его, при необходимости регулируя яркость и контрастность, получаем флаг, сдаем его и радуемся.
Итоги
Конкурс был новым и экспериментальным, был направлен на развлечение технических энтузиастов. Проанализировав результаты, я считаю, что эксперимент удался.
Благодарю всех, кто решился принять участие и не отступал несмотря ни на что!
Призовые места заняли:
Пятерку победителей мы наградили крутыми призами, среди которых были два дрона, одноплатный компьютер, модульный синтезатор и поворотная камера. Кроме того, всем, кто принял участие в конкурсе, достались рюкзаки и футболки с логотипом конкурса.
Надеюсь, это был интересный и уникальный опыт. Ждем вас на следующем PHDays!