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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
PS5-UMTX-Jailbreak — PS5용 WebKit 기반 커널 익스플로잇 및 탈옥 | Kitploit
도구/GitHubGitHub/ps5dev/ps5-umtx-jailbreak
Privilege EscalationExploitationPost-ExploitationBinary Exploitation
GitHubps5dev/ps5-umtx-jailbreak

PS5-UMTX-Jailbreak

PS5용 WebKit 기반 커널 익스플로잇 및 탈옥

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PS5 UMTX 탈옥


요약

이 저장소에는 Synacktiv이 보고한 UMTX 경쟁 조건 use-after-free (CVE-2024-43102) 취약점에 대한 WebKit ROP 익스플로잇이 포함되어 있습니다. 기본적으로 fail0verflow의 및 flatz의 익스플로잇 전략을 포팅한 것입니다. UAF를 악용하여 커널 스레드 스택에 대한 읽기/쓰기 매핑을 얻고, 파이프 읽기와 쓰기를 활용하여 커널에서 (그다지 이상적이지 않은) 임의 읽기/쓰기 프리미티브를 구축합니다. 그런 다음 이 읽기/쓰기는 ipv6 소켓 쌍과 파이프 쌍을 활용하는 더 나은 프리미티브로 승격되어, 이전 IPV6 PS5 커널 익스플로잇에서 가능했던 것과 동일한 방식으로 페이로드에 전달할 수 있는 안정적인 읽기/쓰기를 제공합니다.

이 페이지 자체는 idlesauce의 PS5 익스플로잇 호스트를 축소 및 수정한 버전입니다. 이미 psfree를 제가 이전에 사용하던 코드 스타일에 접합하는 작업을 해두었기 때문입니다. 또한 이 호스트는 매우 매끄럽고 유용한 페이로드를 통합하므로 제가 실행할 때 개인적으로 선호하는 선택이기도 합니다. 가까운 시일 내에 이 익스플로잇을 지원하도록 업데이트되기를 바랍니다 <3.

결국 페이로드 로더가 실행되어 포트 9021에서 페이로드 ELF를 수신 대기합니다. 커널 오프셋이 추가되면 이 로더와 완전히 호환될 것이므로 PS5 Payload Dev SDK를 권장합니다.

이 취약점은 1.00 펌웨어부터 7.61 펌웨어까지 영향을 미치지만, FW >= 3.00은 익스플로잇이 작동하도록 조정이 필요한 추가 완화 조치가 있는 것으로 보입니다. 저는 주로 낮은 펌웨어에만 관심이 있기 때문에 이 익스플로잇은 아직 FW >= 3.00을 지원하지 않습니다. 또한, 우리가 연쇄적으로 사용하는 WebKit 취약점은 6.00에서 패치되었으므로, 이러한 시스템에는 사용자 영역 읽기/쓰기를 달성하는 또 다른 WebKit 익스플로잇이 필요할 것입니다. 다시 말하지만, 저는 높은 펌웨어에 집중하지 않으므로 지금은 미완성으로 남겨둡니다.

중요 참고 사항

  • 3.00+는 신뢰성이 낮고 실행 시간이 더 오래 걸릴 수 있습니다. "triggering race"에서 한동안 멈춰 있다면 브라우저를 닫고 다시 시도하세요.
  • 5.00+에서는 더 이상 dlsym을 제대로 호출할 수 없기 때문에 ELF 로더가 현재 작동하지 않습니다. 페이로드 SDK에 변경이 필요합니다.

현재 지원되는 펌웨어는 다음과 같습니다:

  • 1.xx [1.00, 1.01, 1.02, 1.05, 1.10, 1.11, 1.12, 1.13, 1.14]
  • 2.xx [2.00, 2.20, 2.25, 2.26, 2.30, 2.50, 2.70]
  • 3.xx [3.00, 3.20]
  • 4.xx [4.00, 4.02, 4.03, 4.50, 4.51]
  • 5.xx [5.00, 5.02, 5.10, 5.50]

현재 포함된 기능

  • 커널 임의 읽기/쓰기 획득
  • 디버그 설정 메뉴 활성화 (참고: 설정을 완전히 종료했다가 다시 들어가야 표시됩니다).
  • 루트 권한 획득 및 샌드박스/감옥 탈출.
  • 페이로드 실행을 위해 포트 9021에서 John Tornblom의 ELF 로더 실행 (5.00FW 미만)

제한 사항

  • 이 익스플로잇은 읽기/쓰기를 달성하지만 코드 실행은 아닙니다. 커널 .text 페이지가 XOM(eXecute Only Memory)으로 표시되어 가젯을 위한 커널 코드를 현재 덤프할 수 없기 때문입니다. 커널 .text 포인터를 읽으려고 하면 패닉이 발생합니다!
  • 위 사항에 더하여 하이퍼바이저(HV)가 커널 쓰기 보호를 적용하므로, 이 익스플로잇은 커널 공간에 패치나 후크를 설치할 수도 없습니다.
  • Clang 기반의 세분화된 CFI(Control Flow Integrity)가 존재하며 적용됩니다.
  • HV 때문에 SMAP/SMEP(Supervisor Mode Access Prevention/Execution)을 비활성화할 수 없습니다.
  • FW >= 6.00은 새로운 WebKit 익스플로잇이 필요하므로 지원되지 않습니다.

