안드로이드 경우 각 화면마다 Activity가 존재한다.
웹처럼 각각의 페이지 번호라고 생각하면 편할 것이다.
그럼 만약 ACtivity 강제실행이 왜 취약하다고 할 수 있을까.
만약 루팅을 한 폰이 있는 경우 앱 개발자는 루팅 폰이 앱에 접근하는 것을 막을 것이다.
왜냐하면 높은 권한으로 앱 변조나 앱에 올라간 메모리의 데이터에 직접적으로 간접하여
문제를 일으킬 가능성이 있기 때문이다.
그래서 루팅 감지나 디버깅 감지를 하게되는데 이를 앱이 실행할떄 바로 시작하도록 한다.
그런데 만약 첫번째(루팅탐지)를 건너뛰고 다음 단계로 나아가게 된다면 문제가 발생하게 된다.
루팅 탐지가 간단히 우회되는 것이다.
우선 jadx로 apk 파일을 열면 코드의 구성을 보여주는데 맨처음 AnroidManifest.xml이 열릴 것이다.
해당 코드는 맨처음 어떤 Activity가 실행되는지 나오는 곳이다.
보게 되면 uk.rossmarks.fridalab.MainActivity가 먼저 사용되게 된다.
여기서는 간단한 앱이기 떄문에 activity가 하나 뿐이지만 다른데에는 여러개가 존재한다.
+ 추가적으로 Activity 내 True로 exported가 설정되어있다면 강제 호출이 가능하다. false더라도 실행되는 경우가 있으니 실행 해볼 것.
android:exported="true"
그러면 adb 내 있는 activity 강제 호출 명령어를 쓰면 1번단계를 거치지 않고도 다음 2단계를 넘어갈 수 있다.
현재 실행중인 Activity 호출 명령어
adb shell "dumpsys window windows | grep -E 'mCurrentFocus|mFocusedApp'"
adb shell dumpsys window windows | grep FocusedApp
Activity 강제 호출 (둘 중 하나 사용해 보면 될겁니다. 저는 첫번째만 써지네요)
Activity 강제호출
adb shell am start -n [com.package.name]/[com.Activity.Name]
adb shell su -c am start -n [com.package.name]/[com.Activity.Name]
Activity 강제종료
adb shell am force-stop [com.package.name]
'APP 모의해킹 > Android' 카테고리의 다른 글
Burp 인증서 설치 (0) | 2023.03.28 |
---|---|
안드로이드 무결성 검증 (0) | 2023.03.28 |
Snapshot (0) | 2023.03.23 |
burp 인증서 안드로이드 with NOX (0) | 2023.03.22 |
[Android] 안드로이드 디컴파일 및 Smali 코드 분석 (0) | 2023.03.09 |