[病毒分析]WinDBG实战教学(1)(三)

本文涉及的产品
云防火墙,500元 1000GB
简介: [病毒分析]WinDBG实战教学(1)

image.png

dt _DRIVER_OBJECT 81b7cf38

image.png

我们查看在0x034偏移DriverUnload(驱动程序卸载)的这个地方的值,这里有个DriverUnload的函数,这个偏移的地址是0xf8aae486

下面我们在这个地址这里设置一个断点,来查看这里发生了什么(这个断点用物理机上的WinDbg设置)

bp 81b7cf38

image.png

这里在和大家说明一下,系统为我们分配的地址每次都是不一样的,大家要根据自己的实际情况进行复现。

下一步,我们回到虚拟机中,F9运行OD。

这里我们的断点已经被命中,然后我们继续,这时候虚拟机也已经暂停了运行,下面我们执行单步调试,WinDbg的单步调试对话框输入p就可以了。

image.png

我们一直使用P指令,可以看到一个块领空的全部汇编语句,如下

push ecx
push ebx
push esi
move esi, dword ptr [Lab10_01+0x780 f(f8aae780)]
push edi
xor  edi, edi
push offset Lab10_01+0x6bc(f8aae6bc)
push edi
mov  dword ptr [ebp-4], edi
call esi

这个时候我们需要指导call的这个esi究竟是什么函数

使用指令

u esi

image.png

RtlCreateRegistryKey调用,大家可以百度一下看看官方是如何定义这个函数的

有两个入参,第一个入参是edi,即RelativeTo=edi,第二个是offset Lab10_01+0x6bc(f8aae6bc),即Path=offset Lab10_01+0x6bc(f8aae6bc)


image.png


这里的RelativeTo的值为0,接下来我们看看Path的值,这里我们先用da命令

在地址f8aae6bc处的值的ASCII是\,当然,这样对查看单个地址上的数据比较有用,如果数据很多,要查看的话,我们用dc命令

image.png

image.png

这里的Path的值就是\Registry\Machine\SOFTWARE\Policies\Microsoft,然后后面就是全0的截断符了


然后下面又是一个相同的调用nt!RtlCreateRegistryKey,edi的值没有改变还是0,我们看看f7a54640的值

push offset Lab10_01+0x640(f7a54640)
push edi
call esi

image.png

注意这里下面被圈红的截断符(web渗透里面叫截断符’\00’,计算机里面叫文件结束符),这里我们得出的Path是\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall

从字面意思应该可以大概知道这个注册表是关于防火墙的

继续下面的汇编代码

还是一个nt!RtlCreateRegistryKey调用,和上面两个片段类似

edi至今未变,我们看看Path的值

image.png

这里还未出现文件结束符,说明这里还有数据没有显示出来,我们跳到最后显示这个地址继续显示

image.png

我们可以得出这次调用的Path的值是\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile

这里的esi还是未变,我们看看Path的值,如上图

依旧是一次未能显示全,我们往下跳

可得出Path的值就是\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile

所以应该是调用了四次nt!RtlCreateRegistryKey(书中有误),然后依次创建的键路径在如下所示

\Registry\Machine\SOFTWARE\Policies\Microsoft
\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall
\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile
\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile

然后我们继续往下分析,下面的代码如下

mov  esi, dword ptr [Lab10_01+0x788(f8aae5a8)]
push 4
lea  eax,[ebp-4]
push eax
push 4
mov  edi,offset Lab10_01+0x4ee(f8aae50c)
push edi
push offset Lab10_01+0x5a8(f8aae788)
push 0
call esi

遇到一个call函数了,这里的第一句已经改变了esi,再也不是那个nt!RtlCreateRegistryKey


我们看看这个函数是什么

image.png

是nt!RtlWriteRegistryValue,向注册表里面写入值的内核函数

这里对我们来说有意义的参数,一个是Path,这个Path的值我们查查应该是\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile

,然后ValueName的值是EnableFirewall

image.png

然后下一个是ValueData的值是,这里的eax的值是[ebp-4]的值,所以我们找ebp-4的值

image.png

所以这个eax的值是0,这里的意思就是将EnableFirewall这个的值设置为了0,意义就是从内核禁止了Windows的防火墙功能

我们看看Path的值应该是\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile

image.png

然后ValueName的值是EnableFirewall

最后是ValueData的值是0

所以这里还是通过内核改变注册表\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile的键EnableFireawll为0来关闭防火墙

这个程序的整体思路:程序运行之后会启动一个服务,然后通过运行一个驱动创建修改注册表的值,来关闭防火墙。

注意:\Registry\Machine的开头很怪异,,并不是我们常见的HKEY的注册表。当从内核态王文注册表时,\Registry\Machine就等同于HKEY_LICAL_MACHINE。同时我们需要知道,EnableFirewall的值为0,表示禁用Windows XP的防火墙。

希望大家可以有所收获,windbg是一个非常强大但是入手很难的工具,共勉!


相关文章
|
传感器 编解码 算法
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(6)
通讯协议又称通信规程,是指通信双方对数据传送控制的一种约定。约定中包括对数据格式,同步方式,传送速度,传送步骤,检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(6)
|
存储 图形学 芯片
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(1)
嵌入式系统的定义有很多的说法,但是没有一个定义是全面的,下面给到的两种方法我觉得应该算是比较合理的。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(1)
|
存储 算法 安全
王道操作系统网课笔记合集
第二门完整学完的课程~
318 1
王道操作系统网课笔记合集
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(4)
什么是实时时钟?实时时钟RTC是一个独立的定时器。RTC模块拥有一组连续计数的计数器,在相应软件配置下,可以供应时钟日历的功能。
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(4)
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(5)
此器件具有两个嵌入式看门狗外设,具有安全性高、定时准确及使用灵活的优点。两个看门 狗外设(独立和窗口)均可用于检测并解决由软件错误导致的故障'
爆肝9万字,我已从小白晋升ARM嵌入式工程师!带你从零熟悉常用的M4嵌入式功能,建议收藏(含码源)(5)
|
存储 缓存 算法
《计算机操作系统》重点知识笔记整理(二)(上)
《计算机操作系统》重点知识笔记整理(二)
|
存储 资源调度 算法
《计算机操作系统》重点知识笔记整理(一)(上)
《计算机操作系统》重点知识笔记整理(一)
|
存储 Unix 数据安全/隐私保护
《计算机操作系统》重点知识笔记整理(二)(下)
《计算机操作系统》重点知识笔记整理(二)
|
存储 算法 安全
《计算机操作系统》重点知识笔记整理(一)(下)
《计算机操作系统》重点知识笔记整理(一)