在目标linux主机没有gcc的情况下提权,在很多情况下的一些内核漏洞需要在目标主机上使用gcc编译才可以正常运行,在本地编译好的exp如果本地系统与目标主机系统不一致,上传执行很大机会导致系统崩溃如脏牛提权。
目标linux系统上存在多个可以提权的漏洞,但是目标主机没有gcc,当前权限也无法下载gcc
有的提权exp虽然在本地环境上编译好了,但是在目标系统上运行还会提示没有gcc无法运行
如,在本地编译好的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
注释掉原来的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进行编译。