1. 준비 도구
APK easy tool, astro 어플, ADB, 안드로이드 파일 관리자
2. 서론
일반적인 어플은 개발과정을 거치면서 개발자들의 부주의나 실수로 인해 testtest 하려 만들었던 activiti를 남겨놓는 경우가 많습니다.(개발자를 폄하하는 건 절대 아닙니다. 고생이 많은 것은 일하면서 많이 느낍니다.)
이런 경우 일반적으로 apk파일을 제공하지 않을 경우 추출하여 디컴파일을 거치면 드러나는 경우가 많습니다.(꼭 디컴파일하지 않고 찾는 방법도 존재)
3. 수행방법
우선 테스트하고자 하는 어플을 깔아 줍니다.(play store에 있다는 가정)
플레이 스토어의 어플을 astro어플을 이용하여 백업해주면 sdcard/backup 디렉터리에 apk파일이 남겨집니다.
이를 파일 관리자를 이용하여 mnt/shared/app 디렉터리에 옮겨줍니다.
그러면 윈도우의 C:\Users\<사용자 ID>\Nox_shared에 백업된 apk파일이 옮겨집니다.
만약 adb를 이용하여 앱을 추출한다면 adb pull을 이용하여 백업된 apk파일을 윈도우로 옮겨올 수 있습니다.
apk파일을 추출했다면 APK easy tool을 이용해 apk파일을 디컴파일 해줍니다. 여기에서 디컴파일을 하는 이유는 apk파일의 개발과정의 불필요한 파일을 찾아본 후 바로 smali파일 테스트를 하거나 manifest.xml파일 등을 점검하기 위해 바로 디컴파일 하는 것입니다.
또한 클래스 파일을 전부 점검하기 위해서는 디컴파일 하는 것을 추천합니다.
위와 같이 툴을 이용해 apk파일을 선택한 후 디컴파일 해줍니다. (APK easy tool사용법은 구글에도 많습니다.)
디컴파일이 완료되었다면 프로그램 하단의 Decompiled APK directory를 들어가면 디컴파일된 apk폴더를 확인할 수 있습니다.
이 폴더에 test와 같은 파일명을 검색해 주시면 됩니다.(다른 test삼아 썼을 것 같은 문구도 상관없습니다.)
여기까지 말씀드리면 ‘이게 무슨 취약점 점검이야!!!!’ 하시는!!!!’ 분들이 가끔 계신데 물론 어려운 방법으로 뚫는 것도 중요하고 그런 방법을 많이 쓰지만 이렇게 쉽게 뚫리는 것이 더 위험한 법입니다.
무튼! 이렇게 찾아서 파일명에 test와 같이 시범 삼아 만든 activity가 있다면 지금부터는 이 activity가 실제로 작동하는가를 알아보는 것이 중요합니다.
activity의 동작 여부를 확인하는 것에 있어 명령어는 am명령어를 쓰면 쉽게 알아볼 수 있습니다.
그에 앞서 am 명령어 즉 activity manager에 대해 간단한 사용법을 설명하겠습니다.
1) 많이 쓰는 am 명령어
- am start -a android.intent.action.MAIN -n 패키지명/액티비티 경로명
- am startservice -n 패키지명/서비스경로명
- adb shell am broadcast -a "브로드캐스트명"
위의 명령어를 통해 서비스 확인과 activity 실행 및 broadcast 테스트도 진행할 수 있습니다.
am 명령어는 adb를 설치하여 사용하실 수 있습니다.
2) 액티비티 실행하는 방법
adb shell am start -a android.intent.action.MAIN -n 패키지명/액티비티 경로명
하지만 여기에서 중요한 것은 위의 명령어를 줄여 사용할 수도 있습니다.
adb shell am start -n 패키지명/액티비티 경로명
이렇게 사용할 수도 있습니다.
3) 서비스 실행하는 방법
adb shell am startservice -n 패키지명/서비스 경로명
4) broadcast 테스트하기
adb shell am broadcast -a "브로드캐스트명"
5) 점검
adb shell am start -n 패키지명/액티비티 경로명
위의 명령어를 사용하여 어플 에뮬레이터 혹은 단말기에서 액티비티를 하나씩 실행시켜보시면 됩니다.
점검 중 test 액티비티나 불필요한 액티비티를 찾아 실행할 수 있다면 그것은 취약점으로 간주됩니다.
이유는 불필요한 액티비티에 보안 적용을 하지 않은 생태에서 provider노출이나 그에 따른 불완전한 퍼미션 적용이 이루어진 상태라면 공격자에 의해 정보를 갈취당할 가능성이 존재하기 때문에 이는 취약점으로 간주될 수 있습니다.
하지만 보안 적용을 모두 한 상태에서라도 저런 불필요한 페이지를 굳이 남겨놓을 필요는 없을 것입니다.
'Android' 카테고리의 다른 글
Smali 파일 변조 (루팅 탐지코드 변조) (0) | 2019.10.19 |
---|---|
Smali 파일 변조 (SU 탐지 우회) (0) | 2019.10.14 |
안드로이드 진단 환경 구성 (0) | 2019.09.22 |
로컬파일을 변경하여 루팅 우회 (0) | 2019.09.19 |
drozer 동적 앱 분석 (0) | 2019.09.18 |