본문 바로가기
Mobile/🩷 Android

11. Insecurebankv2 실습_중요정보 평문 저장 및 전송

by snowflower.DY 2024. 5. 3.
내부저장소 vs 외부 저장소

  내부 저장소는 앱마다 별도의 저장소를 구성하게 되는 데, 샌드박스 형식으로 다른 앱은 접근하지 못하고 해당 앱만 내부저장소에 접근할 수 있다. 아이디 및 패스워드 같은 정보가 저장되어 있다.

  외부저장소는 모든 앱이 공용으로 사용할 수 있는 저장소이다. 안드로이드의 경우 공인인증서가 외부 저장소에 저장된다.

 

Logcat을 이용한 중요정보 평문 전송 실습

  1. Logcat 기능 켠다.

C:\Users\rhcsu>adb shell logcat

 

2. Insecurebankv2 로그인 후  Logcat에 평문으로 전송되는지 확인한다.

Insecurebnkv2 로그
로그인 정보가 평문으로 노출

 

내부저장소_ 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==&#10;    </string>
    <string name="EncryptedUsername">amFjaw==&#13;&#10;    </string>
</map>

 

3. mySharedPreferences .xml 파일 계정 이름이 ' amFjaw== '으로 Base64로 인코딩 되어 있는 것을 확인 후 해당 값을 디코딩한할 경우, 평문으로 계정이름이 저장있는 것을 확인한다.

Base64 디코딩

 

내부저장소_SQLite를 이용한 중요정보 평문 저장 실습

  1. adb pull 명령어를 이용하여 안드로이드 기기 내에 있는 databases 파일을 추출한다.

/* '/data/data/<패키지 명>' 내  databases 존재 */
C:\Users\rhcsu> adb pull /data/data/com.android.insecurebankv2/databases

 

2. /Users/<사용자 명> 폴더 내 'databases' 폴더가 생성된 것을 확인한다.

databases 파일 확인

 

3. SQLite 툴 '데이터베이스 열기' 기능을 이용하여 Database  파일 연다.

 

4. 'names' 테이블을 확인하여 계정이름이 노출된 것을 확인한다.

800

 

외부저장소 내 중요정보 평문 저장 실습

  1. insecurebank에서 Transfer 탭 접근 후 'Get Accounts'를 이용하여 계좌이체를 시도한다.

insecurebank 계좌이체 시도

 

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>