赞
踩
#每日鸡汤:记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
——塞林格《麦田守望者》
一、什么是hash?
在计算机中hash是由哈希函数的逻辑算法所推算出来的一种由各种各样的数字、字母、符号所组成的值。
那么为什么要有hash,在计算机应用中哈希值的用途非常的广他就像人们的指纹,赋予给计算机数据的一个特殊的定义,那么人们为了方便就创建了hash表, hash表又叫散列表,是一种根据码值key 来进行获取数据的数据结构。
二、常见的hash算法
在一般的使用hash中通常是ASCII码值转换的,还有MD5 SHA1 SHA2-256等
三、hash算法的碰撞
在hash的运用中输入数据的长度是不固定的,输出的哈希值是固定的,那么就不能保证一对一的哈希值,那么就会发生碰撞。
所以这也是哈希密码爆破的原理
那么聪明的人们就想到了对数据进行“加盐”
那么什么的加盐
四、加盐
加盐,其实就像他的名字一样,对我要加强哈希的数据在其中添加一些随机的不相干的数值,在添加先存放这些数值到专门的地方,再对加过料的数据完整的进行哈希算法,这样既加强了数据的强度,又不会因记不得盐值而无法获取数据还大大提升了破解的难度。
***熟悉了hash的基本知识,那么现在介绍的是他们的破解软件,建议使用kali
在kali中有两个我常用的哈希破解软件
John the Ripper
简介
John是一个开源的暴力密码破解器,他支持的加密算法是DES MD4 MD5等
他的强大理论上只要你的时间是充足的那么95%的密码都可以破解
John模式的选择:
John支持4种模式
1、字典模式,就是通过用户提供的字典来进行爆破
2、单一爆破模式,是作者推荐的模式,这个会通过用户名、全名、等字典来进行爆破
3、递增模式,在此模式下John会发疯似的组合所有可能的密码,也是最强的一个,不过要足够的时间
4、外部模式,但要创建文件提供给john
在john的help帮助手册中的解析:
选 项
描 述
–single
single crack 模式,使用配置文件中的规则进行破解
–wordlist=FILE–stdin
字典模式,从 FILE 或标准输入中读取词汇
–rules
打开字典模式的词汇表切分规则
–incremental[=MODE]
使用增量模式
–external=MODE
打开外部模式或单词过滤,使用 [List.External:MODE] 节中定义的外部函数
–stdout[=LENGTH]
不进行破解,仅仅把生成的、要测试是否为口令的词汇输出到标准输出上
–restore[=NAME]
恢复被中断的破解过程,从指定文件或默认为 $JOHN/john.rec 的文件中读取破解过程的状态信息
–session=NAME
将新的破解会话命名为 NAME ,该选项用于会话中断恢复和同时运行多个破解实例的情况
–status[=NAME]
显示会话状态
–make-charset=FILE
生成一个字符集文件,覆盖 FILE 文件,用于增量模式
–show
显示已破解口令
–test
进行基准测试
–users=[-]LOGIN
UID[,…]
–groups=[-]GID[,…]
对指定用户组的账户进行破解,减号表示反向操作,说明对列出组之外的账户进行破解。
–shells=[-]SHELL[,…]
对使用指定 shell 的账户进行操作,减号表示反向操作
–salts=[-]COUNT
至少对 COUNT 口令加载加盐,减号表示反向操作
–format=NAME
指定密文格式名称,为 DES/BSDI/MD5/BF/AFS/LM 之一
–save-memory=LEVEL
设置内存节省模式,当内存不多时选用这个选项。 LEVEL 取值在 1~3
在john 自带一个字典 位于/usr/share/john/password.lst
或者是wordlists中的一个压缩文件中的rockyou.txt.gz里面是赠送的一个密码字典
用gzip –d 解压他
当然也可以自己去网上找字典
下面是实际操作:
首先将你的哈希值给填入文件中,不需要进行任何改动username:XXX:1123123232132132133:1312321321321321321:::类似于这个例子
我们把他
John –-format=NT –-wordlist=/usr/share/wordlists/rockyou XXXX (XXXX)是你要进行破解的哈希值文件
就可以进行破解了(注意:测试时密码不要设置太复杂不然他的字典中没有就破解不出来)
HASTCAT
简介
HASTCAT是和John实力相当的两个哈希值破解器
Hashcat号称宇宙最强密码破解工具,其是一款开源软件,有针对Windows、Mac和Linux的版本,支持CPU、GPU、APU、DSP和FPGA等多种计算核心,支持多种hash散列算法,支持对rar、office、pdf、windows账户、wifi等多种密码的破解。
hashcat常用命令
-m 指定哈希类型
-a 指定破解模式
-V 查看版本信息
-o 将输出结果储存到指定文件
--force 忽略警告
--show 仅显示破解的hash密码和对应的明文
--remove 从源文件中删除破解成功的hash
--username 忽略hash表中的用户名
-b 测试计算机破解速度和相关硬件信息
-O 限制密码长度
-T 设置线程数
-r 使用规则文件
-1 自定义字符集 -1 0123asd ?1={0123as}
-2 自定义字符集 -2 0123asd ?2={0123asd}
-3 自定义字符集 -3 0123asd ?3={0123asd}
-i 启用增量破解模式
--increment-min 设置密码最小长度
--increment-max 设置密码最大长度
hashcat破解模式介绍
0 straight 字典破解
1 combination 将字典中密码进行组合(1 2>11 22 12 21)
3 brute-force 使用指定掩码破解
6 Hybrid Wordlist + Mask 字典+掩码破解
7 Hybrid Mask + Wordlist 掩码+字典破解
hashcat集成的字符集
?l 代表小写字母
?u 代表大写字母
?d 代表数字
?s 代表特殊字符
?a 代表大小写字母、数字以及特殊字符
?b 0x00-0xff
那么他不像John 一样会自己检查hash值的属性(当然John有时也会出错)
那么如何大概的确定一个hash值的属性呢?
这个是hash值检测软件,用法很简单就是把你的纯哈希值放进去
可以看到这个hash可能是MD5
Least possible Hashs 是小可能的是一般很难判断
再回到HASHCAT
查询HASH的代数
hash --help
里面有想要的id 配合 -m 参数使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。