-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathdarkSMTPv.py
114 lines (99 loc) · 4.08 KB
/
darkSMTPv.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
#!usr/bin/python
#darkSMTPv.py
#SMTP Checker - using Authentication
#Coded by P47r1ck & low1z
#-----------------------------------
#... To be continued ...
#
#
#THE CODE WILL TAKE A LIST OF SMTP ACCOUNTS IN THE FOLLOWING FORMAT (IP:USER:PASS) WILL TRY TO LOGIN AND THEN SEND AN
#EMAIL TO THE ADDRESS THAT YOU CAN CHANGE ANYTIME IN THE CODE ( look below the #Create the message at the toaddr= )[LINE 33]
#
#EVERY WORKING SMTP ACCOUNT WILL PRINTED ON THE SCREEN WITH THE FOLLOWING MESSAGE : [!] Email Sent Successfully: IP USER PASS
#
#THE CODE HAS THE FOLLOWING FEATURES.
#
# 1. IT WILL SAVE THE LIST OF WORKING SMTP ACCOUNTS TO FILE OUTPUT THAT YOU WILL CHOOSE.
# 2. YOU CAN ALSO SPECIFY THE EMAIL WHERE THE SMTP CAN SEND THE TEST EMAIL.
# 3. IT WILL MAKE A LIST OF SERVERS FOR THE AMS (ADVANCED MASS SENDER PROGRAM), SO YOU CAN INSERT MORE EASIER THE SMTP
#LIST INTO THE AMS.INI FILE FROM THE AMS PROGRAM. (LIST IS SAVED TO AMSlist.txt)
#
#
# MORE FEATURES ARE COMING SOON!!!
import sys, smtplib, socket, time
from smtplib import SMTP
socket.setdefaulttimeout(5) # smtp default timeout, change number to speed up large lists
def printHelp():
print '\nHow to use it ? There you go :) -- > ./darkSMTPv.py <accounts> <outputfile>'
print '\nImportant: THE SMTP ACCOUNTS MUST BE IN THE FOLLOWING FORMAT : IP:USER:PASS\n'
# Create the message
fromaddr = "[email protected]"
toaddr = "[email protected]"
#toaddr = "[email protected]"
message = """To: %s
From: %s
Subject: SMTP Checker! Online!
Checking SMTP!!!
""" % (toaddr,fromaddr)
print "\n _ _ _____ __ __ _______ _____ "
print " | | | | / ____| \/ |__ __| __ \ "
print " __| | __ _ _ __| | _| (___ | \ / | | | | |__) |_ __"
print " / _` |/ _` | '__| |/ /\___ \| |\/| | | | | ___/\ \ / /"
print "| (_| | (_| | | | < ____) | | | | | | | | \ V / "
print " \__,_|\__,_|_| |_|\_\_____/|_| |_| |_| |_| \_/ \n"
print "\n This is not stopping here! ... To be continued."
print "More features will be added soon. For bugs p47r1ckro[at]gmail[dot]com\n"
print "_______________________________________________________________________"
def timer():
now = time.localtime(time.time())
return time.asctime(now)
def sendchk(listindex, host, user, password): # seperated function for checking
try:
smtp = smtplib.SMTP(host)
smtp.login(user, password)
code = smtp.ehlo()[0]
if not (200 <= code <= 299):
code = smtp.helo()[0]
if not (200 <= code <= 299):
raise SMTPHeloError(code, resp)
smtp.sendmail(fromaddr, toaddr, message)
print "\n\t[!] Email Sent Successfully:",host, user, password
print "\t[!] Message Sent Successfully\n"
LSstring = host+":"+user+":"+password+"\n"
nList.append(LSstring) # special list for AMS file ID's
LFile = open(output, "a")
LFile.write(LSstring) # save working host/usr/pass to file
LFile.close()
AMSout = open("AMSlist.txt", "a")
AMSout.write("[Server"+str(nList.index(LSstring))+"]\nName="+str(host)+"\nPort=25\nUserID=User\nBccSize=50\nUserName="+str(user)+"\nPassword="+str(password)+"\nAuthType=0\n\n")
smtp.quit()
except(socket.gaierror, socket.error, socket.herror, smtplib.SMTPException), msg:
print "[-] Login Failed:", host, user, password
pass
if len(sys.argv) != 3:
printHelp()
exit(1)
# Do not change anything below.
accounts = sys.argv[1]
output = sys.argv[2]
try:
handle = list(open(accounts))
except:
print"\n[+] We were unable to open the SMTP filelist. Check again your path and try again."
print"\n[+] Ciao...."
#listindex = 0
nList = []
for line in handle:
try:
host = line.split(':')[0]
user = line.split(':')[1].replace('\n', '')
password = line.split(':')[2].replace('\n', '')
sendchk(handle.index(line), host, user, password)
except:
print '\n[+] We have found a error in your accounts list'
print host, user
print '\n[!] IMPORTANT: THE SMTP ACCOUNTS MUST BE IN THE FOLLOWING FORMAT : IP:USER:PASS'
print '\n[-] Exiting....\n'
exit(1)
print "[!] Ended at: " + timer() + ""
print "[!] You should visit forum.darkc0de.com from time to time\n"