본문 바로가기

보안/iOS보안15

TheOS를 이용한 MobileSubstrate Tweak 빌드하기 주의) 본 포스트는 연구목적을 위해 작성되었습니다. 절대 악의적인 행위를 시도하지 마세요. 책임은 절대 본인에게 있습니다. This post is intended for research purposes. Never try anything malicious. The responsibility is absolutely up to you. 本郵報是爲研究目的而寫的。千萬不要嘗試惡意行爲。責任絕對在於本人。 本ポストは研究目的のために作成されました。絶対に悪意のある行為を試みないでください。責任は絶対本人にあります。 1. TheOS 설치 bash -c "$(curl -fsSL https://raw.githubusercontent.com/theos/theos/master/bin/install-theos)" 설치가 완료되면 다른 터.. 2023. 2. 25.
USB터널링을 통한 탈옥 아이폰 SSH 접속하기(with iproxy) 아이폰을 탈옥하게 되면 보통 22번포트 ssh로 접속하게되나 맥 또는 PC와 아이폰 간 네트워크 통신이 되지 않을 때에는 다른 방법을 이용해야 한다. 바로 USB터널링을 통해 맥에 아이폰을 USB로 연결하고 ssh로 접속 하는 것이다. 이 때 사용하게 되는 프로그램이 iproxy라는 프로그램인데 iproxy는 localhost의 특정 포트를 USB에 연결된 아이폰의 특정 포트로 터널링 해주는 기능을 수행한다. 사용 방법과 설정 방법은 매우 간단하다. 1. usbmuxd 설치 우선 usbmuxd를 homebrew로 설치해 준다. brew install usbmuxd 정상적으로 설치가 완료되면 terminal에서 iproxy명령어를 입력하면 다음과 같이 출력된다. 2. USB로 아이폰 맥과 연결하기 다음은 .. 2023. 2. 25.
iOS 탈옥 탐지 대응 방안 ptrace ptrace함수를 사용해 프로세스에 디버거를 attach하는 것을 방지 할 수 있음. iOS는 XNU 커널 기반으로 ptrace 시스템 콜 구현 ptrace는 공개 API가 아니기 때문에 App Store에서 등록을 거부 할 수 있음 dlsym을 통해 동적로드 호출 #import #import #import typedef int (*ptrace_ptr_t)(int _req, pid_t _pid, caddr_t _addr, int_ data); void anti_debug() { ptrace_ptr_t ptrace_ptr = (ptrace_ptr_t)dlsym(RTLD_SELF, "ptrace"); ptrace_ptr(31,0,0,0); // PTRACE_DENY_ATTACH = 31 } sy.. 2022. 12. 18.
iOS 탈옥 탐지 기법 몇 가지 파일 기반 탈옥 탐지 파일 기반으로 탈옥 여부 탐지 탈옥 관련된 파일 및 디렉터리를 확인 파일 권한 확인 파일 권한을 확인하여 탈옥 여부를 확인 애플리케이션의 샌드박스 외부에 파일 생성을 시도하는 것으로 확인 가능 /private 경로에 파일을 생성하도록 하여 성공한다면 디바이스는 탈옥 된 것으로 간주. 프로토콜 핸들러 확인 프로토콜 핸들러를 확인 하여 탈옥 여부 확인 프로토콜 핸들러란 특별한 URL을 처리하는 프로그램으로 cydia:// 프로토콜 핸들러를 사용하여 시디아에서 설치 가능 Cydia URL을 열어 프로토콜 핸들러 확인가능. 거의 모든 탈옥 툴이 기본적으로 설치하는 cydia앱은 cydia:// 프로토콜 핸들러를 설치함 시스템 API 호출 시스템 API를 호출하여 탈옥 여부 확인가능 탈옥 되.. 2022. 12. 14.
iOS Local Data Storage 저장소 취약점 plist 애플리케이션 데이터 및 설정 정보를 저장하는데 사용하는 xml파일 저장된 정보는 암호화 되지 않아 중요한 정보를 저장하면 안됨 Info.plist에는 버전정보, 실행 가능한 바이너리 이름, 지원되는 iOS 버전 및 디바이스 모델 등의 정보가 저장됨. UserDefault UserDefault 취약점에서는 NSUserDefaults 클래스를 사용하여 저장 사용자 기본 설정 및 속석을 저장하는 가장 일반적인 방법 중 하나 애플리캐이션을 종료하고 재시작해도 정보를 계속 유지 로그인 상태를 저장에 사용 될 때도 있음(계정정보, 접근 토큰 등) NSUserDefaults로 저장한 데이터는 암호화 되지 않은 상태로 plist파일에 저장. Keychain iOS키체인은 암호화 키와 세션토큰과 같은 짧고 민.. 2022. 12. 11.
iOS 애플리케이션 디렉터리 구조 /Applications/app_name.app 사전에 설치된 애플리케이션 및 탈옥 애플리케이션 디렉터리 삭제하면 재설치 불가능 /var/containers/Bundle/Application/UUID 앱 스토어 애플리케이션 디렉터리(번들 컨테이너) 새로 설치 될 때 마다 UUID가 변경됨 /var/mobile/Containers/Data/Application/UUID 데이터 디렉터리 모든 애플리케이션 내부 데이터를 저장 샌드박스로 인해 탈옥 되지 않은 디바이스의 특정 애플리케이션에서만 접근 가능함 A앱은 A데이터 디렉터리만 접근 가능 /var/Keychains/keychain-2.db iOS Keychain 사용자 이름, 암호, 네트워크암호, 인증 토큰과 같은 민감한 정보를 저장하는 공간 sqlite 데.. 2022. 12. 10.
iOS 탈옥 Cydia 추천 트윅 iOS탈옥하면 설치되는 Cydia의 추천트윅을 정리해 보았다. 1. Apple File Conduit "2" Apple File Conduit "2"는 PC에서 직접 아이폰 내부 폴더에 접근이 가능하게 해준다.(iFunbox 와 함께 사용) https://www.i-funbox.com/en/page-download.html iFunbox | the File and App Management Tool for iPhone, iPad & iPod Touch. www.i-funbox.com 2. Filza File Manager 아이폰, 아이패드, 아이팟 터치용 파일관리자 3. MTerminal 모바일 터미널 환경 제공 4. Darwin CC Tools Otool도구를 사용하기 위해 설치 6. OpenSSH S.. 2022. 12. 6.
iOS 앱 생명 주기 iOS 생명주기 Not Running: 실행되지 않거나 종료된 상태 Inactive: 앱이 forground에서 실행 중이지만 이벤트나 알림을 받지 않음 Active: Forground에서 이벤트를 받을 수 있음. Background: Background 상태로 실행되어 사용자 상호작용 없이 코드를 실행함. Suspended: Background 상태로 메모리에 존재하지만 코드를 실행하지 않음. 참고 https://developer.apple.com/documentation/uikit/app_and_environment/managing_your_app_s_life_cycle 2022. 12. 5.
iOS 보안 모델 iOS 보안 모델 하드웨어 수준 보안을 제공 주요기능 보안구조를 하드웨어, 운영체제, 애플리케이션 레벨로 계층화 하드웨어/펌웨어 레벨에서 암호화가 진행 애플리케이션은 샌드박스 기술을 사용함 암호화를 통한 데이터 보호 코드서명 iOS 보안 부트 체엔 보안 부트체인 메커니즘을 사용하여 부트 프로세스에서 보안을 제공 부트 수준에서 감염되는 많은 루트킷과 멀웨어가 있기 때문에 각 단계별로 무결성 검사를 통해 위변조 검증 이것을 통해 iOS가 확인된 애플 디바이스에서만 실행될 수 있음.Boot ROM 절대적으로 신뢰할 수 있는 초기 단계 프로세서(보안칩, CPU)에 코드가 포함되어있어 업데이트 또는 변경 불가 Apple 루트인증서가 포함되어 다음 단계인 LLB(Low Level Bootloader)가 올바르게 서.. 2022. 12. 5.