본격적으로 시작하기 전에 먼저 ADB연결이 되어있는지부터 확인해주겠습니다.
이제 아래에 있는 명령어를 입력해주겠습니다.
이 명령어는 칼리 리눅스에서 안드로이드로 명령어를 실행할 수 있게 해 줍니다.
adb shell
앞에 $가 붙어있는 것으로 쉘 환경에 잘 접근한 것을 확인할 수 있습니다.
/data/app
/data/app은 사용자가 설치한 애플리케이션의 APK 파일이 위치하는 디렉터리로, 누구나 파일을 읽을 수 있고 복사할 수 있습니다.
먼저 InsecureBankv2의 APK 파일이 있는 위치로 이동하겠습니다.
cd /data/app
그리고 ls 명령어를 입력했는데 권한이 없다고 하네요.
이 부분은 더 알아봐야 할 것 같습니다.
일단 root 권한을 얻는 명령어를 사용하겠습니다.
su
그러면 쉘의 모양이 바뀌고 $도 #으로 바뀐 것을 볼 수 있습니다.
이제 다시 명령어를 실행시켜보겠습니다.
cd /data/app
ls
많은 것들이 보이는데 그중에서 insecurebankv2를 찾을 수 있습니다.
이것이 진짜로 저희가 설치한 InsecureBankv2.apk파일인지 확인하기 위해서 안드로이드에 있는 파일을 칼리 리눅스로 다운로드해보겠습니다.
터미널을 하나 더 열어주고 아래의 명령어를 입력합니다.
adb pull /data/app/com.android.insecurebankv2-2Z_vR34Vw-gXbiG6JQx_cQ==
사용자 폴더 아래에 무언가 생겼습니다.
들어가 보면 한 APK 파일이 있습니다.
cmp 명령어를 통해서 원래의 InsecureBankv2.apk과 비교하니 같다는 것을 확인할 수 있습니다.
/system/app
/system/app은 전화나 메시지 같은 안드로이드에 기본적으로 내장되어 있는 앱들의 APK 파일이 있는 디렉터리입니다.
이런 앱들은 삭제되면 치명적일 수 있으므로 root 권한만 파일을 읽고 복사할 수 있습니다.
새로운 터미널을 열고 /system/app에 접근하고 파일 목록을 확인해보겠습니다.
adb shell
cd /system/app
ls
/data/app에서는 안 작동해서 문제였는데 /system/app에서는 작동해서 문제네요.
Bluetooth나 Chrome 같은 익숙한 이름이 보이네요.
이번에도 파일을 칼리 리눅스로 가져와보겠습니다.
adb pull /system/app/Chrome
잘 다운로드되네요.
/data/data
/data/data는 내부 저장소에 저장된 앱의 데이터가 저장되는 디렉터리입니다.
아래에 있는 명령어를 실행해줍니다.
adb shell
su
cd /data/data/com.android.insecurebankv2
ls -al
총 4개의 디렉터리가 있는데 cache와 code_cache는 비어있습니다.
먼저 databases 디렉터리로 들어가서 파일 목록을 확인해보겠습니다.
ls -al
mydb와 임시 파일로 보이는 것들이 있습니다.
mydb의 내용을 확인해보겠습니다.
sqlite3 mydb #SQLite3으로 mydb를 열어줍니다.
.tables #mydb의 테이블을 확인합니다.
2개의 테이블을 확인할 수 있습니다.
테이블의 내용을 확인해보겠습니다.
.dump android_metadata #테이블의 정보를 출력합니다.
.dump names #테이블의 정보를 출력합니다.
names 테이블에서는 dinesh와 같은 익숙한 문자열을 찾을 수 있습니다.
이 명령어를 이용해서 SQLite3 환경을 빠져나오겠습니다.
.quit
.exit
이제 상위 디렉터리로 이동해서 아직 확인하지 않은 shared_prefs디렉터리의 내용을 확인해주겠습니다.
cd ..
cd shared_prefs
ls -al
XML확장자를 가진 두 개의 파일이 있습니다.
cat 명령어를 이용해서 내용을 확인해보겠습니다.
cat com.android.insecurebankv2_preferences.xml
cat mySharedPreferences.xml
com.android.insecurebankv2_preferences.xml파일에는 서버와 연결할 때 사용하는 정보가 있고
mySharedPreferences.xml 파일에는 Base64로 인코딩 된 것으로 추정되는 문자열이 있습니다.
디코딩을 시도해본 결과 Username만 디코딩이 되네요.
'Android' 카테고리의 다른 글
Burp Suite 설치 및 HTTP 요청 패킷 가로채고 값 변조하기 (0) | 2022.11.21 |
---|---|
Android Log 출력하기 (0) | 2022.11.18 |
InsecureBankv2 설치하고 칼리 리눅스 연결해서 로그인하기 (2) | 2022.11.04 |
Anaconda 설치하기 (conda: command not found 해결) (0) | 2022.10.26 |
ADB(Android Debug Bridge) 사용해서 칼리 리눅스와 안드로이드 연결하기 (1) | 2022.10.21 |