探索黑客技术攻防,实战研究与安全创新

导航菜单

卸载有密码保护的杀毒软件

最近公司购买了一套Symantec的杀软,准备推广到个人笔记本上。笔者试用了一下,不知道是因为驱动的bug还是其他原因,笔者的Photoshop突然变得非常卡。好吧,要跟杀软说拜拜了!结果打开控制面板一看,直接悲剧了!如图1所示。

A1.png

好吧,真是万恶的IT部门,竟然有密码保护。这个密码肯定是不会告诉我了,只好自己动手了。读到这里,读者们肯定会说了,完全可以直接秒了杀软的服务嘛。不过笔者出于好奇,还是挂上了这个进程,看看这个密码保护是怎么实现。

OD分析–内存爆破

看了看提示是中文的,下个MessageBoxW断点,果然断下来了。返回到MSIEXEC的领空,然后一直往上找,看看有没有办法绕过。


012BAAC0
012BAAC2
.
.
.
.
PUSH0
PUSHEBX
;T|itle
;T|ext
012BAAC3
PUSHDWORDPTRSS:[EBP-10]
PUSHDWORDPTRDS:[ESI+20]
012BAAC6
;h|Owner
012BAAC9
.
CALL
DWORD
PTR
DS:[<&USER32.MessageBoxW;
\MessageBoxW
012BAACF
.
MOVECX,EDI
向上翻了翻,很幸运地看到了一个大跳转,会直接跳过这个MessageBoxW的调用。
012BAA5C
012BAA5D
012BAA5F
012BAA61
012BAA63
012BAA68
012BAA6D
.
.
POPECX
TESTAL,AL
.
JESHORTMSI8.012BAA6D;这里下断点
MOVECX,ESI
.
.
.
CALLMSI8.010425C7
JMPMSI8.012BAB0B
CALLMSI8.0103ADF2
;这里大跳转


我们在12BAA5F处下断,在OD里执行,nop掉这个jz跳转,继续执行,发现SEP已经不再询问密码了!到这里我们就可以做个简单的内存补丁,去爆破了。方法也很简单,先枚举窗口,找到PID以后改内存就行了,最终效果如图2所示。不过我们还得继续分析呢,所以赶紧点了取消。

A2.png

密码保护分析

既然刚才已经追踪到了MSIExec的某个模块,我们干脆就去分析它吧!这里偷个懒,直接搜索字符串,最终发现了一处非常可疑的注册表读取调用,如图3所示。

A3.png

这个逻辑很明显了,先读取名字为SmcInstData的键值,如果不存在就不需要密码了。

打开注册表一看,那个键值长度刚好16位,碰巧这个模块有一处CryptCreateHash调用,创建的刚好是MD5密码,看来八九不离十了!如图4所示。

A4.png

试着直接干掉这个注册表键位,直接悲剧了,提示删除时出错。看来有Hook,拿出自写的工具统统Unhook掉。再次点击删除,键值果然消失了,顿时一阵快感袭来,终于能卸载了!再次点击删除,发现又提示输入密码。在注册表里按了下F5,发现SmcInstData被还原了。好吧,只好使出最后的一招了!

直接在注册表里去掉Everyone的读取权限,这下SEP没法读取了吧?再次运行卸载命令,SEP果然识别不了密码,直接跳到卸载步骤了!唉,百密一疏,杀软竟然不先去恢复注册表权限,就去解析密码了呢。

本文内容所提及均为本地测试或经过目标授权同意,旨在提供教育和研究信息,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,作者不鼓励或支持任何形式的非法破解行为。