Иногда при проведении тестирования на проникновение, а особенно при социальной инженерии, требуется найти пользователей по местоположению. Так же это может быть полезно не только для Pentest‘а, но для составления целевой аудитории при проведении рекламных акций. И в этим нам могут помочь социальные сети. Рассмотрим пример поиска пользователей в социальной сети ВКонтакте. В рамках статьи сначала рассмотрим ручной поиск, а потом автоматизацию поиска.
Задача
Предположим, что мы знаем что человек работает в бизнес центре по некоему адресу и имеет аккаунт в VK. И, скорее всего, он размещал фотографии с работы. Нам нужно этого человека.
Поиск вручную
С помощью сервисов Google Maps или Яндекс.Карты мы можем узнать координаты этого офисного комплекса.
Координаты
Будем считать, что найденные координаты это:
Сделаем запрос:
где:
lat — географическая широта точки поиска;
long — географическая долгота точки поиска;
radius — радиус поиска фотографий (примерный).
В ответе мы получим XML структуру со списком фотографий:
Список фотографий
Нас интересуют поля:
count — общее количество фотографий;
owner_id — ID пользователя VK;
набор полей src — ссылки на фотографии в разных размерах.
Соответственно фотографии можно скачать и просмотреть в целях поиска нужного человека.
Так же можно сузить границы поиска указав даты, в которые были сделаны фотографии и прочие параметры
Остается только автоматизировать процесс, чтобы вручную не обрабатывать огромные XML структуры в ручную.
Автоматизация (vkphotosearch.py)
Для автоматизации мы написали скрипт vkphotosearch.py, который можно скачать с GitHub:
https://github.com/BlackDiverX/VKsearch
Скачиваем скрипт:
Теперь можно запускать его.
Список параметров:
-lat — географическая широта точки поиска (требуется);
-long — географическая долгота точки поиска (требуется);
-radius — радиус поиска (может быть 10, 100, 800, 6000, 50000 метров) (по умолчанию: 50);
-fromdate — не ранее какой даты должна быть фотография (дата в формате: ДД-ММ-ГГГГ);
-todate — — не позднее какой даты должна быть фотография (дата в формате: ДД-ММ-ГГГГ);
-badusers — учитывать фотографии удаленных и заблокированных пользователей;
-u — сохранить список найденных пользователей в CSV файл;
-d — скачать найденные фотографии;
-s — сортировать фотографии по папкам. Для каждого пользователя создается своя папка.
Пример запуска:
В примере мы получим список всех пользователей (в файле users.csv) и все фотографии сделанные в радиусе 100 метров и в интервале с 01 января 2017г по 01 июня 2017г. Удаленные или заблокированные пользователи будут начинаться со знака минус (—).
Осталось только просмотреть фотографии и найти человека.
Задача
Предположим, что мы знаем что человек работает в бизнес центре по некоему адресу и имеет аккаунт в VK. И, скорее всего, он размещал фотографии с работы. Нам нужно этого человека.
Поиск вручную
С помощью сервисов Google Maps или Яндекс.Карты мы можем узнать координаты этого офисного комплекса.
Координаты
Будем считать, что найденные координаты это:
- Latitude: 55.7538528
- Longitude: 37.6196378
Сделаем запрос:
где:
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 — радиус поиска (может быть 10, 100, 800, 6000, 50000 метров) (по умолчанию: 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г. Удаленные или заблокированные пользователи будут начинаться со знака минус (—).
Осталось только просмотреть фотографии и найти человека.