Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
kernelpop — カーネル権限昇格の列挙および悪用フレームワーク | Kitploit
ツール/GitHubGitHub/spencerdodd/kernelpop
特権昇格脆弱性分析エクスプロイトペネトレーションテスト
GitHubspencerdodd/kernelpop

kernelpop

カーネル権限昇格の列挙および悪用フレームワーク

リポジトリを見る
7021318年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

kernelpop

kernelpopは、以下のオペレーティングシステム上で自動カーネル脆弱性列挙とエクスプロイトを実行するためのフレームワークです:

  • Linux

  • Mac

python のバージョンに依存しないように設計されており、python2 と python3 の両方で動作するはずです。

  • もし動作しない場合はお知らせください

列挙からroot権限取得までの例 (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 #
##########################

[*] grabbing distro version and release from underlying OS (linuxdebian7)
[*] grabbing kernel version from 'uname -a'
[+] kernel (Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux) identified as:
[base]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.0-4
	architecture:		i686
[specific]
	type:			linux
	distro:			linuxdebian7
	version:		3.2.41-2
	architecture:		i686
[*] matching kernel to known exploits
[+] discovered 11 possible exploits !
	[[ distro kernel matched exploit available ]]
		CVE20165195_32	Dirty COW race condition root priv esc for 32 bit
	[[ distro kernel version vulnerable ]]
		CVE20144699	Exploitable race condition in linux before 3.15.4
		CVE20143153	`futex_requeue` vulnerability before 3.14.6 allows for priv esc
		CVE20162384	Double free vulnerability in the `snd_usbmidi_create` (requires physical proximity)
		CVE20140196	`n_tty_write` vuln before 3.14.4 allows priv esc to root
		CVE20132094_semtex	perf_swevent_init Local root exploit (32 bit)
		CVE20176074	`dccp_rcv_state_process` in net/dccp/input.c mishandles structs and can lead to local root
		CVE20132094_32	perf_swevent_init Local root exploit (32 bit)
	[[ base linux kernel vulnerable ]]
		CVE20144014	`chmod` restriction bypass allows users to get root before 3.14.8
		CVE20177308	`packet_set_ring` in net/packet/af_packet.c can gain privileges via crafted system calls.
		CVE20171000112	ip_ufo_append_data() memory corruption flaw can be exploited to gain root privileges.

出力にはいくつかのカテゴリがあります。それぞれの意味は以下の通りです。

[[ ディストリビューションカーネルが一致し、エクスプロイトが利用可能 ]]

  • プロジェクト内に、そのディストリビューションカーネルに固有のエクスプロイトが含まれており、それを利用してカーネルを悪用できます。エクスプロイト成功の可能性は高いです。

[[ ディストリビューションカーネルのバージョンに脆弱性あり ]]

  • ディストリビューションカーネルのバージョンはリストされた脆弱性に対して脆弱ですが、プロジェクト内のPoCエクスプロイトで明示的にテストされたとは示されていません。エクスプロイトを修正せずに使用しても動作する可能性はありますが、成功率は低くなります。

[[ ベースLinuxカーネルに脆弱性あり ]]

  • ディストリビューションカーネルのバージョンが脆弱であるかどうかは不明ですが、ベースのLinuxカーネルがエクスプロイトの脆弱な範囲に含まれています。エクスプロイトを修正せずに使用しても動作する可能性は低いか不明ですが、それでも動作する可能性があります。

必要条件

  • python2 または python3

  • pyinstaller (バイナリをビルドする場合)


使用方法

root@kitploit:~
run modes:
	(default)	        python3 kernelpop.py
	(exploit-mode)	        python3 kernelpop.py -e {exploit name}
		(dump-source)   python3 kernelpop.py -e {exploit name} -d
	(uname-mode)            python3 kernelpop.py -u {uname -a output}
	(interactive-mode)      python3 kernelpop.py -i # LEGACY option (same as uname-mode)
other:
	(playground path)       -p {new path}
	(json output file)      --digest json

デフォルトモード(受動的)

default モードは、ホストカーネルに関する情報を処理し、それをプログラムが既知のカーネルエクスプロイトと比較します。その後、潜在的に有用な脆弱性と付属のエクスプロイトのリストを出力します。

エクスプロイトモード(能動的)

root@kitploit:~
-e {exploit name}

exploit モードは、プログラム内で stdio のやり取りを行いながらエクスプロイトのソースコードを動的にコンパイルおよび実行します。また、短時間で中断された試行からの割り込みもキャッチできます。default モードでの最初の kernelpop 列挙実行時に表示されるエクスプロイトの名前を使用してください。

  • dump-source(オプション)-d

    • これは exploit モードの修飾子です。指定されたエクスプロイトのソースファイルを、それぞれ PLAYGROUND_PATH(デフォルトは /tmp)にダンプします。これは、ボックス上でエクスプロイトのソースを修正したり、手動操作や値のハードコーディングが必要なエクスプロイトを扱う場合に便利です。特にバイナリから実行する場合、プロジェクトのソースコード(つまりエクスプロイトのソース)にアクセスできないため、役立ちます。

uname モード(受動的)

root@kitploit:~
-u {uname -a output}

このオプションを使用すると、uname -a コマンドの出力をプログラムにインラインで渡すことができます。これにより、自動化スクリプトへの統合やその他の理由で使用可能になります。interactive mode の代替です。

インタラクティブモード(受動的)[LEGACY - Macでは uname 出力が必要]

root@kitploit:~
-i {uname -a output}

interactive モードでは、uname -a コマンドの出力のみで列挙を実行できます。これは、ホスト側のみの列挙ツールとして便利です。kernelpop を -i フラグ付きで起動し、要求されたときに uname -a の出力を渡すことで実行します。これはレガシー機能であり、uname mode に置き換えられましたが、-u は Mac の列挙をサポートしていないため、引き続きサポートされています。

PLAYGROUND パス

root@kitploit:~
-p {new PLAYGROUND_PATH dir}

-p オプションは、グローバル変数 PLAYGROUND_PATH の値を設定します。これは、すべてのエクスプロイトソースファイルが書き込まれ、エクスプロイトがコンパイルされる場所です。デフォルトでは /tmp に設定されています。ただし、この修飾子を使用して任意のディレクトリに設定できます。これは、/tmp に書き込みアクセス権がない場合に便利です。

消化可能な出力

root@kitploit:~
--digest json

このオプションを使用すると、kernelpop 実行の結果を後処理のために消化可能な json ファイルにダンプできます。現時点では json ダンプのみを実装していますが、リクエストがあれば XML バージョンにも取り組む予定です。

To Do

  • エクスプロイトをさらに追加する! (src/to_add に追加したい人がいれば、ぜひどうぞ!)

  • 脆弱性範囲の比較にパッチレベルを含める

  • 誤った解析や敵対的な設定の場合に、検出された設定を上書きする方法を追加する

カーネル脆弱性範囲を追加するプロセス:[ スクレイパーを書くべき ]

  • google: CVE-XXXX-XXXX "ubuntu"

    • canonical のリンクをクリック (https://people.canonical.com/~ubuntu-security/cve/2016/CVE-XXXX-XXXX.html)

      • usn.ubuntu.com にあるリンクされたすべてのアドバイザリをクリックし、情報を解析

      • バージョンごとに脆弱性範囲を埋めるためのパッチバージョンを取得

  • google: CVE-XXXX-XXXX "debian"

    • security-tracker.debian.org のリンク (https://security-tracker.debian.org/tracker/CVE-XXXX-XXXX)

      • 特定の CVE に関連するパッチが適用されたバージョンに関する情報をページ下部から取得
  • google: 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 リリース
ツールをダウンロード
  • 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