3.1 shellcode 概述

3.1.1 shellcode

        1996年,Aleph One 与Underground发表了著名的论文 Smashing the Stack for Fun and Profit,其中详细描述了Linux系统中栈的结构和如何基于栈的缓冲区溢出。在这篇具有划时代意义的论文中,Aleph One 演示了如何向进程中植入一段用于获得shell的代码,并在论文中称这段被植入进程的代码为“shellcode”。

        后来人们干脆统一用shellcode这个还个专用术语来通称缓冲区溢出攻击中植入进程的代码。如今,shellcode广义上指植入进程的代码。

3.1.2 expioit

        植入代码之前需要做大量的工作,例如,弄清楚程序有几个输入点,这些输入将最终会当作哪个函数的第几个参数读入内存的哪一个区域,哪一个输入会造成栈溢出,在复制到栈区的时候对这些数据有没有额外的限制等。调试之后还要计算函数返回地址距离缓冲区的偏移并淹没之,选择指令的地址,最终制作出一个具有攻击效果的“承载着”shellcode的输入字符串。这段代码植入的过程就是漏洞利用,也就是exploit。

        exploit的核心是淹没返回地址,劫持进程的控制权,之后跳转去执行shellcode。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值