生成社工字典


信息收集__生成社工字典

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://www.bugku.com/mima/

常見弱密碼字典

鏈接:https://pan.baidu.com/s/1Uk627hMZlGVTlLBxjo_Hsw
提取碼:rzb3


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM