由于传播、利用此文所提供的信息而造成的任何直接或间接的后果和损失,均由使用者本人承担,Cyb3rES3c及文章作者不承担任何责任。如有侵权烦请告知,我们将立即删除相关内容并致歉。请遵守《中华人民共和国个人信息保护法》、《中华人民共和国网络安全法》等相关法律法规。
使用checksec工具可以查看ELF二进制文件的保护机制基本信息
1、RELRO
设置符号重定向表格为只读或在程序启动时就解析并绑定所有动态符号,从而减少对GOT(Global Offset Table) 表的攻击。
2、Canary
栈溢出保护机制。栈溢出保护是一种缓冲区溢出攻击的防御手段,当函数存在缓冲区溢出攻击漏洞时,攻击者可以覆盖栈上的返回地址来让shellcode能够得到执行。当启用栈保护后,函数开始执行的时候会先往栈里插入cookie信息,当函数真正返回的时候会验证cookie信息是否合法,如果不合法就停止程序运行。攻击者在覆盖返回地址的时候往往也会将cookie信息给覆盖掉,导致栈保护检查失败从而阻止shellcode的执行。在Linux中,cookie信息被称为canary。
3、NX
NX(No-Execute)堆栈不可执行,NX的基本原理是将数据所在内存页标识为不可执行,当程序溢出成功转入shellcode时,程序会尝试在数据页面上执行指令,此时CPU就会抛出异常,而不是去执行恶意指令。
4、PIE
PIE(position-independent executable)是一种生成地址无关可执行程序的技术,是一种保护机制,如果程序开启了 PIE 保护,每次加载程序时会改变加载的基地址。这种机制不利于本地调试程序。
原文始发于微信公众号(Cyb3rES3c):Linux下ELF二进制文件的保护机制
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论