Главная / Блог / OSINT с нуля: флаги CTF через username и EXIF

15 мин.00

OSINT с нуля: флаги CTF через username и EXIF

OSINT с нуля: флаги CTF через username и EXIF

На последнем CTF одна команда потратила сорок минут на OSINT-таск, который решался за пять. Весь флаг лежал в EXIF-комментарии фотографии, а ребята гоняли никнейм через reverse image search и копались в давно удалённых профилях. Знакомо? OSINT-категория выглядит простой ровно до момента, когда садишься решать. Инструменты есть, данные открыты, но без внятного workflow задача превращается в хаотичное перескакивание между десятком вкладок — и через час ты понимаешь, что пропустил зацепку в первом же профиле. Разберём три базовых вектора OSINT с нуля для CTF — поиск по username, разведку по email и анализ метаданных фото — с конкретными командами, цепочкой действий и разбором ловушек, на которые попадаются даже опытные игроки.

Как устроены OSINT-таски в CTF

Прежде чем открывать терминал, разберёмся с логикой заданий. Большинство OSINT-тасков в CTF строятся по одному шаблону: организаторы дают стартовую точку — никнейм, email, фотографию или URL — и ждут, что участник по цепочке открытых источников доберётся до флага. Согласно CTF OSINT reference, типичный паттерн: «You are given a starting point — a name, username, email, photo, or website URL». Задача — собрать разрозненные куски и выстроить из них маршрут к ответу.

По классификации MITRE ATT&CK техники, которые мы используем в CTF OSINT, попадают в тактику Reconnaissance. Поиск по соцсетям — T1593.001 (Social Media), работа с поисковиками и дорками — T1593.002 (Search Engines), сбор email-адресов — T1589.002 (Email Addresses), определение местоположения по фото — T1591.001 (Determine Physical Locations). В реальном пентесте эти же техники применяются на этапе разведки перед атакой. В CTF — для нахождения флага. Механика идентична, различается только цель.

Типичные стартовые точки OSINT для CTF:

  • Username — никнейм для пробивки по платформам и поиска связанных аккаунтов
  • Email — адрес, через который выходишь на утечки, регистрации и профили
  • Фотография — изображение с метаданными или визуальными зацепками для геолокации
  • Фрагмент текста или URL — отправная точка для поиска через архивы и поисковые системы

Отличие CTF от реальной разведки по открытым источникам: все данные размещены организаторами намеренно. Нет этических ограничений по ст. 7 ФЗ-152, потому что «субъект» — вымышленный персонаж. Но привычка работать системно и документировать находки пригодится, когда перейдёте к реальным задачам.

Поиск по username: от никнейма до флага

Username — самая частая стартовая точка в CTF OSINT. Задача: по одному никнейму найти все связанные аккаунты на разных платформах и вытащить из них флаг или следующую зацепку. Разведка по открытым источникам начинается именно здесь — с первого цифрового следа.

Sherlock и Maigret: сканирование сотен платформ

Sherlock — основной инструмент для массового поиска username по сотням сайтов. Он шлёт запросы к каждой платформе и проверяет, существует ли аккаунт с заданным именем. В CTF это первый шаг после получения никнейма.

Запуск простой — указываешь username, получаешь список найденных платформ. Но есть нюанс, который регулярно ломает новичков: Sherlock даёт ложные срабатывания. Некоторые платформы возвращают HTTP 200 на любой запрос, и инструмент помечает аккаунт как найденный, хотя его не существует. По данным CTF OSINT reference, платформенные false positives — документированная проблема, поэтому whatsmyname.app ведёт актуальный список таких платформ и учитывает их при проверке.

Maigret — форк Sherlock с расширенной базой сайтов и дополнительной аналитикой. Он умеет вытаскивать метаданные профилей: bio, дату регистрации, ссылки и другие публичные данные (username metadata mining). Для CTF это критично — иногда флаг спрятан не на самой странице профиля, а в метаданных, которые Sherlock просто не покажет. Maigret формирует отчёт в PDF с собранной аналитикой — удобно, когда таймер тикает.

# Sherlock: установка и поиск username по платформам
# pip install sherlock-project
sherlock targetuser123 --output results.txt

# Maigret: расширенный поиск с отчётом
maigret targetuser123 --pdf report.pdf

Порядок действий при работе с username:

  1. Запускаете Sherlock или Maigret с целевым никнеймом
  2. Фильтруете результаты — убираете платформы с известными false positives
  3. Открываете каждый найденный профиль вручную и проверяете визуально
  4. Ищете в профилях: bio, ссылки на другие ресурсы, фотографии, посты, подписки
  5. Проверяете, не ведёт ли зацепка к другому username или email-адресу

