[AOS] 3. 모바일 진단 환경 구축 - InsecureBankv2 추출 및 리패키징. 하드코딩 확인하기(실습)
- 2024.09.03 -
InsecureBankv2 추출 및 리패키징
STEP 1
APK 파일 추출
Nox에서 apk파일을 추출할 수 있는 방법은 크게 두가지 이다.
1. 외부 앱을 이용해 apk 파일을 추출
2. nox를 이용해서 apk 파일 추출
apk파일을 추출해야하는 이유는 뭘까?
취약점 진단대상인 앱을 Play Store에서 설치한 경우 apk파일이 존재하지 않는다.
apk파일이 있어야만 분해할 수 있고 분해해야지만 알수있는 항목들이 있기에
apk파일은 진단자에게는 필수이다.
1. 외부 앱을 이용해 apk파일 추출

플레이 스토어에서 '앱 추출' 검색 후 설치

추출 할 App목록 확인 가능

NOX화면에서 추출할 앱을 꾹 누르면 추출 옵션 제공
추출 하면 별도의 폴더에 저장되면서 확인이 가능합니다.

이제 이 apk파일을 내가 작업하거나 잊지 않는 편한 경로로 이동한다.
나는 위에서도 말했지만 C:\AOS\ 폴더 안에서 이 모든 작업을 진행한다.
아, 물론 우리는 apk파일을 받아서 설치를 했고 또 이렇게 추출하는건 의미가 없다.
이미 apk파일을 가지고 있으니까..
다만 진단시 app스토어에서 다운로드 시 별도로 apk가 제공되지 않으니
이런 과정을 알아두면 별도로 요청하는 일이 없을 것 같다.
STEP 2
디컴파일 그리고 리패키징
이제 apk tools를 이용해서 apk파일을 디컴파일하고
다시 수정한 내용을 리패키징을 하는 S/W를 다운로드 받아야한다.
https://apktool.org/docs/install/
Install Guide | Apktool
A minimum of Java 8 is required to run Apktool.
apktool.org

위 링크에서 다운로드를 받을 수 있다.
아! java가 설치되어있지 않으면 실행이 안되니 사전에
java를 받아두는것도 방법이다.
잘 모르겠으면 cmd를 열고 java입력해보면 설치 여부를 알 수 있다.


이제 다음 명령어를 위처럼 입력하여 apk파일을 디컴파일 시작한다.
나는 jar파일과 apk파일을 같은 경로에 두었기 때문에 별다른 경로 지정은 하지 않았다.
java -jar apktool_2.9.3.jar d "InsecureBankv2.apk"

디컴파일이 완료 되면 같은 경로에 새로운 폴더 하나가 생성되었다.

다시, 이번에는 디컴파일 한 apk파일을 리패키징을 시도한다.
java -jar apktool_2.9.3.jar b "InsecureBankv2"

만들어진 폴더에서 다음 경로로 이동해보면 classes.dex 파일이 존재한다.
C:\AOS\insecubank\InsecureBankv2\build\apk
classes.dex
이제 이 classes.dex 파일에 있는 정보를 jadx에서 분석하기 위해
classes.dex를 jar파일로 jadx가 읽을 수 있도록 변환해 주어야한다.
https://github.com/pxb1988/dex2jar/releases/tag/v2.4
Release v2.4 · pxb1988/dex2jar
bugfix
github.com

위 경로로 들어가서 dex-tool을 다운로드 받아 압출을 풀어준다.

아까 확인한 classes.dex파일을 dex-tools-v2.4 폴더에 복사해 준다.

그 다음 명령어를 이용해서 위와 같이 입력해 준다.
d2j-dex2jar.bat classes.dex

그럼 이제 jadx에서 분석이 가능한 jar파일로 변환이 된것을 확인할 수 있다.
JADX 다운로드 및 실행
https://github.com/skylot/jadx/releases/tag/v1.4.7
Release 1.4.7 · skylot/jadx
Features [core] Inline lambdas by instance field (#1800) [plugins] Allow to load classes using input stream or byte array in jadx-input plugin (#1457) Bug Fixes [core] Restore missing type param...
github.com

위 링크로 이동해서 다운로드 받고 압축 해제

JADX를 실행 하고 난 뒤 파일 열기에서 조금전에 변환한 jar파일을 열어준다.
위 사진은 경로가 조금 다른데 나는 내가 꺼내기 편한 경로로 옮긴것이니 착오없길..

시간이 조금 지나면 저렇게 jar파일이 모두 열린것을 확인할 수 있다.
트리는 위처럼 그대로 타고 내려가면 패키지 이름을 확인할 수 있다.
소스코드 > com > android.insecurebankv2

문자열 찾기를 통해서 admin이라는 문자열이 하드코딩 되어있는지를 확인해 보았다.
확인 결과 /login 그리고 /devlogin 이렇게 두가지의 접근방법이 있는것을 확인할 수 있고
더 나아가서 devadmin으로 로그인시 숨겨진 다른게 있는것도 확인할 수 있었다.
'Red Team > AOS' 카테고리의 다른 글
| [AOS]4. ADB 연결 및 셋팅하기 (2) | 2024.09.29 |
|---|---|
| [AOS] 2. 모바일 진단 환경 구축 - DIVA, InsecureBankv2 앱 설치 (3) | 2024.09.02 |
| [AOS] 1. 모바일 진단 환경 구축 - Nox,Anaconda 설치 및 환경 세팅 (2) | 2024.09.01 |
댓글
이 글 공유하기
다른 글
-
[AOS]4. ADB 연결 및 셋팅하기
[AOS]4. ADB 연결 및 셋팅하기
2024.09.29 -
[AOS] 2. 모바일 진단 환경 구축 - DIVA, InsecureBankv2 앱 설치
[AOS] 2. 모바일 진단 환경 구축 - DIVA, InsecureBankv2 앱 설치
2024.09.02 -
[AOS] 1. 모바일 진단 환경 구축 - Nox,Anaconda 설치 및 환경 세팅
[AOS] 1. 모바일 진단 환경 구축 - Nox,Anaconda 설치 및 환경 세팅
2024.09.01