# DEP、ASLR、Canaries
机制 | 定义 | 作用 |
---|---|---|
DEP (Data Execution Prevention) | 一种硬件和操作系统级别的安全特性,用于防止恶意软件执行攻击。通过阻止将数据区域用作代码执行区域来保护系统免受缓冲区溢出等攻击的影响。 | 防止恶意代码在数据区域执行,提高系统安全性。 |
ASLR (Address Space Layout Randomization) | 一种操作系统级别的安全特性,通过在系统启动时动态地随机分配内存地址来随机化程序、库和内核的内存布局。使得攻击者更难以准确地预测可利用的内存地址,降低成功利用内存相关漏洞的概率。 | 提高系统的安全性,降低攻击者成功利用内存漏洞的可能性。 |
Canaries (Stack Canaries) | 一种用于防止栈溢出攻击的技术,通过在程序的栈帧中插入一个特殊的标记,并在函数返回前检查这个标记是否被修改来防止栈溢出攻击。 | 帮助检测和防止栈溢出攻击,保护程序免受恶意输入的影响。 |
这些安全机制通常被应用于操作系统和软件开发中,以提高系统的安全性和抵御各种类型的攻击。
# 溢出攻击
使用的 edb
的 debugger,发送缓冲区溢出数据,捕捉内存状况
使用 metasploit 生成字符串,定位到 EIP 位置
在填入 shellcode 的过程中,发现所剩的空间不够填入 shellcode 了,所以通过 metasploit 的 nasm 生成一个跳转的代码,将 esp 写入了 eip 中
这样实现了将执行代码的数据流跳转到头部的 padding 区了,于是我们把 shellcode 填入到 padding 区域,等待跳转就可以了。