逆向之利用地址覆盖执行Shellcode
逆向之利用地址覆盖执行Shellcode
Shellcode
- Shellcode定义
Shellcode实际是一段代码(也可以是填充数据),是用来发送到服务器利用特定漏洞的代码一般可以获取权限。
- Shellcode的作用
Shellcode一般是作为数据发送给受攻击服务器的。Shellcode是溢出程序和蠕虫病毒的核心提到它自然就会和漏洞联想在一起。漏洞利用中最关键的是Shellcode的编写。
由于漏洞发现者在漏洞发现之初并不会给出完整Shellcode因此掌握Shellcode编写技术就显得尤为重要。
Shellcode的构造
- 构造shellcode的作用:
构造一段shellcode的作用就是为了在缓冲区溢出时将shellcode的地址覆盖掉正常的返回地址。
- Shellcode的存放位置:
Shellcode的通常放在缓冲区内,也可以通过环境变量存入堆内,也可以通过动态内存放入堆区。
Shellcode执行方法
跳板跳转
- 跳板跳转的定义
跳板跳转是一种常见的让可执行程序执行Shellcode内容的方法。
- 跳转过程:
(1)用内存中任意一个”jmpesp”的地址覆盖返回地址。
(2)函数返回后被重定向去执行内存中jmpesp”指令。
(3)由于函数返回后ESP指向返回地址后,"jmpesp”执行后,CPU将到栈区函数返回地址之后的地方取指令执行。
(4)Shellcode的布置。缓冲区前面一段用任意数据填充,把Shellcode放在函数返回地址后面。jmpesp执行完就执行Shellcode。
代码
愿路途漫长,以后莫失莫忘。 愿你不骄不躁,安稳顺心。
作者:菜鸟-传奇
本文版权归作者和博客园共有,重在学习交流,不以任何盈利为目的,欢迎转载。
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)