InsecureBankv2 환경 구축

환경 구축

우선… 파이썬 2.7 버전으로 진행해야 하기 때문에 맥북에서는 할 수가 없어서, 윈도우 노트북을 꺼내서 진행했다.. 파이썬 2로 처음에 갈아엎는 굉장히 바보 같은짓을 하다가, 다시 갈아 엎고 conda를 생각해내서 했는데 굉장히 깔끔하게 잘 되었다.. 다들 나처럼 시간을 날리지 않았으면 좋겠다는 마음으로 정리를 해보았다..

 

윈도우도 이미 python3를 사용하고 있었기에, 환경 변수 문제에 직면하는 것을 피하고자, conda를 사용했는데, 윈도우에서는 anaconda prompt를 열어서 아래와 같은 명령어를 실행한다. (window anaconda 설치는 인터넷에 잘 나와있으니까 찾아봅시다.)

$ conda create -n py2 python=2.7 -y # 가상환경 만들어 주기
$ conda activate py2

 

인시큐어 뱅크는 플라스크 프레임워크를 사용하기 때문에 flask, sqlalchemy, simplejson, web.py, cherrpy를 설치해준다.

web.py는 이제 conda install web.py가 안되서 pip install web.py를 하는데 아래와 같은 오류가 발생했다.

~~~ LookupError: unknown encoding: cp65001

 

pip install 전에 chcp 1252 를 해주면 설치가 가능했다. python2 버전에 맞는 web.py를 설치해야 해서 pip install web.py==0.37 을 해주면 된다.

그리고 git clone <https://github.com/dineshshetty/Android-InsecureBankv2.git> 를 해서 설치해준다.

설치가 완료되면 AndroLabServer 폴더에 있는 app.py를 실행해주면된다.

python app.py 를 하면 port가 8888번으로 열리는 것을 확인할 수 있다. (근데 로그인이 안될시에는 관리자 권한으로 실행해주면 된다.)

nox 기준으로 adb devices 로 연결이 되면 insecurebankv2.apk를 설치한 뒤에 서버는 ipconfig 를 해서 본인 ip에 해당하는 것을 server ip로 세팅해주고 port는 8888로 세팅해주기. 세팅 후에 아래와 같이 두 계정으로 로그인이 되면 환경구축 완성이 된 것이라 볼 수 있다.

dinesh

Dinesh@123$

-------------------------

jack

Jack@123$

 

insecurebankv2 - 25개(취약점 종류)

  1. Flawed Broadcast Receivers (결함 있는 브로드캐스트 리시버)
  2. Intent Sniffing and Injection (인텐트 스니핑 및 인젝션)
  3. Weak Authorization mechanism (약한 인가 메커니즘)
  4. Local Encryption issues (로컬 암호화 문제)
  5. Vulnerable Activity Components (취약한 액티비티 컴포넌트) 
  6. Root Detection and Bypass (루트 감지 및 우회)
  7. Emulator Detection and Bypass (에뮬레이터 감지 및 우회)
  8. Insecure Content Provider access (취약한 컨텐트 프로바이더 접근)
  9. Insecure Webview implementation (취약한 웹뷰 구현)
  10. Weak Cryptography implementation (약한 암호화 구현)
  11. Application Patching (애플리케이션 패칭)
  12. Sensitive Information in Memory (메모리 내 민감한 정보)
  13. Insecure Logging mechanism (취약한 로깅 메커니즘)
  14. Android Pasteboard vulnerability (안드로이드 페이스트보드 취약점)
  15. Application Debuggable (애플리케이션 디버깅 가능)
  16. Android keyboard cache issues (안드로이드 키보드 캐시 문제)
  17. Android Backup vulnerability (안드로이드 백업 취약점)
  18. Runtime Manipulation (런타임 조작)
  19. Insecure SDCard storage (취약한 SD 카드 저장소)
  20. Insecure HTTP connections (취약한 HTTP 연결)
  21. Parameter Manipulation (파라미터 조작)
  22. Hardcoded secrets (하드코딩된 비밀)
  23. Username Enumeration issue (사용자 계정 목록화)
  24. Developer Backdoors (개발자 백도어)
  25. Weak change password implementation (약한 비밀번호 변경 구현)