Главная / Блог / OSINT для CTF: флаги по никнеймам и метаданным

15 мин.00

OSINT для CTF: флаги по никнеймам и метаданным

OSINT для CTF: флаги по никнеймам и метаданным

На третьем Maltego Community OSINT CTF одна из команд получила единственную зацепку — email davidjs1@deliveryotter.com. Из адреса вытащили username davidjs1, проверили его на Bluesky и нашли профиль, в bio которого валялась строка synt{L0h_t0g_z3}. Кто-то в команде опознал ROT13, декодировал и сдал флаг flag{Y0u_g0t_m3} за четыре минуты. Другие команды ковыряли то же задание больше часа — гуглили email целиком, перебирали платформы наугад, пробовали искать привязанные аккаунты вручную.

Разница между четырьмя минутами и часом — не талант. Это набор отработанных OSINT-приёмов: поиск по никнейму, чтение метаданных, reverse image search, Google Dorking. Ниже — разбор каждого приёма с командами и примерами из реальных CTF-заданий.

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

OSINT-категория на CTF — задания, где флаг спрятан не в уязвимости сервера, а в открытых источниках: социальных сетях, метаданных файлов, публичных реестрах, спутниковых снимках. Вам дают зацепку (ник, фото, IP-адрес, фрагмент документа) и просят найти конкретный ответ. Подробнее — в нашем обзоре osint для специалиста по информационной безопасности.

В отличие от web или pwn, здесь не нужен Kali с набором эксплойтов. Нужен браузер, пара утилит командной строки и — что важнее любого инструмента — системный подход к перебору гипотез. Шаблона, решающего любой OSINT-таск, не существует. Но повторяющиеся паттерны есть, и именно их стоит разобрать.

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

  • SOMINT (Social Media Intelligence) — поиск по никнейму, анализ постов и связей между аккаунтами. Маппится на технику MITRE ATT&CK «Social Media» (T1593.001, Reconnaissance): атакующие точно так же раскапывают сотрудников компании через соцсети перед фишинговой кампанией.
  • GEOINT (Geospatial Intelligence) — геолокация по фото, определение места съёмки по ландшафту, вывескам, теням. На платформе DIVER OSINT CTF задания этой категории включают идентификацию перекрёстков по фото, поиск портов по спутниковым снимкам и анализ исторических документов.
  • Metadata analysis — извлечение скрытых данных из файлов (EXIF-теги фотографий, свойства PDF, XML-структура DOCX). По данным IBM X-Force Threat Intelligence Index 2025, рост атак с использованием действительных учётных данных составил 71% год к году — и часть этих credentials утекает именно через метаданные документов, отправленных без очистки.
  • Cyber Threat Intel — поиск по IP, доменам, хешам файлов через VirusTotal, Shodan, Censys. На Maltego CTF одно из заданий начиналось с IP-адреса 47.96.17[.]237: через вкладку Relations в VirusTotal участники находили связанный артефакт Microsoft.AppRuntime.5017.214.zip — он и был ответом.
  • Encoding / Decoding — декодирование строк (ROT13, Base64, hex). Часто комбинируется с другими категориями: флаг найден, но обёрнут в кодировку.

Все эти категории объединяет один принцип: разведка на основе открытых источников — это методология, а не конкретный инструмент. Sherlock, ExifTool, Google Dorking решают конкретные подзадачи. Ваша задача — разбить основную цель на подзадачи и последовательно закрыть каждую. По классификации MITRE ATT&CK целая тактика Reconnaissance описывает именно то, чем вы занимаетесь на OSINT-заданиях: Search Open Websites/Domains (T1593), Search Engines (T1593.002), Code Repositories (T1593.003), Gather Victim Identity Information (T1589). Отработка этих техник на CTF напрямую прокачивает навыки для пентеста и threat intelligence.

Поиск по никнейму OSINT — от username до цифрового следа

Больше половины OSINT-заданий на CTF начинаются с никнейма. Вам дают username (или email, из которого username извлекается) — и нужно найти все связанные аккаунты, вытащить из них информацию и собрать флаг. Это прямая реализация техники Gather Victim Identity Information (T1589) из MITRE ATT&CK.

Инструменты OSINT для CTF: Sherlock, Maigret и WhatsMyName

Три основных инструмента для username search, каждый со своей нишей:

Sherlock — самый известный. Проверяет никнейм по 300+ сайтам, выдаёт список найденных профилей. Предусловия: Python 3.6+, интернет. Запуск минимален:

