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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-31431 — # CVE-2026-31431 커널 권한 상승 익스플로잇 AF_ALG 인터페이스를 악용하여 /bin/su를 덮어쓰고 루트 셸을 실행하는 CVE-2026-31431용 커널 권한 상승 익스플로잇입니다. C 구현 및 문제 해결 가이드를 포함합니다. | Kitploit
도구/GitHubGitHub/0xshe/cve-2026-31431
Privilege EscalationExploit FrameworksExploitationLearning & EducationBinary Exploitation
GitHub0xshe/cve-2026-31431

CVE-2026-31431

# CVE-2026-31431 커널 권한 상승 익스플로잇 AF_ALG 인터페이스를 악용하여 /bin/su를 덮어쓰고 루트 셸을 실행하는 CVE-2026-31431용 커널 권한 상승 익스플로잇입니다. C 구현 및 문제 해결 가이드를 포함합니다.

저장소 보기
40203개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

작성자: 0xShe

언어 / 语言

  • English: https://github.com/0xShe/CVE-2026-31431/blob/main/README.md
  • 中文: https://github.com/0xShe/CVE-2026-31431/blob/main/README-CN.md 1

CVE-2026-31431 커널 권한 상승 도구 가이드

0x01 빠른 시작

일부 대상 환경에는 Python이 설치되어 있지 않으므로 이 권한 상승 로직을 C로 다시 작성했습니다.

  1. 컴파일

Linux 머신 또는 WSL에서 다음 명령을 실행합니다(-static 사용을 권장합니다. GLIBC 버전 문제를 피하기 위함):

root@kitploit:~
gcc -static exploit.c -o exploit

2. 배포 및 실행

생성된 바이너리를 대상 머신에 업로드합니다:

root@kitploit:~
chmod +x exploit
./exploit

익스플로잇이 성공하면 프로그램이 자동으로 su를 실행하고 비밀번호 없이 바로 루트 셸을 생성합니다.


0x02 권한 상승 로직: 어떻게 동작하나요?

이 익스플로잇은 Linux 커널의 AF_ALG 인터페이스(커널 암호화 API)에 존재하는 로직 결함을 악용합니다.

  1. 암호화 소켓 생성 프로그램은 socket(AF_ALG, ...)을 사용하여 AEAD(인증된 연관 데이터 암호화) 소켓을 생성합니다.

  2. 메모리 주입(Splice) Linux의 splice 시스템 호출을 활용하여 파일 디스크립터(이 경우 /bin/su)의 데이터를 커널 암호화 버퍼로 직접 리디렉션합니다.

  3. 페이로드 덮어쓰기 특정 메모리 오프셋을 사용하여 익스플로잇이 /bin/su의 인증 로직 일부를 권한 상승 페이로드(/bin/sh를 실행하는 최소 ELF 프로그램)로 대체합니다.

  4. 권한 상승 트리거 커널이 일련의 암호화 작업을 완료하면 메모리 내 su 프로세스는 이미 변조된 상태입니다. 마지막으로 system("su")가 실행되면 시스템은 실제로 수정된 루트 셸 페이로드를 실행합니다.


0x03 문제 해결 가이드: 여전히 비밀번호를 요구하는 이유는?

디버깅 중 프로그램이 Exploit finished를 출력하지만 su 실행 시 여전히 비밀번호를 요구한다면, 문제는 일반적으로 다음 세부 사항 중 하나로 인해 발생합니다.

  1. 중요한 MSG_MORE 플래그

가장 흔한 실패 지점입니다. sendmsg 호출에는 반드시 MSG_MORE 플래그가 포함되어야 합니다.

  • 이유: 이 플래그는 커널에 더 많은 데이터가 온다는 것을 알려주고 암호화 버퍼가 너무 일찍 확정되는 것을 방지합니다.

  • 결과: 이 플래그가 없으면 커널은 현재 암호화 컨텍스트를 즉시 닫습니다. 그 결과 이후의 splice 주입이 올바른 커널 버퍼에 들어갈 수 없어 덮어쓰기가 불가능해집니다.

  1. 연관 데이터 길이(Assoclen)

커널은 AEAD 연관 데이터의 정렬 및 길이 검사에 매우 엄격합니다.

  • 함정: C 코드의 ASSOCLEN이 4바이트로 설정된 반면 커널이 8바이트를 기대하는 경우(또는 그 반대), 커널은 잘못된 인수 오류를 발생시키거나 주입 로직을 완전히 조용히 건너뛸 수 있습니다.
  1. 파일 오프셋 재설정

/bin/su를 수정하는 루프 동안 각 splice 작업은 오프셋 0부터 읽기를 시작해야 합니다.

  • 함정: off_su가 명시적으로 0으로 재설정되지 않으면 splice는 read()와 유사하게 동작하여 파일 포인터를 계속 전진시킵니다. 두 번째 반복에서 주입된 데이터가 정렬되지 않아 su가 손상되거나 익스플로잇 로직이 깨질 수 있습니다.
  1. 커널 패치

일부 시스템에는 이미 조용한 보안 패치가 적용되어 있을 수 있습니다. 이것은 여러 머신에서 테스트하는 동안 확인되었습니다 — 특정 대상에는 이미 비공식 또는 백포트된 수정 사항이 적용되어 있었습니다.


0x04 참고 사항

  • 커널 버전: 이 취약점은 주로 초기 5.x Linux 커널(예: Ubuntu 20.04의 초기 릴리스)에 영향을 미칩니다. 커널이 이미 패치된 경우 이 방법은 더 이상 작동하지 않습니다.

  • 경로 차이: Linux 배포판에 따라 su가 다른 위치(/bin/su 또는 /usr/bin/su)에 저장될 수 있습니다. 코드는 올바른 경로를 자동으로 감지하려고 시도하지만, 둘 다 존재하지 않으면 which su를 사용하여 수동으로 확인하고 코드를 그에 맞게 수정하십시오.

  • 면책 조항: 이 문서는 엄격히 기술 연구 및 교육 목적으로 작성되었습니다. 불법 활동에 사용하지 마십시오. 도구의 오용으로 인한 모든 법적 결과에 대한 책임은 전적으로 사용자에게 있습니다.

도구 다운로드