본문 바로가기

해킹/IOS 앱 취약점 진단

(8)
OWASP-MSTG iOS Crackme 레벨1 풀이 안녕하세요. 이번 글은 iOS 레벨1 Crackme 풀이를 써보려고 합니다. 먼저 앱은 github.com/OWASP/owasp-mstg/tree/master/Crackmes 에서 다운로드받을 수 있습니다. 처음 앱을 시작하면 위와같은 화면을 볼 수 있습니다. 숨어있는 레이블에 비밀이 있다고 합니다. 그래서 soFrida를 이용해 모든 레이블을 뒤져봅니다. 모든 레이블을 확인하기 위해 위와같이 UILabel클래스의 text 함수를 후킹합니다. 그리고 다시 앱에서 인증버튼을 클릭합니다. 인증 버튼을 클릭할 경우 호출되는 함수들을 확인할 수 있으며 위와같이 화면에서 볼 수 없는 문자열을 확인할 수 있습니다. 혹시나 비밀번호일 수 있다는 생각에 인증해봅니다. 아까와는 다르게 비밀번호를 찾았다는 메시지를 확인한..
모바일 앱 딥링크 취약점 퍼징 방법 안녕하세요. 오늘은 모바일 앱에 존재하는 URL Scheme 또는 딥링크를 통한 퍼징방법에 대해 작성합니다. URL Scheme(딥링크)이란 http 또는 https와 같은 URL에 포함되는 프로토콜을 말합니다. 앱에서도 URL Scheme을 등록할 수 있고 공격통로로 사용되어 사용될 수 있습니다. KISA에서도 URL Scheme에 대해 공지사항이 나온 적이 있습니다. www.boho.or.kr/data/guideView.do?bulletin_writing_sequence=35434 KISA 인터넷 보호나라&KrCERT KISA 인터넷 보호나라&KrCERT www.boho.or.kr 공격통로로 사용됨에 따라 퍼징하여 취약점을 찾는 경우도 빈번하게 나타납니다. 오늘 테스트할 앱은 iGoat-Swift앱으..
soFrida를 이용한 IOS 앱 동적 분석 - 파일분석 이번 글에서는 IOS 앱을 동적 분석을 하기 위한 soFrida의 사용법과 파일 처리 관련 함수를 후킹 하여 앱에서 어떤 파일을 사용하는지 확인하는 방법을 설명합니다. 필요한 것은 루팅된 아이폰과 USB 케이블입니다. 아이폰에는 Frida서버를 실행해주시고 PC에는 soFrida를 실행해야 하는데요 Frida서버를 아이폰에 설치하는 방법은 인터넷에 검색하시면 많이 나오니 생략합니다. soFrida를 사용하기위해서는 아래의 깃허브에서 다운로드하고 설명대로 설치해주시면 됩니다. https://github.com/june5079/soFrida june5079/soFrida soFrida - Dynamic Analysis Tool for Mobile Applications - june5079/soFrida gi..
LLDB를 이용하여 IOS(아이폰) 원격 디버깅 세팅하기 취약점을 찾기위해서는 분석은 필수입니다. 그러나 모바일 환경은 PC와 다르기 때문에 약간 다른 방법을 사용하여 디버깅해야 합니다. 이번 글에서는 IOS 앱을 분석하기 위한 원격 디버깅 준비 과정을 설명합니다. 준비물은 아래와 같습니다. 탈옥된 IOS, XCODE가 설치된 맥북, USB케이블 만약 XCODE 또는 맥북이 없다면 아래의 바이너리를 사용해보세요. 아이폰5S IOS 12.4에서 테스트된 바이너리입니다. 다른 버전에서는 동작할지 모르겠습니다. 먼저 XCODE를 켜고 아래와 같이 새로운 프로젝트를 아무 이름으로 생성합니다. 그리고 아래와 같이 연결된 핸드폰으로 설정하고 핸드폰에 맞는 버전에 맞춰줍니다. 그리고 핸드폰 설정하는 부분 왼쪽에 있는 재생 비슷한 버튼을 누르게 되면 USB로 연결된 아이폰에..
Frida를 무조건 익혀야 하는 이유(ios, android 앱 분석) 안녕하세요. 오늘은 Frida를 무조건 익혀야 하는 이유에 대해서 작성해보려고 합니다. https://frida.re/ Frida • A world-class dynamic instrumentation framework Inject JavaScript to explore native apps on Windows, macOS, GNU/Linux, iOS, Android, and QNX frida.re Frida는 윈도우, 맥, 리눅스, IOS, ANDROID 기반 바이너리를 분석하기 위한 라이브러리 입니다. 예를 들어 윈도우 실행파일 분석에 많이 쓰이는 올리디버거, IDA 등이 있는데요. 그런데도 왜 Frida가 중요한 것일까요? 바이너리를 분석하는 과정에는 동적 분석과 정적 분석이 있습니다. 두가지 모두..
안드로이드 앱 디컴파일 그리고 빌드하기 안녕하세요 오늘은 안드로이드 앱을 디컴파일하고 수정 후 다시 빌드 하는 과정을 소개해드리려고 합니다. 먼저 앱(APK)파일을 소스코드로 돌리려면 Java와 Apktool 이라는 프로그램이 필요합니다. https://www.oracle.com/java/technologies/javase-downloads.html 위의 사이트에서 JDK를 다운로드할 수 있습니다. 그리고 java --version 명령어를 사용하여 설치된 것을 확인할 수 있습니다. 만약 명령어를 찾을 수 없다는 메시지가 나온다면 JDK가 설치된 경로를 시스템 경로에 등록해주어야 합니다. unknownui-MacBook-Pro:apktools unknown1$ java --version java 14.0.1 2020-04-14 Java(TM)..
처음해보는 IOS 앱 취약점 진단 후기 안녕하세요? 최근 아이폰 앱 취약점 진단을 하였습니다. 앱 취약점 진단은 아예 처음이라 삽질이 많았습니다. 앱 취약점 진단하기 위한 순서는 아래와 같습니다. 1. 아이폰 및 안드로이드 루팅 2. 취약점 진단할 앱 기능 분석 3. 각 기능에 따른 취약점 진단 우선 앱 진단은 아예 처음이라서, 루팅부터 오래걸렸던 것 같습니다. 아이폰은 검증된 몇개 IOS 버전으로만 업데이트가 가능한데, 앱이 11버전 이후에서만 동작하는 것을 확인하고 최신 버전으로 업데이트하니, 루팅할 방법이 없어서 10.3.3으로 다운그레이드했더니 역시나 업데이트 필요. 결국 맥북을 이용해서 12.4.4 버전에서 루팅에 성공하였습니다. (이럴 때는 맥북 최고...) 루팅 후 SSL 고정 인증서 우회 프로그램 설치하였더니, 이제야 진단 시작..
안드로이드 앱 취약점 진단을 위한 녹스 설치 및 쉘 접속 방법 안녕하세요. 최근 취업을 하면서 앱 진단을 하게 되었습니다. 그래서 앱 진단을 위한 녹스 사용법을 정리하려고 합니다. 저는 앱 진단 경험이 많이 없지만 제 주관적인 생각으로 취약점 진단/분석에 정적 분석도 필요하지만, 동적 분석은 필수라고 생각합니다. 그러므로 녹스 앱 플레이어는 취약점 진단/분석에 필수라고 볼 수 있습니다. 아래의 링크로 접속하셔서 녹스 앱 플레이어를 설치 할 수 있습니다. https://kr.bignox.com/ 녹스 앱플레이어 모바일 게임을 키보드와 마우스로? 클릭 한 번으로 가상키보드 실행이 가능하며 PC버전의 게임도 간편하게 체험할 수 있습니다. 키보드와 마우스로 컨트롤하여 뛰는 자에서 나는 자가 되어볼 수 kr.bignox.com 이제 안드로이드 내부로 접속하기 위해 ROOT권..