Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
kernelpop — 커널 권한 상승 열거 및 익스플로잇 프레임워크 | Kitploit
도구/GitHubGitHub/spencerdodd/kernelpop
Privilege EscalationVulnerability AnalysisExploitationPenetration Testing
GitHubspencerdodd/kernelpop

kernelpop

커널 권한 상승 열거 및 익스플로잇 프레임워크

저장소 보기
7021318년 전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 #
##########################

[*] 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 상호작용과 함께 익스플로잇 소스 코드를 동적으로 컴파일하고 실행합니다. 또한 조기 종료 시도로 인한 인터럽트를 포착할 수 있습니다. 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 버전도 작업할 예정입니다.

할 일

  • 더 많은 익스플로잇 추가! (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 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