由于一般密码破解工具的破解速度实在是太慢,而且支持的密码破解协议也不多,暴力破解的话,有的密码1年时间也破不出来,用字典跑的话必须要明文密码在字典里才行,而且密码字典太大的话,也很浪费时间,跑不出来也是很常见的事情,下面推荐一款世界上破解密码速度最快的工具,hashcat,hashcat github地址,选择最新版的下载即可。

hashcat支持多种计算核心:

GPU
CPU
APU
DSP
FPGA
Coprocessor

下载官方NVIDA驱动程序

到NVIDA官网下载与自己电脑显卡型号相对应的显卡驱动程序如图所示,然后根据提示一步步安装即可。

安装完成后,重启电脑即可。

(NAVIDA的显卡只需要安装官方驱动即可,已经内含HASHCAT破解密码所需的GPU运算工具。记得使用上图官方下载的显卡驱动,不要使用windows自带的显卡驱动。)

测试hashcat是否能利用gpu运算速度来破解密码

 hashcat64.exe -b

基准测试hashcat破解各种密码散列的速度。

检查设置如果已正确安装了GPU能够看到它并会列出其属性和使用的驱动程序信息。

hashcat详细命令及使用

普通

 -m, —hash-type=NUM 哈希类别,其NUM值参考其帮助信息下面的哈希类别值,其值为数字。如果不指定m值则默认指md5,例如-m 1800是sha512 Linux加密。

 -a, –attack-mode=NUM 攻击模式,其值参考后面对参数。“-a ”字典攻击,“-a ” 组合攻击;“-a ”掩码攻击。

 -V, —version 版本信息

 -h, –help 帮助信息。

 –quiet 安静的模式, 抑制输出

基准测试

 -b, –benchmark 测试计算机破解速度和显示硬件相关信息


杂项

 –hex-salt salt值是用十六进制给出的

 –hex-charset 设定字符集是十六进制给出

 –runtime=NUM 运行数秒(NUM值)后的中止会话

 –status 启用状态屏幕的自动更新

 –status-timer=NUM 状态屏幕更新秒值

 –status-automat 以机器可读的格式显示状态视图

 –session 后跟会话名称,主要用于中止任务后的恢复破解。

文件

 -o, –outfile=FILE 定义哈希文件恢复输出文件

 –outfile-format=NUM 定义哈希文件输出格式,见下面的参考资料

 –outfile-autohex-disable 禁止使用十六进制输出明文

 -p, –separator=CHAR 为哈希列表/输出文件定义分隔符字符

 –show 仅仅显示已经破解的密码

 –left 仅仅显示未破解的密码

 –username 忽略hash表中的用户名,对linux文件直接进行破解,不需要进行整理。

 –remove 移除破解成功的hash,当hash是从文本中读取时有用,避免自己手工移除已经破解的hash

 –stdout 控制台模式

 –potfile-disable 不写入pot文件

 –debug-mode=NUM 定义调试模式(仅通过使用规则进行混合),参见下面的参考资料

 –debug-file=FILE 调试规则的输出文件(请参阅调试模式)

 -e, –salt-file=FILE 定义加盐文件列表

 –logfile-disable 禁止logfile

资源

 -c, –segment-size=NUM 字典文件缓存大小(M)

 -n, –threads=NUM 线程数

 -s, –words-skip=NUM 跳过单词数

 -l, –words-limit=NUM 限制单词数(分布式)

规则

 -r, –rules-file=FILE 使用规则文件: -r .rule,

 -g, –generate-rules=NUM 随机生成规则

 –generate-rules-func-min= 每个随机规则最小值

 –generate-rules-func-max=每个随机规则最大值

 –generate-rules-seed=NUM 强制RNG种子数

自定义字符集

 -, –custom-charset1=CS 用户定义的字符集

 -, –custom-charset2=CS 例如:

 -, –custom-charset3=CS –custom-charset1=?dabcdef : 设置? 为0123456789abcdef

 -, –custom-charset4=CS -2mycharset.hcchr : 设置 ? 包含在mycharset.hcchr

