본문 바로가기
소니콘솔/플스커펌

ps5커펌 4.03 webkit 익스플로잇

by 산토끼집토끼 2022. 1. 27.
728x90
반응형

GitHub - ChendoChap/PS5-Webkit-Execution: ROP userland execution for PS5 (4.03)

 

GitHub - ChendoChap/PS5-Webkit-Execution: ROP userland execution for PS5 (4.03)

ROP userland execution for PS5 (4.03). Contribute to ChendoChap/PS5-Webkit-Execution development by creating an account on GitHub.

github.com

주요 변경 사항:
 
- FreeBSD 11을 사용합니다.
- 개발 액세스가 없습니다(즉, 악용 없이 서명되지 않은 코드를 실행하는 것은 불가능합니다).
- 현재까지 공개 익스플로잇이 없습니다.
- 커널 및 사용자 영역 완화가 추가되었습니다.
- 보안 및 애플리케이션 컨테이너를 관리하는 하이퍼바이저를 추가했습니다.
 
사용자 영역에 대한 약간의 역사:
 
9월에 Project Zero 는 CVE-2021-30858로 생각되는 보고서를 발표했는데, 실제로 그들이 설명하고 있는 것이 CVE-2021-30889였기 때문에 실수로 판명되었습니다. 개념 증명은 sleirsgoevy 에 의해 PS4용으로 작성되었으며 커널 익스플로잇을 위해 9.00에서 ROP를 실행하도록 수정했습니다. 취약점은 여기에서 논의되지 않을 것이며, 이 기사는 PS5에서 코드 실행을 달성하기 위해 익스플로잇이 제공하는 임의의 읽기/쓰기 및 leakobj()/fakeobj() 프리미티브를 사용하는 데 초점을 맞출 것입니다.
 
PS5에서 2.00과 같은 낮은 펌웨어는 취약하지 않은 것 같습니다. 아마도 관련 FontFace 코드 가 이전 WebKit 버전에 없기 때문일 것입니다(9.00보다 낮은 펌웨어는 이 WebKit 버그로 악용될 수 없기 때문에 PS4에도 적용됩니다) .
 
그러나 펌웨어 4.03 에서는 브라우저가 취약한 것으로 나타났습니다. 불행히도 PS4에서 사용된 익스플로잇은 CFI 기반 clang으로 인해 PS5에서 사용할 수 없었습니다. PS4에서 우리는 leakobj()와 임의의 쓰기 프리미티브 를 사용하여 HTMLTextArea의 가상 테이블을 누출하고 코드를 실행하기 위한 다양한 가상 호출을 파괴할 수 있습니다. PS5에서는 이러한 가상 통화가 확인됩니다.
 
가상 호출에는 이제 주소가 적용되는 다음과 같은 코드가 있습니다.
 
 
 
WebKit에서 코드를 실행하려면 대안이 필요했습니다. 운 좋게도 PS5의 CFI는 업스트림에만 있습니다. 따라서 업스트림 공격이 가능합니다. JavaScript는 Web Workers 라는 꽤 깔끔한 기능을 제공합니다 . 이러한 웹 작업자 는 기본적으로 격리된 환경에서 JavaScript를 실행하는 간단한 스레드입니다. 그들은 신뢰할 수 있는 누출 가능한 스택을 가지고 있고 ROP 체인 으로 피벗할 스레드를 제공하기 때문에 익스플로잇에 유용합니다 .
 
따라서 PS5에서 사용해야 하는 것은 이러한 웹 작업자입니다. WebKit(및 기타 많은 응용 프로그램)에서 사용하는 libkernel 라이브러리는 이 프로세스에 대한 스레드 목록을 유지하고 스택 스택의 주소 및 크기와 같은 정보를 포함합니다. 임의의 읽기/쓰기를 사용하여 이 목록을 반복함으로써 웹 작업자 의 주소를 찾을 수 있습니다 .
 
웹 작업자 주소를 찾으면 스택을 피벗하고 ROP가 작동하도록 주소를 덮어쓸 수 있습니다. 스택이 결정적이므로 postMessage 핸들러를 사용하여 더미 작업자를 설정하고 반환 주소를 스택+0x7FB88로 재정의할 수 있습니다.
 
간단히 말해서, 보시다시피, 이것은 모두 매우 기술적이고 명확하지 않지만 사용자 영역 내 보안 강화로 인해 PS4에서 사용된 익스플로잇을 PS5로 이식할 수 없으며 커널 익스플로잇도 다음을 수행해야 한다고 설명합니다. 설립하다. 이 익스플로잇 전략에 취약한 유일한 펌웨어는 펌웨어 4.03 이며, 그 아래에는 FontFace 코드(PS4 펌웨어 9.00 취약성)가 없기 때문에 다른 모든 펌웨어는 현재 한쪽 면에 표시되지 않으며 위의 오류가 수정되었습니다. , 그래서 다른 것을 찾아야 할 것입니다. 
 
 
모든 것이 여기에 있습니다: PS5-Webkit-Execution
728x90
반응형

댓글