Linux更换内核版本
本文最后更新于:2023-04-04 09:58
前言
参考链接:
- http://43.129.188.117/%e9%95%bf%e4%ba%ad%e5%ae%9e%e4%b9%a0%e4%ba%8c-linux%e6%9c%ac%e5%9c%b0%e6%8f%90%e6%9d%83%e6%bc%8f%e6%b4%9e%e5%a4%8d%e7%8e%b0%e4%b8%8e%e6%a3%80%e6%b5%8b%e6%80%9d%e8%b7%af/
- rc释义:https://zhidao.baidu.com/question/361434068121648932.html
- https://blog.csdn.net/qq_42030961/article/details/82740315
- Linux内核版本升降:https://leif.fun/articles/2020/08/05/1596615343464.html
是因为在复现提权漏洞的时候,漏洞与漏洞之间需要操作系统的内核版本不同,不同的内核版本会影响漏洞是否复测成功。但是,我们也不能因为这种事情就不停地用虚拟镜像装漏洞环境,这种方法太笨太麻烦了。所以我们要做的是更改系统内核版本,然后重启系统即可。
本次实验以Ubuntu为例,因为我们要用的环境也是Ubuntu的,其他的暂且一放。
Ubuntu
Ubuntu历史镜像下载链接:http://old-releases.ubuntu.com/releases/
Ubuntu历史kernel下载链接:https://kernel.ubuntu.com/~kernel-ppa/mainline/
我的基础环境为:
- Ubuntu 14.04 LTS
- 3.13.0-24-generic
以CVE-2018-18955为例,该漏洞要求Linux Kernel的范围在4.15.0~4.19.0且低于4.19.2。
访问历史kenrel链接,找到4.15版本,其中rc后缀代表的是Release Candidate,意为发布候选版本,这个对于漏洞复现来说,影响应该不大吧。😆

点击进入文件夹,发现文件夹下有很多文件,内容大致如下:
其中前缀:
- Linux-headers,指的是Linux开发头文件,.h文件
- Linux-image,指的是编译好的内核
- sources,指的是Linux内核源码文件
后缀主要是处理器架构,有:
- arm64
- amd64
- i386
- ……
他们的关系有时又要牵扯到他们的历史,这里不做过多介绍,下载amd64架构的image文件。
下载完成后,将其上传到Linux系统种,并使用root权限安装指定内核:
1 | |

重新生成GRUB的启动菜单配置文件(/boot/grub/grub.cfg)。
1 | |

查询可更换内核的序号。
1 | |
编辑/etc/default/grub修改启动引导。如果没有使用grub修改过内核,除注释第一行显示的应该是:
1 | |
0为默认kernel,我们需要将0修改为"Advanced options for Ubuntu>{需要更改的内核号}",内核号是从查询中得出的。
1 | |

1 | |
更新启动项,重启完成后查看,内核更换成功。

Centos
参考链接:
- https://blog.csdn.net/qq_38591756/article/details/82829398
我的环境跟链接作者的是一样的,都是Centos 7,我个人测试是成功的。