Главная / Блог / OSINT разведка для CTF: дорки, Shodan, фото

13 мин.01

OSINT разведка для CTF: дорки, Shodan, фото

OSINT разведка для CTF: дорки, Shodan, фото

На Maltego Community OSINT CTF задача Account Attribution начиналась с единственного email — davidjs1@deliveryotter.com. Из адреса вытаскиваешь юзернейм davidjs1, прогоняешь через Sherlock, находишь профиль на Bluesky, в био — строка synt{L0h_t0g_z3}. Четыре символа synt — это flag в ROT13. Три pivot'а, пять минут. Но без понимания, какой запрос составить первым и куда направить результат, на том же задании зависали часами. Ниже — конкретные дорки, Shodan-запросы и приёмы обратного поиска изображений, которые решают большинство OSINT-задач на соревнованиях. Не перечисление платформ — а что вбивать в строку поиска и почему это сработает.

Google Dorking для поиска флагов — операторы и готовые шаблоны

Google Dorking — использование поисковых операторов для точечной фильтрации результатов Google. На CTF это первый инструмент пассивной разведки: организаторы прячут флаги в индексируемых страницах, файлах, метаданных, а задача участника — составить запрос, который вытащит нужное из индекса без прямого взаимодействия с целью. Подробнее — в нашем подробном разборе создание ctf заданий.

По MITRE ATT&CK дорки попадают в тактику Reconnaissance. Конкретно: поиск через соцсети — T1593.001 (Social Media), разведка свойств домена — T1590.001 (Domain Properties). На реальном пентесте те же операторы работают на этапе сбора информации до первого касания инфраструктуры — навык переносится из CTF один к одному.

Базовые операторы и как их комбинировать

Шесть конструкций закрывают подавляющее большинство CTF-задач на дорки:

site: — ограничивает поиск одним доменом. Запрос site:ctf.example.com flag покажет все проиндексированные страницы домена, где Google нашёл слово «flag». Базовый фильтр, с которого начинается любая разведка по домену.

filetype: (или ext:) — поиск файлов конкретного типа. Запрос filetype:txt site:ctf.example.com вытащит текстовые файлы с целевого домена. Организаторы CTF часто оставляют флаги в .txt, .pdf, .env, .yml. Для нескольких типов одновременно — конструкция с OR: ext:(txt OR pdf OR env) site:ctf.example.com.

intitle: — ищет слово в теге <title> страницы. Запрос intitle:"index of" site:ctf.example.com находит открытые директории (directory listing) — стандартное место для спрятанных файлов. Вариант allintitle: требует, чтобы все указанные слова были в заголовке.

inurl: — ищет слово в URL. Запрос inurl:admin site:ctf.example.com покажет админские панели и скрытые эндпоинты.

Кавычки "" — точное совпадение фразы. Запрос "flag{" site:ctf.example.com ищет строку формата флага дословно. Самый тупой подход — но иногда флаг реально валяется на индексируемой странице в открытом виде.

Минус - — исключение. site:ctf.example.com -inurl:blog -inurl:news убирает шум, оставляя только технические страницы.

Операторы комбинируются свободно. Запрос site:ctf.example.com filetype:pdf intitle:"confidential" найдёт PDF-файлы с «confidential» в заголовке на целевом домене — на CTF в таких файлах флаг прячется в метаданных или в тексте документа.

По данным authentic8.com, Google ограничивает длину запроса: если набрать слишком длинную конструкцию, часть операторов будет молча проигнорирована. Лучше сделать несколько коротких запросов, чем один перегруженный.

Google Dorks — примеры под типовые CTF-сценарии

Поиск открытых директорий — классика. Организаторы поднимают веб-сервер с directory listing, внутри — файл с флагом:

intitle:"index of" "flag" site:target-ctf.com
intitle:"index of" "password" filetype:txt site:target-ctf.com
site:target-ctf.com filetype:env DB_PASSWORD
site:target-ctf.com filetype:yml secret_key

