windows下hashcat利用GPU显卡性能破解密码
2024-09-27 16:18:26
由于一般密码破解工具的破解速度实在是太慢,而且支持的密码破解协议也不多,暴力破解的话,有的密码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:密码设置建议
使用更长的字符串
使用更大的字符集字母、数字、符号 不要使用任何可能与你有关的字符作为密码或密码的一部分使用
最新文章
- ASP.NET Core 静态文件及JS包管理器(npm, Bower)的使用
- pyquery的问题
- iOS之01-基本语法
- CSS中相对定位与绝对定位
- maven -- 问题解决(一)解决eclipse中maven项目出现的问题
- [Windows Phone] APP上架,遇到错误2001的解决方案。(Error:2001)
- 上位机用USB做虚拟串口,总算抓到一个纯代码的总结了,没有坑的完美解决。
- oracle,sqlserver,mysql 命令行 开启、关闭所需要的服务
- 2013年7月28日web前端学习笔记-------head相关标签应用
- 成为Java GC专家(4)—Apache的MaxClients参数详解及其在Tomcat执行FullGC时的影响
- cvThreshold()函数理解
- oracle中使用minus进行数据排除(类似SqlServer except函数)
- oracle解析xml完成版
- iPhone 真机调试应用程序
- Centos6.8 安装tomcat8.5.11
- 记kkpager分页控件的使用
- SciPy - 科学计算库(上)
- C# Oracle数据库操作类实例详解
- 18-09-20 关于Xlrd和Xlwt的初步学习
- Linux记录-CentOS配置Docker
热门文章
- vue的页面怎么显示到android的webview中
- pyinstaller 处理后程序找不到模块
- 什么是DO / DTO / BO / VO /AO ?
- Yii2.0 连接数据库
- python 创建虚拟环境:bat实现一键
- 忘记linux下的mysql密码,需要重新创建密码123456
- IIS 7.5 URL重写参数
- Python学习第二十二课——Mysql 表记录的一些基本操作 (增删改)
- vue+element ui table组件封装,使用render渲染
- mysql服务删除成功,依然存在