本节课会对Windows渗入的几个方法进行讲解。同时对如何防护做出介绍。
目录:
- Windows渗入思路
- 栈溢出攻击
- 例子
- 防护措施
1Windows渗入思路
现代计算机系统冯诺依曼体系结构中,没有在内存中严格区分计算机程序的数据和指令,因此可以从输入的数据中寻找渗入的漏洞。
于是攻击者的目标成为了劫持应用程序的控制流,以此来执行目标系统上的任意代码,最终达到远程控制目标系统的目的。
它们有以下这些方法:
- 缓冲区溢出
- 整数溢出
- 格式化字符串漏洞
- 指针释放后再次被使用
最经典的莫过于缓冲区溢出。
缓冲区溢出是指计算机程序填充数据时,缺乏严格的边界检查,导致数据外溢,覆盖相邻内存,进而改变了程序的合法执行流程
缓冲区溢出分为栈溢出和堆溢出,本篇我们将其中的栈溢出。
2栈溢出攻击
栈溢出时简单但为何巨大的一种攻击。
覆盖函数返回地址时一个成熟的常见栈溢出攻击方式。
因为栈中保存的有待填充的数据和返回函数的地址,如果填充的数据在缓冲区溢出,攻击者就能针对函数的返回地址进行改写。
此时函数调用返回时,程序就会跳转到攻击者指定的地址,执行恶意指令。
3例子
Windows系统中MS-08067漏洞。
4防护措施
总结:
现在我们难以解决所有的系统安全问题,只能有限的防护,尽可能不让自己成为那个最脆弱的,最容易被盯上的吧。
网友评论