Поиск по кешу и архивам. Если страница удалена, Google мог её закешировать — оператор cache:target-ctf.com/secret-page покажет сохранённую версию. Альтернатива — Wayback Machine (web.archive.org): организаторы CTF прячут флаги в старых снэпшотах страниц. На Maltego Community CTF задача «From the archives» прямо указывала на архивный анализ в названии. Проверка снэпшотов домена: curl "http://web.archive.org/cdx/search/cdx?url=target-ctf.com&matchType=domain&output=json".

Поиск по временным рамкам. Операторы before: и after: фильтруют результаты по дате индексации. Запрос site:target-ctf.com after:2025-01-01 покажет только свежие страницы — полезно, если задание появилось недавно.

Google Hacking Database (GHDB) на exploit-db.com содержит тысячи готовых дорков по категориям: файлы с паролями, уязвимые серверы, открытые панели. Для CTF полезны категории «Files Containing Juicy Info» и «Sensitive Directories». Запоминать все дорки не нужно — достаточно знать, что GHDB существует, и искать по нужной категории.

Нюанс: Google индексирует страницы не мгновенно. Если организаторы выложили задание час назад, дорки могут ничего не найти. Тогда стоит попробовать Bing (оператор site: работает и там) или DuckDuckGo — у них другие индексы с другой скоростью обхода.

Про анонимность. Google Dorking — пассивная техника: запрос идёт к индексу Google, а не к серверу цели. Но Google видит ваши запросы и учитывает fingerprint браузера. Приватный режим, вопреки распространённому мнению, не скрывает вас полностью — язык, локация, user-agent всё равно влияют на выдачу. Для CTF обычно некритично, но знать стоит.

Shodan для CTF — разведка инфраструктуры без единого пакета к цели

Shodan сканирует публичный интернет и индексирует баннеры сервисов: версии ПО, открытые порты, SSL-сертификаты, HTTP-заголовки. На CTF Shodan нужен для задач категории Cyber Threat Intel — дан IP-адрес или домен, нужно максимально раскопать инфраструктуру без прямого взаимодействия.

По MITRE ATT&CK это техника T1590 (Gather Victim Network Information) с подтехниками T1590.001 (Domain Properties) и T1590.002 (DNS). На реальном внешнем пентесте после Shodan-разведки идёт fingerprinting конкретных сервисов через nmap. На CTF цепочка обычно короче: Shodan-запрос выявляет баннер, баннер содержит версию сервиса, версия — ключ к флагу.

Shodan-запросы для типовых CTF-задач

Пять базовых фильтров решают большинство Shodan-тасков:

  • hostname:target-ctf.com — все устройства, привязанные к домену
  • ssl.cert.subject.cn:target-ctf.com — поиск по Common Name в SSL-сертификате. Находит серверы, даже если DNS уже изменён
  • org:"Company Name" — все устройства организации по данным WHOIS/ASN
  • port:8080 product:nginx — конкретный сервис на нестандартном порту
  • http.title:"Dashboard" — админки без авторизации (и да, такое встречается и на CTF, и в проде)

Бесплатный аккаунт Shodan даёт до 100 результатов на запрос и две страницы выдачи. Для CTF этого хватает за глаза. Если нужна автоматизация — после установки CLI (pip install shodan) и инициализации ключа (shodan init YOUR_API_KEY) доступны команды:

shodan host 93.184.216.34                              # информация по IP
shodan search "hostname:target.com" --fields ip_str,port,org
shodan stats --facets port "hostname:target.com"        # статистика портов

shodan host по конкретному IP покажет открытые порты, баннеры, геолокацию и историю изменений — это первое, что стоит запустить, если в задании дан IP-адрес.

Shodan + Certificate Transparency + Passive DNS

На CTF задачи часто требуют найти скрытые поддомены. Shodan ищет по SSL-сертификатам, но есть ещё Certificate Transparency — публичные логи, в которые записывается каждый выпущенный сертификат. Запрос %.target-ctf.com на crt.sh покажет все поддомены, для которых когда-либо выпускались сертификаты. Найденные поддомены пробиваются через Shodan — смотрим, что на них работает.

На Maltego Community CTF задача Domain Pivot требовала исследовать домен подозрительного reverse proxy. Через анализ SSL-сертификата определялась компания, подписавшая сертификат — именно связка crt.sh → Shodan дала ответ.

