들어가며 이 포스트에서는 안드로이드 운영체제의 소스코드를 받아서 게스트 환경(Ubuntu 18.04)에 맞게 빌드하고, 안드로이드 에뮬레이터에 이미지를 플래싱해서 구동시키는 과정을 기록한다. 안드로이드는 다양한 폼 팩터를 가진 다양한 기기를 위해 만들어진 오픈 소스 소프트웨어 스택이다. 오픈 소스이기 때문에 코드가 누구에게나 공개되어 있다. 사용자들이 자유롭게 빌드할 수 있으며, 하드웨어 구성에 맞게 커스터마이징할 수도 있다. 빌드의 전체 과정은 안드로이드 공식 홈페이지 포스팅(https://source.android.com/docs/setup/start)을 따르지만, 필요에 따라 트러블슈팅, 최적화 과정을 추가하였다. 안드로이드 버전 안드로이드 버전의 네이밍은 디저트 이름을 알파벳 순서로 사용하던 전통..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 학습자료 apk파일은 https://github.com/colfax0483/Vulnerable_apk 에서 clone할 수 있습니다. 개요 이전 포스트에서 이어지는 글입니다. [Security/Mobile] - [안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1 [Security/Mobile] - [안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part2 Part 3. 세 번째 버튼은 클릭할 수 없도록 비활성화 되어 있다. 앱에서 사용 불가능하도록 disabled ..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 학습자료 apk파일은 https://github.com/colfax0483/Vulnerable_apk 에서 clone할 수 있습니다. 개요 이전 포스팅에서 이어지는 글입니다. 2023.08.05 - [Security/Mobile] - [안드로이드 모의해킹] 안드로이드 정적 분석 실습 Q1 part1 두 번째 Flag 찾기 두 번째 버튼에 관련 로직이 존재하고 있다. 계속 MainActivity를 분석하면 버튼을 생성하고 버튼에 실행할 class를 명시하고 있다. setOnClickLis..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 1. 개요 APK 정적 분석 과정을 거치면서 감은 잡혔지만 실습해보기 전까진 이게 맞는건지 확실하지 않을 수 있기 때문에 직접 앱개발과 분석 과정을 추가했다. 애플리케이션 레벨의 취약점은 개발자의 실수에서 야기되는 경우가 많기 때문에 직접 개발해보는 것이 필요하다. 직접 개발을 하면서 귀찮았던점, 느슨하게 처리한 부분이 실제 상용 앱에서도 동일하게 취약점이 발생할 가능성이 높다. 필자가 개발한 앱은 github(https://github.com/colfax0483/Vulnerable_a..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 안드로이드는 SSL 통신을 지원하며, 단대단 암호화 적용 후 패킷을 주고 받는다. 앱이 서버와 정상 통신을 하기 위해서는 상호간의 신뢰할 수 있는 인증서를 가진 상태에서 공개키를 이용한 암호화를 적용한 패킷을 전송한다. 하지만 암호화된 패킷은 분석가가 패킷의 내용을 살피기 어렵기 때문에 복호화하는 과정이 필요하다. - 단말기 입장에서는 분석가의 Proxy 도구(Burp 등)가 서버가 되어 인증서를 대체한다. - 앱 서버 입장에서는 분석가의 Proxy 도구가 단말기가 되어 인증서를 ..
[환경] Host: Windows 11 Mobile: Galaxy Note 10 / Android 12 시작하기 전에 앱 취약점 진단 시 root 권한은 필수적이다. 진단용 단말기를 새로 들였으며, 그 과정을 정리한다. 루팅 시 Galaxy 단말기의 경우 단말기 무결성이 해제되며 knox, 삼성페이 등 일부 기능을 사용할 수 없다. Magisk를 이용한 탈옥이며, 게시글의 Step을 재정리한 것이다. 작업하는 모든 폴더 및 파일명에 "한글"이 없도록 한다. 준비 0. 데이터 백업 공기계로 하는 것을 권장하며, 필요한 데이터가 있는 경우 백업 후에 진행한다. 1. Odin (최신 버전 다운로드, 작성일 기준 v3.14) - 이미지를 플래싱하기 위한 도구 https://www.thecustomdroid.co..
이전 게시글([안드로이드 모의해킹] apk파일 코드패치와 무결성 검사)의 추가자료입니다. 개요 UberSigner는 안드로이드 앱(apk)의 서명을 자동화해주는 도구이다. 그 과정을 설명한다. 과정 1. Java 설치 확인 UberSigner는 Java 기반으로 동작한다. 터미널에서 아래 명령어를 입력해 Java 버전을 확인할 수 있다. java -version JAVA가 없다면 Oracle 사이트에서 설치할 수 있다. 2. UberSigner 다운로드 https://github.com/patrickfav/uber-apk-signer/releases/tag/v1.3.0 Release v1.3.0 · patrickfav/uber-apk-signer update internal apksigner implem..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 1. 개요 안드로이드 설치파일(apk)이 무결성검증을 하지 않는다면 악성코드가 앱을 변조하거나 침해하는 등의 위협이 발생할 수 있다. 일반적으로 안드로이드 앱은 Google Play 스토어를 통해서 배포되거나 개발자가 제공하는 공식 웹페이지에서 다운로드 받을 수 있다. 하지만 공식 채널이 아닌 방법으로 앱을 다운로드하는 경우 무결성 검증이 이루어지지 않을 수 있다. 이 경우 해커가 악성코드를 포함하고 있는 앱을 배포하여 사용자의 단말기에 악성코드를 설치하게 할 수 있다. 악성코드가 앱을..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 AndroidManifest.xml 파일에는 앱 구성 요소의 정보를 포함하여 앱의 기본 구성을 정의한다. 태그는 액티비티 구성 요소를 선언하는 데 사용되며, 이 태그를 사용하여 액티비티를 앱 구성 요소로 등록할 수 있다. 이 때, 태그의 속성을 적절하게 설정하지 않으면 Activity 강제 실행 취약점이 발생할 수 있다. 예를 들어, 앱에서 인증 절차를 수행하는 액티비티를 선언할 때, 이 액티비티는 다른 앱에서 강제로 실행되어서는 안된다. 따라서, 이 액티비티를 보호하기 위해서는 ..
직접 연구하여 작성한 자료입니다. 공식 출처가 명시되지 않은 자료의 무단 복제, 사용을 금지합니다. 공격 기법은 학습용, 허가된 환경에서 실습 바랍니다. 실 운영망 대상 공격은 처벌받습니다. (정보통신망법 제48조 1항) 개요 안드로이드에서 앱의 구성 단위인 Activity에 대해 알아보고, 액티비티의 생명주기(Lifecycle)에 대해서도 알아본다. 1. Activity main() 함수를 실행시켜 프로그램을 시작하는 기존 바이너리와 달리 안드로이드에서는 Activity의 특정 콜백 함수를 실행시켜 Activity 인스턴스의 코드를 실행한다. 앱의 시작 지점이 다를 수 있기 때문인데, 설치된 앱을 사용자가 터치하여 실행하는 경우도 있지만, 다른 앱으로부터의 호출, 전화가 오는 경우 전화앱이 실행되지만 ..