iOS Extracting Entitlements From Compiled Application
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Summary of the page https://mas.owasp.org/MASTG/tests/ios/MASVS-PLATFORM/MASTG-TEST-0069/#review-entitlements-embedded-in-the-compiled-app-binary
앱의 IPA 또는 탈옥된 장치에 설치된 앱을 다룰 때, .entitlements
파일이나 embedded.mobileprovision
파일을 직접 찾는 것은 불가능할 수 있습니다. 그러나, 앱 바이너리에서 권한 속성 목록을 추출할 수 있으며, 이는 "iOS Basic Security Testing" 장의 절차를 따릅니다. 특히 "Acquiring the App Binary" 섹션을 참조하십시오.
암호화된 바이너리에서도 이러한 파일을 추출하기 위해 특정 단계를 사용할 수 있습니다. 이러한 단계가 실패할 경우, Clutch(호환되는 iOS 버전일 경우), frida-ios-dump 또는 유사한 유틸리티를 사용하여 앱을 복호화하고 추출해야 할 수 있습니다.
앱 바이너리에 접근할 수 있는 컴퓨터에서 binwalk를 사용하여 모든 XML 파일을 추출할 수 있습니다. 아래 명령어는 이를 수행하는 방법을 보여줍니다:
대안으로, radare2를 사용하여 조용히 명령을 실행하고 종료할 수 있으며, "PropertyList"를 포함하는 앱 바이너리의 모든 문자열을 검색할 수 있습니다:
두 방법인 binwalk와 radare2는 plist
파일의 추출을 가능하게 하며, 첫 번째 방법(0x0015d2a4)의 검토를 통해 텔레그램의 원본 권한 파일의 성공적인 복구가 드러났습니다.
탈옥된 장치에서 접근한 앱 바이너리에 대해서는 grep 명령어와 -a, --text
플래그를 사용하여 모든 파일을 ASCII 텍스트로 처리할 수 있습니다:
-A num, --after-context=num
플래그를 조정하면 더 많은 또는 더 적은 줄을 표시할 수 있습니다. 이 방법은 암호화된 앱 바이너리에도 유효하며 여러 App Store 앱에 대해 검증되었습니다. 앞서 언급한 도구는 유사한 목적을 위해 탈옥된 iOS 장치에서도 사용할 수 있습니다.
참고: 이 작업에 대해 strings
명령어를 직접 사용하는 것은 관련 정보를 찾는 데 한계가 있기 때문에 권장되지 않습니다. 대신, 바이너리에 대해 -a
플래그와 함께 grep을 사용하거나 radare2(izz
)/rabin2(-zz
)를 활용하는 것이 더 효과적인 결과를 얻는 데 바람직합니다.