OSINT | Поиск информации о пользователях Google
MoodyСтатья о том, как по адресу электронной почты Gmail подтянуть всевозможную информацию о владельце почты с остальных Google сервисов.
Множество людей, имеющих учетную запись Google, могут не догадываться о том, что Google использует различные номера, имена, сигнатуры и прочие бессмысленные (на первый взгляд) строки для идентификации учетных записей. В частности о том, что все они доступны для просмотра другими пользователями, и между ними можно выявить связь для дальнейшей разведки.
Самый простой пример - ныне почивший Google+. Идентификатор аккаунта (Google UserID), подключенный к приложениям Google, таким как Google Maps или Google Photos, можно было увидеть напрямую, открыв страницу человека или его фотоальбом.

Поиск и сбор Google UserIDs
Самый простой и быстрый способ собрать множество Google UserID для дальнейшей разведки - это использование Google Contacts. Для этого необходимо сформировать CSV-файл с именами и адресами электронных почт интересующих нас пользователей, а затем импортировать его.

После этого, мы открываем инструменты разработчика в браузере (F12), переключаемся на вкладку "Network" и перезагружаем страницу для того, чтобы получить «сырой» ответ от сервера, содержащий сведения о только что добавленных контактах. Среди множества отправленных запросов, нас интересует лишь четыре основных - к «contacts.google.com», с конечной точкой «batchexecute».

Нажав на последний, мы увидим длинную строку с данными, которые обрабатываются в дальнейшем нашим браузером, согласно Javascript-сценариям.

Это именно то, что нам нужно, но работать в браузере с этими данными будет не удобно, учитывая, что у нас 624 контакта вкупе с кучей мусора. Давайте вытащим эту информацию и сохраним в текстовом файле, для дальнейшей обработки. Для этого щелкните ПКМ на строке с запросом и выберите «Copy as cURL (POSIX)».

Вставьте готовую команду в терминал и направьте вывод в текстовый файл.
Нужные нам идентификаторы пользователей можно найти, выполнив поиск 21-значных десятичных чисел, начинающихся с цифр «10» или с «11». Это проще всего сделать, используя регулярные выражения.

Следует учесть, что не у каждого аккаунта можно получить Google UserID при помощи данного метода. После проделанных манипуляций, я обнаружил, что из 624 ранее добавленных контактов, я смог извлечь лишь 130 идентификаторов. Это примерно 20% всех пользователей, что не есть хорошо.
Помимо этого способа, как и следовало ожидать, данные идентификаторы также можно найти вручную, в исходном коде страницы. Для этого вы переходите в список контактов, открываете интересующий вас контакт и, используя инструмент разработчика с вкладкой «Инспектор» (Firefox) или «Элементы» (Chrome), выполняете поиск: "data-sourceid". Там будет два значения, второе - как раз то, что нам нужно.

Чтобы быстро собрать весь список Google UserID этим способом, если вы не хотите писать скрипты, хождение по страницам и парсинг можно автоматизировать при помощи расширения Data Miner. В нем необходимо будет создать рецепт для поиска следующего HTML-фрагмента (удивительно, но имена классов вроде бы не меняются):
<div class="NVFbjd LAORIe "data-sourceid="
Предупреждение
Опять же, при двух описанных выше способах, не все контакты содержали идентификаторы, несмотря на то, что они точно есть у каждой учетной записи. Единственный надежный способ получить Google UserID у остальных контактов - использование Google API. Но так как в данный момент у меня нету времени для того, чтобы написать скрипты для автоматизации, я буду рад, если другие люди займутся этим. Но, прежде чем это сделать, давайте просто взглянем на сам API.
Google API
Если Google UserID не был получен в результате дампа контактов, но вы действительно заинтересованы в изучении конкретного почтового адреса, есть другой способ получения желанного идентификатора. Для этого мы рассмотрим Google People API, который дает возможность извлекать всевозможную известную информацию из ваших контактов. Адреса, имена, номера телефонов и любую другую личную информацию, которую вы самостоятельно указали контактам, возможно извлечь. Но сейчас нас интересует поле «Metadata», поскольку именно оно содержит Google UserID.
В качестве resourceName (это один из обязательных параметров, при выполнении запросов к данному API) будет выступать еще один внутренний идентификатор, который я, для удобства, назову contactID. Его можно найти в текстовом файле, который мы создали ранее, или просто открыв профиль нужного контакта и посмотрев запросы, отправленные на сервер. В одном из них, вы сможете найти его - он начинается с буквы «c» и содержит около 19 цифр.

Этой информации нам будет достаточно. Теперь мы заходим в Google API и вводим полученные данные для выполнения запроса.