WhatsMyName и ручная перепроверка

WhatsMyName.app — веб-сервис, который проверяет username по нескольким сотням сайтов (база обновляется чаще, чем у Sherlock). Работает через браузер. Запускайте его параллельно с Sherlock — базы пересекаются не полностью, и один инструмент находит то, что пропустил другой. Ещё один чекер — namechk.com — изначально создавался для проверки доступности никнеймов при регистрации, но в CTF работает как быстрая проверка существования аккаунтов.

Критический момент: если автоматические OSINT инструменты для начинающих ничего не нашли — это не тупик. В CTF часто используют платформы, которых нет в базах. Проверяйте вручную: Steam, Discord, Telegram, GitHub, Flickr. Организаторы тасков любят прятать профили на менее очевидных площадках.

Я не раз сталкивался с ситуацией, когда автоматика молчит, а профиль обнаруживается через обычный Google dork: "targetuser123" site:reddit.com или inurl:targetuser123. Поисковая разведка через Search Engines (T1593.002 по MITRE ATT&CK) — это не только про инструменты, но и про ручную работу с операторами поиска. Оператор site: ограничивает выдачу конкретной платформой, кавычки требуют точного совпадения — базовые приёмы Google dorking, которые закрывают массу задач.

Разведка по email в CTF-тасках

Если стартовая точка — email-адрес, стратегия меняется. Здесь нужно определить, на каких сервисах этот email зарегистрирован, не засветился ли он в утечках данных и нет ли связи с другими аккаунтами. Поиск по email OSINT — всегда многоступенчатый процесс.

holehe и h8mail: автоматизация проверки

holehe — Python-утилита, которая проверяет, зарегистрирован ли email на конкретных сервисах. Механизм работы красивый: утилита использует формы восстановления пароля и регистрации — шлёт запрос «забыл пароль» и по ответу сервиса определяет, существует ли аккаунт. Для большинства платформ это пассивный метод, но некоторые сервисы всё же отправляют владельцу письмо о попытке восстановления — что потенциально заметно для хозяина аккаунта.

Для CTF holehe полезен тем, что показывает конкретные платформы с активной регистрацией. Дальше идёшь на эти платформы и ищешь профиль по email или связанному username. Организаторы иногда регистрируют фейковый аккаунт на одной неочевидной платформе — holehe её найдёт, Sherlock — нет, потому что Sherlock ищет по username, а не по email.

h8mail работает по другому вектору — поиск email в публичных утечках данных. Он обращается к нескольким API и paste-сервисам, показывая, в каких утечках адрес фигурирует. В CTF организаторы иногда создают фейковые записи на Pastebin или аналогичных площадках, имитируя утечку с паролем или дополнительными данными. h8mail такие записи находит и вытаскивает контекст.

Have I Been Pwned и масштаб утечек

Have I Been Pwned (HIBP) — сервис Троя Ханта для проверки email по базам утечек. Масштаб данных, который сервис агрегирует, впечатляет цифрами: утечка LinkedIn (2012) — 164 611 595 записей с email-адресами и паролями. Tumblr (2013) — ещё 65 469 298 записей. Combo-лист Exploit.In (2016) объединил 593 427 119 уникальных email-адресов из множества источников. В 2024 году скомпрометировали даже Internet Archive (archive.org) — 31 081 179 записей с email, паролями и username'ами.

В CTF утечки используются двумя способами. Первый: организаторы создают email, который «засветился» в реальной или имитированной утечке, и участник должен найти связанный пароль или username. Второй: сам факт наличия email в определённой утечке — зацепка для следующего шага. Если email нашёлся в утечке платформы X — значит, на этой платформе есть аккаунт с данными.

Порядок действий при работе с email в CTF:

  1. Проверяете email через holehe — получаете список сервисов с регистрацией
  2. Проверяете через HIBP и h8mail — ищете упоминания в утечках
  3. Ищете через Google dork: "target@email.com" — paste-сервисы, форумы, публичные профили
  4. Анализируете домен email — если это не gmail или outlook, WHOIS домена может дать дополнительную информацию
  5. Извлекаете потенциальный username из части адреса до @ и прогоняете через Sherlock

Один нюанс, который часто упускают в азарте: часть email до собаки — это потенциальный username. Если адрес dr4gonfly99@gmail.com, то dr4gonfly99 — первый кандидат для поиска по username OSINT. Очевидно? Да. Но под давлением таймера забывается в половине случаев.

