Windows内核实验 ——— 进程切换 前言 前面我们已经了解到了CR3是控制进程的一个核心资源,相当于访问内存的一把钥匙,理论上我们可以通过其访问任何进程的内存,此次实验中我们将编写代码将一个notepad中的内存信息进行修改 实验过程 我们首先创建一个notepad程序,在里面随便写入点内容,通过CE来找到其字符串对应的地址空间 我们找到对应地址空间后我们通过使用notepad的CR3寄存器来获取对应的地址空间,我们使用Windb 2023-06-06 Windows Kernel
Windows内核实验 ——— 零地址读写 前言 我们都知道在C语言中0地址是无法进行读写的,会造成读写异常。本质上来说是因为0地址是一个不存在的物理页面,但是我们可以尝试进行对其修改,将其PTE进行修改,进而我们可以对其进行读写操作 实验过程 我们可以先通过!pte 0来测试零地址是不可读写的 可以观察到下面的not valid,证明其不可读写的特性。但是我们之前提到了对PTE修改的计算公式,我们可以利用该计算方式来修改零地址处的PTE 2023-06-05 Windows Kernel
Windows内核实验 ——— PAE分页 前言 上个实验中我们通过将PAE进行关闭之后学习通过CR3来找到真实物理地址的方式,而在此次实验中将恢复为原来的noexecute,来再次完成原先我们的操作 实验过程 与上次实验一样,我们先执行我们之前运行的一个获取cr3以及signFlag地址的程序 此处不再贴代码了,找代码可以往回翻一下非PAE分页处的代码 同样需要注意修改 int 20H 的中断 运行成功后与之前类似,我们查找当前运 2023-06-04 Windows Kernel
Windows内核实验 ——— 非PAE分页 前言 之前我们所进行的都是关于段的,我们通过修改fs段来进行提权,再此之后我们将讨论一下关于Windows的页保护 实验内容 在开始之前我们需要将虚拟机设置为PAE模式 PAE:物理地址扩展 我们原来的启动配置文件boot.ini中将noexecute进行修改为execute 我们进行上述设置后相当于我们将页属性从不可执行设置为了可执行,数据保护是在段上完成,而页不对其进行操作 本次实验虚 2023-06-03 Windows Kernel
Windows内核实验 ——— 系统调用 前言 在之前的实验过程中都需要我们使用WinDBG来中断内核,在系统中断表中添加int 20,将我们自己构造的内核代码进行运行,而在此处实验中我们将构建一个处于三环的程序,通过系统调用来完成对应的功能。 实验过程 因为在程序中ntdll都会被程序所调用对此我们哦那个给模拟该方式来实现从三环到零环的权限。 我们此处尝试实现两个函数ReadMem、AllocMem。我们同样需要两个程序来构建,第一个用 2023-05-14 Windows Kernel
d3sky 复现 程序分析 初步分析 我们拿到程序后先进行查壳,可以发现是无壳32位程序,直接使用IDA打开 TLS 在程序跑起来之前会执行该TLS内的东西,我们可以看到有一个反调试,同时对一串字符串进行RC4解密 123456789unsigned int sub_401050(){ size_t v0; // eax if ( !IsDebuggerPresent() ) aY[5] = 2023-05-06 Reverse
d3Recover 复现 前言 属于是赛后看WP才发现自己忘记将数据恢复在ASCII范围内,导致一直出来的都是奇怪东西… 呜呜,送上门的分都没拿到 解题过程 题目给了两个程序,都是Python打包后的,其中V2版本没有去除掉符号表,V1去除掉了,通过观察V2相关东西,同样的可以找到一个Base64后的字符串,并可以直接进行解密 解密可以拿到But maybe I can help you recover the so 2023-05-06 Reverse
Windows内核实验 ——— Inline Hook 前言 之前的实验让我们学习到了如何调用内核的API,我们可以通过创建一个稳定的零环到三环之前的切换环境,而在此次实验中我们将把从三环到零环的_KiFastCallEntry进行Hook,通过该操作来达到在三环到零环之前切换前执行相应的代码 实验过程 我们还是利用上次的代码逻辑,不同的是在本次实验中我们需要使用两个exe来完成对应的Hook 第一个exe将对应_KiFastCallEntry的地址空 2023-04-25 Windows Kernel
Windows内核实验 ——— API调用 前言 我们之前几次的实验大多都是通过设置自己的中断函数来完成一些简单的小东西,如赋值以及修改值等,如果需要实现某高级复杂功能时便需要我们进行调用API来快速省心省力的完成。还是和之前一样,需要我们对系统中断表进行操作,获取到 Ring 0 的权限后进行调用。 实验过程 同样的我们还是先搭建出一个中断处理的模板 12345678910111213141516171819202122232425262 2023-04-20 Windows Kernel
WannaCry 样本分析 综述 WannaCry是于2017年5月12日爆发的,勒索病毒WannaCry借助高危漏洞“永恒之蓝”(EternalBlue)在世界范围内爆发,并迅速在公网上进行传播,造成了极大的危害。正如其名勒索病毒会对文件进行加密,需要受害者进行支付比特币进行解密。 外部分析 导入导出表 我们先从外部入手,观察其对应的导入导出表,我们可以观察到导入了文件创建、文件读取、获取路径等文件操作,以及创建了互斥体, 2023-04-07 Malware Reverse