记驱动层病毒分析对抗实验(驱动层作用)
cac55 2024-10-19 02:58 17 浏览 0 评论
前言
恶意代码分析是安全从业人员非常重要的一个技能。
参考书籍:<<恶意代码分析实战>>
<<windows核心编程>>
相关知识
Windows会为每个驱动创建一个驱动对象,并以参数形式将其传给DriveEntry函数,DriverEntry函数回调函数填充这个驱动对象,然后DriverEntry会创建一个可以被用户态应用程序访问的设备对象,应用程序与驱动的交互请求都将通过这个设备对象进行。
请求内核态恶意组件的最常见函数是DeviceIoControl,它是从用户模块到内核设备的一种通用请求方法。使用该函数时,用户态应用程序传递一个任意长度的缓冲区数据作为收入,并且接收一个任意长度的缓冲区数据作为输出。
一些内核态恶意代码并没有明显的用户态组件,也没有创建内核对象,它们仅仅运行在驱动程序中
调试内核环境
内核调试是双机联调。
然后vm新增一个串行端口,配置如下。
然后windbg设置一个快捷方式,修改属性如下
之后再重启虚拟机,用windbg等待连接
Lab10-1
这里可以看到有一个exe和一个驱动文件。
先静态分析一下exe,放入PEid中,发现没有加壳
放入IDA中查看。
这里遇到了一个新的函数,
ControlService
给指定的发送一个控制码,这里的第二个参数是1,会卸载驱动
这里用驱动程序作为服务程序。
创建并启动。
这里再打开驱动。
可以看到先是进入了驱动的加载部分,然后打开了一个函数。
可以看到这里的函数都是内核级的,都带着RTL。
可以看到是进行了注册表的写入,用这个方法写入容易绕过一些用户态的监测。
而这里的注册表通过查询,可以得知是禁用防护墙的行为。
这里动态分析一下,先运行。
用procmon监控,regshot对比注册表变化。
这里看到驱动加载的注册表操作在procmon中监测不到。只能用regshot进行结果对比,说明了这样的操作方式隐蔽性高。
接着用windbg开始调试。先是在虚拟机的windbg下一个在controlservice的断点,然后查找服务Lab10-01,然后查找其数据结构,对DriverUnload下断点,然后虚拟机继续运行到断点,然后单步调试,可以查看到注册的键值
Lab10-2
这里先放入PEid中查看,无壳
放入IDA中查看。
这里可以看到是从资源里面抽取一个驱动文件,然后写入到system32下,用Resource Hacker提取。
然后创建服务,启动服务。
但是这里只能查到服务,找不到驱动文件。
这里再把驱动放入IDA中分析,可以看到这里是SSDT hook.
SSDT 的全称是 System Services Descriptor Table,系统服务描述符表。这里是把Ring3的win api和ring0的内核api关联起来。而SSDT hook就是把这个表中的地址改为自己的函数,达到一个重写的目的。
NtQueryDirectoryFile 系统用来查询文件信息。
RtlCompareMemory
对比两个内存块。
KeServiceDescriptorTable
访问SSDT表的一个关键。
这里可以看到通过循环对SSDT表进行了一个查询,用来查找NtQueryDirectory的位置,然后替换成10486.
这里再通过RtlCompareMemory对文件开头Mlwx进行一个判断,如果是就隐藏。
这里怎么能恢复隐藏文件呢。禁用驱动服务就行了。
Lab10-3
这里还是先用PEid打开,无壳。
用IDA分析当前的exe.
可以看到是用system32下的驱动作为Process Helper的文件。
之后创建了一个管道。
这里可以看到lpOutBuffer和lpInBuffer都是0,是为了后面的进程隐藏。
之后用COM组件每隔30s访问一个网站。
接着用IDA打开sys文件。
IoGetCurrentProcess
返回一个指向当前进程的指针(EPROCESS(进程对象))
IofCompleteRequest
示调用者已经完成了给定I/O请求的所有处理,并将给定的IRP返回给I/O管理器
IoCreateDevice
驱动中调用此函数来创建设备对象
PEB:存放进程信息。
可以看到这里先是创建了一个容易被用户态访问的设备句柄。
这里是对当前进程的操作,获取当前的进程
用windbg打开,查询一下EPROCESS的数据结构,对比一下偏移量,可以看到是访问了_LIST_ENTRY.
这里上网查了一下,可以得知+8C,是指向下一个的指针。
之后这里进行了一个双向链表解除链接的一个操作,原本指向下一个的指向前一项,原本指向前一个的指向下一项,这样就做到了隐藏进程。
这里书上提到了一个知识点:进程只是线程的容器,只要线程合理地占用操作系统,它就会被调度,进程也会继续存在并正常运行。
相关推荐
- 十分详细的齿轮传动讲解,材料选择、设计参数、强度计算,学习了
-
齿轮传动设计齿轮传动设计是机械工程中至关重要的一个环节,它涉及到动力传递的准确性和效率。传动比确定:设计之初,需根据实际需求确定传动比,即输入轴与输出轴的转速比,这是齿轮传动设计的关键参数。齿轮类型与...
- 齿轮模具设计和计算公式大全(齿轮模具结构图)
-
齿轮的直径算法:齿顶圆直径:(齿数+2)*模数分度圆直径:齿数*模数齿根圆直径:齿顶圆直径-(4.5*模数)数表示齿轮牙的大小:齿轮模数=分度圆直径/齿数=齿顶圆直径/(齿数+2)这种计算方法针对所有...
- 分享一个UG齿条建模小工具(ug 齿条)
-
UG早已经有齿轮模块,可是齿条是没有的,现在分享一个。这个是GRX文件,直接在NX软件界面下按快捷键Ctrl+G,然后打开本文件即可使用,非常方便。...
- 3种机械制图的视图画法,剖视图和断面图的易错点,58页PPT讲清楚
-
机械制图视图表达基本视图由主视图、左视图和俯视图组成。有时为了便于合理地布置基本视图,可以采用“向视图”。局部视图是将物体的某一部分向基本投影面投射所得的视图。斜视图是物体向不平行于基本投影面的平面投...
- UG建模一颗齿轮树还能仿真运动,解压必备
-
今天来分享如何用UG建模一个机械人的独特桌面小装饰品——齿轮树,比较简单,感兴趣的小伙伴可以加工出来一个放到电脑桌前当装饰品解压!建模过程:1.首先草图绘制一个正六边形,然后外接一个圆2.将六边形和圆...
- 用SolidWorks设计齿轮,如何事半功倍,且听我说说
-
不管是3D软件,还是2D软件,为了提高工作效率和降低工作难度,都会有一些插件的。所以用好插件也是用好软件的一个基础。插件分两种,一种是软件自带的插件,比如在SolidWorks中,自带的插件就有...
- UG/NX 齿轮条插件的使用方法,这可是个好工具哦
-
熟悉咱们的小伙伴应该知道,咱们经常会分享一些有趣的建模案例以及实用的建模技巧,今天来给大家分享一个UG软件的齿轮条插件,使用该插件就可以快速生成齿条模型,但是很多小伙伴在领取后却不知道如何使用,来看看...
- 华硕电脑常见的几个开机故障解决办法
-
一、华硕电脑开机显示WARNING!BIOSRecoverymodehasbeendetected即BIOS自检失败的解决方法注:此方法适用于集成有CrashFreeBIOS3程序...
- Whopper woes: Burger King regains control of China business, seeks new partner for turnaround
-
byLiYeBurgerKing'sparentcompany,RestaurantBrandsInternational(RBI),hasreclaimeditsChin...
- 收藏!最全的半导体行业名词缩写表!
-
名词缩写索引表Abbr.FullName释义系统名称部门AA1/A2Hi/HiHiorLo/LoLo一二阶报警气体/化学系统FACACActivityCarbon活性炭水处理系统FACACB...
- SSD想要更高速 隐藏电源选项来帮忙
-
Win10的电源管理功能非常强大,不过很多功能都是隐藏的,比如CFan之前提到的“卓越性能模式”。不过现在已经比较普及,而且集成度虽高,却缺乏散热措施的SSD,成为了新一代电脑中的“热点”之一。那么今...
- 便宜还能买到信仰?华硕B85M-Gamer评测
-
1华硕B85M-Gamer主板概况介绍回顶部【PConline评测】华硕在去年推出Gamer系列游戏主板,将此前不少只有“玩家国度”特有元素加入到了主流级别主板之中,而第一款Gamer主板B85-P...
- 海韵性价比FOCUS继任者——CORE GX850 ATX3 white电源开箱分享
-
前言说起电源,就不得不说海韵FOCUS了,毕竟在很长一段时间里,FOCUS系列作为很多OEM电源的母版本赢得了许多玩家的青睐,毕竟这个系列的电源都是海韵旗舰PRIME系列电源技术的规格下放,虽然用料与...
- 映泰推出B760NH-E Mini-ITX主板:最高64GB DDR5内存
-
IT之家5月11日消息,映泰近日推出了B760NH-E主板,基于英特尔B760芯片组,支持LGA1700封装的英特尔第12、13代酷睿处理器。B760NH-E主板整合了A....
- CPU风扇调节的方法(cpu风扇怎么调转速)
-
在正常的应用下,目前的CPU风扇(原包)或者自己另外购买的CPU风扇都具有智能调节功能,达到既不会转速长时间过高浪费不必要的电力以及产生噪音问题,又能在电脑应用过高产热量大的情况时提高转速保护CPU温...
你 发表评论:
欢迎- 一周热门
- 最近发表
-
- 十分详细的齿轮传动讲解,材料选择、设计参数、强度计算,学习了
- 齿轮模具设计和计算公式大全(齿轮模具结构图)
- 分享一个UG齿条建模小工具(ug 齿条)
- 3种机械制图的视图画法,剖视图和断面图的易错点,58页PPT讲清楚
- UG建模一颗齿轮树还能仿真运动,解压必备
- 用SolidWorks设计齿轮,如何事半功倍,且听我说说
- UG/NX 齿轮条插件的使用方法,这可是个好工具哦
- 华硕电脑常见的几个开机故障解决办法
- Whopper woes: Burger King regains control of China business, seeks new partner for turnaround
- 收藏!最全的半导体行业名词缩写表!
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)