본문 바로가기

Android11

[Android] 1.2. 앱 무결성 검증 취약점 개요앱 무결성 검증 취약점은 앱 소스코드, 리소스 및 XML 파일 등이 변조되었을때 무결성을 검증하지 않아 변조된 앱을 실행할 수 있게 되는 취약점으로 볼 수 있다.기본적으로 앱 변조의 경우 디컴파일 및 리패키징이 가능해야하며, 1.1 암호화 및 난독화 취약점 존재로 인해 내부 코드 자체가 어느정도 분석이 가능해야 원활한 앱 변조가 가능해지게 된다.점검 방법점검 방법에는 기본적으로 앱의 아이콘을 변경하거나 내부에 Toast 메시지를 출력하는 코드를 삽입하여 출력이 되는지 확인하는 방법으로 진행했다.앱 아이콘 변경의 경우 Manifest.xml 파일에서 변조할 수 있다. 보통 mipmap 경로 내부에 아이콘 이미지가 존재하는데 해당 코드를 변조함으로써 확인하는 간단한 방식이지만 보통은 앱 아이콘 변경이 아.. 2024. 6. 19.
[Android] 1.1. 소스코드 난독화 및 암호화 취약점 개요1.1 소스코드 난독화 및 암호화 취약점의 경우 앱을 디컴파일하고 내부 소스코드를 확인하여 로직을 분석할 수 있게 되는 취약점이라고 볼 수 있다.해당 취약점 존재 여부를 확인하기 위해서 우선 앱 디컴파일 작업을 진행한다.이를 위해 apktool과 adb(Android Debug Bridge)라는 도구를 사용한다.진단 방법먼저 adb는 PC와 연결한 안드로이드 기기를 콘솔창에서 컨트롤할 수 있는 도구라고 볼 수 있다.adb는 안드로이드 SDK 플랫폼 도구 설치를 통해 사용할 수 있다.* SDK 플랫폼 도구 설치 : https://developer.android.com/tools/releases/platform-tools?hl=koadb 설치 후 안드로이드 기기를 PC에 연결하고 adb devices 명.. 2024. 6. 19.
동적 디버깅 하는 방법 개요동적 디버깅이란 어떤 로직이 호출되는지 해당 부분만 파악하기 위해 앱 구동 시 어떠한 로직이 동작하는지 하나씩 확인할 수 있는 방법으로 루팅 탐지 등 다양한 로직을 분석할 수 있는 방법이다.진행동적 디버깅을 하기 위해서는 아래의 작업을 먼저 진행해야 한다.AndroidManifest.xml(서비스, 구성요소, 액세스 권한 등 정보 포함)에서 설정 활성화  2. getprop | grep ro.debuggable 값이 1로 변경되면 디버깅 모드 활성화, 해당 값이 1이면 Manifest 설정 값에 관계없이 debug 모드 진입그 후 JEB 상단 벌레모양 디버거를 실행, 프로세스에 진단할 패키지 명 검색 후 더블 클릭한다.루팅 탐지 등 로직에서 디버깅을 하고싶은 경우 해당 코드 부분의 Smali 파트로.. 2024. 6. 19.
[Android, iOS] Burp Suite 프록시 도구로 패킷 잡는법 + SSL Pinning 개요모바일 앱에서 취약점 진단을 할 때 무결성 검증 우회나 디바이스 임의 개조 탐지 등 모바일 앱 자체적인 취약점을 도출하기도 하지만 당연히 웹처럼 이루어지는 모바일 앱 내부의 기능도 진단을 한다.이를 위해서는 Burp Suite와 같은 프록시 도구로 모바일 앱에서 이루어지는 클라이언트-서버간 통신 패킷을 캡처해야하는데 이는 별도로 세팅을 해줘야 한다.[ Android ]먼저 안드로이드에서 Burp Suite 패킷을 잡는 방법이다.1. 노트북 와이파이 핫스팟 키고 모바일 기기 와이파이를 핫스팟과 연결2. 버프슈트 Proxy Setting에 All interface, 7777 포트 설정3. 모바일 단말기 와이파이의 프록시 설정 수동 - 노트북 무선 Wi-Fi iP 주소와 7777포트로 설정4. 모바일 단말.. 2024. 6. 19.