РАЗБОР
Статья
OSINT геолокация по фото: от снимка до координат
Режим чтения
[ обложка статьи ]
В прошлом году на проекте по оценке физической безопасности логистического центра я вытащил координаты с точностью до здания - из трёх фотографий, которые сотрудник охраны выложил в соцсеть. 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) - анализ фотографий на корпоративном сайте, в пресс-релизах и маркетинговых материалах
Атакующий, который приезжает с готовой картой периметра, тратит в разы меньше времени на месте и оставляет минимум следов. Защищающемуся этот процесс тоже полезно понимать: оценить, какие данные утекают через публичные фото компании, и закрыть каналы до того, как ими воспользуются.
OSINT-анализ фото: что выжимает ExifTool из метаданных
Первый шаг любой 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
Хронолокация - определение времени съёмки и подтверждение места по положению солнца и теням. Метод почти не описан в русскоязычных OSINT-материалах, хотя он критически важен для верификации гипотез. Работает даже без единого ландшафтного ориентира - и вот это по-настоящему ценно.
Принцип: солнце в каждый момент находится в определённой точке неба, зависящей от координат, даты и времени. Тень от вертикального объекта (столба, здания, человека) указывает направление, противоположное азимуту солнца. Длина тени определяется углом возвышения - чем ниже солнце, тем длиннее тень.
SunCalc (suncalc.org) решает обратную задачу: зная или предполагая координаты и дату, показывает положение солнца и направление теней для любого момента суток.
Пошаговый алгоритм хронолокации
- По визуальным якорям выдвиньте гипотезу о локации - хотя бы город или регион
- Оцените дату съёмки по сезонным признакам: состояние листвы, одежда людей, длина светового дня, наличие снега
- На фото найдите вертикальный объект с хорошо видимой тенью - столб, мачта, здание с известной высотой
- Измерьте направление тени относительно объекта и оцените её длину (в пропорции к высоте объекта)
- Откройте SunCalc, введите предполагаемые координаты и дату
- Двигайте ползунок времени, пока азимут и длина тени в SunCalc не совпадут с тенью на фото
- Совпало - гипотеза о месте подтверждена, время съёмки определено. Не совпало - пересматривайте локацию или дату
Ограничения метода: пасмурное небо (теней нет), зенитное солнце в тропиках около полудня (тени слишком короткие), ночные снимки с искусственным освещением (ложные тени от нескольких источников), внутренние помещения.
OSINT-разведка инфраструктуры: от координат к карте периметра
Запрос вернёт камеры наблюдения и барьерные элементы (заборы, ворота, шлагбаумы) в радиусе 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-задачи, где эту мышцу можно нарастить без последствий для реального проекта.
AI-выжимка
сгенерировано ИИ
Тезисы статьи скоро
Статья читается полностью. Тезисы со ссылками на разделы появятся позже.
Содержание
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
Перейти к курсу →
Поиск в обсуждении
Карта ветки
Продолжить чтение
Следующий разбор
OSINT кейсы: досье на цель без эксплойтов
Ещё по теме
- Статья
- Статья
Комментарии
0