Passive DNS через SecurityTrails или VirusTotal показывает историю DNS-резолвов — какие IP были привязаны к домену раньше. Это критично для задач, где домен уже не работает, но исторические данные нужны для решения.

Данные Shodan обновляются не в реальном времени — информация может отставать на дни или недели. Если на CTF нужны максимально свежие данные по конкретному IP, проверяйте параллельно censys.io — у него свой цикл сканирования.

Обратный поиск по изображениям — геолокация в OSINT CTF

Геолокация по фотографии — самая зрелищная категория OSINT-задач на соревнованиях. Дано фото, нужно определить место (а иногда и время съёмки). Три последовательных этапа: метаданные → обратный поиск → ручной анализ визуальных маркеров.

EXIF-метаданные — проверяем первым делом

EXIF — метаданные, встроенные в файл изображения: GPS-координаты, модель камеры, дата съёмки, программа обработки. Команда exiftool photo.jpg выводит всё за 5 секунд. Если GPS на месте — задача решена мгновенно.

На CTF метаданные обычно вычищены — организаторы не настолько щедры. Но проверять обязательно: это стоит пять секунд и иногда экономит час ручной работы. Даже без GPS ExifTool показывает полезное: модель камеры (редкая модель сужает географию), дату (определяет временной диапазон для Street View), программу обработки (Photoshop с конкретной версией — иногда подсказка).

Критический момент: соцсети стрипают EXIF при загрузке. Twitter/X, Facebook, Instagram — метаданных не будет. Telegram сохраняет EXIF только при отправке «как файл», а не «как фото». Если задача даёт фото со ссылкой на соцсеть — искать EXIF бесполезно, переходите к reverse search.

Три движка обратного поиска изображений — когда какой

Google Images / Google Lens — лучший вариант для известных мест, зданий и ландшафтов. Сильный семантический поиск: даже если фото уникальное, Google предложит визуально похожие сцены. Ключевой приём — Google Lens позволяет обрезать фото до конкретного элемента (вывеска, фасад, дорожный знак) и искать только по нему. Обрезанный фрагмент даёт на порядок точнее результат, чем полная сцена.

Yandex Images — заметно сильнее Google для фото зданий и уличных сцен в Европе и СНГ. Визуальное распознавание архитектуры у Yandex работает лучше — это подтверждают многочисленные writeup'ы OSINT-задач. Если на фото здание или городская улица — начинайте с Yandex. По моему опыту, для постсоветской архитектуры Yandex попадает в точку раза в три чаще, чем Google.

TinEye — ищет точные или близкие копии изображения по хешу. Не умеет распознавать «похожие сцены», зато покажет, где именно это фото публиковалось раньше. Незаменим, если организаторы CTF взяли фото из открытого источника: TinEye найдёт оригинал с описанием места.

Практический воркфлоу поиска по изображениям: загружайте фото во все три движка параллельно. Google Lens — обрезка до ключевого элемента, Yandex — полное фото, TinEye — поиск оригинала. Если фото уникальное (сделано организаторами специально для задачи) — все три движка промолчат, и придётся переходить к ручному анализу.

Отдельно: Baidu Image Search полезен для фотографий из Китая и Юго-Восточной Азии, где Google и Yandex проседают. На международных CTF задачи с азиатской геолокацией попадаются регулярно.

Ручная геолокация по визуальным маркерам

Когда обратный поиск по изображениям не дал результатов, начинается детективная работа. Что искать на фото:

Текст и вывески. Язык, шрифт, формат телефонных номеров. Кириллица не означает автоматически Россию — Сербия, Болгария, Монголия тоже используют кириллицу. Формат номера (+7 vs +381 vs +359) сужает до конкретной страны.

Дорожные знаки и разметка. Сторона движения (право/лево), стиль знаков (венская конвенция vs американский стандарт), цвет разметки. Жёлтая бордюрная линия + зелёный указатель = конкретный набор стран. Номерные знаки автомобилей — один из самых надёжных маркеров: форма, цвет и раскладка уникальны для каждой страны.

Природные маркеры. Направление теней определяет полушарие и примерную широту. Растительность (пальмы + хвойные = субтропики), тип почвы, горный рельеф дают приблизительную зону. Положение солнца в сочетании с тенями и датой из EXIF позволяет вычислить время суток и долготу.

Инфраструктура. Столбы электропередач (деревянные vs бетонные vs металлические), архитектурный стиль (панельные дома — постсоветское пространство), бренды на вывесках магазинов.

На Maltego CTF задача Account Attribution – 2 требовала по фото из Bluesky-поста определить отель. Через reverse image search опознали здание Венгерского парламента в Будапеште, затем через поиск публичных веб-камер в районе парламента нашли камеру на Hotel Victoria с совпадающим ракурсом. Вот вам и три pivot'а из одной фотографии.

Overpass Turbo (overpass-turbo.eu) помогает, когда визуальные маркеры дают приблизительный район. Пространственные запросы к OpenStreetMap вроде «все мечети в радиусе 500 метров от координаты X» или «все заправки Shell рядом с автострадой A1» сужают область поиска от целой страны до конкретного перекрёстка.

Сквозной воркфлоу — от зацепки до флага за три pivot'а

На CTF задачи редко решаются одним инструментом. Типичная цепочка OSINT-разведки выглядит так:

Pivot 1 — определяем тип входных данных. В задании — email, домен, IP, фото или юзернейм. От типа зацепки зависит первый инструмент. Email → Google Dork "user@domain.com" для поиска упоминаний. Домен → dig target.com ANY для DNS-записей + whois target.com для регистрационных данных. IP → shodan host <IP>. Фото → exiftool для метаданных.

Pivot 2 — расширяем поверхность. Из email вытаскиваем юзернейм (часть до @) и доменное имя. Юзернейм прогоняем через Sherlock (400+ сайтов, быстрый, но с false positives) или Maigret (2500+ сайтов, медленнее, зато точнее). Домен проверяем через crt.sh на поддомены, через Shodan — на открытые порты. DNS TXT-записи (dig -t txt target.com) — обязательная проверка: организаторы CTF прячут подсказки и флаги прямо в TXT-записях.

