
На 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. На 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 ограничивает длину запроса: если набрать слишком длинную конструкцию, часть операторов будет молча проигнорирована. Лучше сделать несколько коротких запросов, чем один перегруженный.
Поиск открытых директорий — классика. Организаторы поднимают веб-сервер с 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 сканирует публичный интернет и индексирует баннеры сервисов: версии ПО, открытые порты, 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-тасков:
hostname:target-ctf.com — все устройства, привязанные к доменуssl.cert.subject.cn:target-ctf.com — поиск по Common Name в SSL-сертификате. Находит серверы, даже если DNS уже изменёнorg:"Company Name" — все устройства организации по данным WHOIS/ASNport: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-адрес.
На 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-задач на соревнованиях. Дано фото, нужно определить место (а иногда и время съёмки). Три последовательных этапа: метаданные → обратный поиск → ручной анализ визуальных маркеров.
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» сужают область поиска от целой страны до конкретного перекрёстка.
На 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).
Начинать с тяжёлых инструментов. 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-серверах, так что это скорее ритуальная проверка, чем рабочий вектор.
Теория без нарешивания не работает. Первые 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 комментариев
Пожалуйста, войдите, чтобы оставить комментарий.
Загрузка комментариев...