SECURITY/Android

[모바일 보안] Lab1 : 브로드캐스트 리시버 결함(2)

2023. 3. 9. 14:45
목차
  1. 4 drozer를 이용한 브로드캐스트 리시버 취약점 분석
  2. 5 브로드캐스트 리시버 취약점 방어

4 drozer를 이용한 브로드캐스트 리시버 취약점 분석

  • 앞선 예제와 다르게 drozer앱 내에 서버가 존재하는 것!

(1) PowerShell에서 다음의 명령어를 실행하여, 안드로이드 가상 디바이스 (AVD) 에 drozer 앱을 설치한다.

adb install drozer 앱의 이름 (완전한 경로 포함)

(2) 안드로이드 가상 디바이스 (AVD) 에 설치된 drozer 앱을 구동하고 내장된 drozer 서버를 활성화 시킨다.

(3) 안드로이드 가상 디바이스 (AVD) 에서 구동하는 drozer 서버의 포트(31415)와 PC의 로컬 포트(31415)를 연결하는 다음의 명령어를 PowerShell상에서 수행한다.

// 포트 번호 31415로 설정
adb forward tcp:31415 tcp:31415

(4) drozer 앱에 내장된 서버에 콘솔 모드로 접속하는 다음의 명령어를 PowerShell상에서 수행한다.

drozer console connect

(5) 다음의 명령어를 drozer 프롬프트( dz>)상에서 수행함으로써 InsecureBankv2 앱의 전체적인 취약점을 파악한다.

run app.package.attacksurface com.android.insecurebankv2

 

(6) 다음의 명령어를 drozer 프롬프트( dz>)상에서 수행함으로써 InsecureBankv2 앱의 브로드캐스트 리시버 관련 정보를 파악한다.

  • permission이 null이라는 것은 누구나 접근할 수 있다는 것 취약점
run app.broadcast.info -a com.android.insecurebankv2

(7) InsecureBankv2 앱의 패스워드 정보를 노출시키기 위해서, 다음의 명령어를 drozer 프롬프트( dz>)상에서 수행한다.

// drozer안에서 send 명령어로 두개의 값을 넘기는 것
run app.broadcast.send --component com.android.insecurebankv2 com.android.insecurebankv2.MyBroadCastReceiver --extra string phonenumber 1111 --extra string newpass test

(8) 다음의 명령어를 PowerShell 상에서 실행하여, 화면에 출력되는 내용 (InsecureBankv2 앱의 패스워드 정보가 포함됨)을 캡처한다.

  • phoenumber 1111의 비밀번호가 test로 변경되었다 출력하는것 확인 → 실제 변경된 것 X
  • 방송신호에 Permission이 설정되어 있지 않을 때
  • Receiver에게 보내는 과정에서 중요 정보를 노출할 수 있음
adb logcat -s System.out:I

 

5 브로드캐스트 리시버 취약점 방어

(1) 안드로이드 스튜디오의 InsecureBankv2 프로젝트의 AndroidManifest.xml 파일에서 아래 항목을 찾는다. exported값을 false로 바꾼 후, InsecureBankv2 프로젝트를 다시 빌드하고InsecureBankv2 앱을 AVD상에 설치한다.

<receiver
	android:name=".MyBroadCastReceiver"
	android:exported="false" >

(2) insecurebankv2의 info를 출력해 No matching인 것을 확인한다

(3) drozer 프롬프트( dz>)상에서 아래 명령어를 실행한다.

run app.broadcast.send --component com.android.insecurebankv2
com.android.insecurebankv2.MyBroadCastReceiver --extra string phonenumber 1111
--extra string newpass test

(4) 그리고 PowerShell상에서 아래의 명령어를 실행하여 브로드캐스트 큐와 연관된 경고 메시지를 출력한다. 화면에 출력되는 내용을 캡처한다.

// BroadcastQueue 안에 있는 Warning 확인
adb logcat –s BroadcastQueue:W

 

  1. 4 drozer를 이용한 브로드캐스트 리시버 취약점 분석
  2. 5 브로드캐스트 리시버 취약점 방어
'SECURITY/Android' 카테고리의 다른 글
  • [모바일보안] Lab5 : 안전하지 않은 콘텐츠 프로바이더 접근
  • [모바일보안] Lab4 : 액티비티 컴포넌트 취약점
  • [모바일보안] Lap2 : 취약한 인증 메커니즘
  • [모바일 보안] Lab1 : 브로드캐스트 리시버 결함(1)
yuujoeng
yuujoeng
IT and Information Security
yuujoeng
알감자는 공부중
yuujoeng
전체
오늘
어제
  • 🎁 (201)
    • SECURITY (80)
      • 관리보안 (27)
      • System (10)
      • System | Wargame (30)
      • Android (9)
      • Reversing (3)
      • AWS (1)
    • BLOCKCHAIN (45)
      • BlockChain (22)
      • Ethereum (23)
    • PROGRAMMING (30)
      • Web (16)
      • Android (6)
      • Spring (8)
    • IT (0)
      • Article (40)
      • RaspberryPi (5)

블로그 메뉴

  • HOME
  • TIKKLE

인기 글

hELLO · Designed By 정상우.
yuujoeng
[모바일 보안] Lab1 : 브로드캐스트 리시버 결함(2)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.