• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Организация массовых спам-рассылок и сбор данных юзеров в Телеграмм без особых усилий

ayanami

floppy-диск
Пользователь
Регистрация
16.07.2020
Сообщения
8
Реакции
9
Приветствую всех в этом разделе! Сегодня хотелость бы затронуть тематику спама и фишинга в Телеграм.

ДИСКЛЕЙМЕР

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



Содержание статьи:
1.
Как появилась эта идея
2. Написание базовой программы-клиента с помощью Telethon
3. Регистрация и получение API доступа к клиенту
4. Парсим посты в Телеграмм каналах и получаем данные юзеров
5. Пишем сообщение кому либо в Телеграм с помощью Telethon
6. Тестируем программу
7. Заключение


1. Как появилась эта идея

Как вы знаете, недавно Телеграм был обновлен, и в нем появилась возможность оставлять комментарии к посту на канале.
Не все админы включили это, однако есть достаточно каналов где есть регулярный сильный актив и открыты комментарии.
Когда я смотрел новое обновление Телеграм, мне бросилось в глаза то, что я могу написать в личные сообщения каждому комментатору,
а бывало такое что комментарии были от 100 до 500 ответов. Меня натолкнуло на идею, что можно с помощью клиент-API Телеграма
спарсить комментарии и получить куча User-ID и никнеймов. С этой мыслью я пошел работать над программой, которая будет показана далее.

2. Написание базовой программы-клиента с помощью Telethon

Как известно, Телеграм очень дружественнен к разработчикам, я думаю что про ботов в данном мессенджере слышали все, а вот про то,
что можно написать и свой клиент -- особо никто не знает. С помощью данной библиотеки можно сделать очень многое, но сегодня мы говорим о спаме.

Наша программа будет работать следующим образом:
1. Подключение к телеграмм аккаунту
2. Парсинг каналов, в постах которых есть возможность оставлять комментарии
3. Получение Telegram User ID и никнейма
4. Перебор полученных данных и рассылка сообщений

Сначала установим библиотеку Telethon:
Код:
pip3 install telethon

Начнем. Любая программа, которая хочет работать с Telethon должна получить api_id и api_hash. С помощью них можно авторизироватся
в Телеграмме, процесс авторизации такой же как и всегда, вам присылают код и вам надо его ввести в программу. Еще вам следует придумать имя сессии,
под этим именем будет хранится Телеграмм сессия в виде файла в директории запуска программы. Получить доступ к клиенту можно так:
Python:
from telethon.sync import TelegramClient

api_id = "Your API ID"
api_hash = "Your API Hash"
session_name = "My Session"

client = TelegramClient(session_name, api_id, api_hash)
Теперь подключаемся к Телеграму:
Python:
client.start()
На будущее, что бы отключится надо:
Python:
client.disconnect()

Когда вы будете впервые создавать сессию, вам в терминале выдаст форму ввода, здесь надо будет ввести свой телефон, код пришедший на аккаунт,
в который вы хотите войти и опционально пароль.

1.jpg

Далее нам дают код как в обычной процедуре:
2.jpg

Вводим, если вы установили пароль то вводим и пароль:
3.jpg

Все, вы успешно создали сессию, если вас не уведомили об обратном.
Сессия сохраняется в файле в рабочей директории программы. Не перемещайте ее и не удаляйте, где ее создали там пусть и хранится.
Далее вы можете использовать ту же сессию в дальнейших вызовах программы, указав то же имя сессии при создании клиента что и в первый раз, когда вы ее создали.
Сама программа будет иметь вид библиотеки, из которой вы сможете вызывать функции в нужном вам порядке.

3. Регистрация и получение API доступа к клиенту

Для того что бы использовать библиотеку и ваш аккаунт Телеграмма через него, вам следует зарегистрировать на него API с помощью https://my.telegram.org/auth

Шаг 1. Заходим под нашим Телеграмм-аккаунтом
11.jpg


Шаг 2. Вводим код


44.jpg

22.jpg

Шаг 3. Переходим в раздел где написана наша информация для работы с API
33.jpg

Кликаем на API development tools
55.jpg

Вот и наши данные в поле api_id и api_hash

4. Парсим посты в Телеграмм каналах и получаем данные юзеров