python3 sherlock.py target_username
# Результат: список URL с найденными профилями
# Фильтрация по конкретным сайтам:
python3 sherlock.py target_username --site twitter --site github

Maigret — форк Sherlock с расширенной базой (2000+ сайтов) и аналитикой сверху. Умеет генерировать HTML-отчёт с данными, которые вытащил из профилей: имя, город, дата регистрации. Для CTF Maigret часто полезнее Sherlock — он покрывает нишевые платформы (Keybase, Mastodon-инстансы, региональные форумы), где авторы тасков любят прятать зацепки. Запуск аналогичен: maigret target_username --html.

WhatsMyName — веб-проект с открытой JSON-базой сайтов для проверки. Работает через браузер на whatsmyname.app без установки. Хорош для быстрой проверки «в поле», когда нет доступа к терминалу.

Типичный сценарий на CTF: дано email user42@example.com. Первый шаг — вытащить username user42 и прогнать через Maigret. Среди найденных профилей ищете тот, где в bio, посте или аватарке спрятан флаг или следующая зацепка. На Maltego Community CTF (согласно их walkthrough) задание Account Attribution-1 строилось именно так: email → username → профиль на Bluesky → ROT13-строка в bio → декодированный флаг.

Как искать информацию о человеке по нику: типичные ловушки

Главная ошибка новичков — путать username и display name. Username (@davidjs1) — уникальный идентификатор на платформе, часть URL профиля. Display name (David Johnson) — произвольная строка, которую пользователь меняет когда захочет. На CTF задание может дать display name и ожидать, что вы сами найдёте username. Или наоборот — дать username одной платформы, под которым на другой платформе человек зарегистрирован с вариацией.

Что проверить, если username search ничего не дал:

  • Вариации ника — добавление цифр, подчёркиваний, точек: target, target_, target.osint, target2024. Авторы тасков часто используют слегка модифицированный ник на разных платформах.
  • Регистр — некоторые платформы чувствительны к кейсу. TargetUser и targetuser — потенциально разные аккаунты.
  • Старые ники — пользователь мог сменить username. Wayback Machine иногда кеширует старые версии профилей с прежним ником.
  • Кросс-платформенные несовпадения — человек может использовать target42 на GitHub и t4rg3t на Twitter. Ищите связующие элементы: одинаковый аватар, совпадение текста в bio, ссылки между аккаунтами.

Ещё один приём для расширения цифрового следа: если задание даёт email — проверьте его через Have I Been Pwned (haveibeenpwned.com). Сервис покажет, в каких утечках фигурирует адрес. Классы данных из утечки (usernames, IP-адреса, даты рождения) дают дополнительные зацепки. Скажем, утечка Plex в 2015 году включала usernames наряду с email — если целевой адрес там был, вы получаете ещё один ник для поиска.

Анализ метаданных файлов — EXIF и скрытые поля

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

EXIF метаданные анализ через ExifTool

ExifTool — стандарт для извлечения метаданных из файлов более 200 форматов. Одна команда покрывает 90% CTF-заданий по метаданным:

exiftool suspicious_image.jpg
# Выводит ВСЕ поля: GPS, камера, автор, софт, комментарии
# Для рекурсивного анализа папки с файлами задания:
exiftool -r ./challenge_files/
# Извлечь thumbnail из JPEG:
exiftool -b -ThumbnailImage photo.jpg > thumb.jpg

На что смотреть в выводе ExifTool:

Поле метаданных Что может содержать Пример флага / зацепки
GPS Position Координаты съёмки Вбить в Google Maps — получить адрес
Author / Artist Имя создателя файла Флаг напрямую или ник для username search
Comment / XP Comment Произвольный текст Часто флаг в чистом виде или Base64
Software / Creator Tool Программа создания Подсказка на следующий шаг расследования
Thumbnail Image Миниатюра внутри JPEG Оригинал до редактирования (замазки)
Create Date Дата создания Уточнение временного окна события

Авторы заданий иногда помещают флаг в нестандартные поля (XMP, IPTC), которые не показываются при беглом просмотре свойств файла в ОС. Только exiftool с полным выводом гарантирует, что вы ничего не пропустите. Я на этом обжигался: один раз 40 минут искал флаг в hex-дампе, а он лежал в IPTC-поле Caption-Abstract. Обидно.

Где ещё прячутся флаги в файлах

Метаданные — не единственное место. Несколько приёмов, которые спасают на CTF:

