python实战:[高精度密码字典生成器]

前言

emmmm

高精度密码字典源码

1.py

import exrex
import sys


#url过滤处理
def host_para(host):
    if '://' in host:
        host=host.split('://')[1].replace('/',' ')
    if '/' in host: 
        host=host.replace('/','')
        
    return host
    
    
def dic_creat(hosts):
    web_white=['com','com','cn','gov','edu'] #后缀白名单
#
    web_dics=hosts.split('.')#将传进来的域名以.分割
    
    
    f_rule=open('rule.ini','r')#引入配置文件

    for i in f_rule: #将配置文件的值传给rule
        if '#' !=i[0]:
            rule=i
    #print(rule)        
    f_pass_out=open('pass_1.txt','w')#打开pass1.txt文件如果没有则创建用于保存生成的字典
    f_pass_out.close
    
    for web_dic in web_dics:
        #if web_dic not in web_white:  #过滤后缀.com之类
            f_pass=open('pass_0.txt','r')
            for dic_pass in f_pass:
                print(dic_pass)
                
                dics = list(exrex.generate(rule.format(web_dic=web_dic,dic_pass=dic_pass.strip('\n'))))
                
                for dic in dics:
                    if len(dic)>4:
                        f_pass_out=open('pass_1.txt','a+')
                        f_pass_out.write(dic)
                        f_pass_out.close()
                        print dic
#           
       
#    
#dic_creat(host_para('http://baidu.com/'))
if __name__=='__main__':
    if len(sys.argv)==2:
        dic_creat(host_para(host_para(sys.argv[1])))
        sys.exit(0)
    else:
        print("11")
    

rule.ini

rule.ini是字典生成程序配置文件
配置的规则如"{web_dic}{!@#}{dic_pass}其中{web_dic}代表host中可能的字典元素,{dic_pass}代表密码母本中的密码

(|{web_dic})(|!|@|#)(|{dic_pass})(|!|@|#)(|201[4567])

pass_0.txt

使用方法

使用方法:
pass_0.txt是配合社工的文件 比如你社工到了这个网站的站长姓名叫王小明 那你可以添加wangxiaoming进入配合组建高精度密码字典

python 1.py http://baidu.com/ 即可组建高精度密码字典  查看当前目录下pass_1.txt即可获得。

 参考学习:网易云python安全编程

猜你喜欢

转载自www.cnblogs.com/xhds/p/12264311.html