내부저장소 vs 외부 저장소
내부 저장소는 앱마다 별도의 저장소를 구성하게 되는 데, 샌드박스 형식으로 다른 앱은 접근하지 못하고 해당 앱만 내부저장소에 접근할 수 있다. 아이디 및 패스워드 같은 정보가 저장되어 있다.
외부저장소는 모든 앱이 공용으로 사용할 수 있는 저장소이다. 안드로이드의 경우 공인인증서가 외부 저장소에 저장된다.
Logcat을 이용한 중요정보 평문 전송 실습
1. Logcat 기능 켠다.
C:\Users\rhcsu>adb shell logcat
2. Insecurebankv2 로그인 후 Logcat에 평문으로 전송되는지 확인한다.
내부저장소_ shared_prefs 내 중요정보 평문 저장 실습
1. shared_prefs 내 xml 파일을 확인한다.
/* '/data/data/<패키지 명>' 내 shared_prefs 존재 */
z3q:/ # ls /data/data/com.android.insecurebankv2/shared_prefs 존재
com.android.insecurebankv2_preferences.xml mySharedPreferences.xml
2. mySharedPreferences.xml 파일 내 정보를 확인한다.
z3q:/data/data/com.android.insecurebankv2/shared_prefs # cat mySharedPreferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="superSecurePassword">v/sJpihDCo2ckDmLW5Uwiw== </string>
<string name="EncryptedUsername">amFjaw== </string>
</map>
3. mySharedPreferences .xml 파일 계정 이름이 ' amFjaw== '으로 Base64로 인코딩 되어 있는 것을 확인 후 해당 값을 디코딩한할 경우, 평문으로 계정이름이 저장있는 것을 확인한다.
내부저장소_SQLite를 이용한 중요정보 평문 저장 실습
1. adb pull 명령어를 이용하여 안드로이드 기기 내에 있는 databases 파일을 추출한다.
/* '/data/data/<패키지 명>' 내 databases 존재 */
C:\Users\rhcsu> adb pull /data/data/com.android.insecurebankv2/databases
2. /Users/<사용자 명> 폴더 내 'databases' 폴더가 생성된 것을 확인한다.
3. SQLite 툴 '데이터베이스 열기' 기능을 이용하여 Database 파일 연다.
4. 'names' 테이블을 확인하여 계정이름이 노출된 것을 확인한다.
외부저장소 내 중요정보 평문 저장 실습
1. insecurebank에서 Transfer 탭 접근 후 'Get Accounts'를 이용하여 계좌이체를 시도한다.
2. /sdcard/ 폴더 이동 후 파일 내 최근 생성된 파일인 'Statements_jack.html'을 확인한다.
z3q:/ # ls -al /sdcard/ & cd /sdcard/
[1] 4045
total 48
drwxrwx--x 13 root sdcard_rw 4096 2024-05-02 16:52 .
drwx--x--x 4 root sdcard_rw 4096 2021-11-17 21:51 ..
-rw-rw---- 1 root sdcard_rw 24 2024-05-02 16:52 .uinfo.txt
drwxrwx--x 2 root sdcard_rw 4096 2021-11-17 21:51 Alarms
drwxrwx--x 3 root sdcard_rw 4096 2021-11-17 21:51 Android
drwxrwx--x 1 root sdcard_rw 0 2024-05-02 14:04 Apps
drwxrwx--x 2 root sdcard_rw 4096 2021-11-17 21:51 DCIM
drwxrwx--x 1 root sdcard_rw 0 2024-05-02 09:50 Download
drwxrwx--x 2 root sdcard_rw 4096 2021-11-17 21:51 Movies
drwxrwx--x 2 root sdcard_rw 4096 2021-11-17 21:51 Music
drwxrwx--x 2 root sdcard_rw 4096 2021-11-17 21:51 Notifications
drwxrwx--x 1 root sdcard_rw 0 2024-05-02 10:36 Pictures
drwxrwx--x 2 root sdcard_rw 4096 2021-11-17 21:51 Podcasts
drwxrwx--x 2 root sdcard_rw 4096 2021-11-17 21:51 Ringtones
-rw-rw---- 1 root sdcard_rw 1157 2024-05-03 10:46 Statements_jack.html
[1] + Done cd /sdcard/
3. 'Statements_jack.html' 파일 내 계좌 번호가 평문으로 저장된 것을 확인한다.
z3q:/sdcard # cat Statements_jack.html
Message:Failure From:999999999 To:555555555 Amount:
<hr>
Message:Success From:999999999 To:555555555 Amount:10
<hr>
Message:Success From:999999999 To:555555555 Amount:10
<hr>
Message:Success From:999999999 To:555555555 Amount:10000
<hr>
Message:Success From:999999999 To:555555555 Amount:10000
<hr>
Message:Success From:999999999 To:555555555 Amount:10000
<hr>
Message:Success From:999999999 To:555555555 Amount:10000
<hr>
Message:Success From:999999999 To:555555555 Amount:10000
<hr>
Message:Success From:999999999 To:555555555 Amount:10000
<hr>
'Mobile > 🩷 Android' 카테고리의 다른 글
13. FridaLab 실습_Challege 02 문제 풀이 (0) | 2024.05.12 |
---|---|
12. FridaLab 실습_Challenge 01 문제 풀이 (0) | 2024.05.12 |
10. Insecurebankv2 실습_취약한 브로드캐스트 리시버 (0) | 2024.04.27 |
09. Insecurebankv2 실습_취약한 콘텐츠 프로바이더 (0) | 2024.04.26 |
08. Insecurebankv2 실습_취약한 인증 매커니즘 (0) | 2024.04.26 |