-->

[인시큐어뱅크] 녹스 에뮬레이터를 사용한 안드로이드 앱 취약점 진단 환경구축

반응형

인시큐어뱅크 앱을 사용해 안드로이드 모바일 취약점 진단 공부를 해보기 위해 녹스 에뮬레이터를 사용해 취약점 진단 환경 구축을 해볼 것이다. 다음과 같은 순서대로 차근차근 진행해보자.

 

  • 인시큐어뱅크(InsecureBankv2) 설치
  • 녹스(Nox) 에뮬레이터 설치 및 설정
  • 녹스 에뮬레이터에 인시큐어뱅크 앱 설치
  • 인시큐어뱅크 서버 구동
  • 인시큐어뱅크 앱 설정 및 실행/로그인 확인
  • +) 안드로이드 스튜디오에 인시큐어뱅크 프로젝트 열기

 

 

인시큐어뱅크(InsecureBankv2) 설치

인시큐어뱅크는 안드로이드 모바일 앱 취약점 진단 공부를 위해 만들어진 앱으로 아래와 같은 취약점이 존재한다. 전부는 아니더라도 앞으로 하나하나 알아보려 한다.

 


Flawed Broadcast Receivers
Intent Sniffing and Injection
Weak Authorization mechanism
Local Encryption issues
Vulnerable Activity Components
Root Detection and Bypass
Emulator Detection and Bypass
Insecure Content Provider access
Insecure Webview implementation
Weak Cryptography implementation
Application Patching
Sensitive Information in Memory
Insecure Logging mechanism
Android Pasteboard vulnerability
Application Debuggable
Android keyboard cache issues
Android Backup vulnerability
Runtime Manipulation
Insecure SDCard storage
Insecure HTTP connections
Parameter Manipulation
Hardcoded secrets
Username Enumeration issue
Developer Backdoors
Weak change password implementation

 

 

 

아래 깃허브 주소에서 인시큐어뱅크를 다운받을 수 있다. 

 


인시큐어뱅크 깃허브 주소

 

dineshshetty/Android-InsecureBankv2

Vulnerable Android application for developers and security enthusiasts to learn about Android insecurities - dineshshetty/Android-InsecureBankv2

github.com

 

 

깃허브 주소에서 직접 받아도 되지만, git이 설치되어 있으므로 git clone으로 다운받아 주었다.

 

 

 

녹스(Nox) 에뮬레이터 설치 및 설정

인시큐어뱅크 앱을 가상으로 구동시킬 에뮬레이터가 필요한데 본 포스팅에서는 '녹스'를 사용할 것이다. 녹스 말고도 에뮬레이터가 많으니 원하는 것으로 사용하면 된다. 녹스는 아래 링크에서 다운받을 수 있다.

 


녹스 에뮬레이터 다운로드 링크

 

녹스 앱플레이어

모바일 게임을 키보드와 마우스로? 클릭 한 번으로 가상키보드 실행이 가능하며 PC버전의 게임도 간편하게 체험할 수 있습니다. 키보드와 마우스로 컨트롤하여 뛰는 자에서 나는 자가 되어볼 수 있는 절호의 기회!

kr.bignox.com

 

 

먼저 시스템설정>성능설정에서 해상도를 스마트폰으로 설정해준다.

 

 

 

그리고 시스템설정>기본설정에서 ROOT켜기를 활성화해준다. ROOT켜기를 활성화해주지 않으면 나같은 경우 인시큐어뱅크 앱에서 로그인이 잘 안됐다.

 

 

 

녹스 에뮬레이터에 인시큐어뱅크 앱 설치

먼저 녹스 에뮬레이터와 adb를 연결시켜야 한다. 녹스 에뮬레이터를 켜기만 해서는 adb devices가 인식을 못하므로 < adb connect 127.0.0.1:62001 > 로 먼저 연결시켜준 후 제대로 연결됐는지 adb devices로 확인을 해준다.

 

 

 

그리고 인시큐어뱅크를 설치한 폴더로 이동을 한 후 InsecureBankv2.apk를 adb install로 설치해준다.

 

 

 

그럼, 아래와 같이 녹스 에뮬레이터에 InsecureBank 앱이 설치된 것을 볼 수 있다.

 

 

 

인시큐어뱅크 서버 구동

다운받은 인시큐어뱅크를 확인해보면, AndroLabServer 디렉토리에 서버 작동 스크립트인 app.py가 있다. 

 

 

 

서버를 구동시키려면 해당 app.py를 실행시켜주면 된다. 그런데 아마 처음 구동하려 하면, 아래와 같이 web 이 없다고 했다가 하나 설치하고 나면 또 다른게 없다고 계속 뜰 것이다.

 

 

 

필자의 경우 아래와 같은 모듈 설치가 필요했으니 app.py를 실행시키기 전 아래 모듈부터 설치하기 바란다.

 

 

 

아래와 같이 app.py를 실행시켰을 때, 'The server is hosted on port : 8888'가 뜨면 정상적으로 실행이 된 것이다.

 

 

 

인시큐어뱅크 앱 설정 및 실행 확인

녹스 에뮬레이터에 인시큐어뱅크를 설치했고, 인시큐어뱅크 서버도 구동시켰으면 이제 실행시키는 일만 남았다. 녹스에 설치된 InsecureBank를 클릭하면 아래와 같이 정상적으로 실행되는 것을 확인할 수 있다. 뿌-듯 :)

 

 

 

한가지 설정할 것이 더 남았는데, 오른쪽 상단에 땡떙땡을 눌러 Preferences에 들어간다.

 

 

 

FilePref에서 Server IP에 본인 IP를 입력해주고 Server Port에는 디폴트로 8888로 되어있는데 그대로 Submit 해준다.

 

 

 

그리고 ID: jack / PW: Jack@123$ 로 로그인을 해주면 아래와 같이 로그인이 성공된 화면과 함께 서버에 jack 유저의 로그인 정보가 넘어오게 되는 것을 볼 수 있다.

 

 

 

+) 안드로이드 스튜디오에 인시큐어뱅크 프로젝트 열기

추가적으로 안드로이드 스튜디오에서 인시큐어뱅크 프로젝트를 여는 법도 매우 간단하지만 작성해놓으려 한다. 안드로이드 스튜디오에서 처음 인시큐어뱅크를 오픈할 때, 아래의 루트 경로가 아니라,

 

 

Android-InsecureBankv2\InsecureBankv2 경로를 선택해서 열어주어야 한다. 모바일도 처음이거니와 안드로이드 스튜디오도 처음 사용해보는 (나같은) 사람이라면 충분히 여기서 삽질할 수 있다고 생각한다 ^^; 안드로이드 스튜디오를 사용해서 나중에 리패키징 취약점을 진단할 때 서명키를 생성해줄 것이므로 해당 과정이 필요하다.

 

 

 

프로젝트를 열게되면 한 2~3분 정도는 기다려야 열린다. 그러면 아마 아래와 같이 에러창을 발견할 것이다.

 

 

 

해당 에러를 해결하기 위한 SDK 패키지 설치방법이 아래와 같이 제공되어있으니 아래 네모박스 친 부분을 선택해서 없는 SDK 패키지를 설치해주면 된다.

 

 

 

그럼 아래와 같이 'License Agreement' 창이 뜨고 Accept를 선택해 진행해주면 된다.

 

 

댓글

Designed by JB FACTORY