尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

ret2syscall及mprotect的利用姿势

ret2syscall及mprotect的利用姿势
📅 发布时间:2026/6/18 16:42:44

1 :ret2syscall

ret2syscall大概就是:通过在程序中寻找系统调用函数syscall代码等来构造出一个后门危险函数
Linux常用系统调用号

  • 32位系统下常用的有

    • execve(0xb)
    • read(0x3)
    • open(0x4)
    • write(0x5)
  • 64位系统下常用的有

    • execve(0x3b)
    • read(0x0)
    • open(0x1)
    • write(0x2)

在实现具体的攻击手法之前,我们要先了解系统调用的过程

  1. 首先用户态发起系统调用请求:用户程序通过编程语言提供的系统调用接口(如C语言中的库函数)发出系统调用请求,请求操作系统执行某种特定的操作。
  2. 权限检查:操作系统接收到用户程序的请求后,会进行权限检查,以确保用户程序有权限执行该系统调用。
  3. 切换到内核态:如果权限检查通过,操作系统会将用户程序的上下文切换到内核模式,以便执行操作系统提供的服务。
  4. 执行系统调用:操作系统执行用户程序请求的系统调用功能,这可能包括打开或关闭文件、创建或终止进程、进行内存管理等各种操作。
  5. 返回结果和错误处理:系统调用执行完毕后,操作系统会将执行结果返回给用户程序,并进行相应的错误处理,例如返回错误码或打印错误信息等。
  6. 切换回用户态:操作系统完成系统调用操作后,将会切换回用户态,继续执行用户程序的下一条指令。

一般在32位/64位下通过int 0x80/syscall ret(中断系统调用)来区分是否发起系统调用,系统调用号则利用在eax(32位)或rax(64位)寄存器中的序号

运行shell一般我们用execve("bin/sh",0,0)

注意32位下正常利用栈传递参数,而在系统调用中则根据ebx,ecx,edx,esi,edi的寄存器顺序通过寄存器传递参数!
64位则正常根据寄存器顺序:rdi,rsi,rdx,r10,r8,r9传递参数;

下面我们来研究攻击手法

  1. 首先通过file命令,查看是32位还是64位系统
  2. 接下来寻找pop eax/rax ;ret借此传递我们需要调用的系统调用号进而调用我们需要的函数
  3. 接下来寻找控制ebx;ecx;edx或rdi;rsi;rdx的gadget
  4. 最后通过执行execve("bin/sh",0,0)来getshell

如果没有现成的bin/sh字符串可以通过调用read函数往bss段去写入字符串后再调用execve

2:mprotect

mprotect函数主要用于修改内存权限为可读可写可执行来写入shellcode进而getshell
其函数原型为int mprotect(const void *start, size_t len, int prot)

  1. 第一个参数代表开始修改的地址注意必须是一个内存页(可通过在ida用ctrl+s查看段表)的起始地址(地址的最后三位数为000)
  2. 第二个参数代表修改的长度注意必须为页大小的整数倍(一般是4kb对应0x1000)
  3. 第三个参数是要赋予修改的权限(为7时即为可读可写可执行)

基于此我们就可以明白攻击方法

  1. 首先寻找mprotect函数的地址
  2. 寻找能写入的函数的地址(如read)
  3. 修改内存权限
  4. 写入shellcode
  5. 返回写入shellcode的地址从而getshell

​

相关新闻

  • Thinkphp和Laravel水果购物商城vue
  • 当一部手机定价近两万:三星三折叠价格和功能如何匹配?
  • JVM性能调优案例-OOM案例

最新新闻

  • Python 练习题讲解 3 · 字符串
  • 东营换轮胎怎么选?本地市场盘点、轮胎选购避坑+门店筛选完整指南 - 国麟测评
  • Element Plus 组件库 + 美化页面
  • 上海澳洲留学社科类文书中介:精选案例客观评估 - 虚拟星辰
  • 微信支付AI卡,充多少花多少
  • 英雄联盟Akari助手:从青铜到王者的终极游戏效率提升指南

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号