Не забываем перед этим создать проект, предоставить ему соответствующие права на использование определенных функций и так далее.
После того, как мы заполучили Google UserID, есть три пути, где мы можем сразу это использовать: найти возможные фотоальбомы пользователя, найти его отзывы или места, которые он посещал, и последнее - найти учетную запись на YouTube. Давайте взглянем на это!
Фотоальбомы
Чтобы найти фотоальбом пользователя, нам просто нужно подставить его Google UserID в следующий URL:
https://get.google.com/albumarchive/{userID}
Не у всех есть такой фотоальбом. Но если он есть, зачастую в нем можно найти много интересного, как это было в моем случае, смотрите скриншот ниже. Зная российское законодательство, я бы побоялся публиковать свастоны (осуждаю).

И самое приятное то, что иногда в альбоме можно найти фотографии с указанным местоположением на Google Maps! Вот одна из фотографий, полученных из одного фотоальбома:

А вот точные координаты:

Google Maps
Принцип аналогичен предыдущему, просто подставляем идентификатор в ссылку ниже:
https://www.google.com/maps/contrib/{userID}
После того, как мы откроем страницу, по умолчанию отобразятся фотографии пользователя, с информацией о местоположении. Но можно и открыть его Reviews. Удивительно, что имея лишь адрес электронной почты, можно узнать чье-то настоящее имя. Если этот "кто - то", конечно же, не использует никнейм.

Youtube-аккаунт
Мало кто знает, но зачастую можно найти YouTube-канал пользователя, при наличие его электронный почты. Пользователь вправе создать несколько каналов, привязанных к одной электронной почте, но, по умолчанию, у него есть одна стандартная учетка на YouTube, носящая имя аккаунта:
https://www.youtube.com/feeds/videos.xml?user={accountName}
В результате, мы получим RSS-страницу с информацией о канале. Google UserID тут бесполезен, однако мы можем подставить в качестве accountName ту часть Email-адреса, которая идет перед "@".
Для проверки, я выбрал случайного пользователя с никнеймом «test» (у которого, возможно, электронная почта - test@gmail.com). И нашел Youtube-канал, который ему принадлежит.

Мне стало интересно и я написал простенький скрипт, который подставлял никнеймы из большого списка с 624 Email-ами в тот самый URL. В результате, я обнаружил 45 Youtube-каналов с таким же именем, как у почты.
Помимо этого, когда речь заходит о Youtube-аккаунтах, существует еще несколько идентификаторов. Прежде всего, самый очевидный - тот, который мы видим в адресной строке, когда заходим на канал.
https://www.youtube.com/channel/UCAiaFvFFZOwlU8Sw8S0dunQ
Второй идентификатор - название канала (которое можно изменять в настройках). В данном примере это "tipsbmx".

В исходном коде страницы можно обнаружить и стандартное имя пользователя. Для этого, мы ищем один из параметров: "ownerProfileUrl" или "vanityChannelUrl":

Помимо этого, можно найти и тот самый Google UserID, который я упоминал выше. Для этого, мы ищем в исходном коде «plus.google.com»:

В конечном итоге, мы имеем целых 4 идентификатора:
- ID Youtube канала
- Название Youtube канала
- Имя пользователя
- Google userID
Google Drive
В Google Drive также существует возможность получить некоторую информацию о владельце загруженного файла. В одном из кейсов, связанным с одним вирусописателей, фигурировала следующая ссылка:
https://drive.google.com/drive/folders/1_YoL0sjVfyXsxa1hREgpcTrQaYHgtPWk
Когда мы её открываем, мы видим имя, адрес электронной почты и сам файл. На первый взгляд, это вся информация, которая нам доступна.

Но внутри исходного кода страницы есть возможность найти наш любимый Google UserID.

Как и ранее, нам следует искать строку из 21 символа, которая начинается с 10 или 11. Чтобы упростить поиск, добавьте перед этими символами hex код двойных кавычек, который равен \x22. В итоге, ищем:
- \x2210
- \x2211

Ну а после этого следуют уже ранее изученные способы разведки. В нашем случае, в Google Reviews попался реальный отзыв об одном из ресторанов с этого фейкового аккаунта.

Следует учесть, что для получения Google UserID вышеупомянутым способом, необходимо авторизоваться в Google. Если вы хотите остаться анонимным или по какой - то причине не можете зайти в свой аккаунт, есть еще один способ узнать, кто загрузил файл. Для этого открываем вкладку "Network", в инструментах отладки, затем саму страницу с файлом, и фильтруем запросы, содержащие "permission". Такой будет всего один и он будет содержать
- Google UserID
- Имя пользователя
- Адрес электронной почты
- Домен электронной почты
- Роль пользователя
- Тип пользователя
- Ссылка на аватар

Вывод
Google присваивает множество различных идентификаторов пользователям, которые лежат на поверхности и могут быть использованы исследователями. При этом, весь процесс поиска и сопоставления результатов можно автоматизировать. Я не профессиональный разработчик, но я люблю исследовать код и узнавать о том, как все это работает, поэтому я могу законно использовать полученную информацию в своих собственных интересах.