Поиск людей по геотегам фотографий в VK

Иногда при проведении тестирования на проникновение, а особенно при социальной инженерии, требуется найти пользователей по местоположению. Так же это может быть полезно не только для Pentest‘а, но для составления целевой аудитории при проведении рекламных акций. И в этим нам могут помочь социальные сети. Рассмотрим пример поиска пользователей в социальной сети ВКонтакте. В рамках статьи сначала рассмотрим ручной поиск, а потом автоматизацию поиска.

Задача

Предположим, что мы знаем что человек работает в бизнес центре по некоему адресу и имеет аккаунт в VK. И, скорее всего, он размещал фотографии с работы. Нам нужно этого человека.

Поиск вручную

С помощью сервисов Google Maps или Яндекс.Карты мы можем узнать координаты этого офисного комплекса.

Координаты

Будем считать, что найденные координаты это:

  • Latitude55.7538528
  • Longitude37.6196378

Теперь воспользуемся VK API, а точнее методом photos.search, который умеет искать по фотографиям.

Сделаем запрос:

https://api.vk.com/method/photos.search.xml?lat=55.7538528&long=37.6196378&radius=50

где:

lat — географическая широта точки поиска;

long — географическая долгота точки поиска;

radius — радиус поиска фотографий (примерный).

В ответе мы получим XML структуру со списком фотографий:

Список фотографий

< ?xml version="1.0" encoding="utf-8"?>
<response list="true">
<count>188552</count>
<pid>4xxxxxxx7</pid>
<aid>-6</aid>
<owner_id>4xxxxxxx9</owner_id>
<src>https://pp.userapi.com/cxxxxxx/vxxxxxxxxx/xxxxx/xxxxxxxxxxU.jpg</src>
<src_big>https://pp.userapi.com/cxxxxxx/vxxxxxxxxx/xxxxx/xxxxxxxxxxM.jpg</src_big>
<src_small>https://pp.userapi.com/cxxxxxx/vxxxxxxxxx/xxxxx/xxxxxxxxxxk.jpg</src_small>
<src_xbig>https://pp.userapi.com/cxxxxxx/vxxxxxxxxx/xxxxx/xxxxxxxxxxI.jpg</src_xbig>
<src_xxbig>https://pp.userapi.com/cxxxxxx/vxxxxxxxxx/xxxxx/xxxxxxxxxxs.jpg</src_xxbig>
<src_xxxbig>https://pp.userapi.com/cxxxxxx/vxxxxxxxxx/xxxxx/xxxxxxxxxxs.jpg</src_xxxbig>
<width>1620</width>
<height>2160</height>
<text></text>
<created>1xxxxxxxx6</created>
<lat>55.754xxxxxxxxx</lat>
<long>37.615xxxxxxxxx</long>
<post_id>53</post_id></response>

Нас интересуют поля:
count — общее количество фотографий;
owner_id — ID пользователя VK;
набор полей src — ссылки на фотографии в разных размерах.

Соответственно фотографии можно скачать и просмотреть в целях поиска нужного человека.
Так же можно сузить границы поиска указав даты, в которые были сделаны фотографии и прочие параметры

Остается только автоматизировать процесс, чтобы вручную не обрабатывать огромные XML структуры в ручную.

Автоматизация (vkphotosearch.py)

Для автоматизации мы написали скрипт vkphotosearch.py, который можно скачать с GitHub:

https://github.com/BlackDiverX/VKsearch

Скачиваем скрипт:

 git clone https://github.com/BlackDiverX/VKsearch

Теперь можно запускать его.

 python3 vkphotosearch.py [параметры]

Список параметров:
-lat — географическая широта точки поиска (требуется);
-long — географическая долгота точки поиска (требуется);
-radius — радиус поиска (может быть 10100800600050000 метров) (по умолчанию: 50);
-fromdate — не ранее какой даты должна быть фотография (дата в формате: ДД-ММ-ГГГГ);
-todate — — не позднее какой даты должна быть фотография (дата в формате: ДД-ММ-ГГГГ);
-badusers — учитывать фотографии удаленных и заблокированных пользователей;
-u — сохранить список найденных пользователей в CSV файл;
-d — скачать найденные фотографии;
-s — сортировать фотографии по папкам. Для каждого пользователя создается своя папка.

Пример запуска:

 python3 vkphotosearch.py -lat 55.7538528 -long 37.6196378 -radius 100 -u -d -badusers -fromdate 01-01-2017 -todate 01-06-2017

В примере мы получим список всех пользователей (в файле users.csv) и все фотографии сделанные в радиусе 100 метров и в интервале с 01 января 2017г по 01 июня 2017г. Удаленные или заблокированные пользователи будут начинаться со знака минус ().

Осталось только просмотреть фотографии и найти человека.

Обновлено: 01.08.2020 — 19:33

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *