
A WebKit exploit using CVE-2018-4441 to obtain RCE on PS4 6.20.
이 저장소는 CVE-2018-4441을 활용하여 PlayStation 4 펌웨어 6.20을 대상으로 하는 RCE 익스플로잇 PoC(proof-of-concept)를 포함합니다. 익스플로잇은 먼저 wkexploit.js에서 임의 읽기/쓰기 프리미티브와 임의 객체 주소 누수를 설정합니다. 그런 다음 index.html에서 ROP 체인을 실행하기 위한 프레임워크를 설정하며, 기본적으로 두 개의 하이퍼링크를 제공하여 테스트 ROP 체인을 실행합니다. 하나는 sys_getpid() 시스템 콜을 실행하고, 다른 하나는 sys_getuid() 시스템 콜을 실행하여 각각 프로세스의 PID와 사용자 ID를 얻습니다.
각 파일 상단에는 파일 내용과 익스플로잇 작동 방식에 대한 간략한 설명이 포함된 주석이 있습니다. 버그 발견에 대한 크레딧은 Google Project Zero(p0)의 lokihardt에게 있습니다. 버그 리포트는 여기에서 확인할 수 있습니다.
참고: 6.50 펌웨어 업데이트에서 패치되었습니다.
파일을 이름순으로 알파벳 순서로 나열;
index.html - 포스트 익스플로잇 코드 포함, 임의 읽기/쓰기 -> 코드 실행으로 진행.rop.js - ROP 체인을 위한 프레임워크 포함.syscalls.js - 포스트 익스플로잇에 사용할 시스템 호출의 (불완전한) 목록 포함.wkexploit.js - WebKit 익스플로잇의 핵심 포함.p.launchchain() 메서드를 교체해야 할 수도 있습니다.syscalls.js에 적은 수의 시스템 호출만 포함된 이유 중 하나입니다.xampp 또는 선택한 다른 프로그램을 사용하여 localhost에서 이러한 파일을 호스팅하는 웹 서버를 설정하세요. 또는 서버에서 호스팅할 수도 있습니다. PS4에서 다음 중 하나로 접근할 수 있습니다;
수동 페이지를 익스플로잇 페이지로 리디렉션하는 가짜 DNS 스푸핑, 또는
웹 브라우저를 사용하여 익스플로잇 페이지로 이동 (항상 가능한 것은 아님).
저는 익스플로잇을 작성했지만 취약점을 발견하지는 않았습니다. 위에서 언급했듯이 버그(CVE-2018-4441)는 Google Project Zero(p0)의 lokihardt에 의해 발견되었으며 Chromium 공개 버그 추적기를 통해 공개되었습니다.
Chromium 버그 리포트 - 취약점.
Phrack: Attacking JavaScript Engines by saelo - 생명의 은인. 이 신성한 논문이 없었다면 이 익스플로잇은 약 1500배 더 어려웠을 것입니다.
lokihardt - 취약점
st4rk - 익스플로잇 도움
qwertyoruiop - WebKit 학교
saelo - Phrack 논문