Недавно по интернетам пролетела очередная сенсация о уязвимостях в Телеграм. Хотя некоторые считают последнюю новость скорее фичей, а не багом. Я же воздержусь от оценок и просто попробую описать концепцию сбора ников по номерам телефонов.
Эту задачу можно решить топорным и медленным способом, вручную добавляя к себе в контакты интересующие номера и затем открывая профили тех юзеров, которые окажутся зарегистрированными в ТГ. В профиле очевидным образом будет отображаться ник юзера, который начинается с символа собачки, разумеется, если юзер установил таковой.
Но мы же хакеры, нам не интересны топорные методы, гораздо круче написать свой собственный переборщик номеров, который сделает работу за считанные секунды. Мне больше всего нравится язык Python, поскольку он подходит для подобных задач и позволяет написать функциональный код очень быстро. А так же он достаточно нагляден, что бы использовать его для подобных демонстраций концепций.
И, кончено, мы бы не были профессионалами, если не пользовались бы библиотеками и APIшечками. Поэтому идём в гугл и находим первую попавшуюся библиотеку для взаимодействия с клиентским API телеграма.
Мне попалась библиотка telethon. А простой запрос в гугл "telethon add user by phone" по первой же ссылке предлагает годный пример кода.
По понятным причинам(защита от скрипткиддисов) приведу здесь лишь самую важную часть кода, оставив вам для самостоятельного ресёрча всё остальное.
Итак, после импорта всех необходимых объектов из библиотеки, а так же ID и токена приложения для ТГ добавляем переменную для хранения искомого номера, на который зарегистрирован аккаунт ТГ.
Проводим инициализацию и подключаемся к ТГ
Пропускаем формальности про ввод пин-кода, приходящего на мобильник при подклчении из нового места. И добавляем искомый номер в наш список контактов
Ну и последним шагом получаем ник по тому же номеру
Вуаля, на экране отпечатался ник, соответствующий указанному номеру. Всё более чем просто.
Чтобы завершить приложение, собирающее все ники по списку номеров из файла, нужно добавить буквально три строки. Смысл их в том, чтобы сначала прочитать из файла список номеров, затем добавить цикл, выполняющий два последних шага с каждым номером из списка.
Каждый, кто хоть немного разобрался в программировании на Python, сможет закончить данный проект. Остальные же, могут написать в телеграм чатике https://t.me/thecodeby запрос на данный скрипт с указанием предлагаемой стоимости
Эту задачу можно решить топорным и медленным способом, вручную добавляя к себе в контакты интересующие номера и затем открывая профили тех юзеров, которые окажутся зарегистрированными в ТГ. В профиле очевидным образом будет отображаться ник юзера, который начинается с символа собачки, разумеется, если юзер установил таковой.
Но мы же хакеры, нам не интересны топорные методы, гораздо круче написать свой собственный переборщик номеров, который сделает работу за считанные секунды. Мне больше всего нравится язык Python, поскольку он подходит для подобных задач и позволяет написать функциональный код очень быстро. А так же он достаточно нагляден, что бы использовать его для подобных демонстраций концепций.
И, кончено, мы бы не были профессионалами, если не пользовались бы библиотеками и APIшечками. Поэтому идём в гугл и находим первую попавшуюся библиотеку для взаимодействия с клиентским API телеграма.
Мне попалась библиотка telethon. А простой запрос в гугл "telethon add user by phone" по первой же ссылке предлагает годный пример кода.
По понятным причинам(защита от скрипткиддисов) приведу здесь лишь самую важную часть кода, оставив вам для самостоятельного ресёрча всё остальное.
Итак, после импорта всех необходимых объектов из библиотеки, а так же ID и токена приложения для ТГ добавляем переменную для хранения искомого номера, на который зарегистрирован аккаунт ТГ.
Код:
guest_phone_number='+3809ХХХХХХХХ'
Код:
client = TelegramClient('session_name', api_id, api_hash)
client.connect()
Код:
contact = InputPhoneContact(client_id=0, phone=guest_phone_number, first_name="custom_first_name", last_name="custom_last_name")
result = client.invoke(ImportContactsRequest([contact]))
Код:
contact_info = client.get_entity(guest_phone_number)
print(contact_info.username)
Вуаля, на экране отпечатался ник, соответствующий указанному номеру. Всё более чем просто.
Чтобы завершить приложение, собирающее все ники по списку номеров из файла, нужно добавить буквально три строки. Смысл их в том, чтобы сначала прочитать из файла список номеров, затем добавить цикл, выполняющий два последних шага с каждым номером из списка.
Каждый, кто хоть немного разобрался в программировании на Python, сможет закончить данный проект. Остальные же, могут написать в телеграм чатике https://t.me/thecodeby запрос на данный скрипт с указанием предлагаемой стоимости
Последнее редактирование: