인시큐어뱅크 앱 설치 및 실행 방법 정리(InsecureBankv2)

2023. 4. 10. 11:20·Mobile App 취약점 진단 · 모의해킹/AOS App 취약점 진단 · 모의해킹
728x90
반응형

1. 인시큐어뱅크 앱 이란?

- 모바일 뱅킹 취약점 진단을 위한 테스트 용도로 제작된 애플리케이션이다.
- 안드로이드 앱 취약점 진단을 실습할 수 있는 환경을 제공한다.

- 2019년 이후로 업데이트가 중단되었다.

 

2. 취약점 진단 실습 가능 항목

- 인시큐어뱅크 앱에서 아래와 같은 25가지 항목을 실습할 수 있다.

결함이 있는 브로드캐스트 수신기 메모리의 민감한 정보 사용자 이름 열거 문제
의도 스니핑 및 주입 안전하지 않은 로깅 메커니즘 개발자 백도어
약한 인증 메커니즘 안드로이드 페이스트보드 취약점 약한 변경 암호 구현
로컬 암호화 문제 애플리케이션 디버깅 가능 파라미터 조작
취약한 활동 구성 요소 Android 키보드 캐시 문제 하드코딩된 비밀
루트 탐지 및 우회 안드로이드 백업 취약점 약한 암호화 구현
에뮬레이터 감지 및 우회 런타임 조작 애플리케이션 패치
안전하지 않은 콘텐츠 제공자 액세스 안전하지 않은 SDCard 스토리지 안전하지 않은 HTTP 연결
안전하지 않은 Webview 구현    

 

3. 파이썬 2.7.18 버전 설치

인시큐어뱅크 앱을 실행하기 위해선 인시큐어뱅크 서버를 PC에 설치하여야 한다.

인시큐어뱅크 서버는 파이썬 2 버전에서만 동작하므로, 아래의 링크에 접속하여 파이썬 2.7.18 버전을 설치한다.

https://www.python.org/downloads/release/python-2718/

 

Python Release Python 2.7.18

The official home of the Python Programming Language

www.python.org

 

4. 인시큐어뱅크 서버 설치 및 실행

- 아래의 사이트에 접속하여 Server.zip 파일을 다운로드한다.

https://github.com/dineshshetty/Android-InsecureBankv2/releases/tag/2.3.1

 

Release 2.3.1 · dineshshetty/Android-InsecureBankv2

Updated Code to work with AndroidStudio 3.3.2

github.com

 

- 다운로드한 압축파일을 해제한다.

※ 압축파일 해제 경로에 한글이 들어가면 실행 시 오류가 발생한다.

 

- 아래의 명령어를 실행하여 서버 구동에 필요한 파일을 다운로드한다.

# 압축 해제 경로로 이동
cd C:\AndroLabServer

# 서버 실행에 필요한 파일 다운로드
pip install -r requirements.txt

 

- app.py 파일을 메모장으로 열어 아래와 같이 내용을 변경한다.

# 3 line을 아래와 같이 수정
# from web.wsgiserver import CherryPyWSGIServer 
from cheroot.wsgi import Server as CherryPyWSGIServer

 

- 아래의 명령어를 입력하여 서버를 실행한다.

python app.py

 

5. 인시큐어뱅크 앱 설치

- 아래의 사이트에 접속하여 InsecureBankv2.apk 파일을 다운로드한 뒤 디바이스에 설치한다.

https://github.com/dineshshetty/Android-InsecureBankv2/releases/tag/2.3.1

 

Release 2.3.1 · dineshshetty/Android-InsecureBankv2

Updated Code to work with AndroidStudio 3.3.2

github.com

 

- 본문에선 안드로이드 가상환경 녹스(nox)에 설치하였음.

※ Nox에 설치할 경우 Android 7(32bit) 버전에 설치하여야 정상 동작하므로 주의할 것.

 

6. 인시큐어뱅크 앱 실행

- 설치한 인시큐어뱅크 앱을 실행한 후, 서버와의 연결을 위해 IP/Port 설정을 진행한다.

