Сегодня обсудим «извечный вопрос»: как обнаружить точное местоположение пользователя методами OSINT? Первым делом вспомним, что OSINT — это совокупность методов и приемов работы с открытыми источниками информации. И в этом контексте самые очевидные способы обнаружения геолокаций заключаются в анализе той публичной информации, которую пользователи оставляют о себе в глобальной паутине. Это геометки и чекины в социальных сетях, анализ публичных записей, координаты в метаданных загружаемых фотографий, исследование фото и видео контента для выявления местоположения оператора и тому подобные.
Это все здорово, но здесь я хотел бы поговорить о более продвинутых возможностях технического наблюдения за умными устройствами.
DISCLAIMER: Данная статья написана в ознакомительных целях и не является руководством к неправомерным действиям или обучающим материалом для сокрытия правонарушений.
Итак, для начала определимся с тем, откуда вообще мы можем получить сведения о «точной геолокации» гаджета пользователя. Технологий тут не так много, а именно три. Давайте кратко рассмотрим каждую из них.
1. GPS (Global Positioning System)
Во-первых, здесь нам поможет глобальная система спутниковой навигации, разработанная и поддерживаемая правительством США. Она состоит из сети спутников, которые орбитально расположены вокруг Земли, и приемников GPS, которые используются для получения сигналов спутников и определения местоположения. В среднем, стандартный GPS-приемник обеспечивает точность в пределах 5-10 метров. Однако современные приемники, особенно те, которые используют дополнительные системы позиционирования, такие как ГЛОНАСС и Galileo, могут достигать точности до нескольких метров или даже субметрового уровня.
2. LBS (Location-Based Services)
Далее идёт набор сервисов и приложений, которые используют информацию о местоположении пользователя для предоставления контента или функциональности, связанной с его текущим местоположением. Точность LBS зависит от используемой технологии определения местоположения, такой как GPS, Wi-Fi, сигналы сотовых сетей или их комбинация. Точность геопозиционирования по сотовой вышке может варьироваться в зависимости от различных факторов. В идеальных условиях, когда имеется достаточное количество сотовых вышек и сильный сигнал, точность может достигать нескольких десятков метров. В худших – до нескольких километров.
3. Wi-Fi
И последнее, технология беспроводной передачи данных, которая использует радиоволны для установления соединения между устройствами. Точность геопозиционирования с использованием Wi-Fi напрямую зависит от доступности данных о местоположении точек доступа. Как правило, публичные точки доступа локализуются до конкретного здания, а мобильные 4G-роутеры имеют встроенные модули геолокации GPS/LBS, что позволяет эффективно использовать технологию Wi-Fi для геопозиционирования.
Собственно, по умолчанию все эти технологии уже присутствуют в вашем смартфоне, планшете или компьютере. Они встроены в функционал операционной системы и мобильных приложений, а также становятся доступными при посещении веб-страниц, использующих технологию HTML5 (HyperText Markup Language 5) – это последняя версия стандарта HTML, используемого для создания и структурирования веб-страниц. HTML5 включает API для доступа к геолокации (HTML5 Geo API) устройства пользователя.
Теперь остается понять, как ими можем воспользоваться мы для обнаружения местоположения гаджетов. И здесь, в свою очередь, существует несколько OSINT-способов, которые мы можем применить.
Способ №1: Функция «Найти мой телефон» на устройствах Android и iOS
И Apple, и Google позволяют пользователям отслеживать и находить свои утерянные или украденные устройства. Для этого, само собой, необходимо иметь включенную функцию «Найти мой телефон» плюс активированную учетную запись Google/iCloud на устройстве. Отслеживание доступно через веб-интерфейс. После того как ваше устройство было утеряно или украдено, вы можете войти в свою учетную запись Google/iCloud с помощью любого компьютера или другого устройства и перейти на вкладку «Найти мой телефон», расположенную по следующим адресам:
Выше мы говорили лишь о поиске своего пропавшего мобильника через сервисы Android и iOS. Но как найти местоположение устройства постороннего пользователя? Дело в том, что функция «Найти мой телефон» не требует никакой дополнительной аутентификации в аккаунте пользователя, кроме адреса электронной почты и текущего пароля. Никакие двухфакторки тут не используются, что логично. Мобильника-то на руках у вас нет, чтобы пройти 2FA.
Что касается же текущего пароля к электронному ящику, его можно найти в многочисленных сервисах утечек данных, либо подобрать, либо... Впрочем, не будем учить вас плохому. Существенной ложкой дегтя является то, что без правильного пароля – как и в том случае, если пользователь закрыл доступ к поиску геолокации в настройках приватности – ничего у нас здесь не получится. Однако при доле удачи и толковом использовании нужных нам сервисов искомый пользователь будет как на ладони.
Способ №2: Использование сервисов геологирования
Эти сервисы позволяют отслеживать местоположение устройства пользователя при переходе по гиперссылкам веб-страницы. Работает это следующим образом. Сначала сервис геологирования создает специальную гиперссылку, содержащую дополнительные параметры для передачи информации о местоположении пользователя. И когда он переходит по сгенерированной ссылке, браузер пользователя отправляет данные о местоположении (например, координаты GPS, LBS или информацию о сети Wi-Fi) на сервер, связанный с сервисом геологирования.
Ну а затем владелец сервиса геологирования может использовать эти данные для различных целей... Например, для слежки. Перейдем непосредственно к популярным программам-геологгерам. В их число входят в основном опенсорсные решения за исключением онлайн-сервиса IPlogger и софта Ngrok.
При очевидных плюсах геологирования, недостатки перевешивают. Так, использование сервисов геологирования должно осуществляться в рамках законодательства. Для нас это означает, что объект слежки должен дать разрешение в браузере своего устройства на передачу геолокационной информации. И никак иначе... Если такое разрешение получено не было, то его местоположение будет определено лишь по IP-адресу. Как в старые-добрые времена до появления HTML5 Geo API.
Нет, в отдельных случаях можно и по IP-адресу найти местоположение пользователя. Но это бывает крайне редко. В большинстве случаев вам придется довольствоваться данными о населенном пункте, в котором искомый пользователь находится. Чего, конечно, в контексте заданной нами здесь темы, чаще всего, будет недостаточно.
Способ №3: Спуфинг геолокации в Telegram
Этот способ предполагает изменение данных о вашем местоположении, чтобы создать иллюзию, что вы находитесь в другом месте. Дело в том, что базовый функционал Telegram предоставляет функцию «Люди рядом», которая позволяет вам найти и взаимодействовать с другими пользователями Telegram, находящимися поблизости. Эта функция основана на информации о местоположении, которой делятся сами пользователи мессенджера и дает реальную возможность незаметно следить за их перемещениями. API Telegram позволяет это делать в радиусе от 500 метров (раньше было от 50 метров) до 10 километров. Здесь можно воспользоваться одним из следующих опенсорс-решений.
Главный недостаток метода заключается в том, что отслеживаемый пользователь в любой момент может запретить мессенджеру доступ к геолокации в настройках смартфона. Не говоря уже о том, что обнаружение локации работает только в отношении пользователей, использующих Telegram на своих устройствах. Если он там не установлен, то и ловить нечего. Наконец, следует учитывать жесткие ограничения мессенджера на получение данных. Сюда входит и ограничение числа запросов 1 раз в 5 минут, и отключение радиусов поиска в 50 и 100 метров. В общем, искать стало сложнее. Как обычно, во всем виноват Дуров.
Способ №4: Использование методов и приемов ADINT
В основе способа ADINT (от англ. advertising intelligence) лежит идея использования рекламных модулей, которые часто содержат коды отслеживания или счетчики аналитики, чтобы получить информацию о пользователях. ADINT позволяет получать частичный портрет пользователя (пол, возраст, город проживания, интересы и тому подобное) за счет анализа данных, привязанных к его личному рекламному идентификатору в различных системах. Для поиска рекламных идентификаторов используются номер мобильного телефона, email и MAC-адрес.
Однако ключевой особенностью ADINT является возможность отслеживания перемещений пользователя по всему миру, используя для этого возможности геотаргетированной рекламы. Я уже писал об этом на Хабре, так что если вам интересно узнать об ADINT подробнее, читайте статью по ссылке.
Говоря более простым языком, вы создаете рекламу, которая будет показываться на отслеживаемом устройстве в радиусе 500 метров от его вероятного места жительства. Вуаля, при его приходе домой вы получите уведомление в личном кабинете рекламодателя. Соответственно, осталось упомянуть, какие сервисы тут можно использовать. Например, нам подойдут:
Перейдем к недостаткам. Этот способ, равно как и спуфинг в Telegram, предполагает не прямое отслеживание устройства пользователя, а лишь контроль за его возможным появлением в определенных локациях (радиусом от 500 метров до 10 километров). При этом, ADINT не предполагает "слежку" за одним устройством. Рекламные площадки допускают загрузку не менее 100 идентификаторов одновременно. Впрочем, выделить из них нужный вам не так сложно. А вот то, что за геотаргетинг в рамках ADINT придется платить свои кровные, придется просто принять. Да, для мамкиных шпионов и детективов это будет существенным стоп-фактором. Но для более серьёзно настроенных исследователей это вряд ли станет помехой.