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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
UnjailMe — 샌드박스 탈출 도구, 개념 증명(CVE-2018-4087) 기반, Rani Idan(Zimperium) 제작 | Kitploit
도구/GitHubGitHub/mtjailed/unjailme
Privilege EscalationExploit FrameworksiOS SecurityVulnerability AnalysisExploitationForensicsPost-ExploitationMobile SecurityPayload DevelopmentBinary Exploitation
GitHubmtjailed/unjailme

UnjailMe

82218년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

샌드박스 탈출 도구, 개념 증명(CVE-2018-4087) 기반, Rani Idan(Zimperium) 제작

저장소 보기웹사이트

UnjailMe

다음에 기반한 샌드박스 탈출 도구:

  • Rani Idan(Zimperium)의 개념 증명(CVE-2018-4087)
  • @cheesecakeufo의 securityd 오버플로 개념 증명(제로데이, 알려진 CVE 없음, Abraham에게 감사드립니다!)

ZIMPERIUM PoC에 대하여

Rani는 Jonathan Levine의 sbtool을 사용하여 샌드박스 내에서 통신에 접근 가능한 서비스가 무엇인지 알아냈습니다.

그런 다음 그는 bluetoothd를 더 찾아내고 해당 서비스로부터/로의 메시지를 가로채는 코드를 설정했습니다.

이를 통해 그는 많은 데몬의 세션을 하이재킹하고 클라이언트 포트를 유출할 수 있다는 것을 알아냈습니다.

이 방법으로 bluetoothd에 대한 클라이언트 연결에 추가 데이터가 포함된 콜백을 추가할 수 있음을 발견했습니다.

그 결과, 클라이언트 포트(세션)가 가로채지는 시스템 데몬의 프로세스 카운터(콜백)와 레지스터 x3(추가 데이터)에 대한 제어권을 얻을 수 있습니다.

이를 통해 샌드박스 앱이 특권 컨텍스트로 탈출하여 시스템 권한으로 코드를 실행할 수 있는 가능성을 제공합니다.

Apple은 iOS 11.2.5에서 세션 ID에 arc4random()을 사용하여 취약점을 패치했습니다.

더 이상 클라이언트 포트를 얻을 수 없는 것처럼 보이지만 세션 가로채기는 여전히 가능합니다.

이 새로운 패치에서는 arc4random()을 무차별 대입하는 데 약 5일이 걸리며(4.294.967.296가지 가능성), 따라서 이것이 보안 문제에 대한 수정으로 간주되지 않기 때문에 최종 패치를 기대하고 있습니다.

출처: Zimperium 블로그

Abraham Masri의 PoC에 대하여

제가 알기로 이것은 securityd와의 통신에서 발생하는 버퍼 오버플로입니다.

이는 잘못된 길이의 XPC 메시지(딕셔너리 기반 값-키 메시지)를 제공함으로써 수행됩니다.

서비스가 메시지를 수신하고 언더플로가 발생합니다.

Abraham은 많은 프로세서 레지스터를 제어할 수 있는 방법을 찾은 것으로 보이며, 이는 시스템 내에서 실행되는 앱이 시스템 권한으로 코드를 실행할 수 있게 합니다.

Abraham의 PoC는 Abraham이 이 취약점에 대한 익스플로잇을 직접 만들려고 시도하고 있음을 보여줍니다. 베이스 주소를 유출하는 코드가 존재하는데, 이는 ROP 체인 생성의 시작으로 알려져 있습니다.

Abraham이 직접 이 익스플로잇을 작성할 계획인지, 아니면 우리에게 올바른 방향을 제시하는 것인지는 알 수 없습니다.

요구 사항

  • iOS 10~11.3.1을 실행하는 64비트 iOS 장치

이 프로젝트에 대하여

  • 이 프로젝트는 탈옥이 아니며, 탈옥에 기여하지도 않습니다. 이 프로젝트는 사용자 영역에서만 동작하기 때문입니다.
  • 이 프로젝트는 루트 파일 시스템에 쓰기 권한을 얻을 수 없으며 앞으로도 얻지 못할 것입니다. 커널에 의해 읽기 전용으로 마운트되어 있기 때문입니다.
  • 이 프로젝트는 Cydia Substrate와 같은 동적 라이브러리 형태의 임의 코드 실행을 쉽게 허용하지 않습니다.
  • 이 프로젝트의 주요 목표는 샌드박스 컨테이너 앱을 시스템 권한으로 승격시키는 것입니다.
  • AMFI는 모든 바이너리가 유효하게 서명되어 있어야 하며, 이 프로젝트는 AMFI를 패치할 수 없습니다.
  • 이 프로젝트는 사용자 데이터 파티션(/var/root, /var/mobile)에 대한 읽기 및 쓰기 권한을 얻는 것을 목표로 합니다.
  • 이 프로젝트는 자격 증명 복구 및 포렌식 목적으로 보호된 키체인 저장소에 접근하는 것을 목표로 합니다.
  • 또한 이 프로젝트는 루트 권한으로 코드를 실행하고 파일 전송을 위한 서버 기능을 제공하는 것을 목표로 합니다.
  • 이 프로젝트는 개발자와 연구자들이 기여할 수 있도록 도움을 주기 위해 만들어졌습니다.
  • 이 프로젝트는 탈옥 개발자와 보안 연구원들이 퍼징 기술을 사용하여 특권 컨텍스트 내에서만 접근 가능한 커널 드라이버의 버그나 사용자 영역 버그를 더 쉽게 찾을 수 있게 해줄 것입니다.
  • 이 프로젝트는 탈옥 트윅 개발자들이 새로운 iOS 11 기능을 연구하고 실제 기기에서 트윅 개발을 디버깅하는 것을 더 쉽게 해줄 것입니다.
  • 이 프로젝트는 주로 iOS 1011.2.5에서 작동하는 데 초점을 맞추고 있지만, 이론적으로 익스플로잇이 개발되면 11.2.511.3.1까지도 지원할 수 있습니다.

