목록Mobile App Penetesting (29)
외로운 Nova의 작업실
- 취약점 소개 안드로이드 애플리케이션은 특정 정보들을 저장해야할때가 있습니다. 이 특정 정보들을 암호화를 적용하여 저장하게되는데, 짧은 키값을 쓰거나, 소스 코드를 얻으면 키값이 노출되는 경우가 있습니다. - 취약점 진단 보통 앱들에는 자동 로그인 기능이 있습니다. insecurebank에서도 Autofill credencial 기능이 있습니다. 이 기능은 최근에 로그인했던 정보를 핸드폰내에 저장하고, 그값을 불러와 로그인을 하는 메커니즘을 가지고 있습니다. 즉, 로그인 했던 정보들이 어딘가에 저장되어있습니다. 보통 공유 프리퍼런스에 저장하니 한번 검사해보겠습니다. 먼저 공유 프리퍼런스 파일이 있는 경로로 들어가줍니다. /data/data/com.android.insecurebankv2/shared_p..
- 취약점 소개 취약한 인증 메커니즘은 정상적인 인증 절차를 우회하여 비정상적인 인증으로 접근권한을 획득하는 취약점입니다. - 취약점 진단 과정 매니페스트파일을 보면 액티비티의 속성중 exported=true 항목이 있는 액티비티들이 있습니다. 이 경우 다른 액티비티에서 인증없이 접근할 수 있습니다. 아래는 매니페스트 파일입니다. 여기서 PostLogin, DoTransfer, ViewStatement 액티비티는 export가 true로 설정되어 있습니다. 이를 통해 로그인 없이 해당 액티비티에 접근이 가능합니다. drozer를 사용하여 접근해보겠습니다. dz> run app.activity.start --component com.android.insecurebankv2 com.android.insecu..
- 취약점 소개 브로드캐스트가 무분별하게 인텐트를 받아들이면 악의적인 애플리케이션에 의해서, 공격자에 의해서 임의대로 실행될 수 있으며 수행을 조작할 수 있습니다. - 취약점 진단 과정 먼저 매니페스트 파일로 리시버를 봐보겠습니다. run app.package.manifest com.android.insecurebankv2 이름과 exported가 true로 되어있다보니 외부 앱의 인텐트를 리시브할 수 있는 것으로 확인됩니다. 실제 리시버가 무엇을 하는지 소스코드를 봐보겠습니다. package com.android.insecurebankv2; import android.content.BroadcastReceiver; import android.content.Context; import android.co..
- drozer drozer은 취약점 분석 프레임워크입니다. 아래사이트에서 다운로드할 수 있습니다. https://labs.withsecure.com/tools/drozer Drozer Comprehensive security and attack framework for Android. labs.withsecure.com 윈도우 사용자라면 msi랑 agent를 다운받으시면됩니다. 추가적으로 아래 링크를 참조하여 설정을 해줍니다. https://r136a1x27.tistory.com/312?category=516862 윈도우 drozer 설치(msi) - protobuf 오류 & 파이썬 2, 3 동시에 설치되어 있을 경우 0. drozer란? 모바일 어플리케이션(안드로이드) 동적 분석 프레임워크 https..
- adb adb connect 127.0.0.1:62001 : nox와 연결 adb start-server : adb 서버를 실행합니다. adb kill-server : adb 서버를 중단합니다. adb shell : adb를통해 shell을 실행합니다. adb devices : 연결된 디바이스를 나타냅니다. - adb 분석 //activitymanager과 art 태그중에 Info나 그이사으이 우선순위를 갖는 항목을 출력하고 다른 모든 메시지가 출력되게 하지 않습니다. adb logcat ActivityManager:I art:I *:S bugreport는 dumpsys, dumpstate 및 logact 명령의 결과를 한번에 출력합니다. adb bugreport > bugreport.txt 현재 실..
- 공부 방법 이번에는 안드로이드 앱 모의해킹에대해서 경험해보려고합니다. 책은 "안드로이드 모바일 앱 모의해킹"으로 길을 나갈 것 입니다. 책에서는 취약한 안드로이드 앱인 insecurebankv2를 가지고 모의해킹을 실습합니다. 다운 방법은 버전이 많아 달라서 아래 사이트를 참고하는게 좋습니다. https://velog.io/@2rlo/InsecureBankv2-%EC%82%AC%EC%A0%84-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95 [InsecureBankv2] 사전 환경 구축 InsecureBankv2 사전환경 구축 | InsecureBankv2 설치 | Drozer | abe.jar | jd-gui | dex2jar | apktool velog.io 이후 안드로이드 스..
- Smali 안드로이드는 달빅 가상머신위에서 돌아갑니다. 달빅 가상머신의 Smali는 어셈블리어와 비슷합니다. 따라서 리버싱을할때 어셈블리어를 알아야되듯이 안드로이드 리버싱을 할때는 Smali를 알아야합니다. - Smali 문법 실제 문법의 경우에는 안드로이드 개발자 사이트에 자세히 나와있습니다. https://source.android.com/docs/core/runtime/dalvik-bytecode?hl=ko Dalvik 바이트 코드 | Android 오픈소스 프로젝트 | Android Open Source Project Dalvik 바이트 코드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 일반 디자인 머신 모델과 호출 규칙은 일반적인 실제 아키텍처와 C 스타일 ..
- 동적 분석 저번 1장에서 안드로이드 앱을 apk > dex > .class 파일로 변경해서 자바 디컴파일로 파일을 봐보았습니다. 하지만 이는 정적 분석으로 코드만 볼 수 있습니다. ollydbg같이 프로그램을 실행시키면서 동적으로 분석하는 방법이 있는지 찾아보았습니다. IDA Pro로 가능하다는 것을 알게 되었습니다. 그 방법을 소개해드리겠습니다. - 사전 준비 먼저 동적 분석을 하려면 IDA pro, 통합USB드라이버, 안드로이드 단말기, adb 프로그램이 필요합니다. IDA pro가 있으신 분들만 가능합니다. 이제 통합 USB 드리이버를 다운로드 해보겠습니다. 스마트폰 제조사에 맞춰 통합 usb드라이버를 다운로드해줍니다. 저의 경우에는 삼성이므로 아래의 링크에서 다운로드가 가능합니다. https:..
안녕하세요. 이번 시리즈는 안드로이드 앱을 리버싱해보고 작동 원리를 알아내려고합니다. 안드로이드 앱 리버싱 관련해서는 예제가 많이 없어서 제가 직접 예제를 만들고 리버싱을 해서 작동 부분을 알아내보려고합니다. 그전에 사전 지식 이있습니다. - 사전 지식 구글은 태블릿, pc, 자동차에 들어가는 안드로이드 운영체제를 만들고싶었습니다. 따라서 열악한 환경에서도 잘 돌아가는 운영체제를 만들고싶었습니다. 이에따라 jvm을 사용하고싶었지만 저작권때문에 사용하지못하고 Dalvik 가상머신을 새롭게 만들었습니다. 하지만 Dalvik 가상머신또한 jvm에 영향을 받고 있습니다. jvm은 자바 가상 머신으로 프로그램을 해석하는 기능을 합니다. 이때 기계어가 일반적인 cpu와는 다르다는 특징이 있습니다. 따라서 jvm에서..