Главная / Блог / OSINT CTF задачи: пошаговый разбор — от никнейма до геолокации по фото

12 мин.00

OSINT CTF задачи: пошаговый разбор — от никнейма до геолокации по фото

OSINT CTF задачи: пошаговый разбор — от никнейма до геолокации по фото

OSINT CTF задачи: пошаговый разбор — от никнейма до геолокации по фото

На третьем Maltego Community OSINT CTF 26 задач покрывали шесть категорий: атрибуция аккаунтов, геолокация, морская и авиационная разведка, Cyber Threat Intelligence, GEOINT. Борьба за третье место шла до последних минут — позиции на табло менялись постоянно, и три команды-финалиста (Lv1x, RinggitPower, WillHackForBeer) работали примерно одним набором инструментов. Разница была в другом: порядок действий и методика анализа. Кто быстрее выстроил цепочку — тот и забрал очки.

Эта статья — разбор типовых OSINT CTF задач с конкретными шагами, тупиковыми ветками и методологией, которую можно натянуть на ближайшее соревнование.

Категории OSINT CTF задач и разведывательный цикл

OSINT-задачи на CTF делятся на устойчивые категории. Понял категорию — уже знаешь, какой инструмент запускать и в каком порядке действовать. Ещё до прочтения условия.

  • SOMINT (Social Media Intelligence) — атрибуция аккаунтов, поиск по username OSINT, анализ публикаций. По MITRE ATT&CK: Social Media (T1593.001, Reconnaissance) и Employee Names (T1589.003, Reconnaissance).
  • GEOINT / IMINT (Geospatial / Image Intelligence) — геолокация по фото CTF, определение времени снимка, спутниковый анализ. Маппится на Determine Physical Locations (T1591.001, Reconnaissance).
  • Cyber Threat Intelligence — анализ IP-адресов, доменов, сертификатов, вредоносных файлов. Соответствует IP Addresses (T1590.005), WHOIS (T1596.002), Search Engines (T1593.002).
  • Стеганография и кодировки — данные, спрятанные внутри файлов или закодированные нестандартным способом. Steganography (T1027.003, Defense Evasion).

Зачем этот маппинг на CTF? Он задаёт фреймворк мышления. В условии фигурирует email — переключаешься на цепочку Email Addresses (T1589.002): extraction username → username enumeration → profile analysis. Дают фото — IMINT-цепочка: метаданные → визуальный анализ → кросс-референс → верификация координат.

Место OSINT в цепочке атаки. На реальном пентесте OSINT — это reconnaissance, первый этап kill chain до initial access. Умение собрать максимум из открытых источников, скоррелировать и получить точку входа — фундамент для всего, что идёт дальше. В CTF эти навыки изолированы в отдельную категорию, но мыслительный процесс тот же: из сырых данных через цепочку аналитических шагов к конкретному ответу.

Разведка по никнейму — от username до цифрового профиля

Sherlock, Maigret и WhatsMyName — инструменты OSINT по никнейму

Задачи на поиск по username — самый частый тип в категории SOMINT. Условие обычно лаконичное: дан никнейм или email, нужно раскопать связанные аккаунты и вытащить оттуда флаг.

Требования к окружению: - ОС: Kali Linux / Parrot OS / любой дистрибутив с Python 3.8+ - RAM: 4 ГБ минимум (инструменты нетребовательны) - Зависимости: Python 3.8+, pip, git - Сеть: обязательно онлайн (все инструменты лезут к внешним сервисам)

Три основных инструмента для разведки по никнейму OSINT:

Инструмент Покрытие Скорость Отчёт Когда использовать Когда НЕ использовать
Sherlock ~400 сайтов Быстрый (async) Текст в консоли Быстрая первичная проверка Нужен глубокий поиск по 2500+ сайтов
Maigret 2500+ сайтов Медленнее HTML/PDF/JSON Глубокое перечисление, отчёты Жёсткий лимит по времени на CTF
WhatsMyName ~1000 сайтов Мгновенный (браузер) Веб-интерфейс Нет CLI, быстрая проверка Нужна автоматизация

Ограничения всех трёх: высокий процент false positives. Никнейм john найдётся на сотнях сайтов — 80% будут другими людьми. Платформы с закрытыми профилями (Instagram, LinkedIn) возвращают ложные результаты. Rate limiting на целевых сервисах приводит к пропуску реальных совпадений без индикации ошибки — инструмент просто молча не покажет этот сайт в выводе. Неприятный сюрприз, если не знать об этом заранее.

