안드로이드 시스템이 인텐트라는 메시지로 정보 전달
취약한 브로드캐스트 리시버 : 다른 앱이 인텐트를 사용하여 비밀번호 변경기능 접근 (접근제어X)
Adb로 진단방법
- AndroidManifest.xml에 있는 <Receiver> 컴포넌트 점검
- Receiver 컴포넌트가 구현된 해당 클래스의 onReceiver() 메소드 기능 점검
- adb shell –> am broadcast -a theBroadcast -n com.android.insecurebankv2/.MyBroadCastReceiver
n 인자없이 메시지 전달
n theBroadcast : 메시지
n com.android.insecurebankv2/.MyBroadCastReceiver : 어떤 패키지의 어떤 컴포넌트 지정
- am broadcast -a theBroadcast -n com.android.insecurebankv2/.MyBroadCastReceiver --es phonenumber 5839 --es newpass passwd
n 인자와 함께 메시지 전달
대응방안
- AndroidManifest.xml에 구현되어 있는 android:exported=”true” 속성을 “false”로 변경하여 외부노출 금지
- 반드시 필요하다면 Permission 속성을 통한 권한으로 접근제어
Drozer로 진단방법
- adb로는 System Process로 인해 권한 검사를 할 수 없다
- 따라서 Drozer를 사용하여 진단.
- run app.package.attacksurface com.android.insecurebankv2
노출된 컴포넌트들의 개수
- run app.broadcast.info -a com.android.insecurebankv2
노출된 브로드캐스트리시버
Permission: null = 아무나 접근가능
- run app.broadcast.send –-component com.android.insecurebankv2 com.android.insecurebankv2.MyBroadCastReceiver
n 메시지 전달
- run app.broadcast.send --component com.android.insecurebankv2 com.android.insecurebankv2.MyBroadCastReceiver --extra string phonenumber 5839 --extra string newpass sungwj
n 인자 포함 메시지 전달
대응방안
- AndroidManifest.xml에 구현되어 있는 android:exported=”true” 속성을 “false”로 변경하여 외부노출 금지
n Adb로는 여전히 호출가능 : 개발자들이 사용해야 되기 때문에 권한이 없어도 가능 (adb->system process)
n Drozer 로는 호출 불가능 : 사용자레벨 권한, adb보다 권한 낮음, drozer로 진단이 더 실용적
Drozer로 메시지 보낼 시 Permission Denial
- 반드시 필요하다면 Permission 속성을 통한 권한으로 접근제어
n Android:exported=”false” 로 하면 꼭 필요한 경우에도 사용 불가능
n 같은 개발자의 서명이 되어있는 앱끼리만 호출 가능
n BroadcastSender.apk 에서 인텐트 보내기
인시큐어뱅크에서 정의한 permission과 동일한 이름의 permission 사용명시
인시큐어뱅크 앱의 서명과 동일한 서명으로 BroadcastSender.apk 서명
Permission이 null -> my.app.PERMISSION
브로드캐스트는 노출됨
인시큐어뱅크에 drozer로 인텐트 전송 시 Permission Denial 되지만
인시큐어뱅크와 같은 서명을 지닌 BroadcastSender.apk 에서 인텐트 전송 시 수신됨을 확인
'인시큐어뱅크 활용 안드로이드 모의해킹 공부' 카테고리의 다른 글
사용자 계정 목록화 (0) | 2020.12.22 |
---|---|
취약한 인증 메커니즘 (0) | 2020.12.22 |
취약한 SD카드 스토리지 (0) | 2020.12.22 |
로컬 암호화 이슈 (0) | 2020.12.22 |
안드로이드 백업 취약점 (0) | 2020.12.22 |