def login(user, passwd, target, port, timeout_sec, log_in_file, language, retries, time_sleep, thread_tmp_filename, socks_proxy):
_HOST = messages(language, 53)
_USERNAME = messages(language, 54)
_PASSWORD = messages(language, 55)
_PORT = messages(language, 56)
_TYPE = messages(language, 57)
_DESCRIPTION = messages(language, 58)
exit = 0
if socks_proxy is not None:
socks_version = socks.SOCKS5 if socks_proxy.startswith('socks5://') else socks.SOCKS4
socks_proxy = socks_proxy.rsplit('://')[1]
socks.set_default_proxy(socks_version, str(socks_proxy.rsplit(':')[0]), int(socks_proxy.rsplit(':')[1]))
socket.socket = socks.socksocket
socket.getaddrinfo = getaddrinfo
while 1:
try:
if timeout_sec is not None:
my_ftp = FTP(timeout=timeout_sec)
else:
my_ftp = FTP()
my_ftp.connect(target, port)
exit = 0
break
except:
exit += 1
if exit is retries:
warn(messages(language, 65).format(target, port, user, passwd))
return 1
time.sleep(time_sleep)
flag = 1
try:
my_ftp.login(user, passwd)
flag = 0
except:
pass
if flag is 0:
try:
tmpl = []
tmp = my_ftp.retrlines('LIST', tmpl.append)
info(messages(language, 70).format(user, passwd, target, port))
save = open(log_in_file, 'a')
save.write(
json.dumps({_HOST: target, _USERNAME: user, _PASSWORD: passwd, _PORT: port, _TYPE: 'ftp_brute',
_DESCRIPTION: messages(language, 66)}) + '\n')
save.close()
except:
info(messages(language, 70).format(user, passwd, target, port) + ' ' + messages(language, 71))
save = open(log_in_file, 'a')
save.write(json.dumps({_HOST: target, _USERNAME: user, _PASSWORD: passwd, _PORT: port, _TYPE: 'FTP',
_DESCRIPTION: messages(language, 67)}) + '\n')
save.close()
thread_write = open(thread_tmp_filename, 'w')
thread_write.write('0')
thread_write.close()
else:
pass
return flag
python类set_default_proxy()的实例源码
def login(user, passwd, target, port, timeout_sec, log_in_file, language, retries, time_sleep,
thread_tmp_filename, socks_proxy):
_HOST = messages(language, 53)
_USERNAME = messages(language, 54)
_PASSWORD = messages(language, 55)
_PORT = messages(language, 56)
_TYPE = messages(language, 57)
_DESCRIPTION = messages(language, 58)
exit = 0
flag = 1
if socks_proxy is not None:
socks_version = socks.SOCKS5 if socks_proxy.startswith('socks5://') else socks.SOCKS4
socks_proxy = socks_proxy.rsplit('://')[1]
socks.set_default_proxy(socks_version, str(socks_proxy.rsplit(':')[0]), int(socks_proxy.rsplit(':')[1]))
socket.socket = socks.socksocket
socket.getaddrinfo = getaddrinfo
while 1:
try:
paramiko.Transport((target, int(port)))
paramiko_logger = logging.getLogger("paramiko.transport")
paramiko_logger.disabled = True
flag = 0
exit = 0
break
except:
exit += 1
if exit is retries:
warn(messages(language, 76).format(target, str(port), user, passwd))
return 1
time.sleep(time_sleep)
if flag is 0:
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
if timeout_sec is not None:
ssh.connect(hostname=target, username=user, password=passwd, port=int(port), timeout=timeout_sec)
else:
ssh.connect(hostname=target, username=user, password=passwd, port=int(port))
info(messages(language, 70).format(user, passwd, target, port))
save = open(log_in_file, 'a')
save.write(
json.dumps({_HOST: target, _USERNAME: user, _PASSWORD: passwd, _PORT: port, _TYPE: 'ssh_brute',
_DESCRIPTION: messages(language, 66)}) + '\n')
save.close()
thread_write = open(thread_tmp_filename, 'w')
thread_write.write('0')
thread_write.close()
except:
pass
else:
pass
return flag
def login(user, passwd, target, port, timeout_sec, log_in_file, language, retries, time_sleep, thread_tmp_filename,
socks_proxy):
_HOST = messages(language, 53)
_USERNAME = messages(language, 54)
_PASSWORD = messages(language, 55)
_PORT = messages(language, 56)
_TYPE = messages(language, 57)
_DESCRIPTION = messages(language, 58)
exit = 0
if socks_proxy is not None:
socks_version = socks.SOCKS5 if socks_proxy.startswith('socks5://') else socks.SOCKS4
socks_proxy = socks_proxy.rsplit('://')[1]
socks.set_default_proxy(socks_version, str(socks_proxy.rsplit(':')[0]), int(socks_proxy.rsplit(':')[1]))
socket.socket = socks.socksocket
socket.getaddrinfo = getaddrinfo
while 1:
try:
if timeout_sec is not None:
server = smtplib.SMTP(target, int(port), timeout=timeout_sec)
else:
server = smtplib.SMTP(target, int(port))
server.starttls()
exit = 0
break
except:
exit += 1
if exit is retries:
warn(messages(language, 73).format(target, port, user, passwd))
return 1
time.sleep(time_sleep)
flag = 1
try:
server.login(user, passwd)
flag = 0
except smtplib.SMTPException as err:
pass
if flag is 0:
info(messages(language, 70).format(user, passwd, target, port))
save = open(log_in_file, 'a')
save.write(json.dumps({_HOST: target, _USERNAME: user, _PASSWORD: passwd, _PORT: port, _TYPE: 'smtp_brute',
_DESCRIPTION: messages(language, 66)}) + '\n')
save.close()
thread_write = open(thread_tmp_filename, 'w')
thread_write.write('0')
thread_write.close()
else:
pass
try:
server.quit()
except:
pass
return flag
def check(target, user_agent, timeout_sec, log_in_file, language, time_sleep, thread_tmp_filename, retries,
http_method, socks_proxy):
_HOST = messages(language, 53)
_USERNAME = messages(language, 54)
_PASSWORD = messages(language, 55)
_PORT = messages(language, 56)
_TYPE = messages(language, 57)
_DESCRIPTION = messages(language, 58)
status_codes = [200, 401, 403]
directory_listing_msgs = ["<title>Index of /", "<a href=\"\\?C=N;O=D\">Name</a>", "Directory Listing for",
"Parent Directory</a>", "Last modified</a>", "<TITLE>Folder Listing.",
"- Browsing directory "]
time.sleep(time_sleep)
try:
if socks_proxy is not None:
socks_version = socks.SOCKS5 if socks_proxy.startswith('socks5://') else socks.SOCKS4
socks_proxy = socks_proxy.rsplit('://')[1]
socks.set_default_proxy(socks_version, str(socks_proxy.rsplit(':')[0]), int(socks_proxy.rsplit(':')[1]))
socket.socket = socks.socksocket
socket.getaddrinfo = getaddrinfo
n = 0
while 1:
try:
if http_method == "GET":
r = requests.get(target, timeout=timeout_sec, headers=user_agent, verify=True)
elif http_method == "HEAD":
r = requests.head(target, timeout=timeout_sec, headers=user_agent, verify=True)
content = r.content
break
except:
n += 1
if n is retries:
warn(messages(language, 106).format(target))
return 1
if version() is 3:
content = content.decode('utf8')
if r.status_code in status_codes:
info(messages(language, 38).format(target, r.status_code, r.reason))
thread_write = open(thread_tmp_filename, 'w')
thread_write.write('0')
thread_write.close()
save = open(log_in_file, 'a')
save.write(json.dumps({_HOST: target_to_host(target), _USERNAME: '', _PASSWORD: '',
_PORT: int(target.rsplit(':')[2].rsplit('/')[0]), _TYPE: 'dir_scan',
_DESCRIPTION: messages(language, 38).format(target, r.status_code,
r.reason)}) + '\n')
save.close()
if r.status_code is 200:
for dlmsg in directory_listing_msgs:
if dlmsg in content:
info(messages(language, 104).format(target))
save = open(log_in_file, 'a')
save.write(json.dumps({_HOST: target_to_host(target), _USERNAME: '', _PASSWORD: '',
_PORT: int(target.rsplit(':')[1].rsplit('/')[0]), _TYPE: 'dir_scan',
_DESCRIPTION: messages(language, 104).format(target)}) + '\n')
save.close()
break
return True
except:
return False