짱짱해커가 되고 싶은 나

[안드로이드 취약점 진단] 2-1. 분석 환경 설정 (인시큐어뱅크, apktool, dex2jar, jadx, BytecodeViewer) 본문

모바일

[안드로이드 취약점 진단] 2-1. 분석 환경 설정 (인시큐어뱅크, apktool, dex2jar, jadx, BytecodeViewer)

동로시 2022. 6. 9. 11:06

우선, '안드로이드 모바일 앱 모의해킹' 도서의 인시큐어뱅크 가상 금융 앱과 '쉽게 배우는 안드로이드 앱 취약점 진단' 책을 바탕으로 공부할 예정이다. 안드로이드 스튜디오 다시 깔기 싫어서.. 일단 안 깔고 진행해볼 예정 ㅎㅎ.. ..

 

인시큐어뱅크 설치

1. 인시큐어뱅크 

현재 총 25개의 취약점을 테스트할 수 있다. 자세한 리스트는 깃허브 readme를 읽어보면 된다.

깃 clone으로 받아보장

https://github.com/dineshshetty/Android-InsecureBankv2

 

인시큐어뱅크는 서버, 안드로이드 앱 소스, apk 파일 등으로 구성된다.

  • AndroLabServer: 백엔드 서버
  • InsecureBankv2: 안드로이드 소스
  • InsecureBankv2.apk
  • Usage Guide.pdf: 사용자 가이드

 

2. nox에 인시큐어뱅크 앱 설치

  • adb 연결

  • adb에 앱 설치

3. 인시큐어뱅크 서버 구동

python2로 실행시켜야한다..

그리고 easy_install flask sqlalchemy simplejson cherrypy를 해줘야하는데!!

이런 귀여운 에러가 난다 ^^;;; 설치했는데 pip2로도 했는데.. 후..😤

끄앙 해결했따~~!! 🤣

문제는 바로 이놈! egg 머시기~!!!

pip2 install sqlalchemy --upgrade를 해주면 잘된다. 엉엉 ㅜ_ㅜ

nox가서 실행시켜주면 잘 된다 ^_^ 앱 취약점 뿌시기 직전~

 

4. 인시큐어뱅크 앱 설정

앱의 우측 상단 : 의 preferences를 누른당

서버 ip에 내 로컬 ip를 설정하면 된다.

  • id: jack / pw: Jack@123$
  • id: dinesh / pw: Dinesh@123$

로그인하면 서버에 로그인 로그 뿅! > <

 

소스 코드가 없을 때 APK 파일 분석

  • apktool
  • dex2jar
  • JD-GUI
  • BytecodeViewer
  • jadx
  • jeb

1. apktool

apk 파일로 압축되어 있는 resourses.arsc, classes.dex, XML 파일들을 디버깅 파일 형태로 변환해주고, 수정한 후에 다시 수정된 apk 파일로 생성할 수 있는 도구

 

디컴파일

apktool d [앱 파일] -o [소스 폴더 경로]

여기서 smali 라는 폴더의 smali 파일들을 조작하면 동작을 제어할 수 있다고 한다.

 

Rebuild

소스 코드를 수정한 다음에 다시 재빌드 할 때는 apktool b {소스 폴더 경로} -o {앱 파일}

 

2. dex2jar

apk 파일이나 apk 파일에 포함도니 classes.dex 파일을 java class 파일로 변환해주는 도구

(안드로이드 실행파일 - dex, dex 파일을 달빅 가상머신에서 구동시키는 것, 달빅 VM은 구동되는 app마다 생성되는 형태)

(java -> 컴파일 -> .class -> dex 파일 생성 (java 바이트 코드 -> dalvik 바이트 코드)

 

설치는 git readme를 보고 따라하면 된다.

dex2jar을 사용하기 위해 인자값으로 apk 파일이나 dex 파일만 넘겨주면 된다. -> jar 파일이 생성된 걸 확인!

이 jar 파일을 사용자가 읽을 수 있는 형태로 변환하기 위해서는 java 파일로 디컴파일해야 한다.

JD-GUI나 jadx, jeb를 통해 열면 자동으로 디컴파일 결과를 보여준다.

(jeb는 유료 😥 몇 번 써봤는데 jadx 보다 jeb가 더 좋은 것 같긴했다)

 

3. jadx-gui

4. BytecodeViewer

악성코드 앱을 분석할 때도 사용할 수 있는 툴이다.

java, 안드로이드, dex, jars 파일 등과 같은 소스 코드 리버싱 분석 도구다.

apk 파일을 디컴파일해서 바이트코드 형태와 클래스 파일을 자바파일로 변환해 소스 파일 복원도 함께 보여준다.

통합 툴 느낌? 

 

jar 파일을 실행하면 저런 창이 뜨고 저기에 dex 파일을 드래그하면 된다.

왼쪽은 자바 디컴파일된 소스코드, 오른쪽은 바이트코드다.

-> 2개를 같이 보여줘서 바이트코드 수정할 때 매우 유용하다.

 

Comments