ssh口令暴力破解python脚本

ssh的介绍

ssh是什么?

SSH是一种网络协议,用于计算机之间的加密登录。

SSH之所以能够保证安全,原因在于它采用了公钥加密。
整个过程是这样的:(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

SSH不仅可以用于远程主机登录,还可以直接在远程主机上执行操作。

pexpect库

Pxssh是pexpect库的ssh专用脚本,他能用预先写好的 login()、logout() 和 prompt() 等函数直接与SSH进行交互 。对于login()函数,如果执行成功则不会抛出异常,将显示消息表示密码已经找到并把表示密码已找到的全局布尔值设置为true,如果异常显示密码被拒绝则返回即可,如果异常显示socket为 "read_nonblocking" 则可能是SSH服务器被大量的连接刷爆了。

实践

import pexpect        #引入第三方库
PROMPT = ['#','>>> ','> ','\$ ']        #命令行提示符
def send_command(child,cmd):        #传递命令
    child.sendline(cmd)
    child.expect(PROMPT)            #期望获得命令提示符
    print(child.before)               #打印会话结果

def connect(user,host,password):           #连接函数
    ssh_netkey='are you sure you want to continue'
    connStr='ssh'+user+'@'+host               #连接字符串
    child=pexpect.spawn(connStr)               #实列化连接
    ret=child.expect([pexpect.TIMEOUT,ssh_netkey,'[P|p]assword:'])           #捕获ssh_newkey
    if ret==0:                           #判断捕获结果
        print('Error Connection')
        return
    if ret==1:
        child.sendline('yes')
        ret=child.expect([pexpect.TIMEOUT,ssh_netkey,'[p|P]assword:'])
        if ret==0:
            print('Errot Connecting')
            return
    child.sendline(password)          #输入密码
    child.expect(PROMPT)                  #获得提示符
    return child

def main():
    host='localhost'
    user='root'
    password='Simplexue123'
    child=connect(user,host,password)         #ssh连接
    send_command(child,'ls /root/')              #发送命令
 
if if __name__ == '__main__':
    main()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值