Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
kernelpop — 内核权限提升的枚举与利用框架 | Kitploit
工具/GitHubGitHub/spencerdodd/kernelpop
权限提升漏洞分析漏洞利用渗透测试
GitHubspencerdodd/kernelpop

kernelpop

内核权限提升的枚举与利用框架

查看仓库
70213128年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

kernelpop

kernelpop 是一个用于在以下操作系统上执行自动化内核漏洞枚举和利用的框架:

  • Linux

  • Mac

它被设计为与 python 版本无关,意味着它应该同时适用于 python2 和 python3。

  • 如果您发现它不兼容,请告知我

枚举到提权的示例(Linux)

got-root


使用方式

  • 从项目源码运行
root@kitploit:~
$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ python kernelpop.py || python3 kernelpop.py
  • 构建二进制文件
root@kitploit:~
$ git clone https://github.com/spencerdodd/kernelpop
$ cd kernelpop
$ ./create_executable.sh
$ ./kernelpop
  • 无需脚本构建二进制文件的步骤
  1. 安装 pyinstaller(步骤因构建系统而异)
  2. $ pyinstaller kernelpop.py --onefile
  3. $ cp dist/kernelpop .

两种二进制构建步骤都应在项目根目录下创建一个名为 kernelpop 的二进制文件。


枚举输出

root@kitploit:~
user@debian:~/Desktop/kernelpop$ python3 kernelpop.py

##########################
#  welcome to kernelpop  #
#                        #
# let's pop some kernels #
##########################

[*] 从底层操作系统获取发行版版本和发行版信息 (linuxdebian7)
[*] 从 'uname -a' 获取内核版本信息
[+] 内核(Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux)被识别为:
[base]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.0-4
	architecture:		i686
[specific]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.41-2
	architecture:		i686
[*] 将内核与已知漏洞进行匹配
[+] 发现 11 个可能的漏洞利用程序!
	[[ 发行版内核与漏洞利用程序匹配 ]]
		CVE20165195_32	Dirty COW 竞争条件,32位系统下的root权限提升
	[[ 发行版内核版本存在漏洞 ]]
		CVE20144699	Linux 3.15.4 之前版本中的可利用竞争条件
		CVE20143153	`futex_requeue` 漏洞(3.14.6 之前版本)允许权限提升
		CVE20162384	`snd_usbmidi_create` 中的双重释放漏洞(需要物理接触)
		CVE20140196	`n_tty_write` 漏洞(3.14.4 之前版本)允许权限提升到root
		CVE20132094_semtex	perf_swevent_init 本地 root 漏洞利用程序(32位)
		CVE20176074	`net/dccp/input.c` 中的 `dccp_rcv_state_process` 错误处理结构体,可导致本地root提权
		CVE20132094_32	perf_swevent_init 本地 root 漏洞利用程序(32位)
	[[ 基础 Linux 内核存在漏洞 ]]
		CVE20144014	`chmod` 限制绕过,允许用户在 3.14.8 之前版本中获得root权限
		CVE20177308	`net/packet/af_packet.c` 中的 `packet_set_ring` 可通过精心构造的系统调用提升权限。
		CVE20171000112	ip_ufo_append_data() 内存损坏缺陷可被利用以获取root权限。

在输出中,有几个类别。以下是每个类别的含义:

[[ 发行版内核与漏洞利用程序匹配 ]]

  • 项目中存在一个与该发行版特定版本匹配的内核漏洞利用程序,可用于利用该内核漏洞。成功利用的可能性较高.

[[ 发行版内核版本存在漏洞 ]]

  • 发行版内核版本存在所列出的漏洞,但未在项目的PoC漏洞利用程序中明确说明已测试过。未经修改直接使用该漏洞利用程序可能有效,但成功可能性较低。

[[ 基础 Linux 内核存在漏洞 ]]

  • 不确定该发行版内核版本是否存在该漏洞,但基础Linux内核处于该漏洞利用程序所影响的版本范围内。未经修改直接使用漏洞利用程序的可能性不大或未知,但仍可能有效。

要求

  • python2 或 python3

  • pyinstaller (如果您想构建二进制文件)


用法

root@kitploit:~
运行模式:
	(默认模式)	        python3 kernelpop.py
	(漏洞利用模式)	        python3 kernelpop.py -e {漏洞利用程序名称}
		(转储源代码)   python3 kernelpop.py -e {漏洞利用程序名称} -d
	(uname模式)            python3 kernelpop.py -u {uname -a 输出}
	(交互模式)             python3 kernelpop.py -i # 旧版选项(与uname模式相同)
