• 记 linux 系统编译好的exp提权提示无gcc



    在目标linux主机没有gcc的情况下提权,在很多情况下的一些内核漏洞需要在目标主机上使用gcc编译才可以正常运行,在本地编译好的exp如果本地系统与目标主机系统不一致,上传执行很大机会导致系统崩溃如脏牛提权。

    目标linux系统上存在多个可以提权的漏洞,但是目标主机没有gcc,当前权限也无法下载gcc

    有的提权exp虽然在本地环境上编译好了,但是在目标系统上运行还会提示没有gcc无法运行


    CVE-2021-4034 漏洞 polkit 提权

    如,在本地编译好的exp,到目标系统运行,运行提示gcc :not found ,即没有安装gcc,导致运行中断提权失败。

    在这里插入图片描述

    查看其中exp的代码,代码中调用了gcc 对pwnkit/pwnkit.c 再次编译生成pwnkit.so 文件,目标主机由于没有存在gcc,运行到这里失败。

    在这里插入图片描述

    分析:从代码中可以看出这一步中是编译生成so文件,由于没有gcc导致生成不了pwnkit.so文件
    中断之后在当前目录下生成了pwnkit 目录
    在这里插入图片描述

    既然无法在exp过程中执行gcc编译so文件,我们是不是可以帮他编译好so文件,放到指定目录下
    编译生成so

    gcc pwnkit.c -o pwnkit.so -shared -fPIC
    
    • 1

    在这里插入图片描述

    注释掉原来的exp代码中的调用gcc代码块,编译生成exp

    在这里插入图片描述
    在这里插入图片描述

    运行:正常执行提权

    在这里插入图片描述

    解决:最后注释掉system(“gcc pwnkit/pwnkit.c -o pwnkit/pwnkit.so -shared -fPIC”);这段代码后生成的exp可以在无gcc的系统上执行
    需要把生成的pwnkit 目录编译好pwnkit.so 一起上传到主机上。
    即exp, pwnkit 文件夹内容
    在这里插入图片描述

    同理:在使用其他gcc编译好的exp提权时如果遇到提示无gcc,很大可能就是再次调用了gcc进行编译。

  • 相关阅读:
    OSTree 官网文档
    使用git将代码提交到Gitee
    初识AJAX基础(一)
    opencv-phase 函数
    ProtoBuf的学习和使用(C++)
    计划跳槽需要做哪些准备?
    http缓存
    [SWPU2019]Web1-1|SQL注入
    Java-KoTime:热更新-不重启替换代码
    React82_useCallback()
  • 原文地址:https://blog.csdn.net/qq_42077227/article/details/128050884