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.

В выводе есть несколько категорий. Вот что они означают:

[[ distro kernel matched exploit available ]]

  • существует эксплойт, соответствующий конкретной версии дистрибутива, который можно использовать для эксплуатации ядра. Высокая вероятность успешной эксплуатации.

[[ distro kernel version vulnerable ]]

  • версия ядра дистрибутива уязвима к указанной уязвимости, но в проекте явно не указано, что она протестирована в PoC-эксплойте. Эксплуатация без модификации эксплойта может сработать, но вероятность успеха ниже.

[[ base linux kernel vulnerable ]]

  • неизвестно, уязвима ли версия ядра дистрибутива к данной уязвимости, но базовое ядро 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 внутри программы. Он также может перехватывать прерывания от неудачных попыток. Используйте имя эксплойта, которое отображается при первоначальном запуске перечисления kernelpop в режиме default.

  • dump-source (опция) -d

    • Это модификатор для режима exploit. Он сбрасывает исходные файлы для указанного эксплойта в соответствующие файлы в PLAYGROUND_PATH (по умолчанию /tmp). Это полезно для модификации исходного кода эксплойта на машине или для работы с эксплойтами, требующими ручного взаимодействия или жёсткого кодирования значений. Особенно полезно при запуске из бинарного файла, так как у вас не будет доступа к исходному коду проекта (то есть к исходникам эксплойтов).

режим uname (пассивный)

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

Эта опция позволяет передать программе вывод команды uname -a непосредственно, что делает её пригодной для интеграции в автоматизированные скрипты или для любых других возможных целей. Замена interactive mode.

интерактивный режим (пассивный) [УСТАРЕВШИЙ — требуется для Mac из-за вывода uname]

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

Интерактивный режим позволяет выполнять перечисление, используя только вывод команды 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.

Задачи

  • добавить больше эксплойтов! (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