모바일 앱 해킹 및 보안/Android(6)
-
AndroidManifest.xml 복호화
가끔 모바일 앱 취약점 진단을 하다보면 디컴파일 방지 설정 때문에 대상 APK 파일이 정상적으로 디컴파일링 되지 않은 경우가 있다. 이때, 앱 분석의 첫 번째 단계인 AndroidManifest.xml 파일 분석을 진행해야 하는데 단순히 APK 파일을 zip 으로 압축 해제 하는 경우 아래 이미지처럼 AndroidManifest.xml 파일이 암호화 되어 있다. 이런 경우에 디컴파일 없이 AndroidManifest.xml 파일 복호화 하는 방법을 소개하겠다. 이를 복호화 할 수 있는 툴은 AXMLPrinter2.jar로 아래 링크에서 다운로드 할 수 있다. https://code.google.com/archive/p/android4me/downloads Google Code Archive - Long-..
2024.03.31 -
APK 파일 구조
- lib : 라이브러리 파일들이 저장되는 디렉토리 - res : 앱 실행에 필요한 자원이 모여있는 디렉토리(용량 작은파일 위주로 저장) > Drawable : 프로젝트에 활용될 이미지들 저장됨 > Layout : 안드로이드 화면을 담당하는 xml 파일들 저장 > Values >> dimens.xml : 텍스트 크기, 도형 크기 등 크기에 관련된 설정파일 >> strings.xml : 문자열에 관련된 설정파일 >> styles.xml : 색상, 액션바 유무, 배경색 등 화면 디자인에 관련된 설정파일 - assets : 앱 실행에 필요한 자원들이 저장되는 디렉토리(주로 용량 큰 파일 위주로 저장) - classes.dex : .class 파일을 dalvik 바이트 코드로 변환시킨 소스파일 - Android..
2024.03.31 -
[안드로이드 취약점] Backup 취약점
취약점 설명: 사용자가 안드로이드 모바일 앱을 이용하면서 입력했던 중요정보(ID, PW, 주민등록번호 등)이 백업파일에 저장된다. 이떄, AndroidManifest.xml 파일에 android:allowBackup 속성이 "true"로 되어 있는 경우, 제 3자가 획득한 단말기에서 사용자의 중요정보, 인증정보 등을 획득할 수 있는 위험이 있게 된다. 취약점 진단 방법: 진단하고자 하는 모바일 단말기를 PC에 연결하여 CMD 프롬프트를 열어 아래 명령어를 실행한다. adb backup -f test.ad com.android.test adb backup -f test.ad com.android.test 옵션: -f test.ad : 저장할 백업 파일명(확장자는 반드시 ad로 지정함) com.android..
2023.10.15 -
안드로이드 취약점 진단 항목
1. 중요정보 메모리 노출 취약점 2. 백업 취약점 3. 컴포넌트 취약점 (Activity) 4. 컴포넌트 취약점 (Broadcast Receiver) 5. 컴포넌트 취약점 (Content Provider) 6. 키보드 캐시 취약점 7. 난독화(코드 보호 기법) 8. 암호화 구현 취약점 (AES 복호화) 9. 루팅 탐지 미흡 10. 백그라운드 화면 보호 취약점 11. 디버깅 탐지 미흡 12. 악성코드 탐지 미흡
2023.10.15 -
Frida unicode method 이름 후킹하기
const hook = Java.use("com.application.obfuscated"); hook.\u0345.overload().implementation = function() { // do stuff this.\u0345.overload().call(this); };
2023.08.18 -
안드로이드 7 이상 Burp 인증서 설치
Android 7.0 버전 이상에서는 기존의 Burp 인증서 설치대로 진행하면 아래처럼 오류가 발생합니다. 해당 버전 이상부터는 인증서 저장 위치가 시스템 및 사용자 권한별로 분리되면서 이전처럼 sdcard 디렉터리 아래에 인증서를 설치하면 Burp 사용 시 TLS Connection Failed 에러가 발생하니 시스템 디렉터리에 인증서를 설치해야 합니다. 또한, 기본적으로 Burp 인증서는 20년 이상의 만료 기간을 가지는데, 이번 구글 안드로이드 시스템 인증서 같은 경우 최장 39개월 만료 기간으로 설정이 되어 있습니다. 그래서 39개월 기간보단 짧은 인증서를 임의로 생성해야 합니다. 아래 방법을 이용하면 안드로이드 7.0 버전 이상에서도 Burp를 통해 패킷을 캡처할 수 있습니다. 먼저 아래 방법을..
2021.03.22