申请会员ID:狮子座小时光
个人邮箱:85569256@qq.com原创技术文章:
实战HIPS拦截恶意软件劫持浏览器主页希望加入吾爱大家庭。本人新手,出现什么技术性问题欢迎给予指正。
首先介绍样本为游迅网的游戏启动器,此启动器在运行后会恶意更改用户的浏览器主页为360网址导航。
恶意软件
下图取自同学,使用启动器后浏览器首页被劫持为360网址导航,更改主页无效。
远程协助了一下,发现使用的是附加启动参数的方法达到了劫持浏览器主页的效果
首先了解一下这种劫持的实质,这种劫持在快捷方式后面加启动参数,当浏览器的启动参数为网址时则认为以浏览器打开目标网站,故达到劫持主页的目标。
实现加参数来启动,需要调用IShellLink和IPersistFile两个COM口,可以在HIPS里禁用这两个COM口达到禁止修改的目的。
由于同学电脑只装了EAV,但是EAV的HIPS并没有COM口保护策略,EAV对HIPS的定义只是辅助。所以上述保护COM的思路行不通。
变换思维,从快捷方式的修改原理出发,由于修改快捷方式的实质为:删除原快捷方式,创建新的快捷方式
故在文件的创建上进行HIPS拦截 分析实质:
创建新的快捷方式,调用头文件shobjidl.h里的IPersistFile中的函数load,其函数原型为: [Asm] 纯文本查看 复制代码 HRESULT Load(
LPCOLSTR pszFileName, //快捷方式的文件名,ANSI字符编码
DWORD dwMode //读取方式
); dwMode可取如下值:STGM_READ:只读 STGM_WRITE:只写 STGM_READWRITE:读写
通过IShellLink里的类成员GetArguments获取参数信息,使用SetArguments进行加载;同样,使用GetDescription获得描述信息;使用GetHotkey获得快捷键;使用GetIconLocation获得图标;使用GetIDList:获得快捷方式的目标对象的item identifier list;使用GetPath获得快捷方式的目标文件或目录的全路径;使用GetShowCmd获得快捷方式的运行方式;使用GetWorkingDirectory获得工作目录 则改样本的执行方式为: [Asm] 纯文本查看 复制代码 (1) 初始化COM接口
(2) 创建IShellLink对象
(3) 从IShellLink对象中获取IPersistFile对象接口
(4) 操作IPersistFile对象
(5) 释放IPersistFile对象接口
(6) 释放IShellLink对象
(7) 释放COM接口
将样本载入OD,脱掉ASP壳后来到OEP,运行样本后在窗口载入事件前下断,F8单步走一次即可看到CoCreateInstance函数调用,证明思路正确。
在EAV添加文件规则
启用询问操作,方便操作判断执行者,启用日志,方便判断拦截记录,启用通知用户,方便测试HIPS规则是否正常工作,监控删除和写入权限
监控任务栏Chrome的快捷方式,路径为:
[Asm] 纯文本查看 复制代码 C:\Users\狮子座小时光\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Google Chrome.lnk
启用规则,运行样本将会提示是否拦截,进行阻止。说明规则正确。打开浏览器,一切正常,主页未被修改,细节化规则并保存退出。
<完 />
|