Метаданные фото: EXIF как хранилище флагов

Анализ метаданных фото — самый «благодарный» вектор в CTF OSINT. Если задание содержит фотографию, первое действие — вытащить EXIF до любых других манипуляций. По рекомендациям из CTF OSINT reference (ctf.support): «Before uploading, always check the image locally with exiftool — flags and coordinates are often left in metadata». Звучит элементарно, но количество людей, которые сначала загружают фото в Google Lens и только потом вспоминают про EXIF, стабильно удивляет.

exiftool: базовые приёмы для CTF

exiftool — стандарт для извлечения метаданных из изображений. Читает EXIF, IPTC, XMP и десятки других форматов из JPEG, PNG, TIFF и прочих типов файлов. В контексте OSINT с нуля — это первый инструмент, который нужно поставить и научиться запускать.

# Все метаданные из изображения
exiftool challenge_photo.jpg

# Только GPS-координаты
exiftool -gpslatitude -gpslongitude challenge_photo.jpg

# Комментарии и описания — частые места для флага
exiftool -comment -usercomment -imagedescription challenge_photo.jpg

# Абсолютно все поля, включая неизвестные
exiftool -a -u -g1 challenge_photo.jpg

Где именно прячут флаги в EXIF-данных фотографии:

Поле EXIF Что ищем Частота в CTF
Comment / UserComment Прямой текст флага или подсказка Высокая
ImageDescription Закодированный флаг (Base64, hex) Средняя
Artist / Author Username или ссылка на профиль Средняя
GPS Position Координаты места, имя которого — часть флага Высокая
Software / Creator Tool Подсказка в названии программы Низкая
XMP-dc:Description Расширенные метаданные, скрытый текст Средняя

GPS-координаты и скрытые комментарии

GPS-координаты в EXIF — классика тасков на геолокацию по фото OSINT. Камеры смартфонов записывают координаты в метаданные по умолчанию. В CTF организаторы либо оставляют реальные координаты (и нужно определить место), либо подменяют их — координаты ведут к объекту, название которого является частью ответа.

Формат GPS в EXIF — градусы, минуты, секунды (DMS): например, 55 deg 45' 21.00" N, 37 deg 37' 02.00" E. Для работы с картами конвертируйте в десятичный формат и вставляйте в Google Maps. Большинство онлайн-конвертеров делают это за секунду.

Ловушка, на которую я попадался не один раз: exiftool показывает координаты, находишь точку на карте, записываешь название города — и это неправильный ответ. Организаторы подменили координаты, они указывают на конкретное здание (музей, памятник, мост), название которого нужно использовать как ключ для дешифровки другой части задания. Всегда проверяйте не просто где точка, а что именно находится по этим координатам. Zoom in до упора.

Дополнительный приём: команда strings challenge_photo.jpg извлекает все текстовые строки из бинарного файла. Иногда флаг вписан не через стандартные EXIF-поля, а просто как текстовая строка, дописанная в конец файла. exiftool такое не покажет, а strings — покажет. Это на стыке OSINT и forensics, но в CTF границы между категориями размыты.

Геолокация по фото и обратный поиск изображений

Не каждая фотография в CTF содержит метаданные. Соцсети — Twitter/X, Facebook, Instagram — удаляют EXIF при загрузке. Если метаданные пусты, переходите к визуальному анализу и обратному поиску.

Обратный поиск изображений — загрузка картинки в поисковик для нахождения оригинала или визуально похожих снимков. Три основных движка дают принципиально разные результаты, и использовать нужно все три:

Движок Сильная сторона Когда использовать
Google Lens Распознавание объектов, текста на вывесках Первый шаг, универсальный инструмент
Yandex Images Распознавание лиц, СНГ и восточноевропейский контент Когда на фото есть люди или кириллица
TinEye Точные совпадения, хронология появления изображения Когда нужно найти первоисточник публикации

Приём из практики: не загружайте фото целиком. Если на изображении есть вывеска магазина, логотип или характерный объект — вырежьте этот фрагмент и ищите его отдельно через Google Lens. По данным CTF OSINT reference: «Isolate distinctive elements (shop signs, building facades) and search via Google Lens for better results than full-scene search». Кропнутый фрагмент почти всегда даёт более точные результаты, чем полная сцена.

Визуальные зацепки для определения места

