[목차]

 

 

1. 진단 앱 소개

    (1) 인시큐어뱅크

    (2) 인시큐어뱅크 앱 구조

    (3) 인시큐어뱅크 앱 내 취약점 항목

 

2. 진단 환경 구성

    (1) NOX 에뮬레이터 설치 및 설정

    (2) InsecureBankv2 앱 내려받기

    (3) 녹스에 인시큐어앱 설치

          - 녹스 기본 포트 확인

          - ADB를 활용한 앱 설치

          - 인시큐어뱅크 서버 설정

              - python2 설치

              - pip2를 통한 필수 모듈 설치

              - 소켓 오류 해결

          - 앱 서버 설정 및 로그인 시도

     (4) 안드로이드 스튜디오 세팅

 

 


 

 

[진단 앱 소개]

 

 

 

1. 인시큐어뱅크 (InsecureBankv2)

: 취약하게 개발된 Android Application으로

안드로이드 앱의 취약점을 진단해 보며

학습하는 목적으로 고안된 테스트 앱

 

 

2. 인시큐어뱅크 앱 구조

- 인시큐어뱅크의 서버는

Python 기반의 Flask로 구성되어 있으며

IndecureBank 앱과 통신을 주고받는다.

- 안드로이드 스튜디오에서 Import

할 수 있는 형태의 프로젝트를 지원함

 

 

3. 인시큐어뱅크 앱 내 취약점 항목

01. Flawed Broadcast Receivers (취약한 브로드캐스트 리시버)

02. Weak Authorization mechanism (취약한 인증 메커니즘 )

03. Local Encryption issues (로컬 암호화 취약점)

04. Vulnerable Activity Components (취약한 액티비티 컴포넌트)

05. Root Detection and Bypass (루트 노출 및 우회 취약점)

06. Insecure Content Provider access (취약한 콘텐츠 프로바이더 )

07. Insecure Webview implementation (취약한 웹 뷰 구현)

08. Weak Cryptography implementation (취약한 암호화 구현 )

09. Application Patching (앱 패치 취약점 )

10. Sensitive Information in Memory (메모리 내 주요정보 노출 취약점)

11. Insecure Logging mechanism (취약한 로깅 메커니즘)

12. Android Pasteboard vulnerability (페이스트보드 취약점)

13. Application Debuggable (앱 디버깅 취약점)

14. Android keyboard cache issues (안드로이드 키보드 캐시 취약점)

15. Android Backup vulnerability (안드로이드 백업 취약점)

16. Runtime Manipulation (런타임 조작)

17. Insecure SD Card storage (취약한 SD 카드 스토리지)

18. Insecure HTTP connections (취약한 HTTP 전송)

19. Parameter Manipulation (파라미터 조작)

20. Hardcoded secrets (하드코드 된 중요 정보)

21. Username Enumeration issue (사용자 계정 목록화)

22. Developer Backdoors (개발 백도어 취약점)

23. Weak change password implementation (취약한 비밀번호 변경 로직)

 

 


 

 

 

[진단 환경 구성]

 

 

1. NOX(이하 녹스) 에뮬레이터 설치 및 설정

: 루팅 된 단말기가 없는 경우

진단 환경에서 앱을 올릴 때

주로 사용되는 에뮬레이터가 바로

