안드로이드 웹뷰 (Webview) 취약점 웹뷰는 웹페이지를 보여주는 뷰(view) 기능을 하는 안드로이드 컴포넌트 중 하나로, 자바스크립트를 지원하기 때문에 잘못 구현할 경우 웹의 XSS와 같은 취약점이 발생할 수 있다. 안드로이드 웹뷰 (Webview) 취약점 진단 디컴파일된 jar파일을 JD-GUI로 열어 webView가 사용된 곳을 확인해보자. ViewStatement 클래스의 onCreate 함수에서 webView가 사용되고있다. 이전에 인시큐어뱅크 앱의 Transfer 기능을 사용해보면서 이체 기록이 'View Statement'에 기록이 되는 것을 확인했다. 즉, Transfer 기능에 입력할 수 있는 입력값 중 스크립트 구문을 넣으면 View Statement 확인시 클라이언트 단에서 입력해..
컨텐츠 프로바이더 (Content Provider) 취약점 컨텐츠 프로바이더 (Content Provider)란, 다른 앱이 데이터베이스에 접근할 수 있도록 도와주는 역할을 한다. 컨텐츠 프로바이더는 앞서 살펴본 안드로이드 액티비티와 비슷하게 AndroidManifrest.xml에서 로 선언할 수 있다. 컨텐츠 프로바이더 취약점이 존재하게 되면, 데이터베이스에 접근할 권한이 없는데도 데이터베이스에 접근이 가능할 수 있게된다. 컨텐츠 프로바이더 (Content Provider) 취약점 진단 액티비티 취약점 진단과 비슷하게 android:exported="true"로 설정되어있는지 확인하면 된다. 인시큐어뱅크 앱의 AndroidManifest.xml의 를 살펴보면, 아래와 같이 .TrackUserConten..
drozer 다운로드 및 설치 2018년도 포스팅까지 파이썬 2.x 버전을 사용하라고 하는데 지금은 2020년이니까 3버전을 그대로 써볼까 했는데 2018년 이후로 drozer가 2.4.4 버전에서 업데이트가 되지 않았으므로 파이썬은 2.x 버전을 써야하는게 맞다. drozer 다운로드 사이트 링크 Drozer labs.f-secure.com 아래 drozer (Agent apk only)와 drozer (msi) 파일 2개를 다운로드받는다. apk 파일은 에뮬레이터이든 실제 단말기이든 모바일에 설치하고 msi는 윈도우에 설치할 것이다. 참고로 나같은 경우, 호스트가 윈도우10인데 방화벽을 다끄고 크롬, IE 둘다에서 다운로드 받아보았는데도 자꾸 '금지됨', '위협이 발견되어 삭제함', '네트워크 오류'..
안드로이드 액티비티 (Activity) 취약점 안드로이드에서 액티비티란 앱 UI를 제공하는 앱 컴포넌트로써 쉽게 말하면 하나의 화면이라고 생각하면 될 것 같다. 액티비티 취약점이 존재하면 공격자가 액티비티를 호출할 권한이 없는데도 강제로 호출할 수 있게 된다. 즉, 권한이 없는 기능을 사용할 수 있게된다. 액티비티는 리시버와 비슷하게 AndroidManifest.xml에서 로 선언할 수 있다. 안드로이드 액티비티 (Activity) 취약점 진단 위에서 본대로 여러 액티비티가 존재하는데 그 중, DoTransfer 액티비티에 로그인 없이 바로 접근 가능한지 확인해보겠다. adb로 안드로이드 쉘에 접근해준 후 am명령어를 사용해준다. adb의 am 명령어를 사용하면 액티비티를 실행시킬 수 있는데 (inten..
안전하지 않은 로깅 취약점 진단 adb devices로 연결된 디바이스를 확인한 후 로 쉘에 들어간다. 그 후 logcat을 입력하면 발생하는 로그들을 주르르르륵 출력된다. 아니면 처음부터 을 수행해도 된다. 로그인 수행 시, 아래와 같이 계정정보가 평문으로 로그에 기록되는 것을 볼 수 있다. > adb shell $ logcat 계좌이체 또한 마찬가지로 계좌이체 정보가 평문으로 로그에 기록된다. DoLogin 클래스를 확인해보면, 암호화되기 전의 유저네임과 패스워드가 로그로 기록되는 부분을 볼 수 있다. Log.d의 d는 로그 레벨로 Debug를 의미하며 Log.d의 첫번째 인자는 tag이고 두번째 인자가 로그로 출력될 메시지이다. DoTransfer는..
안드로이드 백업 취약점 안드로이드 시스템에서 제공하는 백업에는 클라우드 백업과 전체 백업 지원하는데, 전체백업의 경우 사용자가 단말기를 분실하는 등 저장된 중요 정보나 파일이 외부로 유출될 가능성이 있으므로 취약하다. 전체 백업 설정은 AndroidManifest.xml 파일에서 할 수 있다. 인시큐어뱅크(InsecureBankv2) 앱의 경우 AndroidManifrest.xml에 다음과 같이 allowBackup 값이 true로 설정되어있기 때문에 전체 백업이 가능하다. 진단을 수행하기 전, 사용자가 인시큐어뱅크 앱 로그인 후 중요 기능 중 하나인 계좌이체를 수행했다고 가정해보자. Transfer 메뉴를 누른 후 From Account, To Account 작성, Get Accounts 를 누른다. ..
로컬 암호화 이슈 (Local Encryption Issue) 인시큐어뱅크에는 몇가지 로컬 암호화 이슈가 존재한다. 로컬 암호화 이슈란 중요정보를 단말기에 저장할 때 취약한 암호화 알고리즘을 사용하거나 평문으로 저장해서 발생하는 이슈를 말한다. 먼저 로그인하는 과정이 필요한데 아래 포스팅에서 녹스 에뮬레이터 설정 및 인시큐어뱅크 서버 구동, 로그인 방법을 참고하길 바란다. [인시큐어뱅크] 녹스 에뮬레이터를 사용한 취약점 진단 환경구축 [인시큐어뱅크] 녹스 에뮬레이터를 사용한 취약점 진단 환경구축 인시큐어뱅크 앱을 사용해 안드로이드 모바일 취약점 진단 공부를 해보기 위해 녹스 에뮬레이터를 사용해 취약점 진단 환경 구축을 해볼 것이다. 다음과 같은 순서대로 차근차근 진행해보자. 인시큐어뱅크(Insecur....
일상글을 쓰는건 굉장히 오랜만이다. ㅎㅎ! 블로그차트의 순위가 사실상 중요한 것은 아니고 정확한 집계 방식을 모르기 때문에 맹신할 것은 아니지만, 내가 어느정도로 열심히 하고 있나 뿌듯함을 느끼고 동기부여를 하기 위해 가끔 들어가는데! 아래와 같이 HIGH CLASS 1% 라고 뜨는걸 확인했다. 별건 아니지만 기분이 좋다 :) 처음엔, '엥? 11만등인데 상위 1%라니 블로그 수가 그렇게나 많다고?' 라는 생각이 들어서 찾아봤는데, 블로그차트 메인페이지에서 확인해보니 집계된 블로그 총 수가 1600만개로 확인된다. 물론 이중에는 유령 블로그도 있을 것이고 어느정도 허수가 많겠지만 그래도 블로그 수가 이렇게나 많은지는 처음 알았다. 블로그의 전체 키워드 수는 397개이고 유효키워드 수는 102개로 내가 생..
인시큐어뱅크 앱을 사용해 안드로이드 모바일 취약점 진단 공부를 해보기 위해 녹스 에뮬레이터를 사용해 취약점 진단 환경 구축을 해볼 것이다. 다음과 같은 순서대로 차근차근 진행해보자. 인시큐어뱅크(InsecureBankv2) 설치 녹스(Nox) 에뮬레이터 설치 및 설정 녹스 에뮬레이터에 인시큐어뱅크 앱 설치 인시큐어뱅크 서버 구동 인시큐어뱅크 앱 설정 및 실행/로그인 확인 +) 안드로이드 스튜디오에 인시큐어뱅크 프로젝트 열기 인시큐어뱅크(InsecureBankv2) 설치 인시큐어뱅크는 안드로이드 모바일 앱 취약점 진단 공부를 위해 만들어진 앱으로 아래와 같은 취약점이 존재한다. 전부는 아니더라도 앞으로 하나하나 알아보려 한다. Flawed Broadcast Receivers Intent Sniffing a..
adb는 PC에서 안드로이드 쉘을 이용하기 위해 필요한 툴이다. 이 adb를 사용해 실제 단말기(갤럭시S10e)와 PC를 연결해보자. SDK(Software Development Kit) 설치 adb를 사용하기 위해서는 먼저 안드로이드 어플리케이션 개발을 위한 소프트웨어 키트인 SDK가 설치되어 있어야 한다. 난 어차피 나중에 설치해야될 것 같아서 SDK가 포함되어 설치되는 안드로이드 스튜디오를 다운받았다. 안드로이드 스튜디오 다운로드 링크
PE 파일을 IDA와 같은 툴을 사용해 디컴파일하듯, apk 파일도 디컴파일을 할 수 있는 방법이 있는데 그 중 가장 무난히 많이 사용되는 방법이 dex2jar 툴을 사용하는 것이다. 이름 그대로 dex -> jar 로 변경해주는 툴인데 그전에 dex란 뭔지부터 간단히 살펴본다. DEX(Dalvik Excutable)란 윈도우 실행파일이 PE파일인 것처럼, 안드로이드의 실행파일은 dex이다. d가 dalvik인 것에서 알 수 있듯이 안드로이드는 dex 파일을 달빅이라는 가상머신에서 구동시킨다. 달빅 가상머신은 모바일 기기에서 메모리를 적게 사용하면서 실행파일이 구동되도록 하는 최적회된 가상머신이라고 생각하면 된다. 참고로 이 달빅 가상머신은 OS에 하나가 있는 것이 아니라 구동되는 어플리케이션마다 생성이..
SUPER 다운로드 및 설치 SUPER은 오픈소스 기반의 안드로이드 앱 (apk) 취약점 점검 툴이다(사실 분석툴이 더 맞는 것 같다). 윈도우, 리눅스, 맥 환경에서 전부 사용 가능하며 아래 링크에서 다운받을 수 있다. https://superanalyzer.rocks/download.html SUPER Android Analyzer - Download Here you can download SUPER for Windows, Linux and MacOS X. We only provide 64-bit builds. If you need support for 32 bits, you will need to compile SUPER from source. Download for Windows Windows d..