基于MBR 的bootkit的进展 鬼影-TDL4-BMW
加载运行后会HOOKint13h挂钩硬盘的读写操作,然后会加载磁盘最后加密扇区中的原始备份MBR到内存中,并将控制权交给原始MBR去执行。而后者会加载操作系统引导模块。而系统引导模块则通过INT 13H来读取加载系统启动的文件。而每次读取操作都要经过TLD4的钩子处理。
在钩子程序中判断是否是读取特定的文件,是则进行处理,否则直接下传。
其中要进行处理的一个文件是kdcom.dll
这个DLL和系统调试相关。Ldr16会在挂钩程序中对这个文件的特征进行判断,是否符合,是则进行处理。包括了同时针对32位和64位程序的处理.
当发现加载该文件时候,LDR16会搜索加密分区中的LDR32,或LDR64组件,根据所处的不同系统,然后加载代替内存中的kdcom.dll。从而完成了内存中的劫持。除此之外LDR16还要做的一件事就是改变内存中的BCD信息。后者是WINDOWS在VISTA以后引入用来代替BOOT.INI的注册表hive文件.
TDL4会修改BCD中的BcdLibraryBoolean_EmsEnabled键,默认的标志是“16000020”,将其替换为“26000022”?6?2BcdOsLoaderBoolean_WinPEMode键。从而启动系统的WINPE系统模式。而在WINPE模式下,将不会进行代码完整性验证,从而让系统不会验证kdcom.dll的数字签名。而这种模式只需要挺过验证期后,即可通过将/MININT参数设置为一个无效的值而禁止该模式。
为了确保系统初始化的成功,LDR32/LDR64必须支持kdcom.dll的功能函数
对于32位和64位系统来说,导出函数都是一样的。但对于TDL4的LDR32/LDR64来说只需要在KdDebuggerInitialize1进行进行处理即可,对其他的函数则直接返回成功即可。通过这种简单的方法,使TDL既能在系统启动早期就进行初始化,又达到了禁止系统调试器的效果,真可谓一石二鸟的效果。
在系统初始化的早期阶段Phase1Initialization会调用KdDebuggerInitialize1,而后会进行TDL的初始化
而对于LDR32/LDR64的代码基本相同,因为采用同样的C代码编译的。
当调用KdDebuggerInitialize1后 ,LDR32/LDR64会进行一系列的初始化
调用未公开的函数IoCreateDriver来为LDR32/LDR64创建一个驱动对象,因为kdcom.dll本身不作为一个驱动程序被加载。同时将初始化函数作为参数传递给IoCreateDriver。
增加了ISA模块BIOS部分,名为HOOK.ROM,作用主要是检测MBR部分是否被恢复。如果发现MBR部分已被修复,就将BIOS内的病毒代码约14个扇区写入MBR中,导致用户反复格式化、高格低格,或重新分区都无效。
病毒代码解密后加载指定文件,创建病毒调用CreateThread创建线程,同时跳回原始入口点执行,在病毒线程里先Sleep10秒,然后调用URLDownloadToFileA从黑客服务器下载一个Downloader到本地,验证文件下载成功后,调用WinExec执行,从而下载运行多种恶意程序;该病毒还会下载驱动,命名为c:\my.sys,由之前的病毒代码通过一系列服务函数来创建加载驱动,完成后该病毒线程进入无限Sleep状态。
基于MBR 的bootkit的进展 鬼影-TDL4-BMW相关推荐
- linux启动启动过程(基于MBR)
前言: 因为uefi的出现,bios分为legacy bios和uefi bios,下文中,我用的是legacy bios,因为legacy bios一般配合MBR使用. 这篇文章先说基于MBR的启动 ...
- 腾讯 AI Lab副主任俞栋:过去两年基于深度学习的声学模型进展
来源:腾讯AI Lab 概要:过去几年里,自动语音识别(ASR)已经取得了重大的进步 .这些进步让 ASR 系统越过了许多真实场景应用所需的门槛,催生出了 Google Now.微软小娜和亚马逊 Al ...
- 如何避免调参来自动选择神经网络结构?基于遗传算法的NAS最新进展
神经结构搜索简要介绍 神经结构搜索最近发展迅猛,涌现出了大量的研究成果.总的来说,其主要分为四类:基于强化学习的神经结构搜索,基于遗传算法的神经结构搜索,基于梯度下降的方法与其他一些方法. 1.1 基 ...
- 基于深度学习的图像识别进展:百度的若干实践
来源:<中国计算机学会通讯> 2015年第4期<专题> 作者:都大龙 余轶南 罗 恒 等 概述:深度学习和图像识别 近年来在人工智能领域最受关注的,非深度学习莫属.自2006年 ...
- 深度 | 腾讯 AI Lab副主任俞栋:过去两年基于深度学习的声学模型进展
感谢阅读腾讯AI Lab微信号第七篇文章,这是一篇深度研究的概述,论文全文可在页末下载.今年七月, IEEE/CAA Journal of Automatica Sinica发表了腾讯 AI Lab ...
- 腾讯AI Lab副主任俞栋:过去两年基于深度学习的声学模型进展
本文来自腾讯AI Lab(微信号:tencent_ailab),这是一篇深度研究的概述.今年七月, IEEE/CAA Journal of Automatica Sinica发表了腾讯 AI Lab ...
- GPT转MBR防范Bootkit病毒装机教程
随着PC硬件和系统的发展,BIOS + MBR逐渐成为过去式,在WIN8以后微软推荐用户使用UEFI + GPT的启动方式.GPT就是GUID分区表. MBR2GPT.exe是由微软官方随Win10 ...
- 计算机视觉与深度学习 | 基于MATLAB的Vibe算法消除鬼影(代码版)
/********************************************************** github:https://github.com/MichaelBeechan ...
- 木马核心技术剖析读书笔记之木马驱动加载与启动
Windows 系统启动过程 基于 UEFI 的启动过程 UEFI 固件接口可以实现 BIOS 固件接口类似的功能,逐步成为主流的固件接口之一.它主要提供一组在操作系统启动之前在所有平台上一致的服务, ...
- 写计算机病毒吗,会写计算机病毒很牛吗
满意答案 djipuh90 2016.02.11 采纳率:52% 等级:12 已帮助:8216人 先假设你说的病毒是os系统病毒,以windows系统为例 类似熊猫烧香这种层次的病毒,大概只能算 ...
最新文章
- jquery实现app开发闹钟功能_APP商城开发的优势与功能
- 【腾讯代码文化】人均3.6万行代码,《腾讯研发大数据报告》正式发布!
- 跟我学Spring Cloud(Finchley版)-07-Ribbon入门
- ASP.NET中的状态管理
- RoboGuice入门
- Gson的使用,对于不需要html escape的情况的处理
- linux 分隔大文件,linux系统下分割大文件的方法
- 双十二心动礼遇,送你3本算法好书
- jediscluster的maxAttempts的理解
- java打字训练课程设计_Java打字训练课程设计
- 离线语音控制并不等于本地语音识别
- php post不完整,如何在PHP中检查不完整的POST请求
- JavaScript数据类型之字符串型(4)
- 阶段3 1.Mybatis_11.Mybatis的缓存_8 mybatis的二级缓存
- php 转换中文乱码,解决php中文乱码转换问题
- 计算机用户密码开机设置,计算机开机密码和屏保密码设置指南
- 哥尼斯堡的“七桥问题”(欧拉回路)
- 建模软件MAYA最详细的教程介绍来了
- sersync实时同步 解决单点NFS单点故障问题
- 柔性数组 C/C++/Java