利用IAT导入表进行代码的注入

Posted jingcaixf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用IAT导入表进行代码的注入相关的知识,希望对你有一定的参考价值。

单链表结构的缓冲区溢出攻击
代码环境是有一个8字节的缓冲区,和一个指向下一个结构体的链表,程序在构造完成链表后,有两次复写链表值的操作,利用这两次值的覆盖,第一次缓冲区溢出覆盖到下一个链表的指针为0018FEE8,在PE里事先做好了通用跳板的地址0x7798d7b,利用通用跳板,在程序执行到main函数返回的时候自动弹出到call esp,然后流程跳转到我们自己执行的代码。这种溢出方法也越过了gs的检查。
技术图片
关键的漏洞代码,因为在做缓冲区拷贝的时候,没有做检查,并且拿链表的下一个位置的代码被找到了,这个地址也是可以被修改的。
技术图片
利用IAT导入表进行代码的注入
利用api的间接调用,直接调用到模块的导入地址中,下例就是把kernel32.LoadLibraryA的地址填上它相邻的地址0x4301bc直接执行代码,在程序调用这个api的时候,就会执行我们的代码
技术图片

 

 技术图片

 

 

DEP数据保护
定义:在内存有执行属性的内存中执行代码会除法c05异常,加了DEP壳和vmp虚拟机都费掉了过DEP保护,把堆栈返回地址改为VirtualProtect的地址,把前面的90填上VirtualProtect的参数,在VirtualProtect返回地址处填通用跳板,通用跳板跳到jmp ebp =0x0018ff40,0x0018ff40在跳转到0x0018ff5c位置处执行代码即可
技术图片

 

 

以上是关于利用IAT导入表进行代码的注入的主要内容,如果未能解决你的问题,请参考以下文章

PE格式:手工实现IAT导入表注入劫持

IAT Hook

Dll注入:修改PE文件 IAT注入

如何利用sql注入进行爆库

PE格式第四讲,数据目录表之导入表,以及IAT表

如何利用SQL注入进行爆库