Когда нет ни EXIF, ни совпадений в reverse image search, остаётся анализ визуального содержимого. Систематический чеклист для геолокации по фото:

  • Язык на вывесках и указателях — кириллица, латиница, арабская вязь, иероглифы сужают географию до региона
  • Дорожные знаки и разметка — форма знаков, цветовая схема, сторона движения автомобилей
  • Архитектура — постсоветские панельные дома, европейская застройка, типовые азиатские строения
  • Растительность и рельеф — пальмы ограничивают выбор тропиками, берёзы — умеренными широтами
  • Номерные знаки машин — формат номера однозначно определяет страну
  • Направление теней — в сочетании с примерным временем съёмки помогает определить широту

Для верификации координат по теням используют SunCalc — сервис показывает положение солнца в любой точке мира на любую дату и время. В CTF это помогает, когда на фото видны длинные тени и есть данные о дате съёмки из EXIF (даже если GPS удалён, дата может остаться). Для поиска по элементам инфраструктуры — OpenRailwayMap для железных дорог и OpenInfraMap для энергетических объектов. Звучит экзотично, но в GeoGuessr-подобных CTF-тасках эти ресурсы спасали не раз.

Ещё один неочевидный приём: если на фото есть отражённый или зеркальный текст (вывеска в отражении лужи или стекла), переверните изображение горизонтально и прочитайте текст. Поиск по фрагменту текста в кавычках через Google часто выводит на конкретный адрес.

Пошаговый разбор: типичный OSINT-таск от старта до флага

Разберём конкретную цепочку действий на примере задания: «Найдите флаг, связанный с пользователем dr4gonfly99». Стартовая точка — только username.

Шаг 1: пробиваем username. Запускаем python3 sherlock dr4gonfly99. Допустим, результаты показывают аккаунты на GitHub, Reddit и Steam. Параллельно проверяем через WhatsMyName.app — он дополнительно находит Flickr. Открываем каждый профиль вручную, игнорируя платформы, которые Sherlock пометил как найденные, но где профиль фактически отсутствует (false positive).

Шаг 2: анализируем профили. На GitHub — пустой репозиторий, но в bio указан email: dr4gonfly99@proton.me. На Reddit — два поста в географическом сабреддите. На Steam — аватарка с фотографией улицы. На Flickr — три фотографии с описаниями.

Шаг 3: проверяем email. Прогоняем dr4gonfly99@proton.me через holehe — подтверждается регистрация на нескольких платформах, включая Flickr (уже нашли) и WordPress. Идём на WordPress — находим блог с одним постом, в тексте которого есть ссылка на «любимое место».

Шаг 4: вытаскиваем EXIF. Скачиваем фотографии с Flickr, запускаем exiftool photo.jpg. В поле GPS Position — координаты Берлина. В поле UserComment — flag{0s1nt_m4st3r_2025}.

Шаг 5: верифицируем. Координаты совпадают с географией Reddit-постов. Флаг найден.

Вся цепочка: username → GitHub (email) → holehe (WordPress + Flickr) → EXIF (флаг + координаты). Четыре шага, три инструмента, ноль взлома. Это и есть практический OSINT для CTF.

Частые ловушки в OSINT-тасках и как их обходить

За время решения CTF-тасков по OSINT я собрал список граблей, на которые наступал сам или наблюдал у других:

Подменённые метаданные. Организаторы намеренно вписывают в EXIF ложные GPS-координаты, ведущие в океан или на Северный полюс. Если координаты выглядят абсурдно — это подсказка: настоящий ответ нужно искать не в метаданных, а в визуальном содержимом фото. Иногда подмена тоньше — координаты ведут на реальное место, но это не конечный ответ, а промежуточный шаг.

Мёртвые аккаунты. Username существует на платформе, но профиль пуст или удалён. Wayback Machine (web.archive.org) может показать сохранённую копию профиля до удаления. Кеш Google тоже стоит проверить: cache:URL_профиля покажет последнюю проиндексированную версию страницы. Организаторы иногда намеренно удаляют профиль после создания задания, ожидая, что участник догадается проверить архивы.

Флаг в нестандартном EXIF-поле. Не ограничивайтесь полями Comment и GPS. Используйте exiftool -a -u -g1 image.jpg — эта команда покажет абсолютно все поля, включая неизвестные и кастомные. Флаг может лежать в Photoshop:DocumentNotes, IPTC:Caption-Abstract или в любом произвольном XMP-поле.