Pivot 3 — соединяем точки. Из шага 2 у нас набор: профили на платформах, IP-адреса, поддомены, возможно изображение из профиля. Профили проверяем на скрытые данные (bio, посты, комментарии). Изображения — через reverse search. Найденные строки прогоняем через CyberChef (gchq.github.io/CyberChef/) на декодирование: base64, ROT13, hex, URL-encoding. Характерные маркеры: synt = flag в ROT13, ZmxhZ = начало flag{ в base64.

Пример полной цепочки: дан email admin@suspicious-corp.com. Google Dork "admin@suspicious-corp.com" находит профиль на GitHub с коммитом, содержащим конфигурационный файл. В конфиге — IP-адрес сервера. shodan host <IP> показывает открытый порт 8080 с баннером nginx и нестандартным HTTP-заголовком X-Secret, в котором base64-закодирован флаг.

Про утечки как pivot: Have I Been Pwned показывает, в каких утечках фигурировал email. Вероятность, что CTF-email «засветился» в одной из крупных утечек, существенна. Это легальный pivot для расширения разведки (T1589.002, Reconnaissance — Email Addresses).

Ошибки, на которых теряют время в OSINT CTF

Начинать с тяжёлых инструментов. SpiderFoot, Maltego, автоматические скрипты разведки — штуки мощные, но медленные на старте. Если Google Dork "username" site:github.com даёт результат за 3 секунды, не нужно ждать 5 минут, пока Sherlock обойдёт все платформы. Сначала голова, потом инструменты.

Игнорировать Wayback Machine. Организаторы прячут флаги в удалённых или изменённых страницах. Wayback Machine хранит снэпшоты — загляните в HTML-код, мета-теги, комментарии в исходниках старых версий. Пропускать эту проверку — терять баллы на ровном месте.

Не проверять EXIF. Даже при уверенности, что метаданные вычищены, — пять секунд на exiftool могут сэкономить час ручной геолокации. На одном из CTF GPS-координаты лежали в EXIF, но три четверти участников сразу перешли к ручному анализу визуальных маркеров. Обидно.

Использовать один поисковый движок для изображений. Yandex, Google и TinEye дают разные результаты. На задаче с фото здания Венгерского парламента Google не дал ничего полезного, а Yandex опознал здание с первого запроса. Три движка параллельно — стандартная практика.

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

Забывать про DNS TXT-записи. Команда dig -t txt ctf-domain.com — обязательный шаг при работе с доменом. На CTF организаторы прячут подсказки именно в TXT-записях, потому что большинство участников проверяют только A и MX. Для полноты можно попробовать dig axfr @ns.target.com target.com — но AXFR почти всегда закрыт на современных DNS-серверах, так что это скорее ритуальная проверка, чем рабочий вектор.

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

Теория без нарешивания не работает. Первые 20 задач занимают по 2-3 часа, после сотни — укладываешься в 15-30 минут на задачу среднего уровня.

Платформы: GeoGuessr (геолокация в игровом формате), Trace Labs (OSINT CTF с реальной социальной миссией — поиск пропавших людей), CyberDefenders (blue team с OSINT-компонентом).

Инструменты наготове: CyberChef для декодирования, ExifTool для метаданных, Overpass Turbo для пространственных запросов, crt.sh для Certificate Transparency, Sherlock/Maigret для поиска по юзернеймам.

Writeup'ы — лучший способ увидеть чужую логику. Официальные walkthrough от организаторов CTF (Maltego, HTB, Trace Labs) показывают не только ответ, но и путь к нему, включая тупики и ложные следы. Разбирайте их после каждого соревнования — даже для задач, которые решили сами.

OSINT-раздел на CTF часто недооценивают именно те, кто хорошо решает PWN и Web. Логика «там же просто гуглить» ломается на первой задаче, где Google Dork ничего не даёт и нужно выстроить цепочку из пяти pivot'ов через три разных инструмента. По моему опыту, чаще всего проигрывают не те, кому не хватает инструментов, а те, кто не умеет вовремя остановиться и пересмотреть гипотезу. Sherlock, Maigret, SpiderFoot, Maltego — всё это можно освоить за вечер. Настоящий bottleneck — умение выстроить цепочку pivot'ов: определить, какой тип данных перед тобой, выбрать первый шаг, распознать тупик за 2 минуты вместо 20 и переключиться на альтернативный путь. Автоматизация даёт ложное ощущение прогресса: запустил скрипт, получил 500 строк вывода, а что с ними делать — непонятно. На соревнованиях с ограниченным таймером побеждает не тот, кто знает больше команд, а тот, кто быстрее строит связи между разрозненными фрагментами. Тренируется это только нарешиванием реальных CTF-тасков с writeup-разбором после. Если хочешь не просто разовые writeup'ы, а пройти путь от разведки до полной эксплуатации в связных лабах — на WAPT эту цепочку отрабатывают от reconnaissance до пост-эксплуатации с прогрессией и менторской поддержкой.

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

Поделиться

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

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

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

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

Wireshark анализ PCAP: пароли и секреты в CTF

12 мин.

1

Wireshark анализ PCAP: пароли и секреты в CTF

Пошаговый алгоритм разбора PCAP в CTF: фильтры для credential hunting, Export Objects, Follow TCP Stream, tshark и ловушки авторов тасков.

1 НОЯБРЬ, 2026

SQL-инъекции в CTF: UNION, blind и sqlmap

13 мин.

2

SQL-инъекции в CTF: UNION, blind и sqlmap

Пошаговый разбор UNION-based, boolean-blind и time-based SQL-инъекций с пейлоадами, командами sqlmap и алгоритмом выбора техники на CTF

1 НОЯБРЬ, 2026

Insecure deserialization: эксплуатация PHP, Python, Java

12 мин.

2

Insecure deserialization: эксплуатация PHP, Python, Java

Пошаговая эксплуатация insecure deserialization в PHP, Python и Java. PHPGGC, ysoserial, pickle — gadget chains с рабочими командами для CTF-тасков.

31 ОКТЯБРЬ, 2026