本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:【j2开奖】谍影追踪:全球首例UEFI_BIOS木马分析(2)

时间:2017-04-27 05:23来源:668论坛 作者:j2开奖直播 点击:
然后,返回继续执行,当执行到BIOS初始化好,准备加载磁盘MBR代码的时候,就会执行木马的代码。木马这时候会挂接INT15H中断,然后恢复执行原来的代码

然后,返回继续执行,当执行到BIOS初始化好,准备加载磁盘MBR代码的时候,就会执行木马的代码。木马这时候会挂接INT15H中断,然后恢复执行原来的代码,这样就完成了挂钩,后续就和暗云系列的MBR木马相似,通过挂钩INT15H来一步一步的挂钩内存,加载自身。

这样,当系统MBR获得执行的时候,木马已经在内存中挂好了INT15h的HOOK,之后,会HOOK bootmgr!Archx86TransferTo64BitApplicationAsm获得下次执行机会,直播,然后再HOOK winload!OslArchTransferToKernel,,然后等内核加载时候会HOOK ZwCreateSection,从而切入到内核运行,然后会设置线程回调。

2.3 线程回调挂钩

接下来会设置线程回调 PsSetCreateThreadNotifyRoutine和进程回调PsSetCreateProcessNotifyRoutine,进程回调中只打印了下"Process %d Create %d\n",线程回调才是关键内容。

线程回调中木马判断是否为csrss.exe进程,如果不是则跳过,如果是就创建一个系统线程,并且插入一个工作线程,将自身的线程回调抹去。

2.4 内核线程网络下载代码

在创建的系统线程内会先等待1分钟大概是为了等网络准备好。

然后会尝试使用两种方式去下载恶意Code到内核执行,

优先尝试UDP DownLoadShellCodeByUDP,函数为解析域名。

使用0xDEDE43D0 0x8080808,两组DNS域名转化过来,即(222.222.67.208 8.8.8.8)

与通信端口为0x801F即8064号端口。

优先使用0x3500即53号端口请求域名服务,拿到域名对应地址。

先请求服务器,询问Shellcode 长度分片大小,然后一个一个分片处理,最后拼接一起。

发送数据包为,长度为0x10。

接受数据包为:

总长度为0x28,头部长度为0x10,数据部分长度为0x18,校验和为0xd845672a。

Shellcode长度为0x1a32d,总共有 0xd2个分片,每个分片大小为 0x200。

在使用UDP方式收发数据时候会对数据部分进行校验。

校验成功才拼接在一起,否则丢弃,然后再申请非分页内存。

将之前的内存代码拷贝执行,将NT基地址作为参数传入。

2.5 解密恶意代码和投递APC

下载下来的代码仅头部可以执行,后面部分为加密数据,需要解密执行。

调用函数为RtlDecompressBuffer,解密后大小为150728,解密方式为COMPRESSION_FORMAT_LZNT1。

接着会调用填充导入表:

然后调用PsCreateSystemThread创建注入线程。

线程中:

优先查找系统进程注入找到的是spoolsv.exe。

然后再是杀软进程:

申请内存拷贝注入:

插APC注入:

2.6 执行用户层恶意下载代码

注入后从应用层执行,代码中包含一个DLL文件,执行函数为申请内存基地址。

然后获取Kernel32 模块基地址,跟 LoadLibraryA GetProcAddress VirtualAlloc,

填充内存中PE文件导入表,填充完成后执行DllMain函数。

会在DllMain中创建线程,执行下载并且运行,根据控制码暂停或者删除相关服务。

线程函数:

提权操作解密下下载地址数据。解密后内容为:

根据控制码暂停或者删除服务:

然后分三种方式运行: (DLL加载,父进程注入,直接创建EXE运行)

2.7 创建恶意账号

这里下载下来的是一个EXE,主要功能就是创建了一个管理员账号。

截图:

0x03结束语

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容