- 설정을 마치고 Submit 버튼을 클릭하면 "Server Configured Successfully!!"라는 토스트 알림이 뜬다.

※ Server IP는 PC의 현재 IP주소를 입력하면 된다.

 

- 아래의 계정정보를 입력하여 로그인을 시도한다.

# 인시큐어뱅크 기본 계정정보(default ID/PW)
username : dinesh
password : Dinesh@123$

username : jack
password : Jack@123$

 

7. 오류 해결방법

7.1. 지정한 서비스 포트가 사용중일 경우 

- PC에서 8888 포트를 이미 사용하고 있을 경우 아래와 같은 오류가 발생한다.

- app.py 실행 시 포트를 지정하여 실행하여 오류를 해결한다.

오류내용#1
The server is hosted on port: 8888
Traceback (most recent call last):
  File "app.py", line 155, in <module>
    server.start()
  File "C:\Python\lib\site-packages\cheroot\server.py", line 1849, in start
    self.prepare()
  File "C:\Python\lib\site-packages\cheroot\server.py", line 1804, in prepare
    raise socket.error(msg)
socket.error: No socket could be created -- (('0.0.0.0', 8888): [Errno 10048] 각 소켓 주소(프로토콜/네트워크 주소/포트))
해결방법#1
python app.py --port [포트번호]
#에러(error) 해결방법
python app.py --port 포트번호

 

7.2. 지정한 서비스 포트가 사용중일 경우 

- app.py 실행경로에 한글이 들어갔을 경우 로그인 에러가 발생한다. 서버 경로에 한글이 없도록 조치한다.

오류내용#2
The server is hosted on port: 8888
[2023-11-17 09:51:50,786] ERROR in app: Exception on /login [POST]
Traceback (most recent call last):
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "app.py", line 36, in login
    u = User.query.filter(User.username == request.form["username"]).first()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\orm\query.py", line 2824, in first
    return self.limit(1)._iter().first()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\orm\query.py", line 2919, in _iter
    execution_options={"_sa_orm_load_options": self.load_options},
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\orm\session.py", line 1716, in execute
    conn = self._connection_for_bind(bind)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\orm\session.py", line 1556, in _connection_for_bind
    engine, execution_options
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\orm\session.py", line 750, in _connection_for_bind
    conn = bind.connect()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\base.py", line 3325, in connect
    return self._connection_cls(self, close_with_result=close_with_result)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\base.py", line 96, in __init__
    else engine.raw_connection()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\base.py", line 3404, in raw_connection
    return self._wrap_pool_connect(self.pool.connect, _connection)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\base.py", line 3375, in _wrap_pool_connect
    e, dialect, self
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\base.py", line 2209, in _handle_dbapi_exception_noconnection
    sqlalchemy_exception, with_traceback=exc_info[2], from_=e
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\base.py", line 3371, in _wrap_pool_connect
    return fn()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\base.py", line 327, in connect
    return _ConnectionFairy._checkout(self)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\base.py", line 894, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\base.py", line 493, in checkout
    rec = pool._do_get()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\impl.py", line 256, in _do_get
    return self._create_connection()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\base.py", line 273, in _create_connection
    return _ConnectionRecord(self)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\base.py", line 388, in __init__
    self.__connect()
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\base.py", line 691, in __connect
    pool.logger.debug("Error on connect(): %s", e)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\util\langhelpers.py", line 72, in __exit__
    with_traceback=exc_tb,
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\pool\base.py", line 686, in __connect
    self.dbapi_connection = connection = pool._invoke_creator(self)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\create.py", line 574, in connect
    return dialect.connect(*cargs, **cparams)
  File "C:\Users\hagsig\anaconda3\envs\py_2.7.18\lib\site-packages\sqlalchemy\engine\default.py", line 598, in connect
    return self.dbapi.connect(*cargs, **cparams)