PDF-документы содержат свойства Title, Subject, Keywords — видны через exiftool file.pdf или через Ctrl+D в PDF-ридере. Авторы тасков прячут зацепки в полях, куда никто не смотрит: Producer, Trapped, Custom Properties.

DOCX и XLSX — это ZIP-архивы. Распакуйте командой unzip report.docx -d extracted/ и загляните в файл docProps/core.xml. Там лежат metadata автора, дата последнего изменения, а иногда и скрытые комментарии, которые не видны при открытии документа в Word.

Строки в бинарных файлах. Если ExifTool ничего полезного не показал, а задание явно про файл — попробуйте strings suspicious_image.jpg | grep -i flag. Иногда флаг тупо дописан в конец файла как обычный текст. Не стеганография, не шифрование — просто текст после маркера конца JPEG. На CTF для новичков такое встречается регулярно.

ELA (Error Level Analysis). Онлайн-сервис FotoForensics (fotoforensics.com) показывает области изображения, которые подвергались редактированию — они отображаются ярче на карте ошибок сжатия. На CTF это помогает обнаружить вклеенный текст или замазанную область, под которой скрыт нужный фрагмент.

Геолокация по фото OSINT — от пикселей к координатам

GEOINT-задания — одна из самых зрелищных категорий на OSINT CTF. Вам дают фотографию без метаданных и просят определить место съёмки, время или конкретный объект на снимке. Ни GPS-координат, ни подписей — только визуальные подсказки. Чистый детектив.

Первое действие при любом задании с картинкой — reverse image search. Три сервиса, которые стоит проверять последовательно (каждый работает по своему алгоритму, и результаты различаются):

  1. Yandex Images — лучший для фото зданий, улиц и ландшафтов. Яндекс отлично распознаёт объекты и часто находит ту же локацию с другого ракурса. Для OSINT-задач на определение места — первый выбор.
  2. Google Lens — лучший для текста на фото, логотипов, товаров. Если на фото вывеска на незнакомом языке, Google Lens распознает текст и поможет определить страну.
  3. TinEye — ищет точные совпадения по хешу изображения. Полезен, когда нужно найти первоисточник: где и когда фотография была опубликована впервые.

Конкретный пример. На Maltego CTF (задание Account Attribution-2) участникам дали фотографию с видом на характерное здание через реку. Через reverse image search в Google определили ориентир — здание Парламента Будапешта. Затем через Google Street View подобрали ракурс и вычислили, что фото сделано из Hotel Victoria. Альтернативный путь — поиск по публичным веб-камерам: на EarthCam нашлась камера в том же отеле с идентичным видом, что подтвердило локацию.

Если reverse image search не находит совпадений — обрежьте фото. Уберите небо, оставьте только здание или вывеску. Поисковики часто работают лучше с фрагментами, чем с полным кадром. Ещё один приём — зеркально отразить изображение: авторы тасков иногда намеренно это делают, чтобы затруднить прямой поиск.

Хронолокация — определяем время по теням

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

Алгоритм по шагам:

  1. Определите место съёмки (через reverse image search или контекст задания).
  2. Определите дату (из условий задания, метаданных файла или постов автора).
  3. Откройте SunCalc (suncalc.org) — введите координаты и дату.
  4. Сравните направление и длину теней на фото с симуляцией в SunCalc для разных часов.
  5. Подберите временной диапазон, при котором тени совпадают.

На Maltego CTF (задание Account Attribution-3) участники использовали высоту здания Парламента Будапешта (~96 метров — публичная информация) как референс для оценки длины тени. По углу солнца в SunCalc и наблюдаемой тени определили, что фото сделано между 8:00 и 10:00 утра. Это и был правильный ответ.

Дополнительные визуальные маркеры времени, которые стоит проверять:

  • Положение солнца: низкое — утро или вечер, зенит — полдень
  • Включённые фонари или неоновые вывески — сумерки или ночь
  • Плотность трафика и тип транспорта (школьные автобусы — утро или день)
  • Тени от объектов известной высоты (столбы, здания) дают точную привязку через SunCalc

Разведка на основе открытых источников — дорки и архивы

Google Dorking для поиска флагов CTF

Google Dorking — использование операторов поиска для точечных запросов. По MITRE ATT&CK это техника Search Engines (T1593.002, Reconnaissance). На CTF дорки работают в двух сценариях: найти информацию о таргете в индексе Google или обнаружить контент, который автор задания «случайно» оставил проиндексированным.

Ключевые операторы и их применение:

