码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-06-03 10:48:45      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:image   导入表   单链表   地址   info   虚拟   构造   调用   操作   

单链表结构的缓冲区溢出攻击
代码环境是有一个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导入表进行代码的注入

标签:image   导入表   单链表   地址   info   虚拟   构造   调用   操作   

原文地址:https://www.cnblogs.com/jingcaixf/p/13035882.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!