技术点
通过TDI过滤、DNS劫持、HTTP(s)注入、HOSTS重定向等技术手法篡改用户系统网络数据包,将正常网页访问劫持引流至指定私服网站,并利用安全软件云查杀数据包屏蔽、关机回调重写等手段实现对抗查杀。
技术细节
- A、注册TDI回调函数,过滤收发包
病毒驱动加载后,对TDI_SEND和TDI_SET_EVENT_HANDLER进行了处理,前者主要是负责网络数据的发包,后者则是负责对接收到网络数据进行处理,对这两个地方进行过滤处理之后,带来的效果就是访问A域名,实际打开的却是B网站。
在TDI_SEND中,通过检测360与其云端的通讯时的关键字段“x-360-ver:”,中断云查询,从而造成云查杀的失效。在TDI_SET_EVENT_HANDLER中,收到符合规则的请求响应数据后,病毒直接修改数据包,嵌入相应的HTML框架代码进行劫持
- B、设置IE代理,劫持HTTP访问
设置IE代理的目的,猜测是为了在病毒驱动被杀软清理后,依旧能够长期劫持网站访问所用。IE的代理配置信息由云端实时下发。
- C、创建关机回调,劫持DNS和自更新
下载劫持的DNS配置信息,然后在关机回调中设置电脑的DNS,从而完成DNS的修改劫持
- D、 创建映像加载回调,拦截其它病毒运行
在映像加载回调中,为了确保被感染的电脑能够被自己成功劫持,当检测到当前加载的是驱动程序时,还会对比签名是否为黑名单中的签名(黑名单从106.14.47.210:11054/bctlist.dat下载而来),若符合拦截规则,则直接禁止加载。
- E、 创建注册表回调,保护自身启动
在注册表回调中,若发现有对IE代理设置和驱动服务类注册表项的操作,则直接拒绝访问,防止相关注册表项被修改。
除此之外,病毒还会循环枚举注册表回调函数的地址,若检测到被删除,则会再次注册回调函数,这么做为了防止用户利用pchunter之类的ARK工具对回调函数进行删除操作,使病毒难以被手动清除。但如果是病毒程序自身升级需要修改相关的注册表项时,则会利用开关标记来暂停对相关注册表项的保护。
- F、 下载配置信息,实时更新劫持信息
无需与3环进程交互,完全由0环的驱动实现,而相关的配置信息,也统一从远程服务器下载。
参考
私服暗藏杀机,亡灵病毒肆虐江湖
https://www.freebuf.com/articles/system/198869.html