Алгоритм следующий, с помощью функции iter_messages получить ID поста, а потом той же функцией получить комментари к нему с помощью аргумента reply_to.

Python:
for post in client.iter_messages(channel):
    try:
        for reply in client.iter_messages(channel, reply_to=post.id):
            print(reply.sender.id, reply.sender.username, reply.text):
    except Exception as e:
        pass
Где channel это никнейм канала, post.id это ID поста, с которого мы получаем комментарии
reply.sender.id -- Telegram User ID
reply.sender.username -- Telegram Username
reply.text -- Текст комментария

5. Пишем сообщение кому либо в Телеграм с помощью Telethon

Для того что бы отправить сообщение кому либо в Телеграмм, нам нужен его никнейм или User ID.
Python:
client.send_message("Nickname", "Hello Nickname")
client.send_message(1234567890, "Hello User ID")

6. Тестируем программу

Итак, я добавил еще пару полезных функций в программу: запись в файл и загрузка юзеров из файла.

Python:
from telethon.sync import TelegramClient

api_id = "Your API ID"
api_hash = "Your API Hash"

class User():
    def __init__(self, uid, username):
        self.id = uid
        self.username = username

    def __str__(self):
        return str((self.id, self.username))

class Program():
    def __init__(self, api_id, api_hash, session_name):
        self.client = TelegramClient(session_name, api_id, api_hash)
        self.client.start()

        self.users = []
        self.captured = 0

    def _is_captured(self, user):
        for usr in self.users:
            if user.id == usr.id:
                return True

    def capture_user(self, uid, username):
        u = User(uid, username)
        if not self._is_captured(u):
            self.users.append(u)
            self.captured += 1
            
            return True

        return False

    def get_captured(self):
        return self.captured, self.users

    def dump_captured(self, filename):
        counter = 1
        with open(filename, "a") as f:
            for user in self.users:
                s = f"{counter}:{user.id}:{user.username}\n"
                f.write(s)
                counter += 1

    def load_captured(self, filename):
        with open(filename, "r") as f:
            lines = f.readlines()

        for line in lines:
            data = line.split(":")
            self.capture_user(data[1], data[2].replace("\n", ""))

    def parse_channel(self, channel, maxx):
        captured_l = 0
        for post in self.client.iter_messages(channel):
            try:
                for reply in self.client.iter_messages(channel, reply_to=post.id):
                    if self.capture_user(int(reply.sender.id), str(reply.sender.username)):
                        captured_l += 1
                    if captured_l >= maxx:
                        return
            except Exception as e:
                pass

        return

    def spam_text(self, text, amount):
        counter = 0
        for user in self.users:
            self.client.send_message(user.id, text)
            print("Send!")
            counter += 1
            if counter >= amount:
                break
Эта программа, простой пример того как можно реализовать этот метод. Например что бы собрать данные с канала и записать их в файл надо:
Python:
p = Program(api_id, api_hash, "Session")
p.parse_channel("channel_nickname", 20)
p.dump_captured("filename.txt")
Где 20 это максимальное количество юзеров которое следует получить.
Если мы запустим это, то получим User ID и никнейм в удобном для дальнейшего хранения формате:

23к24324.jpg


Что бы отослать сообщения нам нужно:
Python:
p = Program(api_id, api_hash, "Session")
p.parse_channel("channel_nickname", 20)
p.spam_text("Your Text", 20)

Где 20 в spam_text это количество юзеров которым будет отправленно данное сообщение.

Что бы загрузить юзеров из файла, и проделать тот же спам нам нужно:
Python:
p = Program(api_id, api_hash, "Session")
p.load_captured("filename.txt")
p.spam_text("Your Text", 20)
До файла нужно указать полный путь либо нужно что бы файл лежал в рабочей директории программы.

Добавить юзера вручную:
Python:
p.capture_user(1234567890, "nickname")

На основе представленного здесь метода, можно создавать более сложные и удобные в использовании программы для сбора данных юзеров и спама

7. Заключение

Хоть и метод довольно простой в исполнении, при правильном применении он может дать вам огромные возможности.
Вы сможете организовывать большие спам-рассылки практически без вложений, что поможет вам улучшить свое материальное состояние
Если вы владелец бизнеса, вам не нужно больше будет тратится на рекламу и рассылки в ТГ от сторонних лиц.
Так же это демонстрация того, как можно использовать легитимную вещь во вред, это наставление разработчикам о том,
что нужно думать дважды перед написанием чего либо нового, задатся вопросом: "Как это может быть использованно во вред?"

