【Sec】John the ripper | hashcat

John


参数:

john [-功能选项] [密码文件名] 功能选项(所有的选项均对大小写不敏感,而且也不需要全部输入,只要在保证不与其他参数冲突的前提下输入即可,如-restore参数只要输入-res即可)
 
-pwfile:<file>[,..]
用于指定存放密文所在的文件名,(可以输入多个,文件名“,”分隔,也可以使用*或者这两个通配符引用一批文件)。也可以不使用此参数,将文件名放在命令行的最后即可。
 
-wordfile:<字典文件名>-stdin
指定的用于解密用的字典文件名。也可以使用STDIO来输入,就是在键盘中输入。
 
-rules
在解密过程中使用单词规则变化功能。如将尝试cool单词的其他可能,如COOLER、Cool等,详细规则可以在JOHN.INI文件中的[List.Rules:Wordlist]部分查到。
 
-incremental[:<模式名称>]
使用遍历模式,就是组合密码的所有可能情况,同样可以在JOHN.INI文件中的[Incremental]部分查到。
 
-single
使用单一模式进行解密,主要是根据用户名产生变化来猜测解密,其组合规则可以在JOHN.INI文件中的[List.Rules:Single]部分查到。
 
-external:<模式名称>
使用自定义的扩展解密模式,可以在john.ini中定义自己需要的密码组合方式。JOHN也在INI文件中给出了几个示例,在INI文件的[List.External]中所定义的自订破解功能。
 
-restore[:<文件名>]
继续上次的破解工作,JOHN被中断后,当前的解密进度情况被存放在RESTORE文件中,可以拷贝这个文件到一个新的文件中。如果参数后不带文件名,JOHN默认使用RESTORE文件。
 
-makechars:<文件名>
制作一个字符表,所指定的文件如果存在,则将会被覆盖。JOHN尝试使用内在规则在相应密匙空间中生成一个最有可能击中的密码组合,它会参考在JOHN.POT文件中已经存在的密匙。
 
-show
显示已经破解出的密码,因为JOHN.POT文件中并不包含用户名,同时你应该输入相应的包含密码的文件名,JOHN会输出已经被解密的用户连同密码的详细表格。
 
注:如果对同一个密码档已经运行过其它模式,则已经猜解出的密码不会被再次loaded

使用方法:

例:破解Linux的用户密码
1、使用unshadow提取密码散列
root@only:~# unshadow /etc/passwd /etc/shadow > ~/file_to_crack
2、破解Linux用户密码
root@only:~# john --wordlist=/usr/share/john/password.lst ~/file_to_crack
 
rm -fr /root/.john/john.pot
unshadow p s > file
john --wordlist=zidian.txt file
john -w:zidian.txt file
 
p    root:x:0:0:root:/root:/bin/bash
s    root:$1$flPjKUKk$FRforz6oUD084UzrDXBsS1:16993:0:99999:7:::
file    root:$1$flPjKUKk$FRforz6oUD084UzrDXBsS1:0:0:root:/root:/bin/bash
 

hashcat


地址:https://github.com/hashcat/hashcat

参数:

--potfile-disable    # 总是显示已破解结果,否则以破解的记录被存放于:/Users/MichaelScofield/.hashcat/hashcat.potfile

-m 指定hash类型

-a 选择爆破方式

- [ Attack Modes ] -

# | Mode
===+======
0 | Straight    # hashcat -a 0 -m xx <hashfile> <zidian1> <zidian2>...
1 | Combination
3 | Brute-force
6 | Hybrid Wordlist + Mask
7 | Hybrid Mask + Wordlist

 

- [ Built-in Charsets ] -

? | Charset
===+=========
l | abcdefghijklmnopqrstuvwxyz
u | ABCDEFGHIJKLMNOPQRSTUVWXYZ
d | 0123456789
h | 0123456789abcdef
H | 0123456789ABCDEF
s | !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
a | ?l?u?d?s
b | 0x00 - 0xff

使用方法:

例:PDF文件密码破解

1、使用john的提取pdf文件密码hash的脚本pdf2john。或使用一个在线的网站https://www.onlinehashcrack.com/tools-pdf-hash-extractor.php

./pdf2john.pl xxx.pdf

2、选择hash类型和破解模式

hashcat -m 10700 -a 3 $pdf$4*4*128*-4*1*16*f8e0565b3c4d9795db089448fcf5426e*32*6cff45e6bdfcecaf9039ba17cdb06ae700000000000000000000000000000000*32*f78487d59915fc93bd17f9c687bf84d1360e98df8e382132d494ed78dc3518b1 -1 ?l?u?d ?1?1?1?1?1?1

-1 字符集 这里是?l?u?d 指数字+字母大小写
总共?1有6个,代表有6位

高级组合:
但如果不确定某一位是什么类型则需要进行高级组合:
-1, --custom-charset1=CS
-2, --custom-charset2=CS
-3, --custom-charset3=CS
-4, --custom-charset4=CS

例子1:
--custom-charset1=?l?d 那么就表示 ?1代表小写字母与数字组合,那么8位随机的数字与小写字母组合可以写成 ?1?1?1?1?1?1?1?1
完整代码:
hashcat test.txt -a 3 -m 0 --custom-charset1=?l?d ?1?1?1?1?1?1?1?1

例子2:
--custom-charset2=xiao106347 那么就表示 ?2 代表字符串由 x i a o 1 0 6 3 4 7 组成的所有可能组合
完整代码:
hashcat test.txt -a 3 -m 0 --custom-charset2=xiao106347 ?2?2?2?2?2?2?2?2

posted @ 2016-12-01 17:31  MichaelScofields  阅读(8088)  评论(3编辑  收藏  举报