攻击模式

 –toggle-min=NUM 在字典中字母的最小值

 –toggle-max=NUM 在字典中字母的最大值

 –increment 使用增强模式

 –increment-min=NUM 增强模式开始值

 –increment-max=NUM 增强模式结束值

 –perm-min=NUM 过滤比NUM数小的单词

 –perm-max=NUM 过滤比NUM数大的单词

 -t, –table-file=FILE 表文件

 –table-min=NUM 在字典中的最小字符值

 –table-max=NUM 在字典中的最大字符值

 –pw-min=NUM 如果长度大于NUM,则打印候选字符

 –pw-max=NUM 如果长度小于NUM,则打印候选字符

 –elem-cnt-min=NUM 每个链的最小元素数

 –elem-cnt-max=NUM 每个链的最大元素数

 –wl-dist-len 从字典表中计算输出长度分布

 –wl-max=NUM 从字典文件中加载NUM个单词,设置0禁止加载。

 –case-permute 在字典中对每一个单词进行反转

参考

 = hash[:salt]

 = plain 明文

 = hash[:salt]:plain

 = hex_plain

 = hash[:salt]:hex_plain

 = plain:hex_plain

 = hash[:salt]:plain:hex_plain

 = crackpos

 = hash[:salt]:crackpos

 = plain:crackpos

 = hash[:salt]:plain:crackpos

 = hex_plain:crackpos

 = hash[:salt]:hex_plain:crackpos

 = plain:hex_plain:crackpos

 = hash[:salt]:plain:hex_plain:crackpos

调试模式输出文件 (for hybrid mode only, by using rules):

 = save finding rule

 = save original word

 = save original word and finding rule

 = save original word, finding rule andmodified plain

内置的字符集:

 ?l = abcdefghijklmnopqrstuvwxyz 代表小写字母

 ?u = ABCDEFGHIJKLMNOPQRSTUVWXYZ 代表大写字母

 ?d =  代表数字

 ?s = !”#$%&’()*+,-./:;<=>?@[\]^_`{|}~ 代表特殊字符

 ?a = ?l?u?d?s 大小写数字及特殊字符的组合

 ?b = × – 0xff

攻击模式

  = Straight (字典破解)

  = Combination (组合破解)

  = Toggle-Case (大小写转换)

  = Brute-force(掩码暴力破解)

  = Permutation(序列破解)

  = Table-Lookup(查表破解)

  = Hybrid dict + mask 字典加掩码破解

  = Hybrid mask + dict 掩码+字典破解

  = Prince(王子破解)

哈希类型
有关哈希具体值示例可以参考网址

  = MD5

  = md5($pass.$salt)

  = md5($salt.$pass)

  = md5(unicode($pass).$salt)

  = md5($salt.unicode($pass))

  = HMAC-MD5 (key = $pass)

  = HMAC-MD5 (key = $salt)

  = SHA1

  = sha1($pass.$salt)

  = sha1($salt.$pass)

  = sha1(unicode($pass).$salt)

  = sha1($salt.unicode($pass))

  = HMAC-SHA1 (key = $pass)

  = HMAC-SHA1 (key = $salt)

  = MySQL323

  = MySQL4./MySQL5

  = phpass, MD5(WordPress), MD5(phpBB3),MD5(Joomla)

  = md5crypt, MD5(Unix), FreeBSD MD5,Cisco-IOS MD5

  = MD4

  = NTLM

  = Domain Cached Credentials (DCC), MSCache

  = SHA256

  = sha256($pass.$salt)

  = sha256($salt.$pass)

  = sha256(unicode($pass).$salt)

  = base64(sha256(unicode($pass)))

  = sha256($salt.unicode($pass))

  = HMAC-SHA256 (key = $pass)

  = HMAC-SHA256 (key = $salt)

  = md5apr1, MD5(APR), Apache MD5

  = SHA512

  = sha512($pass.$salt)

  = sha512($salt.$pass)

  = sha512(unicode($pass).$salt)

  = sha512($salt.unicode($pass))

  = HMAC-SHA512 (key = $pass)

  = HMAC-SHA512 (key = $salt)

  = SHA-(Unix)

  = Cisco-PIX MD5

  = Cisco-ASA MD5

  = WPA/WPA2

  = Double MD5

  = bcrypt, Blowfish(OpenBSD)

  = MD5(Sun)

  = md5(md5(md5($pass)))

  = md5(md5($salt).$pass)

  = md5($salt.md5($pass))

  = md5($pass.md5($salt))

  = md5($salt.$pass.$salt)

  = md5(md5($pass).md5($salt))

  = md5($salt.md5($salt.$pass))

  = md5($salt.md5($pass.$salt))

  = md5($username..$pass)

  = md5(strtoupper(md5($pass)))

  = md5(sha1($pass))

  = Double SHA1

  = sha1(sha1(sha1($pass)))

  = sha1(md5($pass))

  = MD5(Chap), iSCSI CHAP authentication

  = sha1($salt.$pass.$salt)

  = SHA-(Keccak)

  = Half MD5

  = Password Safe SHA-

  = IKE-PSK MD5

  = IKE-PSK SHA1

  = NetNTLMv1-VANILLA / NetNTLMv1-ESS

  = NetNTLMv2

  = Cisco-IOS SHA256

  = Android PIN

  = AIX {smd5}

  = AIX {ssha256}

  = AIX {ssha512}

  = AIX {ssha1}

  = GOST, GOST R 34.11-

  = Fortigate (FortiOS)

  = OS X v10.+

  = GRUB 

  = IPMI2 RAKP HMAC-SHA1

  = sha256crypt, SHA256(Unix)

  = Drupal7

  = WBB3, Woltlab Burning Board 

  = scrypt

  = Cisco $$

  = Cisco $$

  = Radmin2

  = Django (PBKDF2-SHA256)

  = Cram MD5

  = SAP CODVN H (PWDSALTEDHASH) iSSHA-

  = PrestaShop

  = PostgreSQL Challenge-ResponseAuthentication (MD5)

  = MySQL Challenge-Response Authentication(SHA1)

  = SIP digest authentication (MD5)

  = Plaintext