其他:
	(沙盒路径)         -p {新路径}
	(可解析输出文件)   --digest json

默认模式(被动)

默认模式处理宿主机内核的信息,并将其与程序已知的内核漏洞利用程序进行比较。然后输出一份潜在有用的漏洞及附带漏洞利用程序的列表。

漏洞利用模式(主动)

root@kitploit:~
-e {漏洞利用程序名称}

漏洞利用模式动态编译并在程序内运行漏洞利用程序的源代码,同时处理标准输入/输出交互。它也能捕获因短时尝试失败而产生的中断。请使用在默认模式下首次运行 kernelpop 枚举时出现的漏洞利用程序名称。

  • 转储源代码(选项)-d

    • 这是漏洞利用模式的一个修饰符。它会将指定漏洞利用程序的源文件转储到 PLAYGROUND_PATH(默认为 /tmp)下的相应文件中。这对于在目标主机上修改漏洞利用程序源代码,或者处理需要手动交互或硬编码值的漏洞利用程序非常有用。当从二进制文件运行时,尤其有用,因为您无法访问项目源代码(即漏洞利用程序源代码)。

uname 模式(被动)

root@kitploit:~
-u {uname -a 输出}

该选项允许您将 uname -a 命令的输出直接传递给程序,使其可集成到自动化脚本中或用于其他可预见的目的。取代了交互模式。

交互模式(被动)[旧版 - Mac 系统因 uname 输出而需要]

root@kitploit:~
-i {uname -a 输出}

交互模式允许您仅通过 uname -a 命令的输出进行枚举,这使其成为一个非常有用的宿主机端枚举工具。通过启动 kernelpop 并带上 -i 标志运行,然后在系统提示时传递 uname -a 的输出。这是一个遗留功能,已被 uname 模式取代,但由于 -u 不支持 Mac 枚举,因此仍保持支持。

PLAYGROUND 路径

root@kitploit:~
-p {新的 PLAYGROUND_PATH 目录}

-p 选项用于设置全局变量 PLAYGROUND_PATH 的值。这是所有漏洞利用程序源文件写入和漏洞利用程序编译的位置。默认设置为 /tmp。但是,您可以使用此修饰符将其设置为任何目录,以防您在 /tmp 中没有写入权限。

可解析的输出

root@kitploit:~
--digest json

该选项允许您将 kernelpop 运行的结果转储到一个可解析的 JSON 文件中,以便后续处理。目前我只实现了 json 转储功能,但如果有人需要,我会考虑开发 XML 版本。

待办事项

  • 添加更多漏洞利用程序!(src/to_add 目录,如果有人想开始处理其中一些,请随意!)

  • 在漏洞影响范围比较中包含补丁级别

  • 添加一种方法来覆盖检测到的设置,以防解析错误或存在对抗性设置

添加内核漏洞影响范围的过程:[应该编写一个爬虫]

  • 谷歌搜索: CVE-XXXX-XXXX "ubuntu"

    • 点击 canonical 链接(https://people.canonical.com/~ubuntu-security/cve/2016/CVE-XXXX-XXXX.html)

      • 点击 usn.ubuntu.com 上的所有相关公告并解析信息

      • 获取补丁版本,用于填充每个版本对应的漏洞影响范围

  • 谷歌搜索: CVE-XXXX-XXXX "debian"

    • security-tracker.debian.org 链接(https://security-tracker.debian.org/tracker/CVE-XXXX-XXXX)

      • 从页面底部提取与特定 CVE 的补丁版本相关的信息
  • 谷歌搜索: CVE-XXXX-XXXX "mitre"

    • 链接到其他发行版以提取信息

当前支持的 CVE:

  • CVE-2017-1000379

  • CVE-2017-1000373

  • CVE-2017-1000372

  • CVE-2017-1000371

  • CVE-2017-1000370

  • CVE-2017-1000367

  • CVE-2017-1000112

  • CVE-2017-7308

  • CVE-2017-6074

  • CVE-2017-5123

  • CVE-2016-5195

  • CVE-2016-2384

  • CVE-2016-0728


漏洞利用程序来源

https://github.com/SecWiki/linux-kernel-exploits

http://exploit-db.com/

https://github.com/lucyoa/kernel-exploits

https://github.com/SecWiki/windows-kernel-exploits

历史发行版来源

Debian

  • debian releases
下载工具
  • CVE-2015-1328

  • CVE-2014-4699

  • CVE-2014-4014

  • CVE-2014-3153

  • CVE-2014-0196

  • CVE-2014-0038

  • CVE-2013-2094

  • CVE-2010-4347

  • CVE-2010-2959

  • CVE-2009-1185