『红蓝对抗』教你如何搞定某擎EDR卸载密码

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

日期:2021-04-01作者:Zero介绍:逆向某终端安全管理软件卸载密码,红队活动在没有其他收获时,多一个密码组合规律,就多一种路子不是?

『红蓝对抗』教你如何搞定某擎EDR卸载密码


日期:2021-04-01

作者:Zero

介绍:逆向某终端安全管理软件卸载密码,红队活动在没有其他收获时,多一个密码组合规律,就多一种路子不是?

小编提示:关注『宸极实验室』,回复 『卸载密码』,获取脚本。


0x00 水水水

又是一年 HW 时,曾梦想仗剑走天涯,后来工作忙没去,拿历史库存产物水一篇文章,也不晓得适不适用最新版本,还请各路大佬多担待。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

0x01 前言

现在很多环境中都会安装终端安全管理软件以保护系统的安全,管理员当然不会允许用户擅自退出或者卸载软件,往往会在服务端配置一个密码,用以运维时使用,此类运维密码往往是红队活动中梦寐以求的东西,拿到一个说不定就一码通了呢!

之前做这件事的起因是这样,跟红队大佬好基友闲聊时,说起杀软卸载密码的问题,重点不是要卸载,而是关注密码如何验证,以及是否存在获取明文密码的可能,若不是随机密码,就可以从密码分析组合规律,在没有其他收获时,多一个密码组合规律,就多一种路子不是?

一想很有道理啊,再加上正好懂一点点逆向,那就安排一下。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

0x02 关键分析

直接进入正题,打开控制面板 - 程序和功能,找到目标右键卸载,会弹出对话框要求输入密码,这样的。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

挂上调试器,找到验证密码的地方,其实在这里已经可以实现无密码卸载的效果了,但这不是我们的目的,我们继续分析。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

向上找到函数头部,下断点顺一遍整体流程,从函数头开始,可以看到读取了文件 EntBase.dat

『红蓝对抗』教你如何搞定某擎EDR卸载密码

过去看一眼这个文件的内容,稍微对内容留个印象,根据名字盲猜这两个 HASH一个是卸载密码另一个是退出密码

『红蓝对抗』教你如何搞定某擎EDR卸载密码

顺一遍最主要目的是看一下 HASH怎么生成的,找到生成 HASH函数后发现特征与 MD5很像啊。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

这里最简单的验证办法就是下个断点,看一下参数输入以及结果输出值,将参数代入标准的 MD5算法对比一下就知道了,视情况而定,有时候没必要硬撸代码,验证后发现结果是一模一样啊,这里就不贴图了。

找一下参数来源,原来是将输入的内容与固定字符串进行拼接。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

整个验证流程里存在两个算法,两个的核心都是拼接固定字符串进行MD5,区别就是进行MD5的次数,个人猜测是历史遗留问题,需要兼容旧版本。

最终整理一下流程:

  • 读取 EntBase.dat

  • 将输入的密码与固定字符串进行拼接。

  • 将结果带入 MD5方法计算 HASH,两种算法分别计算。

  • 最后与 EntBase.dat中的 HASH进行对比,两个算法的结果通过一个即可。

至此可以确定,卸载密码无法逆向还原,也无法使用在线的网站查询(因为拼接+多次计算),但是可以正向碰撞一下,所以还是存在获取明文密码的可能,只是需要一个稍微强大亿点点的字典进行配合。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

0x03 验证测试

根据分析结果,写个脚本跑一下,字典使用 TOP 系列以及定制化生成字典进行碰撞测试,如单位名加日期、座机号等信息。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

拿去测试一下是否正确,先试一下退出。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

退出没有问题, 卸载应该也没有问题。

『红蓝对抗』教你如何搞定某擎EDR卸载密码

『红蓝对抗』教你如何搞定某擎EDR卸载密码

『红蓝对抗』教你如何搞定某擎EDR卸载密码

0x04 总结

临近攻防演练,各路大佬肯定也在丰富自己的武器库,文中提到的思路是下下策,而且这个验证脚本并没有完全工具化,使用起来也不怎么方便。本文内容可能会有些敏感,且无技术干货,涉及到的脚本就不公布在文章里了,需要的朋友可以在公众号回复 卸载密码获取。

发表评论

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