OperationalError: (sqlite3.OperationalError) unable to open database file
(Background on this error at: https://sqlalche.me/e/14/e3q8)
 [!] 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
해결방법#2
경로에 한글이 없도록 조치한다.

 

- python 2.7.18 외 다른 버전의 python이 설치되어 있거나, 다른 버전이 환경변수로 등록되어 있을 경우 로그인 오류가 발생한다. python 2.7.18 버전을 환경변수로 등록하고 나머지 버전은 모두 삭제한다.

 

- ImportError: No module named wsgiserver 오류 발생 시 아래의 글을 참고하여 오류를 해결.

2023.04.08 - [오류 해결] - ImportError: No module named wsgiserver 오류 해결방법

 

ImportError: No module named wsgiserver 오류 해결방법

인시큐어뱅크 서버 실행 시 아래와 같은 오류가 발생하는 경우가 있다. C:\AndroLabServer>python app.py Traceback (most recent call last): File "app.py", line 3, in from web.wsgiserver import CherryPyWSGIServer ImportError: No module

hagsig.tistory.com

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'Mobile App 취약점 진단 · 모의해킹 > AOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글

녹스(Nox) 버프슈트 프록시 연결 및 인증서 설치 방법  (0) 2023.08.08
안드로이드 APK 파일 인증서 등록 방법 정리  (0) 2023.04.11
안드로이드 APK 파일 디컴파일/리패키징 방법  (0) 2023.04.11
안드로이드 앱(app)으로부터 apk 파일 추출 방법 정리  (0) 2023.04.11
안드로이드 DIVA 설치 및 실행방법 정리  (0) 2023.04.09
'Mobile App 취약점 진단 · 모의해킹/AOS App 취약점 진단 · 모의해킹' 카테고리의 다른 글
  • 안드로이드 APK 파일 인증서 등록 방법 정리
  • 안드로이드 APK 파일 디컴파일/리패키징 방법
  • 안드로이드 앱(app)으로부터 apk 파일 추출 방법 정리
  • 안드로이드 DIVA 설치 및 실행방법 정리
학식(hagsig)
학식(hagsig)
정보보안을 배우고자 하는 모든 이들의 식당입니다. 모의해킹, 취약점 진단, 서버, 네트워크, 프로그래밍 등등 다양한 분야를 배우실 수 있습니다.
  • 학식(hagsig)
    학식 - 정보보안 전문 블로그
    학식(hagsig)
  • 전체
    오늘
    어제
  • 공지사항

    • 게시된 정보를 악용하여 발생하는 모든 책임은 사용자에게 있⋯
    • 무단 전재 및 재배포를 금지합니다.
    • 분류 전체보기 (299)
      • 교육정보 (15)
        • IT국비지원 (12)
        • 기업면접코칭 (3)
      • 인프라 취약점 진단 · 모의해킹 (24)
        • 윈도우 서버 진단 · 모의해킹 (22)
        • 리눅스 서버 진단 · 모의해킹 (2)
      • Mobile App 취약점 진단 · 모의해킹 (98)
        • AOS App 취약점 진단 · 모의해킹 (40)
        • iOS App 취약점 진단 · 모의해킹 (58)
      • 웹 취약점 진단 · 모의해킹 (2)
      • 클라우드 취약점 진단 · 모의해킹 (4)
        • AWS 취약점 진단 · 모의해킹 (0)
        • 컨테이너 보안 (4)
      • CS App 취약점 진단 · 모의해킹 (8)
      • AI 취약점진단 · 모의해킹 (8)
      • 산업 제어 시스템 진단 · 모의해킹 (0)
      • 침해 사고 대응 (15)
      • 디지털 포렌식 (2)
      • 자체개발 프로그램 (1)
        • TLS Security Checker (1)
      • IT 자격증 (26)
        • AWS 자격증 (11)
      • 프로그램 사용방법 (14)
      • 리눅스 (1)
      • 파이썬 (12)
      • 오류 해결 (2)
      • 잡학 지식 (41)
      • 코로나19 (12)
      • 학식 일상 (11)
        • 사진 (1)
        • 음악 (6)
        • 가게 정보 (3)
      • 제품 리뷰 (2)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
학식(hagsig)
인시큐어뱅크 앱 설치 및 실행 방법 정리(InsecureBankv2)
상단으로

티스토리툴바