title: 恶意代码实战分析Lab 10-1
id: c647854c-6e0c-49de-b816-eb04485f82f7
date: 2024-08-16 20:23:20
auther: 1256455767
cover: null
excerpt: Lab 10-1 本实验包括一个驱动程序和一个可执行文件。你可以从任意位置运行可执行文件,但为了使程序能够正常运行,必须将驱动程序放到C\WindowslSystem32目录下,这个目录在受害者计算机中已经存在。可执行文件是Lab10-1.exe,驱动程序是Lab10-01.syso. 问题 1.
permalink: /archives/26634bb1-e9cd-438e-b4f2-a86b041419b0
categories:

  • windowsni-xiang
    tags:
  • er-jin-zhi-fen-xi

Lab 10-1

本实验包括一个驱动程序和一个可执行文件。你可以从任意位置运行可执行文件,但为了使程序能够正常运行,必须将驱动程序放到C:\WindowslSystem32目录下,这个目录在受害者计算机中已经存在。可执行文件是Lab10-1.exe,驱动程序是Lab10-01.syso.

问题

1.这个程序是否直接修改了注册表(使用procmon来检查)?

img

1.Lab10-1.exe修改注册表:HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed.

2.驱动也修改了注册表不过procmon捕获不到R0的函数.

2.用户态的程序调用了ControlService函数,你是否能够使用WinDbg 设置一个断点,以此来观察由于ControlService的调用导致内核执行了怎样的操作?

img

通过OD在函数ControlService下断点使其中断,然后利用Windbg调试虚拟机,利用命令

!drvobj Lab10-01

,显示Lab10-01进程相关的驱动对象,输入命令

dt _DRIVER_OBJECT 8202a470

,当我们分析得知ControlService是想停止驱动,让后在结构体+0x34取出值, 取出数值后直接BP指令下段点就行了

bp f8b72486

.

3.这个程序做了些什么?

1.Lab10-01.exe通过服务加载了驱动("C:\Windows\System32\Lab10-01.sys"),通过ControlService函数发送停止通知,触发Lab10-01.sys驱动的卸载回调函数,驱动在卸载回调中做了修改注册表操作:

1.创建了注册表目录"\Registry\Machine\SOFTWARE\Policies\Microsoft";

2.创建了注册表目录"\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall";

3.创建了注册表目录'\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile' 并在目录下写入一个键名'EnableFirewall'的键,键值位0;

4.创建了注册表目录'\Registry\Machine\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile'并在目录下写入一个键名'EnableFirewall'的键,键值位0;

查询得知如果写入此表项就会关闭防火墙.