怎么搞定某擎EDR卸载密码,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
0x01 前言
现在很多环境中都会安装终端安全管理软件
以保护系统的安全,管理员当然不会允许用户擅自退出或者卸载软件,往往会在服务端配置一个密码,用以运维时使用,此类运维密码往往是红队活动中梦寐以求的东西,拿到一个说不定就一码通了呢!
之前做这件事的起因是这样,跟红队大佬好基友闲聊时,说起杀软卸载密码的问题,重点不是要卸载,而是关注密码如何验证,以及是否存在获取明文密码的可能,若不是随机密码,就可以从密码分析组合规律,在没有其他收获时,多一个密码组合规律,就多一种路子不是?
一想很有道理啊,再加上正好懂一点点逆向,那就安排一下。
0x02 关键分析
直接进入正题,打开控制面板 – 程序和功能,找到目标右键卸载,会弹出对话框要求输入密码,这样的。
挂上调试器,找到验证密码的地方,其实在这里已经可以实现无密码卸载
的效果了,但这不是我们的目的,我们继续分析。
向上找到函数头部,下断点顺一遍整体流程,从函数头开始,可以看到读取了文件 EntBase.dat
。
过去看一眼这个文件的内容,稍微对内容留个印象,根据名字盲猜这两个 HASH
一个是卸载密码
另一个是退出密码
。
顺一遍最主要目的是看一下 HASH
怎么生成的,找到生成 HASH
函数后发现特征与 MD5
很像啊。
这里最简单的验证办法就是下个断点,看一下参数输入以及结果输出值,将参数代入标准的 MD5
算法对比一下就知道了,视情况而定,有时候没必要硬撸代码,验证后发现结果是一模一样啊,这里就不贴图了。
找一下参数来源,原来是将输入的内容与固定字符串进行拼接。
整个验证流程里存在两个算法,两个的核心都是拼接固定字符串进行MD5
,区别就是进行MD5
的次数,个人猜测是历史遗留问题,需要兼容旧版本。
最终整理一下流程:
-
读取
EntBase.dat
。 -
将输入的密码与固定字符串进行拼接。
-
将结果带入
MD5
方法计算HASH
,两种算法分别计算。 -
最后与
EntBase.dat
中的HASH
进行对比,两个算法的结果通过一个即可。
至此可以确定,卸载密码无法逆向还原,也无法使用在线的网站查询(因为拼接+多次计算),但是可以正向碰撞一下,所以还是存在获取明文密码的可能,只是需要一个稍微强大亿点点的字典进行配合。
0x03 验证测试
根据分析结果,写个脚本跑一下,字典使用 TOP 系列
以及定制化生成字典进行碰撞测试,如单位名加日期、座机号等信息。
拿去测试一下是否正确,先试一下退出。
退出没有问题, 卸载应该也没有问题。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
原创文章,作者:1402239773,如若转载,请注明出处:https://blog.ytso.com/221866.html