在滲透測試中,咱們有時候會碰到拿到後臺登陸界面,並且沒有其餘漏洞能夠利用,只能暴力破解用戶名密碼,如今直接使用弱口令的網站較少了,常見的字典通常是沒法爆破成功,因此咱們要針對網站內容來生成對應字典,進一步提高爆破成功率。web
因此咱們來寫個小腳原本生成對應的字典測試
import exrex import sys web_white = ['com','cn','gov','www','edu','org'] 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_dics = hosts.split('.')#將有用的東西去除,例如demo,webdic,放入字典生成的地方,生成字典 #將核心的生成規則寫入配置文件,方便之後使用 #能夠對生成密碼進行過濾 f_rule = open('ruler.ini','r',encoding='UTF-8') for i in f_rule: if '#' in i[0]: rule = i f_pass_out = open('pass_0.txt','r') f_pass_out.close() for web_dic in web_dics: if web_dic not in web_white: f_pass =open('123.txt','r')#打開密碼文件 for dic_pass in f_pass: dics = list(exrex.generate( '{web_dic}[!@#]{dic_pass}'.format(web_dic = web_dic,dic_pass = dic_pass))) for dic in dics: if len(dic) > 4: f_pass_out =open('pass_1.txt','a+') f_pass_out.write(dic ='\n') f_pass_out.close() print (dic) #dic_creat(host_para('demo.123.com')) if __name__ =='__main__': if len(sys.argv) == 2: dic_creat(host_para(sys.argv[1])) sys.exit(0) else: print('Usage: %s www.demo.com'%sys.argv[0]) sys.exit(-1)
咱們主要使用了exrex模塊來生成字典,將全部可能都列舉到字典中,首先先作一個根據網站域名來生成對應字典,並和常見的弱口令結合來生成對應的字典。網站
將域名中提取出來的內容進行過濾,將符號等無用的東西去掉,並將核心的生成規則寫入配置文件,便於修改,後續再加入擴展功能。spa