首页 » SEO优化 » php获取hash值技巧_运用GetHashes软件获取Windows系统Hash密码值

php获取hash值技巧_运用GetHashes软件获取Windows系统Hash密码值

访客 2024-12-13 0

扫一扫用手机浏览

文章目录 [+]

对入侵者来说,获取Windows的口令是全体攻击过程至关主要的一环,拥有系统原来用户的口令,将使得内网渗透和守控更加随意马虎。
Windows系统中的Hash密码值紧张有LM-HASH以及NTLM-HASH值两部分构成,一旦入侵者获取了系统的Hash值,通过LC5以及彩虹表等破解工具可以很快的获取系统的密码。
本文紧张磋商如何利用Gethashes工具来获取系统的Hash值,并对Hash值的天生事理等知识进行了先容,末了还先容了一些有关Hash破解方面的技巧。

Hash基本知识

(1)Hash定义

php获取hash值技巧_运用GetHashes软件获取Windows系统Hash密码值

Hash,一样平常翻译为“散列”,也有直接音译为“哈希”的,便是把任意长度的输入(又叫做预映射,pre-image),通过散列算法,变换成固定长度的输出,该输出便是散列值。
这种转换是一种压缩映射,也便是散列值的空间常日远小于输入的空间,不同的输入可能会散列成相同的输出,而不可能从散列值来唯一的确定输入值。
大略的说便是一种将任意长度的压缩到某一固定长度的择要的函数。

php获取hash值技巧_运用GetHashes软件获取Windows系统Hash密码值
(图片来自网络侵删)

(2)Hash的运用

HASH紧张用于信息安全领域中加密算法,它把一些不同长度的信息转化成凌乱的128位的编码里,叫做HASH值。
也可以说,Hash便是找到一种数据内容和数据存放地址之间的映射关系。

Hash算法在密码上的运用

MD5 和 SHA1 可以说是目前运用最广泛的Hash算法,而它们都因此 MD4 为根本设计的。
那么他们都是什么意思呢?这里大略说一下:

(1)MD4

MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的,MD是 Message Digest 的缩写。
它适用在32位字长的处理器上用高速软件实现,它是基于 32 位操作数的位操作来实现的。

(2) MD5

MD5(RFC 1321)是 Rivest于1991年对MD4的改进版本。
它仍以512位分组来输入,其输出是4个32位字的级联,与 MD4 相同。
MD5比MD4来得繁芜,并且速率较之要慢一点,但更安全,在抗剖析和抗差分方面表现更好

(3)SHA1 及其他

SHA1是由NIST NSA设计为同DSA一起利用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。
SHA-1 设计时基于和MD4相同事理,并且模拟了该算法。

Hash算法在信息安全方面的运用紧张表示在以下的3个方面:

(1) 文件校验

我们比较熟习的校验算法有奇偶校验和CRC校验,这2种校验并没有抗数据修改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意毁坏。
MD5 Hash算法的“数字指纹”特性,使它成为目前运用最广泛的一种文件完全性校验和(Checksum)算法,不少Unix系统有供应打算md5 checksum的命令。

(2)数字署名

Hash 算法也是当代密码体系中的一个主要组成部分。
由于非对称算法的运算速率较慢,以是在数字署名协议中,单向散列函数扮演了一个主要的角色。
对Hash值,又称“数字择要”进行数字署名,在统计上可以认为与对文件本身进行数字署名是等效的。
而且这样的协议还有其他的优点。

(3)鉴权协议

鉴权协议又被称作寻衅--认证模式:在传输信道是可被侦听,但不可被修改的情形下,这是一种大略而安全的方法。

Windows下Hash密码值

(1)Windows系统下的hash密码格式

Windows系统下的hash密码格式为:用户名称:RID:LM-HASH值:NT-HASH值,例如:

Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::表示

用户名称为:Administrator

RID为:500

LM-HASH值为:C8825DB10F2590EAAAD3B435B51404EE

NT-HASH值为:683020925C5D8569C23AA724774CE6CC

(2)Windows下LM Hash值天生事理

假设明文口令是“Welcome”,首先全部转换成大写“WELCOME”,再做将口令字符串大写转后后的字符串变换成二进制串:

“WELCOME” -> 57454C434F4D4500000000000000

技巧:可以将明文口令复制到UltraEdit编辑器中利用二进制办法查看即可获取口令的二进制串。

解释:如果明文口令经由大写变换后的二进制字符串不敷14字节,则须要在其后添加0x00补足14字节。
然后切割成两组7字节的数据,分别经str_to_key()函数处理得到两组8字节数据:

57454C434F4D45 -str_to_key()-> 56A25288347A348A

00000000000000 -str_to_key()-> 0000000000000000

这两组8字节数据将做为DESKEY对魔术字符串“KGS!@#$%”进行标准DES加密

\"大众KGS!@#$%\"大众 -> 4B47532140232425

56A25288347A348A -对4B47532140232425进行标准DES加密-> C23413A8A1E7665F

0000000000000000 -对4B47532140232425进行标准DES加密-> AAD3B435B51404EE

将加密后的这两组数据大略拼接,就得到了末了的LM Hash

LM Hash: C23413A8A1E7665FAAD3B435B51404EE

关于str_to_key()函数见末了附录1

Windows下NTLM Hash天生事理

从IBM设计的LM Hash算法存在几个弱点,微软在保持向后兼容性的同时提出了自己的寻衅相应机制,NTLM Hash应运而生。
假设明文口令是“123456”,首先转换成Unicode字符串,与LM Hash算法不同,这次不须要添加0x00补足14字节

\"大众123456\公众 -> 310032003300340035003600