False positives автоматики. Sherlock говорит «аккаунт найден», а при переходе — страница 404 или чужой профиль с совпавшим шаблоном URL. Каждую ссылку из автоматического отчёта нужно проверять визуально. Полагаться на зелёные галочки в терминале — путь к потере времени.

Кодированные флаги. Флаг лежит в метаданных, но в Base64, hex или ROT13. Строка вроде ZmxhZ3t0ZXN0fQ== — это Base64 от flag{test}. Учитесь распознавать форматы кодирования визуально: Base64 содержит = в конце, hex состоит из символов 0-9 и a-f, а ROT13 выглядит как бессмысленный текст латиницей.

Соцсети стирают EXIF. Twitter/X, Facebook, Instagram удаляют метаданные при загрузке изображений. Если задание ссылается на фото в соцсети — ищите оригинал через Wayback Machine, альтернативные хостинги или другие платформы, которые EXIF не трогают (Flickr, Google Photos по прямой ссылке).

Вложенные файлы. В тасках повышенной сложности внутри JPEG может быть спрятан ZIP или другой файл (стеганография). Это уже за пределами чистого OSINT и ближе к forensics, но базовая проверка не повредит — binwalk challenge_photo.jpg покажет, есть ли внутри что-то лишнее.

Три правила, экономящие время:

  1. Всегда начинайте с EXIF. Даже если задание выглядит как геолокация — сначала exiftool. Пять секунд проверки спасают от двадцати минут ручного анализа
  2. Ведите заметки. Каждый найденный аккаунт, email, зацепку записывайте. В CTF с ограничением по времени вернуться к пропущенной детали без записей невозможно
  3. Запускайте несколько инструментов параллельно. Sherlock не находит? Maigret и WhatsMyName могут. Google пуст? Yandex покажет. Одного инструмента никогда не хватает

Большинство CTF-игроков, с которыми я общаюсь, относятся к OSINT как к «лёгкой категории» — не надо реверсить бинарники, не надо писать эксплойты. Это ловушка. По факту OSINT-таски забирают больше всего времени на соревнованиях. Не потому что они сложные технически, а потому что участники подходят к ним без системы. Запускают Sherlock, получают двадцать результатов, открывают каждый, теряются в десятке вкладок и через час осознают, что пропустили зацепку в первом же профиле.

Проблема не в инструментах — Sherlock, exiftool и holehe работают за секунды. Проблема в отсутствии чёткого workflow: стартовая точка → автоматический перебор → ручная верификация → следующая зацепка → флаг. Кто выстраивает эту цепочку до старта таймера — тот забирает first blood.

И второй момент, который мало кто проговаривает вслух: CTF OSINT — не абстрактное упражнение. По данным CrowdStrike Global Threat Report 2025, 75% реальных вторжений начинаются с использования действительных учётных данных, а IBM X-Force фиксирует рост атак через валидные креды на 71% за год. Те же техники разведки — сбор email'ов (T1589.002), поиск по соцсетям (T1593.001), анализ утечек — реальные атакующие применяют для подготовки к credential stuffing и целевому фишингу. Разница только в целях: мы ищем текстовый флаг, они — точку входа в инфраструктуру. OSINT-категория в CTF — не разминка между «настоящими» тасками, а тренировка навыка, который напрямую конвертируется в профессию. Если хочется не просто решать таски, а пройти путь до OSCP с системной подготовкой по веб-разведке — на WAPT эту цепочку проходят в первых модулях с лабами на каждый вектор.

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

Поделиться

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

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

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

Читайте также

Regex и grep для поиска флагов CTF в дампах

11 мин.

2

Regex и grep для поиска флагов CTF в дампах

Пошаговые grep-команды и regex-паттерны для извлечения CTF-флагов из дампов: PCRE, Base64-декодирование, оптимизация на файлах 2+ ГБ, ripgrep и конвейеры

14 НОЯБРЬ, 2026

GTFOBins повышение привилегий Linux: практика

13 мин.

2

GTFOBins повышение привилегий Linux: практика

Пошаговый чейн повышения привилегий через GTFOBins: sudo -l, SUID, capabilities. Готовые one-liner'ы для 9 бинарников, связка с LinPEAS, обход ограничений sudo.

13 НОЯБРЬ, 2026

Настройка лаборатории для CTF: Docker и VM

12 мин.

12

Настройка лаборатории для CTF: Docker и VM

Пошаговая настройка лаборатории для CTF: VirtualBox, Kali Linux, Docker, сетевая изоляция. Проверено на 8 ГБ RAM — от нуля до первого флага.

13 НОЯБРЬ, 2026