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来检查)?
1.Lab10-1.exe修改注册表:HKLM\SOFTWARE\Microsoft\Cryptography\RNG\Seed.
2.驱动也修改了注册表不过procmon捕获不到R0的函数.
2.用户态的程序调用了ControlService函数,你是否能够使用WinDbg 设置一个断点,以此来观察由于ControlService的调用导致内核执行了怎样的操作?
通过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;
查询得知如果写入此表项就会关闭防火墙.