从ASCII串转换成Unicode串时,利用little-endian序,微软在设计全体SMB协议时就没考虑过big-endian序,ntoh()、hton()函数不宜用在SMB报文解码中。
0x80之前的标准ASCII码转换成Unicode码,便是大略地从0x??变成0x00??。
此类标准ASCII串按little-endian序转换成Unicode串,便是大略地在原有每个字节之后添加0x00。
对所获取的Unicode串进行标准MD4单向哈希,无论数据源有多少字节,MD4固定产生128-bit的哈希值,

16字节310032003300340035003600 -进行标准MD4单向哈希-> 32ED87BDB5FDC5E9CBA88547376818D4

就得到了末了的NTLM Hash

NTLM Hash: 32ED87BDB5FDC5E9CBA88547376818D4

与LM Hash算法比较,明文口令大小写敏感,无法根据NTLM Hash判断原始明文口令是否小于8字节,摆脱了魔术字符串\"大众KGS!@#$%\"大众。
MD4是真正的单向哈希函数,穷举作为数据源涌现的明文,难度较大。

利用GetHashes获取Windows系统的Hash密码值

GetHashes目前最高版本是v1.4,它是InsidePro公司早期的一款Hash密码获取软件,其公司地址为:http://www.InsidePro.com,该公司还有“SAMInside”、“PasswordsPro”以及“Extreme GPU Bruteforcer”三款密码破解软件。

(1)GetHashes命令利用格式

GetHashes <SAM registry file> [System key file] Or GetHashes $Local

一样平常利用 “GetHashes $Local”来获取系统的Hash密码值,该命令仅在system权限下才能实行成功。
一样平常根据个人爱好,可以将“GetHashes.exe”工具软件命名为其它名称,例如在后面案例中,就将其命名为“getpw”。

(2)利用GetHashes获取系统Hash值实例

将GetHashes重命名为getpw,然后将其复制到欲获取hash密码值的系统盘中,然后实行“getpw $local”,如图1 所示,顺利获取其密码Hash值,在本案例中利用的是Radmin的Telnet,单击“文本”-“保存为”将结果保存为一个新文件,然后利用UltraEdit编辑器进行编辑,仅仅保存Hash密码值部分,后面可利用LC5导入Hash密码值即可破解系统的密码值。

图1 获取系统Hash值

把稳:

(1)利用“GetHashes”来获取系统的Hash密码值,必须要在System权限下,也便是在反弹shell或者telnet下。

(2)如果系统中安装有杀毒软件或者防火墙,有可能由于杀毒软件和防火墙的保护而导致密码获取失落败。
通过研究创造,由于Gethashes软件威力巨大,紧张用在入侵过程中获取系统的Hash密码值,因此绝大多少杀毒软件已经将GetHashes软件加入到病毒库中,如图2 所示,是Castlecops网站供应的关于各大杀毒软件针对GetHashes所做的病毒库版本以及更新结果。

图2 杀毒软件已经将Gethashes作为病毒处理

(3)InsidePro公司在其网站上还供应了一个Hash产生器,通过输入一些参数值能够天生经由某种加密算法处理的口令密码值,如图3 所示,有兴趣的朋友可以去考试测验,该功能在研究系统的Hash密码值天生中可以进行相互验证。

图3 Hash天生器

(4)Hash密码值在线查询

在网站http://hash.insidepro.com/中还可以在线查询Hash密码值的原始明文口令,如图4 所示,将获取的MD5加密后的Hash值输入后,单击“Search”按钮,如果数据库中存在则会不才面给出查询结果。

图4 在线破解Hash密码值

利用GetHashes获取系统Hash值技巧

利用GetHashes来获取系统的Hash值一样平常是在得到了系统的部分或者全部掌握权限,常日是在新漏洞利用工具出来后,例如Ms08067漏洞利用工具,当存在Ms0867漏洞时,通过利用Ms08067漏洞利用工具得到存在漏洞打算机的一个反弹Shell,然后再将“GetHashes”软件上传到系统中来实行“GetHashes $Local”命令。
对GetHashes工具的利用,笔者将一些履历技巧进行总结。

(1)在得到反弹Shell的情形下,首先查看系统是否存在杀毒软件;如果存在,则考试测验是否可以关闭,如果不能关闭,则放弃利用GetHashes来获取Hash密码值,转向第二步。

(2)查看系统是什么系统,是否开启3389远程终端,如果未开启3389终端,可否直接开启3389终端。
如果可以利用3389终端,则直接添加一个具有管理员权限的用户,然后利用用户登录到系统。

(3)关闭杀毒软件,再次通过shell或者其他掌握软件的telnet来实行“GetHashes $Local”命令来获取Hash密码值,然后删除新添加到用户。

干系免费资源

(1)在线Hash密码值破解:http://hash.insidepro.com/

(2)在线天生Hash密码值:http://www.insidepro.com/hashes.php?lang=eng

(3)免费字典下载:http://www.insidepro.com/eng/download.shtml

(4)SAMInside http://www.insidepro.com/download/saminside.zip

(5)PasswordsPro http://www.insidepro.com/download/passwordspro.zip

(6)Extreme GPU Bruteforcer http://www.insidepro.com/download/egb.zip

作者先容:陈小兵,北京理工大学博士,打算机网络安全攻防专家,原海军某部网络安全研究员、公安部网络安全攻防实验员、曾就职于北京公安局网络安全总队,紧张从事网络安全攻防研究事情,在网络安全研究与培训、病毒戒备、网络渗透等领域具有20年以上履历,在业内享有盛名。
曾出版多本业内威信性著作包括《SQL Server2000培训教程》《黑客攻防及实战案例解析》《Web渗透及实战案例解析》《安全之路-Web渗透及实战案例解析第二版》、《黑客攻防实战加密与解密》,在海内核心期刊及普通学术期刊揭橥论文20余篇。

标签:

相关文章