Статус поддержки: Sherlock (sherlock-project/sherlock на GitHub) — активно поддерживается, база сайтов регулярно обновляется. Maigret (soxoj/maigret) — тоже активен, база растёт. Оба безопасны для использования сейчас.

Конкретный пример. На Faraway CTF (задача «Who», по разбору на codeby.net) давался никнейм yuriygagarin, нужно было найти ID на Яндекс.Облаке, Twitch и GitHub:

pip3 install maigret
maigret yuriygagarin -a --timeout 15

Флаг -a — проверка по всем известным сайтам, --timeout 15 — таймаут запроса (без него инструмент зависает на неотвечающих серверах). В выводе строки с [+] — подтверждённые совпадения. Для Twitch и GitHub результат содержит прямые URL профилей, для Яндекса — ID из URL.

Но на запуске команды задача не заканчивается. Каждое совпадение надо верифицировать руками: открыть профиль, посмотреть активность, сопоставить контент с тем, что известно о цели. Maigret выплёвывает десятки строк — среди них нужно найти те, где учётная запись реально принадлежит цели.

Кодировки и пивоты — что делать с результатом

После нахождения профиля начинается анализ контента. Авторы CTF-задач любят прятать флаги в кодировках, и распознать тип кодировки — отдельный навык.

На Maltego Community CTF (задача Account Attribution – 1, по данным Maltego) давался email davidjs1@deliveryotter.com. Из email вытаскиваем username davidjs1 — он находится на Bluesky. В био профиля строка: synt{L0h_t0g_z3}.

На первый взгляд — бессмыслица. Но synt — это flag в ROT13, подстановочном шифре со сдвигом на 13 позиций. ROT13 — один из самых частых приёмов в OSINT CTF задачах. Признак: строка выглядит «почти как слово», но сдвинута. Декодируем: synt{L0h_t0g_z3}flag{Y0u_g0t_m3}.

Помимо ROT13, на CTF регулярно встречаются: - Base64 — строка заканчивается на = или ==, содержит буквы, цифры и символы +/. - Hex — символы 0-9 и a-f, обычно чётной длины. - URL-encoding%20, %3D и подобные.

Привычка пропускать подозрительные строки через CyberChef (gchq.github.io/CyberChef) — 300+ операций декодирования в одном веб-интерфейсе — экономит десятки минут. Я начинаю с «Magic» рецепта — он автоматически пробует популярные кодировки и часто угадывает с первого раза.

Пивот через утечки. Если username найден на нескольких платформах, следующий шаг — проверка в базах утечек для построения связей. По данным Have I Been Pwned, утечка Twitter (2022) содержала около 6,68 млн записей с email-адресами, биографиями, геолокациями и телефонами. Утечка Adapt (2018) — около 9,36 млн записей с email, работодателем и должностью. Yandex Dump (2014) — 1,18 млн пар email/пароль (по данным HIBP, источник — forum.btcsec.com; собранный дамп, а не официальная утечка Яндекса). На CTF прямой доступ к утечкам обычно не нужен, но понимание структуры этих данных помогает строить гипотезы при корреляции аккаунтов.

Контекст применения: разведка по никнейму работает в любом сценарии — внешний пентест (этап footprinting), конкурентная разведка, CTF. Ограничение: если цель использует разные никнеймы на разных платформах (хорошая OPSEC-практика), перечисление по одному username не даст полной картины. Нужен pivot через email, телефон или уникальный контент.

Геолокация по фото CTF — пошаговый алгоритм

Геолокация по фото — вторая по популярности категория OSINT CTF задач. Условие стандартное: дано фото, нужно определить координаты или название города. Сложность варьируется от очевидных вывесок на знакомых языках до размытых снимков с парковок, где зацепиться не за что.

ExifTool и метаданные изображений — первый шаг

Прежде чем вглядываться в пиксели — проверь метаданные фото. EXIF-данные могут содержать GPS-координаты, модель камеры, дату съёмки и даже имя владельца устройства.

exiftool image.jpg | grep -iE "gps|date|camera|author|model"

Если GPS-координаты есть — задача решена за секунды: копируем координаты в Google Maps. По рекомендации ctf.support, перед любым reverse image search стоит проверить файл локально — exiftool или strings image.jpg — флаги и координаты иногда валяются прямо в raw-данных.

Когда ExifTool не поможет: - Фото из соцсетей — Instagram, Twitter, VK вырезают EXIF при загрузке. - Автор задачи намеренно удалил метаданные (70-80% задач средней и высокой сложности). - Изображение пересохранено, обрезано или заскриншочено — метаданные теряются.

