▶ 모바일 앱 해킹
> 앱 서버 측 취약점 (Proxy 세팅 후 Burp와 연결)
> 단말기 취약점
▶ 앱~앱 서버(HTTPS통신)
Proxy세팅 -> 리스너 설정
Chrome -> 컴퓨터 프록시 설정 열기 -> 수동 프록시 설정 -> 127.0.0.1, 포트번호
HTTPS는 인증서도 필요! -> 단말기에 Burp 인증서 설치할 것!
But) SSL Pinning 때문에 이것만으로는 힘듦 (= "나는 이 인증서만 쓸거야!")
>> SSL Pinning Bypass : 앱이 코드적으로 검사
-> iOS의 경우 : tweak 설치 후 켜기
-> Android의 경우 : Frida로 우회
(이후는 웹 해킹과 동일!)
▶ 단말기 취약점
-- 사용자의 개인정보 단말기에 평문으로 저장
>> 파일
>> 메모리
▶ Rooting /Jailbreak
= 단말기의 최고 관리자 권한
루팅된 폰에 설치하고 실행 -> 내 폰에서는 실행이 안됨 -> 모바일 보안 솔루션 때문(루팅/탈옥 탐지) -> 난독화 또는 앱을 숨겨놓았음
따라서, 가장 먼저
1. 모바일 보안 솔루션 벗겨진 것을 요구
2. 아니면 직접 우회해야 함.(2~3일 소요)
Q. 모바일 보안 솔루션 우회할 수 있을까?
-> A. 시간이 문제지 무조건 우회할 수 있음! (단말기 밖의 정보를 확인 후 루팅폰이면 차단하는 것이므로, 루트권한으로 다 차단할 수 있음.)
▶ Frida
동적으로 코드를 패치,수정,흐름을 제어 (=A로 갈걸 B로 가게 통제 가능)
함수 후킹? 코드 중에서 특정 함수의 이전 또는 이후에 임의의 함수를 넣을 수 있음.
즉, 보안 솔루션을 우회할 때로 따지면, rootcheck 함수를 후킹해서 "true"가 아니라 "false"를 반환하게 설정할 수 있음.
Frida의 구조는 A 앱 프로세스에 frida agent를 삽입하는 것.
▶ Frida 세팅
[1] 먼저, 컴퓨터에 프리다를 설치. (pip install frida)
[2] 그 다음에 버전을 확인. (frida --version) . 이후, Frida 깃헙 사이트에 가서 환경에 맞는 Server 파일을 설치
[3] 다음, adb로 스마트폰에 설치 (adb shell -> /data/local/tmp에 서버 파일 넣기)
[4] 실행하기
[5] 컴퓨터로 돌아와서, Frida -ps -U (스마트폰에 실행중인 프로세스 목록)
[6] python으로 frida inport 후 패키지 네임 입력 : ex. package_name="@@.@@@.@@@@@@"
[7] 실행 중 프로세스 번호를 알아낸 후, adb pull/~~ 로 파일 가져오면, 앱의 메모리 상태 확인 가능. (메모리 상태 중에서 ~~Frida-agent-32.so~~ 로 된 부분을 찾아내면 Frida 메모리 영역을 확인가능)
(※ getscript 함수로 js파일을 불러오는 식으로 관리할 수도 ex. python JSInjector.py --script script.js)
▶ Frida 사용 예시
[1] 제일 먼저 AndroidManifest.xml 부터 분석한다.
[2] 특정 함수가 실행되는데 해당 함수가 참이어야 다음 페이지로 넘어가는 것을 확인할 수 있음.
[3] 해당 함수(예시로 든 app에서는 VerfyUsernamePassword)를 후킹함 :
Java.perform(function(){
var verify_Class = Java.use('com.insecureshop.util.util'); : Package호출, : Class접근
var verify_func = verify_class.verifyUserNamePassword;
verify_func.implementation = function(arg1, arg2){
return true;
}
})
분석 : 일단, Util 클래스 안에 verifyUserNamePassword 함수가 있으므로, 해당 클래스에 접근 후, 함수를 재정의한다.
결과 : 아무거나 입력해도 로그인이 우회되어 버린다!
'정보보안(모바일 해킹)' 카테고리의 다른 글
[안드로이드] 휴대폰과 Burp Suite 연결하기 (0) | 2023.03.11 |
---|---|
[안드로이드] 갤럭시S5 루팅 후 adb로 쉘 연결 (리커버리 모드 이용) (0) | 2023.03.11 |
모바일 해킹 - 1 (0) | 2023.03.06 |
댓글