본문 바로가기

해킹/Mobile application Hacking

[Mobile App Hacking] 안드로이드의 구조

간단하게 APK 파일의 구조부터 한번 보자.

 

아직은 자세하게 이해할 순 없지만 안드로이드 스튜디오에서 몇번 마주한 AndroidManifest.xml이나 Res 등등 익숙한 것도 보입니다.

APK 파일의 구조

출처 : https://www.getastra.com/blog/security-audit/android-penetration-testing/

 

 

앱 해킹을 위해 쓰는 대표적인 3가지 도구
  1. MobSF : MobSF 는 정적 및 동적 분석을 수행할 수 있는 자동화된 올인원 모바일 애플리케이션                                (Android / iOS/Windows) 침투 테스트, 맬웨어 분석 및 보안 평가 프레임워크
  2. Frida : Frida는 개발자, 리버스 엔지니어 및 보안 연구원이 사용하는 동적 계측 툴킷입니다.
  3. Apktool : Apktool은 모든 apk 파일을 리버스 엔지니어링/ 디컴파일하는 데 사용됩니다. 다양한 Linux 명령을 사용하여 Android 침투 테스터는 민감한 데이터를 찾습니다.

 

안드로이드의 구조 / 4대 컴포넌트

안드로이드는 네 가지의 구성요소에 각 구성요소 별 전달을 담당하는 Intent 메시징 객체로 이루어져 있습니다.

> 액티비티

사용자와 상호작용하기 위한 진입점

사용자 인터페이스를  포함한 화면 하나를 나타냄

이메일 앱이라면 새 이메일 목록을 표시하는 액티비티 하나, 이메일을 작성하는 액티비티 하나, 이메일을 읽는 데 쓰는 액티비티 하나 등이 존재

이메일 앱에서 허용할 경우 다른 앱에서 이와 같은 액티비티 중 하나를 시작할 수 있음

 

> 서비스

백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점

사용자 인터페이스(UI)는 제공하지 않음

사용자가 다른 앱에 있는 동안에 백그라운드에서 음악을 재생하거나, 사용자 액티비티 간의 상호작ㅇ용을 차단하지 않고 네트워크를 통해 데이터를 가져올 수 있음

 

> Broadcast receiver

시스템이 정기적인 사용자 플로우 밖에서 이벤트를 앱에 전달하도록 지원하는 컴포넌트

대다수의 브로드캐스트는 시스템에서 발생 (화면 꺼짐, 배터리 부족, 사진 캡쳐 알림 등)

일반 앱도 브로드캐스트를 사용하여 사용자 인터페이스를 표시하지 않지만, 상태 표시줄 알림을 생성

 

> 콘텐츠 프로바이더

콘텐츠 제공자는 파일 시스템, SQLite 데이터베이스, 웹 상이나 앱이 접근할 수 있는 다른 모든 영구 저장소에 저장 가능한 앱 데이터의 공유형 집합을 관리함

다른 앱은 컨텐츠 제공자를 통해 해당 데이터를 쿼리하거나, 콘텐츠 제공자가 허용할 경우에는 수정도 가능

안드로이드 시스템은 사용자의 연락처 정보를 관리하는 콘텐츠 제공자를 제공하여, 적절한 권한을 가진 앱이라면 콘텐츠 제공자를 쿼리하여 특정한 인물에 대한 정보를 읽고 쓸 수 있음


소스 참조

https://hyotwo.tistory.com/105

https://www.getastra.com/blog/security-audit/android-penetration-testing/

https://takudaddy.tistory.com/538

https://www.youtube.com/watch?v=ZN2fWKM2Iuw