Оператор Назначение Пример для CTF
site: Ограничить поиск одним доменом site:pastebin.com "target_username"
inurl: Искать строку в URL страницы inurl:user/target42
filetype: Искать файлы конкретного типа filetype:pdf "confidential" site:target.com
intitle: Искать строку в заголовке intitle:"index of" target_files
"точная фраза" Точное совпадение фразы "target_username" "flag{"
cache: Кешированная версия страницы cache:deleted-page.example.com

Комбинируйте операторы для точности: site:github.com "target_username" filetype:py найдёт Python-файлы конкретного пользователя на GitHub. Это напрямую реализует технику Code Repositories (T1593.003) — поиск в публичных репозиториях, где разработчики иногда оставляют credentials и конфиденциальные данные прямо в коде.

Частая ошибка новичков: поиск target_username без кавычек — результаты тонут в нерелевантном шуме. Кавычки для точного совпадения — первое правило дорков.

Wayback Machine и кешированные страницы

Wayback Machine (web.archive.org) хранит снимки веб-страниц за разные годы. На CTF этот архив спасает в двух ситуациях:

Удалённый контент. Автор задания опубликовал пост или страницу, затем удалил — но Wayback Machine успел сохранить копию. Вбейте URL в поисковую строку архива и проверьте доступные снапшоты по датам.

Изменённые профили. Пользователь сменил bio, аватар или username. В архивной версии могут остаться старые данные, которые и нужны для решения. Это особенно актуально для заданий, где цифровой след человека разнесён по времени.

Если Wayback Machine не архивировал нужную страницу — проверьте альтернативы: кеш Google (cache:URL) и кеш Яндекса (через «сохранённая копия» в результатах поиска). Поисковые боты индексируют страницы значительно чаще, чем краулер archive.org.

Для поиска в Code Repositories (T1593.003) не ограничивайтесь GitHub. Проверяйте GitLab, Bitbucket и особенно Gist — site:gist.github.com "target_username" часто находит сниппеты кода, которых нет в публичных репозиториях пользователя.

CTF OSINT задания разбор — пошаговый метод

Вместо того чтобы бросаться в поиск по всем инструментам одновременно — используйте метод последовательных подзадач. Разберём полный цикл решения.

Задание: дан email suspect@example.org. Найдите город, в котором подозреваемый провёл встречу.

Шаг 1 — Извлечение зацепок. Из email берём username suspect и домен example.org. Два направления для поиска.

Шаг 2 — Username search. Прогоняем suspect через Maigret: maigret suspect --html. Находим аккаунты на Twitter, GitHub, Reddit.

Шаг 3 — Анализ контента аккаунтов. Twitter — пусто. GitHub — один репозиторий без кода, но в README ссылка на сокращённый URL. Reddit — пост с фотографией вида из окна, подпись «meeting day».

Шаг 4 — Работа со ссылками. Сокращённый URL из GitHub ведёт на хостинг изображений. Скачиваем фото. Параллельно скачиваем фото из Reddit-поста.

Шаг 5 — Metadata check. Запускаем exiftool meeting_photo.jpg. GPS-координат нет (автор удалил EXIF). Но в поле Creator стоит iPhone 14 Pro, в Create Date — конкретная дата.

Шаг 6 — Visual analysis. На фото видно здание с характерной архитектурой и вывеска на иностранном языке. Reverse image search через Yandex Images находит совпадение — известный ориентир в конкретном городе.

Шаг 7 — Верификация. Через Google Street View подтверждаем ракурс. Вид совпадает с определённой точкой. Ответ: название города (или конкретный адрес, в зависимости от формата флага).

Ключевое в этом методе: на каждом шаге решается одна подзадача, результат фиксируется, и только потом — переход к следующей. Не пытайтесь одновременно анализировать фото, гуглить ник и перебирать дорки. Это тот же workflow, что использует аналитик при реальной OSINT-разведке: зацепка → расширение поверхности данных → верификация находки.

Про формат флага. Формат всегда указан в условии задания. Если ответ Budapest, а формат FLAG{answer} — сдавайте FLAG{Budapest}. Ошибки в регистре, пробелах и транслитерации — частая причина отклонения правильного по сути ответа. Перед сдачей перечитайте условие буквально.

Про кодировки. Если найденная строка выглядит как бессмыслица — попробуйте стандартные декодировки: ROT13 (synt → flag), Base64 (строка заканчивается на = или ==), URL-encoding (символы %XX), hex (пары символов 0-9, a-f). На CTF для OSINT для новичков экзотические шифры встречаются редко — обычно хватает одного из четырёх вариантов.

