【免杀前置课——shellcode】二十二、使用PEB TEB查找核心模块Kernel32.dll user32.dll ntdll.dll,什么是PEB,TEB?通杀shellcode的思路

如何从一个未知的环境找到并使用我们的Kernel32.dll user32.dll ntdll.dll

知识补充:

Kernel32.dll user32.dll ntdll.dll

  • 所有进程无论窗口程序还是控制台程序,都会引用kerne132.dll
  • User32.dll窗口程序专用,封装了所有跟窗口操作相关的 API
  • Ntdll.dll ! ! !他是ring0 的大门。无论是kernel32还是user32最终都会去调用ntdll, dll

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ExceptionList:用于操作系统的SEH (SEH: windows 的异常处理机制大量用于反调试程序!!!)
PEB: Process Envirorment Block
进程环境块:存放进程相关信息,我们需要的东西在这个老东西里面!!

TEB

实验:分析API NtCurrentTeb ( ) ﹔

在这里插入图片描述
FS段寄存器存放的是TEB结构体的首地址,我们可以看到这个API主要就是做了一个操作,mov eax,FS:[0x18]也就是把7FFDE018位置的值给eax,且我们看到这里的值就是FS的指针地址,由此可以知道7FFDE018这个位置就是上面这个NT_TIB结构体指向自己的指针。 而NT_TIB在TEB中又是在0偏移的位置上,所以FS存放的就是TEB结构体的首地址。
FS:[0X30]就是PEB的指针。至此我们找到了PEB的地址

在这里插入图片描述
在这里插入图片描述

PEB

PEB+0x0c偏移存放了LDR结构体的地址,而LDR结构体中,有分别按不同排序的dll,我们重点看第三个InitalizationOrderMoudleList这个结构体变量是按初始化排序的,第一个存放的是ntdll.dll,第二个是kernel32.dll或者Kernerbase.dll。我们再到这个LIST_ENTRY结构体中看,其中Flink存放着下一个结构体的指针,Blink存放着上一个结构体的指针,相当于一个双向链表。 而InitalizationOrderMoudleList中的第一个dll文件就是ntdll.dll,他的Flink指向的就是kernel32.dll
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
至此我们有了第一种思路来获取到kernel32.dll。

 1. MOV esi,FS:[0x30] 获取PEB地址 
 2. MOV esi,[esi+0xc] 获取LDR地址 
 3. MOV esi,[esi+0x1c] 获取InitalizationOrderMoudleList地址 
 4. MOV esi,[esi] 获取第二个DLL文件信息 即Flink

第二种思路和第一种相差无几,有第二种思路是因为List_entry结构体在外层还有一个结构体。其名为LDR_DATA_TABLE_ENTRY,像我们看到的,他其中也有一个InitalizationOrderMoudleList结构体变量,我们上一种思路第三部调用的其实和这个是一样的。且这个结构体还有个重要的变量DllBase,他就相当于我们模块的基址,相当于GetModouleHandle,这样我们依旧可以靠他找到kernel32.dll来调用LoadLibrary和GetProcAddr这两个API。

 1. MOV esi,FS:[0x30] 获取PEB地址 
 2. MOV esi,[esi+0xc] 获取LDR地址 
 3. MOV esi,[esi+0x1c] 获取InitalizationOrderMoudleList地址 
 4. MOV esi,[esi+0x8] 获取dllbase


在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

webfker from 0 to 1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值