РАЗБОР Статья 

OSINT геолокация по фото: от снимка до координат

Сергей Попов
Сергей Попов Red Team · 6,4 тыс. сообщений
Подписаться
174
Режим чтения
Фотография изнанкой вверх на тёмном коврике, рядом экран телефона со спутниковой картой и красной меткой координат. На белой рамке снимка лазерная гравировка про геолокацию, поверх лежат транспорти...


В прошлом году на проекте по оценке физической безопасности логистического центра я вытащил координаты с точностью до здания - из трёх фотографий, которые сотрудник охраны выложил в соцсеть. EXIF зачищен, геотегов нет, на снимках ни одного читаемого указателя. Хватило анализа теней, формата ограждения и фрагмента дорожной разметки. Весь процесс - от получения фото до верифицированных координат - два часа. Ниже - воспроизводимая методика OSINT-геолокации по фото для разведки физических объектов: от извлечения метаданных до построения карты периметра.

GEOINT в kill chain: зачем пентестеру геолокация по фото

Геопространственная разведка (GEOINT) для red team - рабочий этап рекогносцировки перед физическим проникновением или социальной инженерией. Не факультатив, а обязательная программа. В терминологии MITRE ATT&CK операции с геоданными прямо ложатся на тактику Reconnaissance:
  • Determine Physical Locations (T1591.001) - определение физических адресов офисов, ЦОДов, складов заказчика по открытым данным
  • Social Media (T1593.001) - извлечение геоданных из публикаций сотрудников, включая фоновые детали снимков
  • Search Engines (T1593.002) - поиск спутниковых снимков и панорам объекта через поисковые системы
  • Search Victim-Owned Websites (T1594) - анализ фотографий на корпоративном сайте, в пресс-релизах и маркетинговых материалах
Практический выход: по фотографиям с корпоративного сайта или Instagram сотрудника строится карта физического периметра - расположение камер, тип ограждения, маршруты обхода охраны, слепые зоны, режим освещения. Всё это до первого визита на объект.

Атакующий, который приезжает с готовой картой периметра, тратит в разы меньше времени на месте и оставляет минимум следов. Защищающемуся этот процесс тоже полезно понимать: оценить, какие данные утекают через публичные фото компании, и закрыть каналы до того, как ими воспользуются.

OSINT-анализ фото: что выжимает ExifTool из метаданных​

1789644229977.webp

Первый шаг любой OSINT-геолокации по фото - проверка EXIF-метаданных. Социальные сети (Instagram, Facebook, VK, Telegram) зачищают метаданные при загрузке. Но если фото получено напрямую - через email, мессенджер в режиме "без сжатия", корпоративный портал, файлообменник - EXIF может содержать GPS-координаты, timestamp, модель камеры и серийный номер объектива.
Bash:
exiftool -GPSLatitude -GPSLongitude -DateTimeOriginal -Model -LensSerialNumber photo.jpg
Что искать в выводе:

GPSLatitude / GPSLongitude - координаты точки съёмки. Проверяйте через Google Earth: GPS-модуль мог не обновиться, и координаты окажутся от предыдущей локации. На практике встречал случаи, когда EXIF содержал координаты аэропорта вылета, а не места назначения - телефон просто не успел получить новый фикс.

DateTimeOriginal - дата и время. Критически важно для хронолокации (об этом ниже). Учитывайте: часовой пояс камеры может быть выставлен неверно, особенно у людей, которые часто путешествуют и забивают на настройки.

Model - модель устройства. Смартфон даёт GPS с точностью ±3 м, зеркалка без GPS-модуля - координат не будет вовсе. Модель также помогает оценить качество снимка и возможности зума, что влияет на интерпретацию масштаба объектов.

LensSerialNumber - если серийник объектива совпадает с другими фото из открытых источников, это подтверждает авторство и связывает снимки в единую серию.

Если метаданных нет - а по данным OSINT Combine, их не бывает в абсолютном большинстве расследуемых изображений, потому что платформы удаляют EXIF при загрузке - переходим к визуальному анализу.

Пометка: exiftool фигурирует в GTFOBins как утилита, пригодная для чтения произвольных файлов в определённых конфигурациях. Инструмент разведки и инструмент эксплуатации - иногда один и тот же бинарь.

Визуальные якоря: систематический разбор кадра​

Типичная ошибка новичков в OSINT-анализе фото - сразу фокусироваться на самом заметном объекте. Правильный подход: методичный проход по всему кадру с выделением 3-5 якорных признаков, каждый из которых сужает область поиска. В OSINT Combine описан подход, который стоит взять за основу: при анализе каждого элемента фиксировать не только наблюдение (красный автобус), но и аналитический вывод (такие автобусы ходят в Лиме).

Категории якорей для разведки по изображениям​