사용 방법

  1. dns.conf를 통해 fakedns를 구성하여 manuals.playstation.net이 PC의 IP 주소를 가리키도록 합니다.
  2. fake dns 실행: python fakedns.py -c dns.conf
  3. HTTPS 서버 실행: python host.py
  4. PS5 고급 네트워크 설정으로 이동하여 기본 DNS를 PC의 IP 주소로 설정하고 보조 DNS는 0.0.0.0으로 둡니다.
    1. 때때로 매뉴얼이 여전히 로드되지 않고 재시작이 필요한 경우가 있습니다. 정말 이상하지만 이유는 확실하지 않습니다.
  5. 설정에서 사용자 매뉴얼로 이동하여 신뢰할 수 없는 인증서 프롬프트를 수락한 후 실행합니다.
  6. 선택 사항: 커널 .data 덤프 코드의 주석을 해제하고 덤프 서버 스크립트를 실행합니다 (참고: 주소/포트는 exploit.js에서 대체해야 합니다).

향후 작업

  • 완화 조치를 반영하기 위해 FW >= 3.xx용 익스플로잇 전략 업데이트
  • 더 많은 (하위) 펌웨어에 대한 오프셋 추가
  • FW >= 6.00용 WebKit 익스플로잇 추가.

ELF 로더 사용

ELF 로더를 사용하려면 익스플로잇이 완료될 때까지 실행하세요. 완료되면 포트 :9021에서 서버가 실행됩니다. TCP로 PS5에 연결하여 ELF를 보내면 실행됩니다. 이 로더는 브라우저를 종료한 후에도 페이로드를 계속 수락하고 실행합니다.

익스플로잇 전략 참고 사항

초기 double free

이 익스플로잇의 전략은 대부분 fail0verflow와 flatz에서 비롯되었습니다. 취약점에 대한 자세한 내용은 chris@accessvector의 분석 글을 참조하세요. 익스플로잇에 성공하면 기본적으로 double free가 발생합니다. 이를 사용하여 커널 스택의 vmobject를 mmap 매핑의 vmobject와 겹치게 하여 커널 스레드 스택에 대한 창을 얻을 수 있습니다. 이 매우 강력한 기능을 통해 스택에 있는 임의의 커널 포인터에 읽기/쓰기를 할 수 있어 ASLR을 무력화하고 프리미티브를 만들 수 있습니다. 스택에 접근 권한이 있는 스레드를 victim 스레드라고 부릅니다.

임의 읽기/쓰기 얻기

메인 스레드에서 파이프를 만들고 파이프 버퍼를 채운 다음 victim 스레드를 사용하여 쓰기를 시도하면, victim 스레드는 버퍼에 공간이 생길 때까지 대기하며 차단됩니다. 이 시간 동안 커널 스택에 대한 창을 사용하여 iovec 포인터를 커널 포인터로 변경하고 플래그를 설정하여 커널 주소로 처리되게 할 수 있습니다. 그런 다음 메인 스레드에서 파이프를 읽으면 커널 임의 읽기를 얻을 수 있습니다.

마찬가지로 victim 스레드가 파이프에서 읽도록 하면 들어오는 데이터를 기다리며 차단됩니다. 그런 다음 다시 iovec 포인터를 덮어써서 커널 포인터로 만들고 메인 스레드에서 데이터를 쓰면 커널 임의 쓰기를 얻을 수 있습니다.

임의 읽기/쓰기 업그레이드

이 단계에서는 실제 제약이 없는 임의 읽기/쓰기를 보유하지만, 작동하려면 멀티스레딩과 차단을 사용해야 하므로 이상적이지 않습니다. 그런 다음 R/W를 사용하여 프로세스의 FD 테이블을 반복하고 두 IPV6 소켓의 pktopts를 겹칩니다. 그런 다음 IPV6_PKTINFO sockopt를 통해 또 다른 임의 읽기/쓰기를 만들 수 있습니다. 그러나 이 읽기/쓰기 프리미티브는 기본 소켓 옵션으로 인해 크기와 내용이 제한되므로 역시 이상적이지 않습니다. 대부분의 페이로드 등이 구축된 IPV6 익스플로잇 시나리오를 모방하기 위해 이 단계를 유지합니다.

파이프를 통해 더 나은 읽기/쓰기를 얻을 수 있습니다. 프로세스의 FD 테이블을 다시 반복하고 pipemap 버퍼 객체를 수정하여 읽기/쓰기를 구축할 수 있습니다. IPV6 소켓 쌍은 pipemap 버퍼를 제어하는 메커니즘으로 사용됩니다.

손상 수정/우회

상태를 그대로 두고 브라우저를 닫으려고 하면 시스템이 충돌합니다. 프로세스 정리 과정에서 이미 해제된 커널 스택을 해제하려고 하기 때문입니다. 이를 방지하기 위해 두 가지를 수행합니다:

  1. 초기 double free에 사용하는 shm FD의 참조 카운트를 의도적으로 누출하여 프로세스 종료 시 해제되지 않도록 합니다.
  2. 프로세스의 스레드 목록에서 victim 스레드의 td_kstack을 0으로 설정합니다.

안정성 참고 사항

FW < 3.00에서 이 익스플로잇은 매우 안정적입니다. 유일한 중요한 실패 지점은 vmobject 겹치기에 실패하는 것입니다. 더 높은 펌웨어에서는 페이지/힙 할당자 수준의 완화 조치로 인해 이 겹치기가 달성하기 더 어렵습니다.

크레딧 / 감사 인사

  • fail0verflow
  • flatz
  • ChendoChap
  • SlidyBat
  • abc/psfree
  • idlesauce
  • Znullptr
  • zecoxao
  • SocracticBliss
  • John Tornblom

Discord

PS5 연구/개발에 기여하는 데 관심이 있는 분들은 제가 만든 Discord에 참여할 수 있습니다 여기.

도구 다운로드