特殊哈希类型

  = Joomla < 2.5.

  = PostgreSQL

  = osCommerce, xt:Commerce

  = Skype

  = nsldap, SHA-(Base64), Netscape LDAPSHA

  = nsldaps, SSHA-(Base64), Netscape LDAPSSHA

  = Oracle S: Type (Oracle +)

  = SMF > v1.

  = OS X v10., v10., v10.

  = EPi

  = Django (SHA-)

  = MSSQL()

  = MSSQL()

  = PeopleSoft

  = EPiServer .x < v4

  = hMailServer

  = EPiServer .x > v4

  = SSHA-(Base64), LDAP {SSHA512}

  = OS X v10.

  = MSSQL( & )

  = vBulletin < v3.8.5

  = PHPS

  = vBulletin > v3.8.5

  = IPB2+, MyBB1.+

  = Mediawiki B type

  = WebEdition CMS

  = Redmine Project Management Web App

第四步:hashcat破解密码规则示例

 ()字典攻击

 -a  password.lst
()1到8为数字掩码攻击 -a --increment --increment-min --increment-max ?d?d?d?d?d?d?d?d –O
?d代表数字,可以换成小写字母?l,大写字母?u,特殊字符?s,大小写字母+特殊字符?a,–O表示最优化破解模式,可以加该参数,也可以不加该参数。 ()8为数字攻击 -a ?d?d?d?d?d?d?d?d
同理可以根据位数设置为字母大写、小写、特殊字符等模式。 ()自定义字符
现在纯数字或者纯字母的密码是比较少见的,根据密码专家对泄漏密码的分析,%的个人密码是字母和数字的组合,可以是自定义字符了来进行暴力破解,Hashcat支持4个自定义字符集,分别是 - - - -。定义时只需要这样- ?l?d ,然后就可以在后面指定?,?2表示小写字母和数字。这时候要破解一个8位混合的小写字母加数字: Hashcat.exe -a –force - ?l?d hassh值或者hash文件 ????????
例如破解dz小写字母+数字混合8位密码破解: Hashcat -m -a - ?l?d dz.hash ????????
()字典+掩码暴力破解
Hashcat还支持一种字典加暴力的破解方法,就是在字典前后再加上暴力的字符序列,比如在字典后面加上3为数字,这种密码是很常见的。使用第六种攻击模式: a- (Hybrid dict + mask)
如果是在字典前面加则使用第7中攻击模式也即( a- = Hybridmask + dict),下面对字典文件加数字123进行破解: H.exe -a ffe1cb31eb084cd7a8dd1228c23617c8 password.lst ?d?d?d
假如ffe1cb31eb084cd7a8dd1228c23617c8的密码为password123,则只要password.lst包含123即可 ()掩码+字典暴力破解 H.exe -a ffe1cb31eb084cd7a8dd1228c23617c8 password.lst ?d?d?d
假如ffe1cb31eb084cd7a8dd1228c23617c8的密码为123password,则只要password.lst包含password即可。 ()大小写转换攻击,对password.lst中的单词进行大小写转换攻击 H.exe-a ffe1cb31eb084cd7a8dd1228c23617c8 password.lst
EXAMPLES
()8位数字破解 Hashcat64-m hash -a ?d?d?d?d?d?d?d?d -w –O
()-8位数字破解 Hashcat-m hash -a --increment --increment-min --increment-max ?d?d?d?d?d?d?d?d
()1到8位小写字母破解 Hashcat-m hash -a --increment --increment-min --increment-max ?l?l?l?l?l?l?l?l
()8位小写字母破解 Hashcat-m hash -a ?l?l?l?l?l?l?l?l -w –O
()-8位大写字母破解 Hashcat-m hash -a --increment --increment-min --increment-max ?u?u?u?u?u?u?u?u
()8位大写字母破解 Hashcat-m hash -a ?u?u?u?u?u?u?u?u -w –O
()5位小写+ 大写+数字+特殊字符破解 Hashcat-m hash -a ?b?b?b?b?b -w
()使用字典进行破解
使用password.lst字典进行暴力破解,-w 3参数是指定电力消耗 Hashcat -m -a -w hash password.lst
在执行破解成功后,hashcat会自动终止破解,并显示破解状态为Cracked,Recvoered中也会显示是否破解成功. 破解known_hosts中的IP地址
经过研究发现known_hosts中会对连接的IP地址进行HMAC SHA1加密,可以通过hexhosts攻击进行转换,然后通过hashcat进行暴力破解,其密码类型为160(HMAC-SHA1 (key = $salt))。 ()计算HMAC SHA1值 gitclone https://github.com/persona5/hexhosts.git
cdhexhosts
gcchexhosts.c -lresolv -w -o hexhosts
./hexhosts
获取known_hosts的HMAC SHA1加密值: 注意:known_hosts值一定要正确,可以将known_hosts文件复制到hexhosts文件目录。 ()组合攻击暴力破解 hashcat-a -m known_hosts.hash ips_left.txt ips_right.txt --hex-salt
组合攻击是将ips_left.txt和ips_right.txt进行组合,形成完整的IP地址进行暴力破解。 ips_left.txt和ips_right.txt文件可以用以下代码进行生成: ip-gen.sh: for a in `seq ` do for b in `seq0 ` do echo"$a.$b." >> ips_left.txt echo"$a.$b" >> ips_right.txt done done
()使用掩码进行攻击 hashcat -a -m known_hosts.hash ipv4.hcmask--hex-salt
ipv4.hcmask文件内容可在此站下载。 破解md5加密的IP地址
在CDN等网络或者配置中往往会对IP地址进行MD5加密,由于其位数3×+(xxx.xxx.xxx.xxx)=17位,通过正常的密码破解其时间耗费非常长,但通过分析其IP地址的规律,发现其地址XXX均为数字,因此可以通过hashcat的组合和掩码进行攻击。 hashcat-a –m ip.md5.txt ips_left.txt ips_right.txt hashcat -a1 -m ip.md5.txt ipv4.hcmask
另外在F5的cookie中会对其IP地址进行加密,可以参考的破解代码如下: import struct cookie = "1005421066.20736.0000" (ip,port,end)=cookie.split(".") (a,b,c,d)=[ord(i) for i in struct.pack("i",int(ip))] print "Decoded IP: %s %s %s %s" % (a,b,c,d) Decoded IP: 10.130.237.59
破解技巧总结
在使用GPU模式进行破解时,可以使用-O参数自动进行优化 暴力破解一条md5值
()9位数字破解 Hashcat64.exe-a --force d98d28ca88f9966cb3aaefebbfc8196f ?d?d?d?d?d?d?d?d?d
单独破解一条md5值需要加force参数 ()9位字母破解 Hashcat64.exe-a --force d98d28ca88f9966cb3aaefebbfc8196f ?l?l?l?l?l?l?l?l?l
破解带盐discuz密码
()数字破解
7位数字,7秒时间破解完成任务。 Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d
8位数字破解,9秒时间破解完成任务。: Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d?d
9位数字破解,9秒时间破解完成任务。 Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?d?d?d?d?d?d?d?d?d
字母破解
()6位小写字母 Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l
()7位小写字母 Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l
()8位小写字母 Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l?l 9分钟左右完成破解任务
()9位小写字母 Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?l?l?l?l?l?l?l?l?l -O
字母加数字
Hashcat64.exe-a --force -m - ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463???????
()7位大写字母 Hashcat64.exe-a –force –m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 ?u?u?u?u?u?u?u
()6到8位数字破解 Hashcat64.exe-a –force –m ffe1cb31eb084cd7a8dd1228c23617c8:f56463--increment --increment-min --increment-max ?l?l?l?l?l?l?l?l
自定义破解
()使用数字加字母混合6位进行破解 Hashcat64.exe-a --force -m - ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463?????? -O
()使用数字加字母混合7位进行破解,破解时间4分16秒 Hashcat64.exe-a --force -m - ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463??????? –O
()使用数字加字母混合8位进行破解 Hashcat64.exe-a --force -m - ?d?l ffe1cb31eb084cd7a8dd1228c23617c8:f56463???????? -O
字典破解模式
Hashcat64.exe-a --force -m ffe1cb31eb084cd7a8dd1228c23617c8:f56463 password.lst
使用字典文件夹下的字典进行破解: Hashcat32.exe-m mysqlhashes.txt –remove -o mysql-cracked.txt ..\dictionaries\*
会话保存及恢复破解
()使用mask文件规则来破解密码 hashcat-m -a --session mydz dz.hash masks/rockyou--.hcmask
()恢复会话 hashcat--session mydz --restore
掩码破解
mask规则文件位于masks下,例如D:\PentestBox\hashcat-4.1.\masks,执行破解设置为: masks/8char-1l-1u-1d-1s-compliant.hcmask
masks/8char-1l-1u-1d-1s-noncompliant.hcmask
masks/rockyou--.hcmask
masks/rockyou--.hcmask
masks/rockyou--.hcmask
masks/rockyou--.hcmask
masks/rockyou--.hcmask
masks/rockyou--.hcmask
masks/rockyou--.hcmask
运用规则文件进行破解 Hashcat -m mysqlhashes.txt–remove -o mysql-cracked.txt ..\dictionaries\* -r rules\best64.rule hashcat -m -a dz.hashpassword.lst -r rules\best64.rule -O
hashcat参数优化
考虑到hashcat的破解速度以及资源的分配,我们可以对一些参数进行配置
.Workload tuning 负载调优。
该参数支持的值有1,,,, --gpu-accel 可以让GPU发挥最大性能。
.Gpu loops 负载微调
该参数支持的值的范围是8-(有些算法只支持到1000)。 --gpu-loops 可以让GPU发挥最大性能。
.Segment size 字典缓存大小
该参数是设置内存缓存的大小,作用是将字典放入内存缓存以加快字典破解速度,默认为32MB,可以根据自身内存情况进行设置,当然是越大越块了。 --segment-size 可以提高大字典破解的速度。
LAST:密码设置建议
使用更长的字符串
使用更大的字符集字母、数字、符号 不要使用任何可能与你有关的字符作为密码或密码的一部分使用
 