Визуальный анализ и хронолокация — когда метаданных нет

Если EXIF пуст — начинается настоящая CTF разведка по открытым источникам. Алгоритм, который работает на большинстве задач:

Шаг 1: Идентификация языка и письменности. Вывески, дорожные знаки, номерные знаки автомобилей. Кириллица сужает область до десятка стран, арабская вязь — до двух десятков. Обращай внимание на типографику государственных дорожных знаков — она стандартизирована в каждой стране.

Шаг 2: Анализ окружающей среды. Тип застройки, растительность, рельеф, погода. Пальмы плюс снег — маловероятная комбинация (хотя бывает). Плоский ландшафт с высокой травой — степь: Казахстан, юг России, центральные штаты США. Тип дорожной разметки (белая/жёлтая, сплошная/прерывистая) отличается между странами.

Шаг 3: Идентификация конкретных объектов. Логотипы компаний, названия магазинов, архитектурные особенности — главный рычаг в геолокации по фото CTF. На Hacktoria Geolocation 16 (по разбору CyberAdvisors) решение строилось на двух вывесках: Commissionaires (канадская охранная компания) и логотипе Blue Cross (канадская страховая). Последовательность: найти список офисов обеих компаний → пересечь города → визуально сопоставить здания через Google Street View → результат: Saskatoon, Saskatchewan, координаты 52.135642, -106.661363.

Нюанс из того же разбора: Google Maps показывал другое название бизнеса на месте Commissionaires, а цвет козырька здания Blue Cross отличался от фото. Причина — панорама Street View была снята в 2009 году. Историческая функция Street View (переключение между годами съёмки через таймлайн в левом верхнем углу) — один из самых недооценённых инструментов геолокации. Многие задачи намеренно используют фото пятилетней давности, где окружение уже изменилось.

Шаг 4: Верификация через карты. Google Earth, Google Street View, Яндекс.Карты (для СНГ — часто лучшее покрытие панорамами). Сопоставь ракурс фото с доступными панорамами: направление съёмки, расстояние до объектов, взаимное расположение зданий.

Шаг 5: Хронолокация — определяем время по теням. Продвинутый приём, который практически не освещён в русскоязычных разборах CTF задач OSINT. На Maltego Community CTF (задача Account Attribution – 3) требовалось определить временной диапазон съёмки фото с видом на Венгерский парламент в Будапеште. Варианты ответа: 6-8 AM, 8-10 AM, 1-3 PM, 6-8 PM.

Алгоритм хронолокации: 1. Определи объект с известной высотой (здание парламента — около 96 метров, публично доступная информация). 2. Из поста в соцсети извлеки дату встречи. 3. Открой SunCalc (suncalc.org) — введи координаты Будапешта и дату. 4. Сопоставь направление и длину тени на фото с симуляцией положения солнца для разных часов. 5. Определи диапазон. В этой задаче ответ — 8:00 AM – 10:00 AM: утренние тени совпали по углу и длине.

Ограничения хронолокации: метод работает только при видимых тенях (облачность убивает всю затею), требует знания примерной локации (без координат SunCalc бесполезен), и даёт диапазон в 2-3 часа, а не точное время. Для CTF этого хватает — ответы обычно предполагают выбор из диапазонов.

OSINT инструменты для CTF — рабочий стек и ограничения

Ниже — инструменты, которые покрывают подавляющее большинство типовых OSINT CTF задач.

Инструмент Категория Сильная сторона Ограничение Применимость
Maigret SOMINT 2500+ сайтов, отчёты Медленный, false positives CTF, внешний пентест
Sherlock SOMINT Скорость, простота Меньше сайтов Быстрая проверка
ExifTool IMINT Универсальный парсер Бесполезен без EXIF Raw-файлы, форензика
SunCalc GEOINT Точная симуляция солнца Нужны координаты и дата Хронолокация
Google Lens IMINT Широкий датасет, OCR Хуже с лицами Здания, вывески, текст
Yandex Images IMINT Лучший поиск по лицам RU-ориентированная выдача Лица, объекты, СНГ-контент
Wayback Machine Архивы Исторические версии сайтов Не всё архивируется Удалённый контент
CyberChef Кодировки 300+ операций Только ручной режим ROT13, Base64, hex
VirusTotal CTI Анализ IP, доменов, файлов Rate limit бесплатного плана Связи между индикаторами

