
다중 아키텍처 Linux 권한 상승 툴킷으로, 29개의 사전 빌드된 익스플로잇과 런타임 컴파일 가능한 익스플로잇을 제공합니다. 커널 버전을 자동 감지하고, 패치된 익스플로잇을 필터링하며, root 권한을 얻을 때까지 각 익스플로잇을 시도합니다.
다중 아키텍처 권한 상승 도구 모음으로, 24개의 익스플로잇을 포함합니다 (amd64는 사전 빌드, 다른 아키텍처는 런타임에 gcc로 컴파일). amd64, arm64, 386, mips, mipsle, mips64 및 mips64le을 지원합니다. 커널 버전을 감지하고, 패치된 익스플로잇을 필터링하며, 루트 권한을 얻을 때까지 순서대로 각 익스플로잇을 시도합니다.
# 직접 실행 (대상에 gcc가 필요하지 않으며, 사전 컴파일된 바이너리가 포함되어 있음)
./lpe-toolkit
# 드라이 런: 실행하지 않고 익스플로잇 계획만 표시
./lpe-toolkit --dry-run
# 특정 익스플로잇 건너뛰기
./lpe-toolkit --skip "dirtyfrag,dirtypipe"
# 루트 권한 획득 후 명령어 실행 및 출력 표시
./lpe-toolkit -c "id"
# 무음 자동화: 명령 결과를 제외한 모든 출력 억제
./lpe-toolkit -q -c "whoami"
# 자세한 출력 (익스플로잇의 stdout/stderr 포함)
./lpe-toolkit -v
| 플래그 | 설명 |
|---|---|
--dry-run | 사용 가능/건너뛰기된 익스플로잇 표시 |
--just-build | 모든 익스플로잇을 확인하고 경로를 출력한 후 종료 (패키징에 유용) |
--skip LIST | 건너뛸 익스플로잇 이름 (쉼표로 구분) |
-c, --command CMD | 대화형 셸 대신 루트로 CMD 실행 |
-q, --quiet | 툴킷 메시지 억제; 루트 셸 출력 또는 unsuccessful in getting root만 표시 |
-v, --verbose | 출력에 익스플로잇 stdout/stderr 포함 (-q와 상호 배타적) |
참고: -v와 -q는 상호 배타적입니다. 둘 다 지정하면 툴킷이 오류와 함께 종료됩니다.
| # | 이름 | 대상 | 유형 |
|---|---|---|---|
| 1 | Copy Fail CVE-2026-31431 | AF_ALG + splice 페이지 캐시 쓰기 | 사전 빌드 / 컴파일 |
| 2 | Dirty Frag CVE-2026-43284 | xfrm-ESP/RxRPC 페이지 캐시 쓰기 | 사전 빌드 / 컴파일 |
| 3 | Fragnesia CVE-2026-46300 | espintcp splice 페이지 캐시 손상 | 사전 빌드 / 컴파일 |
| 4 | DirtyDecrypt CVE-2026-31635 | rxgk 페이지캐시 쓰기 | 사전 빌드 / 컴파일 |
| 5 | Fragnesia v2 | skb_segment GRO coalesce | 사전 빌드 / 컴파일 |
| 6 | PinTheft | RDS zerocopy + io_uring 페이지 캐시 덮어쓰기 | 사전 빌드 / 컴파일 |
| 7 | Dirty Pipe CVE-2022-0847 | /etc/passwd 페이지 캐시 덮어쓰기 | 사전 빌드 / 컴파일 |
| 8 | CIFSwitch CVE-2026-46243 | cifs.spnego + NSS 네임스페이스 혼동 | 사전 빌드 / 컴파일 |
| 9 | PwnKit CVE-2021-4034 | pkexec 환경 탈출 | 사전 빌드 / 컴파일 |
| 10 | OverlayFS CVE-2021-3493 | 사용자 네임스페이스 마운트 탈출 | 사전 빌드 / 컴파일 |
| 11 | OvFS+FUSE CVE-2023-0386 | FUSE 마운트 탈출 | 사전 빌드 / 컴파일 |
| 12 | Pack2TheRoot CVE-2026-41651 | PackageKit D-Bus 경쟁 → setuid 루트 | 사전 빌드 / 컴파일 |
| 13 | Polkit D-Bus CVE-2021-3560 | accounts-daemon 경쟁 | 사전 빌드 / 컴파일 |
| 14 | Docker Socket | 쓰기 가능한 /var/run/docker.sock | 사전 빌드 / 컴파일 |
| 15 | netfilter OOB CVE-2021-22555 | ip_tables 손상 | 사전 빌드 / 컴파일 |
| 16 | nft UAF2 CVE-2022-2586 | nftables 체인 UAF | 사전 빌드 / 컴파일 |
| 17 | pidfd race CVE-2026-46333 | ssh-keysign/shadow FD 도용 | 사전 빌드 / 컴파일 |
| 18 | CPU Timer Race CVE-2025-38352 | POSIX 타이머 경쟁 (PoC) | 사전 빌드 / 컴파일 |
| 19 | nft UAF CVE-2024-1086 | Notselwyn 다중 파일 nftables | 사전 빌드 / 컴파일 |
| 20 | PEdit COW CVE-2026-46331 | tc-pedit 페이지 캐시 덮어쓰기 su | 사전 빌드 / 컴파일 |
| 21 | DirtyClone CVE-2026-43503 | ESP-in-UDP TEE 페이지 캐시 passwd | 사전 빌드 / 컴파일 |
| 22 | Bad Epoll CVE-2026-46242 | epoll close-vs-close 경쟁 UAF | 사전 빌드 / 컴파일 |
| 23 | FUSE OOB CVE-2026-31694 | FUSE readdir 캐시 OOB -> passwd | 사전 빌드 / 컴파일 |
| 24 | GTFOBins | 80개 이상의 비밀번호 없는 sudo 기법 | go-handler |
# 네이티브 빌드 (C 익스플로잇을 사전 컴파일한 후 Go 바이너리에 포함)
make
# 모든 아키텍처에 대해 크로스 컴파일 (네이티브 아키텍처의 C 익스플로잇만)
make build-all
# 소스에서 직접 실행 (럼타임에 대상에서 익스플로잇 컴파일)
make run-source
# 빌드 아티팩트 정리
make clean
요구 사항: Go 1.21+, gcc 및 대상 아키텍처용 크로스 컴파일러:
aarch64-linux-gnu-gcci686-linux-gnu-gccmips-linux-gnu-gccmipsel-linux-gnu-gccmips64-linux-gnuabi64-gccmips64el-linux-gnuabi64-gcc--just-build 플래그는 사용 가능한 모든 익스플로잇을 확인하고 경로를 출력합니다. 런타임에 무엇을 사용할 수 있는지 확인하는 데 사용하세요.
각 릴리스의 사전 컴파일된 바이너리 아카이브에는 C 익스플로잇이 포함된 정적으로 링크된 Go 바이너리가 포함됩니다. 모든 익스플로잇은 모든 아키텍처에 대해 사전 컴파일됩니다.
toolkit.go: 핵심 익스플로잇 정의, 커널 버전 파싱, 바이너리 해상도, GTFOBins sudo 남용 핸들러, 비대화식 명령 실행을 위한 execCommandAsRoot(), 장황도 헬퍼 msg()/say()main.go: CLI 진입점, 플래그 (-c, -q, -v, --skip, --dry-run, --just-build) 및 신호 처리build-exploits.sh: C 익스플로잇용 크로스 컴파일 스크립트exploits/: //go:embed를 통해 포함된 C 소스 파일 및 사전 컴파일된 바이너리cve_2026_41651.c: Pack2TheRoot 추가 — raw D-Bus 클라이언트(libdbus 없음)가 PackageKit InstallFiles SIMULATE/NONE 플래그를 경쟁시켜 루트 권한의 postinst 실행을 트리거하고, /var/tmp/.suid_bash에 setuid 루트 bash를 생성함
parseKernelVersion 수정: 커널 버전 비교 시 -rcN 접미사를 처리하기 위해 parseIntPrefix 추가
bad_epoll.c 올바른 J-jaeyoung 아키텍처로 재작성: 두 개의 epoll 쌍, 3000개 이상의 대기자를 통한 timerfd IRQ 확장, 깊이 3 oracle, 공유 변수에 acquire/release 원자 연산
모든 익스플로잇(leak-only/PoC-only 포함)이 이제 루트 셸을 생성하거나 요청된 명령어를 실행함
cve_2026_46333.c: try_passwd_root() 추가 — passwd에서 쓰기 가능한 /etc/shadow fd를 훔쳐 알려진 비밀번호 해시를 쓰고 su -를 실행; 실패 시 leak-only 메서드로 대체
cve_2025_38352.c: dirtypipe 스타일 splice()로 /etc/passwd 덮어쓰기 → root::0:0: → su - 실행 추가
명령 모드: 페이지 캐시 익스플로잇은 --corrupt-only를 사용하여 대화형 PTY 브리지를 건너뜀; execCommandAsRoot()가 명령어를 su stdin으로 파이프하여 안정적인 비대화식 실행을 보장
OFF_* 및 PIVOT* 정의를 사용자 정의하세요. /proc/kallsyms 필요 (kptr_restrict=0). 패치되지 않은 커널에서 실행 — 수정 사항(커밋 a6dc643c6931, ep_clear_and_put 추가)은 Ubuntu 22.04의 6.8 HWE를 포함한 많은 배포판에 백포트되었습니다.