一、综述
近日,火绒安全实验室截获到一种内核级后门病毒,并将其命名为”Pengex”病毒。经分析,”Pengex”以劫持用户首页流量牟利为目的,但是不同于其他”流量劫持”类病毒的是,它技术高明、手段凶狠,会主动攻击国内主流的安全软件,使他们失去内核对抗能力,这会让电脑完全失去安全防护。诡异的是,Pengex唯独不攻击并且刻意”放过”腾讯电脑管家。
“Pengex”通过盗版系统盘和”注册机”软件进行传播,并在用户电脑中留下后门,日后可随时植入任意病毒,因此威胁隐患极大。”Pengex”会攻击各种主流的杀毒软件,包括火绒、360、金山等,导致这些软件的驱动无法加载,因此失去在内核层对抗病毒的能力。
但有意思的是,该病毒却唯独刻意放过了腾讯电脑管家,它将腾讯电脑管家加入白名单中,在进行”删除驱动回调”的操作时放过腾讯电脑管家。病毒的这种行为表明,该病毒团伙很可能是腾讯安全管家的系统盘渠道推广服务商,火绒建议”腾讯安全管家”彻查系统盘推广渠道。
“Pengex”通过修改浏览器配置和进程启动参数两种方式,来劫持首页牟利。在此过程中,病毒会按照制作者的计划,将不同的浏览器指向不同的导航站。该病毒不仅攻击安全软件,还会攻击其他同类病毒,以便独占用户电脑首页资源牟利。据分析,该病毒劫持首页后设置的渠道号是”oemxiazaiba2″(”下载吧”的全拼),请各大导航站关注并查证这个渠道账号。
“火绒安全软件”已经在第一时间更新病毒库,可彻底查杀该病毒。火绒工程师提醒广大用户,如需重装系统,务必通过正规渠道,购买正版系统,目前看来,盗版系统盘已经成为电脑病毒的重要传播渠道。
二、详细分析
该病毒是一个内核级后门病毒,初步怀疑该样本主要通过第三方系统盘方式进行传播。该样本在系统中运行后,会造成国内主流安全软件驱动程序无法正常加载,从而使安全软件失去防御能力。该病毒主要对抗的安全厂商包括:火绒、360、金山等,其恶意代码执行之后,可以执行远端C&C服务器存放的任意病毒代码。
该病毒分为两个部分,即病毒加载器和后门病毒,下文中分为两部分进行详细分析。病毒结构如下图所示:
病毒整体结构图
病毒加载器
该部分代码主要用于对抗安全软件查杀和进行内核对抗。加载器功能代码分为两个部分,先会在内存中通过虚拟映射加载一个新的ntoskrnl镜像,再通过相同的方式将真正的病毒驱动加载到内存中,并且将导入的ntoskrnl中的函数地址指向其虚拟加载的ntoskrnl镜像中的函数地址上,通过此方法可以绕过其他驱动在ntoskrnl中设置的内核钩子。全局变量is_virus_load是一个标记,通过传入驱动主函数中的RegistryPath参数是否为NULL判断是否为病毒通过虚拟映射方式加载。如下图所示:
加载器驱动主函数代码
(一)虚拟加载ntoskrnl
load_fake_ntoskrnl_safe函数会通过虚拟加载新的ntoskrnl镜像,在其执行完虚拟加载逻辑之后,会与当前内存中系统加载的ntoskrnl模块前0×200个字节数据进行比较,从而判断自己创建的ntoskrnl镜像内容是否正常。如下图所示:
检测虚拟加载是否成功
虚拟加载ntoskrnl
(二)虚拟加载后门病毒
load_rootkit函数会通过与虚拟映射ntoskrnl相同的方法加载真正的病毒驱动。病毒驱动的镜像数据是被异或0xC0加密过的,该函数首先会将病毒数据进行解密,之后对该驱动进行映射并修复导入表和重定位数据,最后通过调用ExQueueWorkItem函数执行病毒驱动入口。如下图所示:
加载病毒驱动
上图所示调用ExQueueWorkItem函数所传入的WORK_QUEUE_ITEM结构尾部带有附加数据,在上述调用中,附加数据存放有被加载驱动的入口点地址。如下图所示:
执行驱动入口
内核级后门
该病毒执行后,会不断地与C&C服务器(域名:caoduba.com或139.129.234.76,通讯端口:7897)进行通讯。病毒使用的域名和IP地址解密代码,如下图所示:
解密域名和IP地址
(一)病毒与C&C服务器通讯
病毒与C&C服务器的通讯内容分为两大类:
1)数据请求通知
服务器在获取到病毒请求数据的通知后,可以根据控制码返回被请求的数据。通过网络通讯,病毒可以进行远程驱动模块加载、获取远程动态库注入系统进程、获取配置数据进行流量劫持。控制码含义,如下图所示:
|