Чем отличаются reverse image search движки. Google Lens лучше работает с текстом на изображениях и архитектурными ландмарками — алгоритм натренирован на огромном датасете. Yandex Images исторически сильнее в распознавании лиц и поиске визуально похожих объектов. На практике стоит запускать оба параллельно: Google найдёт здание, Yandex найдёт то же фото на другом ресурсе с полезным контекстом. Пропускать Yandex — распространённая ошибка участников, привыкших только к Google. Я сам так терял время на первых CTF, пока не выработал привычку.

На Maltego CTF задача «From the archives» решалась через VirusTotal: по IP-адресу 47.96.17[.]237 во вкладке Relations нашёлся ZIP-архив Microsoft.AppRuntime.5017.214.zip, связанный с этим IP. Задача потребовала не сканирования, а навигации по интерфейсу разведывательной платформы — типичный CTI-паттерн.

Пассивная разведка CTF — архивы, домены и скрытые данные

Отдельная категория OSINT CTF задач связана с поиском удалённого или скрытого контента. Основной инструмент здесь — не сканер, а системный подход к поиску.

Google Dorking (T1593.002, Search Engines, Reconnaissance) — операторы расширенного поиска. Типичные для CTF: - site:target.com filetype:pdf — документы на домене - "username" site:github.com — поиск никнейма в коде - intitle:"index of" target — открытые директории - cache:url — кешированная версия страницы

WHOIS (T1596.002, Reconnaissance) — регистрационные данные доменов. На Maltego CTF задача «Domain Pivot» строилась на пивоте от одного домена к связанным через обратный WHOIS: по email регистратора находятся все домены, зарегистрированные на тот же адрес.

Стеганография (T1027.003, Defense Evasion) — данные спрятаны внутри обычного файла. Базовая проверка:

strings image.jpg | grep -iE "flag|ctf|key"
steghide extract -sf image.jpg -p ""

Команда strings вытаскивает текстовые строки из бинарника — флаг иногда валяется прямо в raw-данных. steghide извлекает данные, скрытые методом стеганографии (параметр -p "" — пустой пароль, который срабатывает только в самых простых задачах; для перебора паролей используйте stegseek — быструю замену stegcracker).

Ограничения: steghide работает только с JPEG, BMP, WAV и AU. Для PNG — zsteg, для произвольных форматов — binwalk. На продвинутых CTF стеганография многослойная (матрёшка из кодировок), но на соревнованиях среднего уровня strings + steghide + exiftool закрывают большинство случаев.

Где тренироваться. Hacktoria (hacktoria.com) — бесплатные задачи по геолокации, CTI и SOMINT с ежемесячными CTF. TryHackMe — комнаты OhSINT, Sakura, SearchLight с пошаговым вводом в OSINT. GeoGuessr — тренировка визуального анализа в игровом формате. Quiztime (Twitter/X) — ежедневные задачи от OSINT-специалистов с понедельника по пятницу, по данным Habr. Навык формируется только при регулярном решении: один разбор CTF задач OSINT в неделю за три месяца даёт больше, чем прочтение десяти статей.

Большинство русскоязычных разборов OSINT CTF задач сводятся к «установи Maigret, запусти команду, получи ответ». Это работает ровно до момента, пока задача элементарная. На соревнованиях среднего и высокого уровня — Trace Labs, Maltego CTF, Hacktoria — побеждают не те, кто знает больше инструментов, а те, кто выстроил в голове decision tree: метаданные → визуальный анализ → кросс-референс → верификация. Инструмент — заменяемый шаг в цепочке. Мышление — нет. Я не раз видел, как команды решали геолокацию быстрее без единого специализированного инструмента — через Google Maps и логику — чем те, кто тратил время на настройку автоматизации. Второй момент: OSINT-навыки из CTF напрямую переносятся в пентест. Reconnaissance — фундамент каждого этапа атаки. Умение по никнейму восстановить цифровой профиль, найти email, скоррелировать утечки — это первый шаг kill chain, который большинство джуниоров пропускают, начиная сразу с nmap. Через пару лет OSINT-компетенция станет обязательным требованием даже для позиций, которые сегодня считаются чисто техническими. Если хочешь пройти полную цепочку от разведки до эксплуатации с лабами на каждый этап — на WAPT эту связку разбирают в нескольких модулях с практикой.

🚀 Хочешь закрепить на практике? Реши задачи по теме на HackerLab — категория «pentest-machines».

Поделиться

0 комментариев

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

Загрузка комментариев...