信息收集__生成社工字典
python生成字典
-
源碼來自《python安全攻防》第七章,但是代碼很多地方很奇怪,經過修改后放到這里
-
| |-person_information(個人信息) |-TopPwd(常見密碼) |-xx.py
-
xx.py
import itertools def read_information_list(): try: # 讀取個人信息文件,並按行存入lines tmp = open('person_information', 'r', encoding='utf-8') lines = tmp.readlines() for line in lines: infolist.append(line.strip().split(':')[1]) except Exception as e: print("Read person_information error!") def create_number_list(): # 數字元素 words = "0123456789" # 生成000、001......999 itertools_number_list = itertools.product(words, repeat=3) for number in itertools_number_list: # 寫入數字列表備用 numberList.append("".join(number)) def add_top_pwd(): try: # 讀取TopPwd文件,並先存入password字典文件 informationFile = open('TopPwd', 'r') lines = informationFile.readlines() for line in lines: dictionaryFile.write(line) except Exception as e: print("Read TopPwd error!") def create_special_list(): special_words = "`~!@#$%^&*()?|/><,." for i in special_words: specialList.append(i) def combination(): for a in range(len(infolist)): # 把個人信息大於等於8為的直接輸出到字典 if len(infolist[a]) >= 8: dictionaryFile.write(infolist[a] + '\n') # 對於小於8位的個人信息利用數字進行補全到8位輸出 else: need_words = 8 - len(infolist[a]) for b in itertools.permutations("1234567890", need_words): dictionaryFile.write(infolist[a] + ''.join(b) + '\n') # 把個人信息元素兩兩進行相互拼接,大於等於8位的輸出到字典 for c in range(len(infolist)): if len(infolist[a] + infolist[c]) >= 8: dictionaryFile.write(infolist[a] + infolist[c] + '\n') # 將兩個個人信息元素加入特殊字符組合起來,大於等於8位就輸出到字典 for d in range(len(infolist)): for e in range(len(specialList)): if len(infolist[a] + specialList[e] + infolist[d]) >= 8: # 特殊字符加中間 dictionaryFile.write(infolist[a] + infolist[d] + specialList[e] + '\n') # 特殊字符加頭部 dictionaryFile.write(infolist[a] + specialList[e] + infolist[d] + '\n') # 特殊字符加尾部 dictionaryFile.write(specialList[e] + infolist[a] + infolist[d] + '\n') # 關閉字典文件對象 dictionaryFile.close() if __name__ == '__main__': dictionaryFile = open('passwords', 'w') infolist = [] # 從person_information文件中讀取內容-->['姓名','手機號','姓名簡稱'......] numberList = [] # ['000','001',......,'999'] specialList = [] # ['`', '~', '!', '@',...... '<', '*', '.'] read_information_list() create_number_list() # 生成numberList 但實際上並沒有用到 create_special_list() add_top_pwd() combination()
常用字典生成工具
下面的一些工具我放到了百度網盤上面設置了永久有效
亦思想社會工程學字典生成器
鏈接:https://pan.baidu.com/s/1MnaZgRiW_bdLXyagsIQT8A
提取碼:2xal
cupper2
需要的環境是python2!!!
鏈接:https://pan.baidu.com/s/1UOgS3sdfXlk4oT-eGqRoOA
提取碼:ry5t
Kali
Hashcat、cupp等工具有很多此處省略
在線密碼生成
常見弱密碼字典
鏈接:https://pan.baidu.com/s/1Uk627hMZlGVTlLBxjo_Hsw
提取碼:rzb3