녹스 앱 플레이어 (https://kr.bignox.com/)

 

 

(1) 내려받은 후 설치

- 설치 버전 : 7.0.3.0 (2022년 06월20일 기준)

 

 

 

 

(2) 환경 설정

ㄱ. 해상도 설정

: 시스템설정 > 해상도 설정 (스마트폰)

 

초기 설치 시 해상도는 태블릿으로 되어 있는데

본인이 사용하기 편한 해상도로 설정

 

 

 

 

ㄴ. 루팅 설정

: 시스템 설정 > 일반 > ROOT 켜기 체크

 

앱 진단 시 관리자 권한이 필요하기 때문에

루팅을 의미하는 ROOT 기능 활성화

 

 

 

 

 

2. InsecureBankv2 (이하 인시큐어뱅크) 앱 내려받기

오픈소스로 github에서 무료로 받을 수 있음

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

 

 

 

 


 

 

3. 녹스에 인시큐어뱅크 앱 설치

 

(1) 녹스 기본 포트 확인

adb를 통해 기기를 연결하려면

해당 기기의 포트 확인이 필요하다.

# 녹스 실행파일 경로에서
C:\Nox\bin> nox.exe devices -l
 

녹스의 기본 포트는 62001부터 시작!

 

 

 

(2) ADB를 활용한 앱 설치

위에서 확인한 포트로

adb 연결을 시도하고

이어 앱 설치를 진행한다.

# 녹스 디바이스 연결
C:> adb connect 127.0.0.1:62001

# 연결 디바이스 확인
C:> adb devices

# 인시큐어뱅크 앱 설치
C:> adb install [인시큐어뱅크]
 

 

설치(인스톨)가 완료되면

녹스 플레이어에 인시큐어뱅크 앱이 생기고

 

 

정상 실행 가능 확인

 

 

하지만 서버 설정이 안된 상태라

로그인 외 기능 활용은 안되는 상황.

 

 


 

(3) 인시큐어뱅크 서버 설정

 

Github에서 내려받은 인시큐어뱅크 폴더에 들어가면

하위에 AndroLabServer라는 폴더가 있는데

들어가 보면 app.py라는 파일이 있다.

 

 

해당 파일을 바로 기동시키려고 하면

몇몇 모듈이 설치되어 있지 않아

Import Error가 나는데

 

위 디렉터리에 함께 들어있는 requirements.txt를

통해 필요한 모듈들을 일괄 설치해 주면 된다.

 

하지만 문제는

인시큐어뱅크 앱 제작 당시 사용했던 python 버전이

2 버전 대라, 현재 윈도우에 설치되어 있는 python 3로

설치를 진행하려면 문제가 생기고 해결 과정이 복잡하다.

 

해서 python2를 추가 설치 후

서버를 설치해 보기로 한다.

 

 

 

(3-1) Python2 설치

https://www.python.org/downloads/

 

 

python 2.7.16 버전을 선택 후

Windows x86-64 MSI Installer를

선택

 

 

내려받은 후 설치를 진행하고

(default 값으로 설치 진행)

 

 

환경변수 등록

 

 

 

* 기존에 설치되어 있던 python3 버전과의 충돌을 방지하려고

프로그램명을 python.exe에서 python2.exe로 변경해 주었다.

 

버전 별로 정상 동작 확인

 

 

 

(3-2) pip2를 통한 필수 모듈 설치

현재 pip 역시 pip3로 동작되도록 설정되어 있기 때문에

python2로 pip를 구동시켜 필요한 모듈을 설치한다.

 

 

pip2 버전이 낮아 일부 모듈(web.py) 설치가 안 되는 경우

pip2 버전을 업그레이드 후 진행하면 해결되며

 

 

모듈 설치 완료 후 서버를 기동시키면

 

소켓 오류 발생!

 

 

 

(3-3) 소켓 오류 해결

소켓 오류의 원인은 

해당 8888 포트를 다른 프로그램에서

먼저 선점해 사용하고 있기 때문으로

 

그 프로그램을 멈추거나 

간단히 서버 기동 포트를

다른 포트로 변경 후 시도하면

(방화벽 허용 관련 경고가 뜨는데

허용을 눌러주면 됨)

 

서버가 정상 작동된다.

 

 

 

(4) 앱 서버 설정 및 로그인 시도

녹스 플레이어 > 인시큐어뱅크 > Preferences에서

서버 IP 및 포트 설정을 해준 뒤

 

 

로그인을 시도하면

: 기본 제공 ID / PW

- dinesh / Dinesh@123$

- jack / Jack@123$

 

 

로그인에 정상 성공하고

 

 

 

기동 중인 서버 내

로그인 관련 로그가 남는다.

 

 

 

 


 

 

4. 안드로이드 스튜디오 세팅

: Import 시킬 프로젝트 경로

 

 

코드 확인

 

 

 

 

728x90
반응형

+ Recent posts