【初体验】用pxssh暴力破解ssh密码

3160601781   ·   发表于 4个月前   ·   编程代码
【用Pxssh暴力破解SSH密码】

Pxssh是一个包含Pexpect库的脚本,Pexpect安装见我另外一个帖子

Pxssh已经预先写好了login(),logout()和prompt()等函数,可直接与ssh进行交互。

——————————————————————————
[真棒]代码

# coding=utf-8
from pexpect import pxssh

def send_command(s, cmd):
s.sendline(cmd)
# 匹配prompt(提示符)
s.prompt()
# 将prompt前所有内容打印出
print s.before
def connect(host, user, password):
try:
s = pxssh.pxssh()
# 利用login()进行ssh登录
s.login(host, user, password)
return s
except:
print
'[-] Error Connecting'
exit(0)
s = connect('192.168.1.14', 'root', '1') #kali本机
send_command(s, 'cat /etc/shadow')

[真棒]结果
——————————————————————————

更高级操作[滑稽]
修改代码分析:

修改代码使脚本能自动执行暴力破解SSH 密码的任务,除增加了一些参数解析代码来读取主机名、用户名和存有待尝试的密码的文件外,我们只需对connect)函数稍做修改。如果login()函 数执行成功,并且没有抛出异常,我们将打印一个消息,表明密码已被找到,并把表示密码已被找到的全局布尔值(Found)设为true。 否则,我们将捕获该异常。如果异常显示密码被拒绝,我们知道这个密码不对,让函数返回即可。但是,如果异常显示socket为“read nonblocking" ,可能是SSH服务器被大量的连接刷爆了,可以稍等片刻后用相同的密码再试一次。 此外,如果该异常显示pxssh命令提示符提取困难,也应等待一会儿,然后让它再试一次。请注意,在connect(函数的参数里有一个布尔量 release。由于connect()可以递归地调用另一个connet(),我们必须让只有不是由connet()递妇调用的connect)函数才能够释放connection _lock 信号。

1 Reply   |  Until 4个月前 | 2743 View

1649644933
发表于 4个月前

看不懂[滑稽][心碎]

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content