스크린샷

앱 사용 방법

  • 이 앱은 프로젝트에 어떤 가치도 더하지 않지만, 요청하는 사람들을 위한 시각적 자료 역할을 합니다(커뮤니티의 많은 과대광고된 사람들이 요청했습니다).
  • 이 앱은 라이브러리와 프레임워크에서 메모리, mach-o 정보, 그리고 ROP 개발에 유용한 기본 주소를 포함한 정보를 덤프합니다.
  • 많은 파싱과 출력으로 인해 앱의 로직이 완료되는 데 최대 15분이 소요될 수 있으며, 이는 최종 릴리스에서는 그렇지 않을 것입니다.
  • 이 앱은 iPhone에 어떤 가치도 더하지 않으며 소프트웨어의 동작을 변경하지 않습니다. 일부 데몬이 충돌할 수 있지만 시스템에 영구적인 손상은 없습니다.
  • 연구자들은 대신 Xcode에서 이 프로젝트를 실행하는 것이 좋습니다.

문제 해결 (필요 없지만, 만일을 대비하여)

  • 앱 삭제
  • 블루투스 끄기
  • 재부팅
  • 블루투스 켜기
  • 블루투스 끄기

기능

  • FTP 접근 (현재는 샌드박스, 향후 샌드박스 해제)
  • 시각적 PoC
  • zerodium의 PoC (드디어 약간 개선, system() 함수 호출 가능)
  • Abraham의 PoC, 루트로 임의 코드 실행 가능, ssh에 적합.
  • Sem Voigtlander의 PoC (커널 주소 공간 할당 DoS, 장치 재부팅 기능).

계획

  • 다른 데몬의 주소 공간을 완전히 제어하는 것을 포함한 전체 익스플로잇.
  • 원격 SSH 셸 접근 (dropbear 또는 파생물).

고려할 미래 사항

  • SpringBoardd 코드 주입 (안녕하세요 탈옥 애호가 여러분)
  • launchd (세션을 얻을 수 없으므로 불가능).

가설 (단순 추측)

  • launchd 자격을 가진 데몬 찾기 / 자격 주입.
  • BaseBoard 프레임워크를 로드하는 코드 주입
  • dyld_shared_cache에 있는 라이브러리의 주소 유출.
  • dyld_shared_cache에 있는 모든 라이브러리에서 ROP 가젯 찾기.
  • 콜백 및 콜백 추가 데이터를 설정하여 ROP 체인 호출.
  • BaseBoard의 역공학 로직을 사용하여 launchd가 ASLR을 비활성화하고 인수와 함께 amfid를 실행하도록 만듦.
  • amfid 패치
  • BaseBoard의 역공학 로직을 사용하여 afcd가 /에 대한 인수와 ASLR 비활성화로 실행되도록 만듦 (afc2와 유사).
  • BaseBoard의 역공학 로직을 사용하여 unjaild를 실행. unjaild는 launchd를 감싸는 래퍼 역할을 하며 작업 권한 및 코드 주입을 처리하는 데몬.
  • BaseBoard 로직을 사용하여 ASLR이 비활성화된 launchd에 대한 task port 획득

검토할 사항

  • AMFI 패치 (쉽지 않음, amfi를 통해 세션을 얻을 수 없지만 다른 데몬을 사용하여 권한 상승 가능).
  • 자격 주입 (꼭 필요하지는 않음, 너무 많은 데몬을 제어할 수 있어 필요 없음).
  • 비공개 API를 사용하여 추가 권한 상승 (BaseBoard.framework는 시스템 권한으로 ASLR을 비활성화하고 프로세스를 실행할 수 있음)???
  • liblorgnette을 iOS로 부활 및 포팅 (완료)

Download ipa

https://github.com/MTJailed/UnjailMe/releases/tag/0.1

크레딧

  • Abraham (@cheesecakeufo) - 그의 securityd 제로데이
  • 취약점 및 초기 PoC: Rani Idan (Zimperium) <3
  • PureFTPd
  • liblorgnette 프로젝트 (약간의 개선 포함)
  • @ringarang의 NEWUI

기부 또는 기여

  • 소스 코드는 트위터 DM(@MTJailed)으로 요청하면 제공됩니다.
  • 기부해 주세요. 이런 프로젝트를 진행할 시간과 수단이 매우 부족합니다! (http://paypal.me/devsupport)
  • 곧 소스 코드(ftp 제외)가 GitHub에 공개될 예정입니다.
도구 다운로드