КатегорияЧто искатьЧто сужает
Дорожная инфраструктураРазметка, бордюры, светофоры, знаки, форма перекрёстковСтрана, иногда - регион
АрхитектураТип застройки, этажность, материалы, колониальный или модернистский стильРегион, город
ТранспортФормат номерных знаков, модели и ливрея автобусов/таксиСтрана, город
РастительностьПороды деревьев, состояние газона, сезонностьКлиматическая зона
Язык и вывескиАлфавит, названия бизнесов, формат телефонных номеров, URL-адресаСтрана, район
Рельеф и горизонтГорные хребты, водоёмы, линия горизонтаРегион, направление съёмки
Инженерные сетиТип опор ЛЭП, конструкция трансформаторных будок, антенны связиСтрана, оператор
Форма одеждыУниформа полиции, дорожных регулировщиков, военныхСтрана, ведомство

Для разведки инфраструктуры заказчика ценнее всего "стабильные" якоря - те, что не меняются годами. Текст на табличках перекрашивают, деревья вырубают, но геометрия перекрёстка, форма бордюра и конструкция опор ЛЭП остаются на десятилетия. Именно эту логику использовал автор разбора на Codeby, когда при геолокации снимка из Мьянмы отказался от текста на табличках (ненадёжный признак) и сфокусировался на цвете бордюра и геометрии его разрыва.

Reverse image search в OSINT: три движка, три результата​

Обратный поиск по изображению - тактический выбор движка под задачу, а не нажатие одной кнопки.

ДвижокСильная сторонаСлабость
Yandex ImagesСНГ-регион, распознавание лиц, уличные сценыСлабо индексирует англоязычный контент
Google LensДостопримечательности, текст на снимках, товарыПлохо работает с лицами, часто выдаёт "похожие" вместо точных совпадений
TinEyeТочное совпадение, отслеживание распространения изображенияНе ищет похожие, только exact/near-exact match

Каждый движок индексирует разные срезы веба, и совпадение в одном - промах в другом. Прогоняйте изображение через все три. Это не перестраховка, а стандартная процедура.

Удаление шума. Если на фото торчит объект переднего плана, мешающий распознаванию (окно, забор, человек) - уберите его через cleanup.pictures или аналог, затем запустите поиск заново. Поисковики значительно лучше работают с изолированными объектами.

Смена языка. Если предполагаете страну - смените язык интерфейса Google на язык этой страны перед поиском. Это меняет приоритет индекса и выдаёт локальные результаты, невидимые из русскоязычной выдачи. Для польского города - польский язык, для японского адреса - японский. Разница в релевантности - существенная. Проверено на нескольких проектах.

Фрагментация. Обрежьте фото до характерного фрагмента - участок уникальной дорожной разметки, фасад здания без окружения, вывеска. Чем чище объект на входе, тем точнее результат на выходе.

Анализ теней и геолокация: хронолокация через SunCalc

1789644265304.webp

Хронолокация - определение времени съёмки и подтверждение места по положению солнца и теням. Метод почти не описан в русскоязычных OSINT-материалах, хотя он критически важен для верификации гипотез. Работает даже без единого ландшафтного ориентира - и вот это по-настоящему ценно.

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

SunCalc (suncalc.org) решает обратную задачу: зная или предполагая координаты и дату, показывает положение солнца и направление теней для любого момента суток.

Пошаговый алгоритм хронолокации​

  1. По визуальным якорям выдвиньте гипотезу о локации - хотя бы город или регион
  2. Оцените дату съёмки по сезонным признакам: состояние листвы, одежда людей, длина светового дня, наличие снега
  3. На фото найдите вертикальный объект с хорошо видимой тенью - столб, мачта, здание с известной высотой
  4. Измерьте направление тени относительно объекта и оцените её длину (в пропорции к высоте объекта)
  5. Откройте SunCalc, введите предполагаемые координаты и дату
  6. Двигайте ползунок времени, пока азимут и длина тени в SunCalc не совпадут с тенью на фото
  7. Совпало - гипотеза о месте подтверждена, время съёмки определено. Не совпало - пересматривайте локацию или дату
Классический пример - кейс с флагом проекта "He Will Not Divide Us". Участники 4chan определили местоположение флага, используя только следы самолётов на небе (сопоставив их с данными ADS-B-передатчиков) и положение солнца. Ни одного ландшафтного ориентира - только небо и полотнище. Этого хватило.

Ограничения метода: пасмурное небо (теней нет), зенитное солнце в тропиках около полудня (тени слишком короткие), ночные снимки с искусственным освещением (ложные тени от нескольких источников), внутренние помещения.

OSINT-разведка инфраструктуры: от координат к карте периметра​

📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме

Запрос вернёт камеры наблюдения и барьерные элементы (заборы, ворота, шлагбаумы) в радиусе 500 м от указанных координат. Данные OSM неполные - далеко не все камеры и заборы размечены энтузиастами - но дают отправную точку для дальнейшей верификации по спутнику и панорамам.

Что фиксировать при разведке периметра​

  • Тип и высоту ограждения (сетка-рабица, бетонные секции, профнастил, кованый забор)
  • Расположение и тип камер: купольные, PTZ, муляжи (муляжи часто отличаются отсутствием кабеля - но не всегда, не расслабляйтесь)
  • Точки входа: ворота (распашные / откатные), калитки, служебные проходы, аварийные выходы
  • Зоны без освещения - потенциальные слепые зоны для ночного подхода
  • Загрузку парковки в разное время (по панорамам разных дат оценивается график работы)
  • Расстояние от ближайших зданий, дорог и укрытий - для оценки подходов

Верификация фото в OSINT и OPSEC при разведке​

Визуальная верификация данных: правило трёх якорей​

Ни один метод геолокации в отрыве не даёт достоверного результата. Стандарт верификации в OSINT - совпадение минимум трёх независимых признаков.

По данным Oceanir, корректная атрибуция требует задокументированной цепочки: какие визуальные якоря использованы, какие картографические данные их подтвердили и каков уровень уверенности. Три совпавших якоря - порог, при котором гипотеза перестаёт быть предположением.

Уровень уверенностиЯкорейПример
Низкий1Страна определена по формату номерного знака
Средний2Страна + город по архитектуре и транспорту
Высокий3+Конкретная точка через пересечение линий взгляда и совпадение деталей

Метод пересечения линий взгляда - приём, когда на панораме видны два или более удалённых объектов (телебашня и высотное здание, церковь и заводская труба), которые можно идентифицировать на карте. Проведите прямые линии от каждого объекта в направлении фотографа. Точка пересечения - приблизительное место съёмки. Метод даёт точность до квартала, иногда - до здания.

Операционная безопасность аналитика при GEOINT-разведке​

Разведка оставляет следы. Даже пассивная.

Что вы засвечиваете при OSINT-разведке инфраструктуры:
  • Картографические сервисы - запросы к Google Maps и Yandex.Карты логируются с IP-адресом. Целенаправленное изучение конкретного адреса в течение часа - это паттерн, который при желании можно выделить
  • Street View - каждый запрос панорамы = обращение к серверу с вашего IP и user-agent
  • Reverse image search - загрузка фото в Google Lens или Yandex Images = передача изображения третьей стороне. Если фото содержит уникальный объект заказчика, это потенциальная утечка контекста операции
  • Overpass Turbo - запросы к OSM API с вашего IP и специфичными координатами
Минимальные контрмеры:
  • VPN (не Tor - слишком медленный для работы с картами) для всех GEOINT-запросов
  • Отдельный браузерный профиль без авторизации в аккаунтах Google/Yandex
  • Не загружайте оригиналы фото заказчика в поисковые системы - делайте скриншот фрагмента, обрезайте уникальные элементы, которые могут связать запрос с проектом
  • Результаты разведки храните в зашифрованном контейнере (VeraCrypt), а не в облаке
  • Логируйте собственные действия: какие запросы делали, к каким сервисам обращались, какие изображения загружали - и для отчёта полезно, и для контроля собственного OPSEC
Если данные физической разведки объекта утекут до начала тестирования, проект скомпрометирован целиком. Это не паранойя - это операционная дисциплина.

Большинство русскоязычных материалов по OSINT-геолокации написаны в формате CTF-развлечения: вот фото - найди место - удивись своей наблюдательности. Это тренирует глаз, но создаёт иллюзию, что GEOINT - упражнение для скучающих. В операционном контексте координаты - промежуточный результат. Конечный - карта с камерами, слепыми зонами, графиком активности и оценкой того, через какую точку можно пройти в два часа ночи без срабатывания датчика.

Между "нашёл координаты по тени" и "составил пригодный для планирования отчёт" - гигантская разница. В документировании, в уровнях уверенности, в воспроизводимости. CTF-writeup показывает линейный путь к ответу, потому что автор описывает победную ветку. В реальной работе 70% времени уходит на проверку и отбрасывание ложных гипотез, и ценность аналитика определяется скоростью этого процесса.

Ещё момент, который редко обсуждают: GEOINT для blue team не менее важен. Если вы защищаете организацию и не проверяли, что можно вытащить из фотографий на вашем корпоративном сайте - вы не контролируете периметр. Попробуйте провести разведку собственного офиса по этой методике. Результат почти наверняка окажется неприятным. Если хочешь прокачать цепочку "фото - якоря - верификация - координаты" в контролируемой среде - на HackerLab (https://hackerlab.pro) есть GEOINT-задачи, где эту мышцу можно нарастить без последствий для реального проекта.
Полезно

Комментарии

0