Чек-лист: что проверить, если застряли на OSINT-задании

Прошло 20 минут и прогресса нет — пройдитесь по списку:

По никнейму: - Попробовали вариации с цифрами, точками и подчёркиваниями? - Проверили нишевые платформы (Bluesky, Mastodon, Keybase), а не только крупные соцсети? - Разделили display name и username — искали каждый отдельно? - Проверили email в Have I Been Pwned для поиска дополнительных ников? - Посмотрели GitHub Gists и GitLab помимо основного GitHub?

По файлу и метаданным: - Запустили exiftool с полным выводом, а не просто свойства файла в ОС? - Попробовали strings file | grep -i flag? - Проверили thumbnail внутри JPEG — он мог сохранить оригинал до редактирования? - Распаковали DOCX/XLSX как ZIP и проверили docProps/core.xml? - Открыли файл в hex-редакторе, проверили начало и конец?

По фото и геолокации: - Сделали reverse image search во всех трёх поисковиках (Yandex, Google Lens, TinEye)? - Попробовали обрезать фото и искать по фрагменту? - Прочитали текст на вывесках — язык указывает на страну? - Проверили доменные зоны на номерных знаках автомобилей? - Если место известно — проверили SunCalc для определения времени по теням?

По общим паттернам: - Перечитали условие задания буквально? Подсказка часто спрятана в формулировке. - Проверили исходный код HTML-страницы задания? Иногда зацепка в комментариях. - Попробовали декодировать подозрительные строки: ROT13, Base64, URL-encoding, hex? - Поискали в Google точные фразы из условия задания в кавычках? - Проверили Wayback Machine для ссылок, упомянутых в задании?

Если нашли данные, но они не подходят как флаг — ищите связь между найденными фрагментами. Сложные OSINT-таски на CTF часто требуют склейки нескольких кусочков. Как в примере с BTC-кошельком на KubanCTF: три фрагмента адреса (начало из текста + середина из QR-кода + конец из верхней строки) складывались в полный 34-символьный адрес, по которому уже находилась связь с WannaCry и Lazarus Group.

За пару лет подготовки OSINT-тасков для CTF и участия в чужих турнирах я заметил закономерность: 80% заданий уровня easy и medium решаются комбинацией трёх базовых приёмов — username search, анализ EXIF метаданных и Google Dorking. Не пятнадцати хитрых техник, а трёх, доведённых до автоматизма.

Проблема новичков не в нехватке инструментов. Maigret ставится за минуту, ExifTool работает одной командой, дорки — просто операторы поиска. Проблема — в отсутствии дисциплины расследования: умения записывать каждый шаг, фиксировать тупики и последовательно отсекать гипотезы. Команды, которые ведут заметки (буквально «проверил X — результат Y — следующая гипотеза Z»), на каждом турнире решают вдвое больше тасков, чем те, кто хаотично прыгает между инструментами.

OSINT — не интуиция и не магия «умного гуглинга». Это воспроизводимый процесс с чёткими шагами. Чем раньше начнёте относиться к нему как к процессу, тем быстрее перестанете застревать. Попробуйте взять любой таск с прошедшего CTF (архивы лежат на CTFtime), решить его по шагам из этой статьи и записать каждый шаг. Если хотите системно закрыть базу — на IB Basics эту цепочку разбирают с лабами, а не обрывками из случайных видео.

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

Поделиться

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

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

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

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

Как писать write-up CTF: структура и примеры

12 мин.

3

Как писать write-up CTF: структура и примеры

Готовый Markdown-шаблон CTF write-up, 6 типичных ошибок новичков и Pandoc-автоматизация. Разбор структуры от метаданных до флага с примерами.

12 СЕНТЯБРЬ, 2026

SQL-инъекции для начинающих: от кавычки до флага

13 мин.

5

SQL-инъекции для начинающих: от кавычки до флага

Пошаговый разбор SQL-инъекций от ручного тестирования до sqlmap. Union, blind, error-based SQLi на реальных CTF-примерах с командами и payload'ами.

11 СЕНТЯБРЬ, 2026

Анализ трафика в Wireshark для CTF: от PCAP до флага

13 мин.

11

Анализ трафика в Wireshark для CTF: от PCAP до флага

Алгоритм решения network forensics CTF: Protocol Hierarchy, display-фильтры, Follow TCP Stream, DNS exfiltration, tshark-пайплайны. С таблицей решений и командами.

11 СЕНТЯБРЬ, 2026