内网渗透:获取Windows内Hash密码的方法

描述

在内网渗透中,当攻击者获取到内网某台机器的控制权后,会议被攻陷的主机为跳板,通过收集域内凭证等各种方法,访问域内其他机器,进一步扩大资产范围。通过此类手段,攻击者最终可能获得域控制器的访问权限,甚至完全控制基于Windows操作系统的整个内网环境,控制欲环境下的全部机器。

Windows下安全认证机制

Windows下的安全认证机制总共有两种,一种是基于NTLM的认证方式,主要用在早期的Windows工作组环境中;另一种是基于Kerberos的认证方式,主要用在域环境中。

 

图1:NTLM认证流程图

这里主要对NTLM的认证流程做一下说明:

1、首先在客户端中输入username,password和domain,然后客户端会把密码进行Hash后的值先缓存到本地。

2、Client将username的明文发送给DC(域控)。

3、DC会生成一个16字节的随机数,也就是挑战码(Challenge),然后再传回给Client。

4、当Client收到挑战码以后,会先复制一份,然后和缓存中的密码Hash再一同混合Hash一次,混合后的值称为response,之后Client再将challenge,response以及username一并都传给server。

5、Server端在收到client传过来的这三个值以后会把它们都转发给DC。

6、当DC接到过来的这三个值的以后,会根据username到域控的账号数据库(ntds.dit)里面找到该username对应的hash,然后把这个hash拿出来和传过来的challenge值再混合hash。

7、将混合后的hash值跟传来的response进行比较,相同则认证成功,反之,则失败,当然,如果是本地登录,所有验证肯定也全部都直接在本地进行了。

在Windows2000以后,Windows机器都用NTLM算法在本地保存用户的密码,密码的NTLM哈希保存在%SystemRoot%System32configSAM文件中。Windows操作系统中的密码一般由两部分组成:一部分为LM Hash,另一部分为NTLM Hash。在Windows中,Hash的结构通常如下:

Username:RID:LM-Hash:NT-Hash

在windows2000以后的系统中,第一部分的 LM-hash 都是空值,因为LM-hash可以很容易的破解,所以windows2000之后这个值默认为空,所以第二部分的NTLM-hash才真正是用户密码的哈希值。在渗透测试中,通常可从Windows系统中的SAM文件和域控数据库的NTDS.dit文件(在域环境中,用户信息存储在NTDS.dit中)中获得所有用户的Hash。

使用PwDump工具获取密码Hash

PwDump7可以在CMD下提取出系统中的用户的密码hash,使用管理员权限直接运行该工具即可:

 

获取到Hash后,我们可以用破解工具来破解得到明文密码,也可以进行哈希传递攻击来横向渗透。

审核编辑:符乾江
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分