Возьмём Android. Подключим к компьютеру. Предварительно экспортируем контакты и получим файл, который называется vCard.vcf.
Следующие 5 минут прочтения этой статьи будет для нас основой. Копируем его себе на рабочий стол. При открытии с помощью текстового редактора видим следующее:
Каждый наш контакт заносится в некий шаблон с началом тега «BEGIN:VCARD» и концом «END:VCARD». Между ними находятся: имя контакта, телефон и фото (если оно есть) – это основные параметры, которые нам будут нужны в дальнейшем.
Что ж, прекрасно, но что это нам дает? А то, что если мы создадим свою базу по подобному шаблону, то сможем импортировать ее обратно в наш телефон и использовать далее по назначению. Память андроида позволяет сохранять до 20 тысяч контактов. Ищем базу номеров в паблике/покупаем/генерируем сами, исходя из нашего региона, и т.п.
Весь смысл заключается в том, чтобы собрать базу из 20 тысяч номеров, присвоить им номера и импортировать в наш телефон.
Я просто купил готовую базу, номера которых зарегистрированы в телеграме. На PHP написал скрип для генерации шаблона «name;number» и создал свой собственный vCard.vcf:
Теперь у нас есть база из 20к контактов, имена которых не известны, как и номера. Но мы же с вами собрались с экспериментом, поэтому копируем эту базу на флешку нашего андроида и через контакты импортируем данную базу:
В итоге, получаем телефонную книгу из 20к контактов. Затем переходим к самому интересному. Мы включаем интернет на телефоне. Желательно, Wi-Fi. Запускам клиент телеграмма и, алле-вуаля! Телеграмм предлагает нам синхронизацию контактов, так как считает, что у нас якобы появились новые контакты, а, значит, потенциальные друзья! Естественно, мы соглашаемся. И что же дальше? Телеграмм проверяет ваши номера из телефонной книги на регистрацию в своей базе и выдает вам фото контактов, которые зарегистрированы!
Теперь мы знаем номер телефона и фото пользователя. Что с этим делать дальше? А дальше будет следующее: производим экспорт всех наших контактов. Стандартный экспорт контактов из телеграмма не поможет, так как он не показывает фото, поэтому мы можем, воспользовавшись API, написать свой скрип или взять готовый. Я взял готовый с github «ExportTelegramContacts». В конфиге нужно прописать данные своего API, зарегистрировавшись как разработчик. Делается все это дело за минуты.
Запускаем приложение через консоль:
Авторизуемся и введём команду на экспорт с фото
Спустя некоторое короткое время получаем следующий файл с форматом:
Получаем абсолютно такой же вид, как и был у нас при генерировании импорта, только добавилось поле «фото». Это аватарка нашего контакта, закодированная в base64.
Иными словами, телеграмм «проглотил» нашу базу из 20к номеров и выдал нам все контакты, которые зарегистрированы в системе, попутно привязав к ним реальный аватар пользователя (фото есть не у всех пользователей).
Если телеграмм с коррелировал реальных пользователей на регистрацию, то логично, что он выдал нам и их фото. Теперь мы знаем, кому принадлежит данный номер, но по прежнему не знаем логина и реального имени абонента. Чтобы узнать логин пользователя, нам нужен другой аккаунт в телеграмме, с ранее добавленными пользователями по их логину.
А потом все повторяется снова. Экспортируем базу через Export Telegram Contacts и имеем такой же файл формата vcf с данными пользователей (фото, имя, логин).
Затем нам просто нужно сравнить 2 файла и перебрать всех пользователей из первого и второго аккаунтов. Сравнивать мы будем, конечно же, по фото (base64). Соответствующие фото будут означать найденных пользователей, следовательно, мы объединим их фото, логин, номер и имя воедино. Таким образом, мы пробили данные нужных нам пользователей.
Естественно, этот процесс не быстрый. Но если нам нужно пробить несколько тысяч пользователей, то загружая и выгружая по 20 тысяч абонентов, а затем, сравнив их, можно добиться вполне приличных результатов.
Что же у нас выходит в итоге? Все просто! Мы имеем 2 телеграмм аккаунта. Один нам нужен для импорта номеров, которые и будем пробивать в дальнейшем. В другой добавим непосредственно интересующих нас людей. Экспортируем из первого аккаунта все наши контакты, которые определил телеграмм, как друзей. Вид экспорта будет: «номер_телефона: фото». Из другого экспортируем те же самые контакты, только вид уже будет: «логин: фото».
А дальше все элементарно. Сравниваем два файла и перебираем циклично все контакты, находим те, которые соответствуют фото. Таким образом, фото из одного списка, которое соответствует фото из другого списка, приравнивается к нашей жертве, и мы узнаем её номер.
Формула успеха в данном случае очень проста: фото = фото => логин + номер
Наглядный скрипт для полного перебора пользователей:
На весь процесс 1 цикла поиска у меня ушло около 10 минут. За это время я перебрал 20 тысяч номеров. В сутки можно прогнать до нескольких миллионов. Полностью автоматизировать этот процесс не удалось, поэтому работать придется руками, что не совсем удобно. К тому же, не все пользователи ставят фото в свой профиль. Ни с какими лимитами или ограничениями я в процессе не столкнулся.
В течение нескольких часов я тестировал схему по максимуму. Не смотря на минусы и плюсы данного метода — сама идея, что номер пользователя телеграмма можно раскрыть – имеет право на жизнь. Думаю кто понял смысл описанной схемы и знаком с работой телеграмм API , сможет «преобразить» и автоматизировать данный мануал и сделать своего телеграмм бота для быстрого деанона.
Спасибо за внимание! Буду очень рад, если ты подпишешься на канал и так же предлагаю посмотреть как за 2 минуты можно вычислить имя любого неизвестного абонента по номеру телефона