最新文章

  1. ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用
  2. pyquery的问题
  3. iOS之01-基本语法
  4. CSS中相对定位与绝对定位
  5. maven -- 问题解决(一)解决eclipse中maven项目出现的问题
  6. [Windows Phone] APP上架,遇到错误2001的解决方案。(Error:2001)
  7. 上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。
  8. oracle,sqlserver,mysql 命令行 开启、关闭所需要的服务
  9. 2013年7月28日web前端学习笔记-------head相关标签应用
  10. 成为Java GC专家(4)—Apache的MaxClients参数详解及其在Tomcat执行FullGC时的影响
  11. cvThreshold()函数理解
  12. oracle中使用minus进行数据排除(类似SqlServer except函数)
  13. oracle解析xml完成版
  14. iPhone 真机调试应用程序
  15. Centos6.8 安装tomcat8.5.11
  16. 记kkpager分页控件的使用
  17. SciPy - 科学计算库(上)
  18. C# Oracle数据库操作类实例详解
  19. 18-09-20 关于Xlrd和Xlwt的初步学习
  20. Linux记录-CentOS配置Docker

热门文章

  1. vue的页面怎么显示到android的webview中
  2. pyinstaller 处理后程序找不到模块
  3. 什么是DO / DTO / BO / VO /AO ?
  4. Yii2.0 连接数据库
  5. python 创建虚拟环境:bat实现一键
  6. 忘记linux下的mysql密码,需要重新创建密码123456
  7. IIS 7.5 URL重写参数
  8. Python学习第二十二课——Mysql 表记录的一些基本操作 (增删改)
  9. vue+element ui table组件封装,使用render渲染
  10. mysql服务删除成功,依然存在