Благодарю всех за внимание! Я надеюсь, я научил вас чему то новому.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Интересно, насколько популярен Телеграмм вне РУ-сегмента, никто не интересовался этой статистикой?
 
Статья гуд, но не раскрыта тема ограничений, после которых лочат Аккаунт.
Ещё просьба - не ушатывайте тг в спам как сделали это с жабером.
 
Последнее редактирование:
Статья гуд, но не раскрыта тема ограничений, после которых лочат Аккаунт.
Ещё просьба - не ушатывайте тг в спам как сделали это с жабером.
Хорошо, я детальнее изучу вопрос этого. Спасибо за рекомендацию!
 
Интересно, насколько популярен Телеграмм вне РУ-сегмента, никто не интересовался этой статистикой?
В Америке я не встретил не одного буржуя кто бы знал об этом приложении, а вот русская диаспора вся сидит в нем
 
Пожалуйста, обратите внимание, что пользователь заблокирован
В Америке я не встретил не одного буржуя кто бы знал об этом приложении, а вот русская диаспора вся сидит в нем
Да, в матушке России у 9 из 10 владельцев смартфона найдется установленный Телеграмм, наверное.
 
Интересно, почему в статье постоянно встречаются места, где перенос строки идёт там, где не должен, разрывая предложения? Точно такое же было и здесь: https://xss.pro/threads/43673/

Снова откуда-то скопировано и выдано за "свои мысли"?
 
Интересно, почему в статье постоянно встречаются места, где перенос строки идёт там, где не должен, разрывая предложения? Точно такое же было и здесь: https://xss.pro/threads/43673/

Снова откуда-то скопировано и выдано за "свои мысли"?
Это моя первая статья которую я когда либо писал в своей жизни, а по поводу копипаста можете проверить. Если найдете этот метод в других источниках до момента написания этой статьи то вы будете правы. Я пока что, хочу сказать что бездумно грубить и относится с предвзятостью это невежественно.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Есть некоторые чаты,в которых раньше сидели ру-говорящие люди-сейчас там ничего, кроме американцев, нет.
 
К сожалению, такое не подойдет для телеграма в наших реалиях.

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

Максимум эффективен это автоинвайтинг в каналы, можно собрать какое-то ЦА на бет/гембл и лить по ревраше.

А так лучше идти в тот же инстаграм и делать тоже самое с огромной и богатой аудиторией.
 
С одного акка, да без отлежки много не наспамишь, сразу бан, да и даже с отлегой их нужно очень много, потому что там тоже ограничения есть, плюс еще много много разных моментов. Но за старания конечно плюс
 
Тема заявлена обширная, а раскрыта на 10%

Автор, больше практуй, нужен реальный опыт, программ сейчас много разных, просто за код, который можно найти на stackoverflow - не голосуют, а вот что ты сделал с помощью этого кода, чего достиг - это интересно.

Какие объемы проходили через твою программу по спамy или фишингу?

Максимум эффективен это автоинвайтинг в каналы, можно собрать какое-то ЦА на бет/гембл и лить по ревраше.

А так лучше идти в тот же инстаграм и делать тоже самое с огромной и богатой аудиторией.

Пробовал уже что-то в Телеграме, во что уперся?

А в инсте - по директам и коментам что-ли, там тоже жесткие лимиты, а CTR стремиться к нулю в таком спаме. Инстаграм как по мне вообще самая ленивая ЦА, только листать и свайпать осиливает.
 
Тема заявлена обширная, а раскрыта на 10%

Автор, больше практуй, нужен реальный опыт, программ сейчас много разных, просто за код, который можно найти на stackoverflow - не голосуют, а вот что ты сделал с помощью этого кода, чего достиг - это интересно.

Какие объемы проходили через твою программу по спамy или фишингу?



Пробовал уже что-то в Телеграме, во что уперся?

А в инсте - по директам и коментам что-ли, там тоже жесткие лимиты, а CTR стремиться к нулю в таком спаме. Инстаграм как по мне вообще самая ленивая ЦА, только листать и свайпать осиливает.
Поддержу тему , жду от автора ответы на вопросы выше .
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх