Mobile App Hacking
- 모바일 앱 공격
- 모바일 앱 서버 공격
Mobile App Attack -> 모바일 앱의 흐름을 조작해서 악용하는 것 로그인 흐름인 것을 우회하거나 유료인 것을 무료로 우회하거나
Mobile App Server Attack 모바일 앱 서버 공격 -> 앱 서버 DB 데이터 추출 Web App: web view를 이용하여 만든 앱 Hybrid App, Native App
- Mobile App 취약점 분석 환경 Rooting / Jailbreak 단말기에서 root 획득하는 과정 안드로이드에서..
- Boot loader unlocked
- custom recovery
- custom ROM install *Bootloader: 안드로이드 OS 부팅 초기에 실행, kernel을 RAM에 로드 -> 사용자가 펌웨어를 수정할 수 없도록 Bootloader locked를 건다 -> unlocked은 보통 fastboot mode에 들어가서.. fastboot oem unlock
Recovery & Custom Recovery Recovery: android OS 유지 관리 기능 제공 (백업이나 기기 초기화 등..) Custom Recovery에서는 제한 기능을 우회하기 위한 AOSP에서 제공하는 Recovery+몇가지 추가 fastboot mode 이용하여 설치 -> 안되면 Odin
Android ROM -> Android 기기 펌웨어 Custom ROM -> setuid 권한을 가진 su binary 추가한 버전 -> custom recovery를 이용하여 설치
Jailbreak -> iOS에서 root 권한 획득 해당 버전의 취약점이 있어야 Jailbreak 가능 checkra1n, Unc0ver, Taurine, Unc0ver 등… 서치는 “Programs used to jailbreak 14.x cve” 등..
jailbreak 종류는 아래와 같음
- untethered jailbreak
- tethered jailbreak
- semi tethered jailbreak
3utools 이용 만약 탈옥이 되면 Cydia나 Sileo라는 앱 사용 가능 tweak?
Proxy 세팅 단말기 app과 app 서버 사이 프록시 연결
일단 이거 관련한 실습은 노션에 자료 올려둠 같은 와이파이에 연결되어 있어야 함 https 통신을 하기 때문에 버프 인증서 설치가 필요함 일단 루팅을 해야함!!!!!!!!!!!!!! Nox 앱 플레이어로 실습해볼 수도 있음
Android App Android Runtime으로는 세 가지가 있다 1) JVM Java에서 bytecode로… 이 bytecode를 JVM에서 실행 2) Dalvik VM bytecode 실행 전 네이티브 코드로 -> JIT 컴파일 3) ART OAT file 실행 앱 설치 시 완전 네이티브 코드로 변환 -> AOT 컴파일
DEX -> android 실행 파일 Smali -> Dalvik code를 위한 어셈블리 언어 java code를 dalvik을 위해 smali라는 어셈블리로 변환
Android App 위변조 방지 코드 서명: 개발자 본인의 코드 서명 인증서로 서명 -> 공격자의 악성 패치 앱 배포를 막기 위해
APK 구조
cpu에 따른 lib가 다름
Activity, Activity 생명 주기 activity: 사용자와 상호작용/ 화면/ 하나의 클래스
리버싱할 때 위 그림 기준으로 확인하기
Broadcast receiver