『红蓝对抗』教你如何搞定某擎EDR卸载密码 – 作者:宸极实验室Sec

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


日期:2021-04-01

作者:Zero

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

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


0x00 水水水

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

img

0x01 前言

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

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

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

img

0x02 关键分析

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

image-20210326153741135

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

image-20210326164445707

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

图片[5]-『红蓝对抗』教你如何搞定某擎EDR卸载密码 – 作者:宸极实验室Sec-安全小百科

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

image-20210326161157104

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

image-20210326164621468

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

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

image-20210326165821231

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

最终整理一下流程:

  • 读取 EntBase.dat

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

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

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

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

img

0x03 验证测试

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

image-20210326184446844

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

image-20210329180750556

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

image-20210329180445276

image-20210329174639612

image-20210329174639612

0x04 总结

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

来源:freebuf.com 2021-04-06 20:08:45 by: 宸极实验室Sec

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论