其实主要是来科普下hashcat系列的,如果用过的就撸过吧。
Hashcat-plus是目前我见过的支持算法最多的GPU破解工具,支持Windows和Linux。另外带了Jumbo补丁的John貌似也不错,没怎么用过,不发表评论。
Hashcat系列有3个版本,这也是很多人一开始容易搞混的地方。三个版本分别是hashcat、 oclhashcat-lite和oclhashcat-plus,其中hashcat是利用CPU来暴力破解密码的,支持的算法是最多的,但是CPU本身破解速度很慢,所以我一般不用这个,除非是只有hashcat支持这种加密算法。
剩下 oclhashcat-lite和oclhashcat-plus都是利用GPU来破解密码的,破解速度比利用CPU的hashcat快很多倍。 Oclhashcat-lite和oclhashcat-plus的区别从名字就可以看出来,一个是精简版,支持的算法少很多,所以我一般用 oclhashcat-plus。
Hashcat-plus支持的算法在0.9版以后增加了许多,最新的版本是0.12。支持的算法列表如下:
* Generic hash types:
0 = MD5
10 = md5($pass.$salt)
20 = md5($salt.$pass) =》 Serv-U FTP
30 = md5(unicode($pass).$salt)
40 = md5($salt.unicode($pass))
100 = SHA1
110 = sha1($pass.$salt)
120 = sha1($salt.$pass)
130 = sha1(unicode($pass).$salt)
140 = sha1($salt.unicode($pass))
300 = MySQL
400 = phpass, MD5(WordPress), MD5(phpBB3)
500 = md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5
900 = MD4
1000 = NTLM
1100 = Domain Cached Credentials, mscash
1400 = SHA256
1410 = sha256($pass.$salt)
1420 = sha256($salt.$pass)
1500 = descrypt, DES(Unix), Traditional DES => .htpasswd
1600 = md5apr1, MD5(APR), Apache MD5
1700 = SHA512
1710 = sha512($pass.$salt)
1720 = sha512($salt.$pass)
1800 = sha512crypt, SHA512(Unix)
2100 = Domain Cached Credentials2, mscash2
2400 = Cisco-PIX MD5
2500 = WPA/WPA2
2600 = Double MD5
3000 = LM
3100 = Oracle 7-10g, DES(Oracle)
3200 = bcrypt, Blowfish(OpenBSD)
5000 = SHA-3(Keccak)
* Specific hash types:
11 = Joomla
21 = osCommerce, xt:Commerce
101 = nsldap, SHA-1(Base64), Netscape LDAP SHA
111 = nsldaps, SSHA-1(Base64), Netscape LDAP SSHA
112 = Oracle 11g
121 = SMF > v1.1
122 = OSX v10.4, v10.5, v10.6
131 = MSSQL(2000)
132 = MSSQL(2005)
141 = EPiServer 6.x
1722 = OSX v10.7
2611 = vBulletin < v3.8.5 => Discuz Xiuno ECshop 等等
2711 = vBulletin > v3.8.5
2811 = IPB2+, MyBB1.2+
可以看到相当的多,一般见的多的也就是MD5系列,SHA系列,MSSQL,ORACLE,MySQL,LM,NTLM,Domain Cached Credentials, mscash,Wordpress,Joomla等等,基本上我们常见的算法类型都支持。
这里有点特别注意的是DZ论坛的加密方式是md5(md5($pass).$salt),列表中并没有,其实DZ的这种加密方式和vBulletin<v3.8.5是一样的,只是salt的长度不一样,貌似用这种加密方式的CMS还有很多,只要有hash和salt,就可以破解,只不过破解速度稍慢于纯MD5。
这里说个小插曲,我曾经用小号混迹在某个QQ群里,群里居然有Helen大牛,当时Helen在吹NB说把COG的库拖了,但是密码破解不了,我说了句密码是可以破的,而且很简单,顺便提醒他COG的库早在几个月前就被人拖走了。
我记得当时Helen牛说“DZ论坛的密码是破不了的,要我说几遍”,那嚣张的语气至今让我颤抖,唉,在此再膜拜一下Helen……
下面说下hashcat-plus具体的使用方法,以oclhashcat-plus v0.08为例,
这里有个问题需要注意下,我下载了最新的oclhashcat-plus v0.12,但是在破解DZ论坛这种格式的hash时老是出错,不得已只能用老版本,但是老版本提示:
ERROR: This copy of cudaHashcat-plus is outdated. Get a more recent version.
后来Google得知只要把日期调整回2012年就能使用了。
继续说使用方法:
解压oclhashcat-plus后里面会有4个exe文件,分别是cudaHashcat-plus32.exe ,cudaHashcat-plus64.exe 和oclHashcat-plus32.exe, oclHashcat-plus64.exe,后面的32和64是根据操作系统不同选择的,
然后这里根据显卡不同需要选择不同的程序运行,N卡(即Nvidia)需要选择cudaHashcat-plus,如果是A卡(即ATI,不过被AMD收购了),则选择oclHashcat-plus。
比如我公司的机器是A卡5700系列,Win7 X64,就选的oclHashcat-plus64.exe,家里自己的电脑是N卡GTX 550Ti,用的就是cudaHashcat-plus64.exe。
Hashcat-plus有个图形化界面版,但是我用的不习惯,最后还是用命令行版了,所以这里也只介绍命令行版本。
介绍几个主要的参数,
-m 这个是指定破解的hash的类型,具体的类型可以在--help参数中看到。默认是0也就是MD5
-a 指定破解的模式,默认是字典模式
-o 输出文件,破解成功的密码存放的文件
--remove 移除破解成功的hash,当hash是从文本中读取时有用,避免自己手工移除已经破解的hash
--username 忽略用户名,如果你的hash文件中是username:hash这种格式只需要指定这个参数,就不需要再手工编辑了
-r 指定规则文件,字典根据规则文件做变形,用于破解相似密码
最基本的破解MD5(hashcat-plus用H.exe代替):
H.exe -m 0 0192023a7bbd73250516f069df18b500 e:\dict\cnpassword.dic
由于-m 0可以省略,所以直接这样就行了
H.exe 0192023a7bbd73250516f069df18b500 e:\dict\cnpassword.dic
2秒就破解了,字典是自己收集的400M的一个字典。
坑爹的是admin123在CMD5是需要收费的!!!
看吧,又给我们屌丝省了1毛钱。
带salt的hash破解方法
以COG论坛的hash为例,整理后cog.txt内格式如下:
admin:b2e91c06a91f2135e269140dd88b65b3:523570
z5r0:cf3e732ea198670ec25b6e6ad6400202:T2Pbsx
coldface:a91d20a81b578a329bf440d4f59a4bfa:720f15
用户名:hash:salt
因为有用户名,所以得加上--username选项,因为是DZ论坛的,格式是md5(md5($pass).$salt),所以类型-m是2611
具体命令如下:
H.exe --username --remove -o cog-cracked.txt -m 2611 cog.txt e:\dict\cnpassword.txt
看下运行的状态图:
总共494条hash,只运行了4秒就破解了68条,总共需要8分钟左右。
破解的部分结果:
如果是破解单条hash,指定hash的时候加个:把salt跟在后面就行。命令如下:
H.exe -m 2611 67b668144b070fab68291c79dbf364c4:fd7115 e:\dict\
下面来看高级点的玩法:
规则文件
Rule可以让字典根据规则文件中的规则进行变形,比如在字典所有明文后面加上123再去破解,或者把字母o变成数字0,或者首字母大写等等。
详细的规则编写可以参考这里:
http://hashcat.net/wiki/doku.php?id=rule_based_attack
这里给出简单的例子,比如在明文后面加上1314的规则是这样的:
$1 $3 $1 $4
假如规则文件名是123.rule,那么使用的时候加-r 123.rule即可:
H.exe --remove -r 123.rule -o cog-cracked.txt cog.txt d:\dict\dict.txt
规则文件可以指定多个,会达到组合的效果。
暴力破解
当-a指定为3时,就是暴力破解模式,这个模式下需要自己指定mask和长度。
Hashcat-plus中以?l表示小写字母,?d表示数字,?u表示大写字母,?s表示所有可打印符号,所以当你准备尝试用纯9位数字来破解MD5时就不必先生成字典了,可以运行如下命令:
H.exe -a 3 --force d98d28ca88f9966cb3aaefebbfc8196f ?d?d?d?d?d?d?d?d?d
貌似用暴力破解破解一条hash时要加上--force选项。
2秒就破解了,而CMD5还是坑爹的要收费呀 在v0.09以后加入了一个新的mask字符 ?a ,?a代表所有可打印字符,它等于?l?u?d?s加在一起。 自定义字符 现在纯数字或者纯字母的密码是比较少见的,常见多的是字母和数字的组合,而我们并不知道哪一位会是字母或者数字,暴力破解时就会比较麻烦,这时候就需要用到自定义字符了。 Hashcat-plus支持4个自定义字符集,分别是 -1 -2 -3 -4。 定义时只需要这样 -2 ?l?d ,然后就可以在后面指定?2,?2表示小写字母和数字。这时候要破解一个7位混合的小写字母加数字时就可以这样指定了: H.exe -a 3 --force -2 ?l?d eb5a0ada23e57c1a2abd79a469b2542d ?2?2?2?2?2?2?27位全部跑完只要2分钟,字母数字混合,而CMD5依然收费啊 其实真正密码是3f7g9jg5这样的密码是很少很少的,很难记得住,一般是一串字母加一串数字或者是一串数字跟着一串字母比较多,所以我推荐是逐个暴力破解,这样速度快很多,是在不行了再来全部进行排列组合。 比如8为字母数字,我一般按照这样的顺序来破解: 1位字母+7为数字 2位字母+6为数字 …… 7位字母+1为数字 最后如果实在没有破解再来尝试自定义的字符集,来进行8位全排列。 比如这个帖子中我就是这样破解掉的,就花了十几分钟就搞定了 https://www.t00ls.net/redirect-21631.html#lastpost 字典+暴力破解 Hashcat-plus还支持一种字典加暴力的破解方法,就是在字典前后再加上暴力的字符序列。 比如在字典后面加上3为数字,这种密码是很常见的 看下-a的具体选项 * Attack modes: 0 = Straight 1 = Combination 3 = Brute-force 6 = Hybrid dict + mask 7 = Hybrid mask + dict 当攻击模式为6时,是在字典后面加,如果是7则是加在前面 H.exe -a 6 8d28941671fb0cb69dbfdc6937be9f76 e:\dict\test.txt ?d?d?d Hash的明文是t00ls123,这时候只要我的字典中有t00ls就可以把这个密码破解掉。 Tips: Serv-u FTP的密码破解 其实这个东西很简单,加密算法:http://hi.baidu.com/tryer99/item/0ff65b40d832a7a860d7b9a1 就是把那两个字母看成salt,那么加密算法就是md5($salt.$pass),而salt已经知道了,那么直接选算法破解就是了…… 还有很多高级的玩法就需要各位基友自己去探索了 最后是几个在线破解的网站: http://www.md5decrypter.co.uk/ 很多CMD5收费的这里都可以查到 http://ops.conus.info:669/ Oracle在线破解 http://www.objectif-securite.ch/ophcrack.php LM在线查询 http://www.md5decrypter.co.uk/hash-a-password.aspx 密码hash计算 0116更新: 顺广大基友要求加一些字典 自己整理的国内字典 CSDN 天涯 17173等等明文字典集合: http://pan.baidu.com/share/link?shareid=193969&uk=1965926143 QQ盗号箱子密码集合: http://pan.baidu.com/share/link?shareid=193972&uk=1965926143 国外字典 老外破解的hash明文字典:http://thireus.frenchdev.com/Sha ... ordList_CLEANED.zip 附带一篇老外破解密码的文章,值得一看:http://blog.thireus.com/cracking ... d5-hashed-passwords MD5Decrypter 明文字典: http://home.btconnect.com/md5decrypter/passwords.zip Linked-in泄露hash破解的明文字典: http://home.btconnect.com/md5decrypter/linkedin_found.zip 国外字典集合(我的国外的字典基本来自这里):http://www.skullsecurity.org/wiki/index.php/Passwords 18-in-1 (4.5GB/37GB) 需要翻墙,文章中同样提到了很多其他的字典下载地址: http://g0tmi1k.blogspot.com/2011/06/dictionaries-wordlists.html 另外分享下自己整理字典的小技巧: 我是用linux的命令sort和uniq来进行排序和去重的,这两个命令有windows版。 windows自带有个sort,但是耗内存很多,当文件有好几百M时就不能用了。 进行sort之前,最好先执行set LC_ALL=C,不然碰到特殊字符会出错,linux执行export LC_ALL='C'