首页
社区
课程
招聘
[原创]Linux kernel Exploit 内核漏洞学习(0)-环境安装
发表于: 2019-7-21 19:07 15839

[原创]Linux kernel Exploit 内核漏洞学习(0)-环境安装

2019-7-21 19:07
15839

在Linux上面搞事情很多东西都可能需要我们利用源码来自己编译,相对于Windows来讲可能会比较麻烦和耗时,这个过程中肯定会遇到很多报错,所以一定要有耐心.....

首先到linux内核的官网下载一份内核源代码并解压:
kernel_download
至于需要下载的版本,随意就好,我下载的是5.2.1的....
然后先安装有些依赖:

这些依赖并不一定全部概况完了,在编译的过程中可能在报错信息中还要提示你安装一些依赖,具体根据报错提示再进行安装就可以...
然后进入解压目录:

linuk-kernel
这里会跳出一个设置框:
set
注意下面的配置就好:

然后sava,保存.config就可以:
config
然后:

虚拟机分配了4个核,使用-j4可以快一点....
make -j4
这个过程是比较漫长的,如果你的kernel内核比较低或依赖不够的话,就会报比较多的错误,这需要根据你具体情况百度了,耐心...
当make结束了就可以:

make_all
还是可能会报错,不过都可以百度到,最多改一下Makefile文件的,不紧张...
最后就可以:

make modules
我们可以从./arch/x86/boot/拿到bzImage,从源码根目录拿到vmlinux....

其中busybox-1.31.0.tar.bz2建议下载最新版的...
同样make menuconfig的时候需要设置:
busybox

编译完make install后,在busybox源代码的根目录下会有一个 _install目录下会存放好编译后的文件:
_install
然后我们需要在里面配置一下:

其中vim etc/init.d/rcS的内容:

然后利用命令创建文件系统:

img
最后我们就可以使用 qemu 来运行内核了:

其中:

qemu

加载驱动很简单,只需要命令insmod就可以,然后rmmod可以卸载驱动,lsmod可以查看加载了的驱动....
insmod


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

最后于 2019-7-22 09:36 被钞sir编辑 ,原因:
收藏
免费 9
支持
分享
最新回复 (20)
雪    币: 3738
活跃值: (3872)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
感谢分享!
2019-7-21 21:33
0
雪    币: 3475
活跃值: (1350)
能力值: ( LV9,RANK:150 )
在线值:
发帖
回帖
粉丝
3
2019-7-22 09:08
0
雪    币: 245
活跃值: (80)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这样编译出来的内核可以下断点吗?
2019-7-22 14:53
0
雪    币: 1515
活跃值: (4416)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
5
peekl 这样编译出来的内核可以下断点吗?
可以的....
2019-7-23 09:05
0
雪    币: 6313
活跃值: (3212)
能力值: ( LV12,RANK:330 )
在线值:
发帖
回帖
粉丝
6
详细
2019-8-6 12:59
0
雪    币: 1689
活跃值: (178)
能力值: ( LV7,RANK:103 )
在线值:
发帖
回帖
粉丝
7
感谢分享!
2019-9-5 19:40
0
雪    币: 31
活跃值: (47)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
2019-9-7 20:51
0
雪    币: 144
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
可以把gcc编译优化改成O1,qemu加上 -append nokalsr 取消内核地址随机化便于准确下断点。
2019-9-10 11:13
0
雪    币: 8715
活跃值: (8619)
能力值: ( LV13,RANK:570 )
在线值:
发帖
回帖
粉丝
10
感谢分享
2019-9-20 17:18
0
雪    币: 270
活跃值: (1662)
能力值: ( LV5,RANK:75 )
在线值:
发帖
回帖
粉丝
11
请问一下ko文件放在哪里才能加载呢
2019-10-7 12:54
0
雪    币: 1515
活跃值: (4416)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
12
Vinadiak 请问一下ko文件放在哪里才能加载呢
一般目录都可以 自己把路径写对就行了
2019-10-8 14:34
1
雪    币: 14539
活跃值: (17553)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
13
问个傻傻的问题,在找内核漏洞的时候也是像这样搭建么??该怎么跑fuzz呢??
2019-10-8 16:01
0
雪    币: 1068
活跃值: (30)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
14
大佬是如何解决题目驱动的version magic和内核版本不匹配的问题呢?比如我自己编译内核后加载babydriver.ko报: babydriver: version magic '4.4.72 SMP mod_unload modversions ' should be '4.4.72 SMP mod_unload '
2019-10-28 16:52
0
雪    币: 488
活跃值: (252)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
师傅啊,为什么我编译完内核,关机后,就进不来kali的图形化界面了,一直卡在start update UTMP about system runlevel changes,心态很崩,编译了两次内核都是这样
2019-11-1 14:59
0
雪    币: 1515
活跃值: (4416)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
16
Ne0o0o 大佬是如何解决题目驱动的version magic和内核版本不匹配的问题呢?比如我自己编译内核后加载babydriver.ko报: babydriver: version magic '4.4.72 ...
这个好像只能对应环境才可以运行,我也没什么办法....
2019-11-1 16:52
0
雪    币: 1515
活跃值: (4416)
能力值: ( LV10,RANK:170 )
在线值:
发帖
回帖
粉丝
17
!_245550 师傅啊,为什么我编译完内核,关机后,就进不来kali的图形化界面了,一直卡在start update UTMP about system runlevel changes,心态很崩,编译了两次内核都是 ...
显卡问题,你把机器原来的内核替换了?不应该吧....
2019-11-1 16:55
0
雪    币: 488
活跃值: (252)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
师傅,我是在虚拟机上编译的,环境是Linux kali 4.18.0-kali1-amd64 #1 SMP Debian 4.18.6-1kali1 (2018-09-10) x86_64 GNU/Linux。内核应该是没被替换的,我进入命令行界面之后查看版本还是kali 4.18.0,但是就是进不了可视化界面。会不会是我的硬盘空间不足,师傅预留了多少磁盘空间来编译内核撒,我每次编译完内核,磁盘剩余空间都为0。。。。
2019-11-2 11:23
0
雪    币: 1068
活跃值: (30)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
19
钞sir 这个好像只能对应环境才可以运行,我也没什么办法....
我是patch kernel/module.c check_modinfo 函数里面检查version magic的地方然后再编译,不知道还有没有更好的解决办法。
2019-11-5 16:13
0
雪    币: 14
活跃值: (126)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
要是大佬录个视频就好了
2019-12-7 20:53
0
雪    币: 809
活跃值: (1316)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
谢谢大佬分享,想问一个问题就是那个我同样是5.2.1内核,但是编译选项没找到大佬提供的选项。。。
2021-4-24 00:38
0
游客
登录 | 注册 方可回帖
返回
//