Tapjacking

htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅까지 AWS 해킹 배우기!

HackTricks를 지원하는 다른 방법:

기본 정보

탭재킹악성 애플리케이션이 피해 애플리케이션 위에 위치하도록 하여 시작되는 공격입니다. 피해 앱이 시각적으로 가려지면 사용자 인터페이스가 사용자를 속이도록 설계되어 상호 작용하도록 유도하면서 상호 작용을 피해 앱으로 전달합니다. 사용자가 실제로 피해 앱에서 작업을 수행하고 있다는 것을 알지 못하게 합니다.

탐지

이 공격에 취약한 앱을 탐지하려면 안드로이드 매니페스트에서 내보낸 활동을 검색해야 합니다(인텐트 필터가 있는 활동은 기본적으로 내보냅니다). 내보낸 활동을 찾은 후 해당 활동이 권한을 필요로 하는지 확인해야 합니다. 이는 악성 애플리케이션도 해당 권한이 필요하기 때문입니다.

보호

안드로이드 12 (API 31,32) 이상

이 소스에 따르면, 안드로이드 12(API 31 및 30) 이상에서는 안드로이드가 탭재킹 공격을 자동으로 방지합니다. 따라서 취약한 애플리케이션이라도 악용할 수 없습니다.

filterTouchesWhenObscured

**android:filterTouchesWhenObscured**가 **true**로 설정되어 있으면 다른 가시적 창에 의해 뷰의 창이 가려질 때 터치를 받지 않습니다.

setFilterTouchesWhenObscured

Android 버전이 낮은 경우 이 취약점을 방지하기 위해 setFilterTouchesWhenObscured 속성을 **true**로 설정할 수 있습니다. 예를 들어, 버튼이 가려지면 자동으로 비활성화될 수 있습니다.

<Button android:text="Button"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:filterTouchesWhenObscured="true">
</Button>

Exploitation

Tapjacking-ExportedActivity

가장 최근의 Android 애플리케이션은 Tapjacking 공격을 수행하며 (+ 공격 대상 애플리케이션의 내보낸 활동 앞에서 호출) 다음에서 찾을 수 있습니다: https://github.com/carlospolop/Tapjacking-ExportedActivity.

사용 방법은 README 지침을 따르세요.

FloatingWindowApp

다른 활동 위에 놓여 클릭잭킹 공격을 수행하기 위해 사용할 수 있는 FloatingWindowApp을 구현한 예제 프로젝트는 FloatingWindowApp에서 찾을 수 있습니다 (약간 오래되었지만 apk를 빌드하는 데 행운을 빕니다).

Qark

이 프로젝트는 현재 유지되지 않고 이 기능이 더 이상 제대로 작동하지 않는 것으로 보입니다.

가능한 Tapjacking 취약점을 테스트하기 위해 악의적인 애플리케이션을 생성하는 데 --exploit-apk --sdk-path /Users/username/Library/Android/sdk 매개변수와 함께 qark를 사용할 수 있습니다.

개발자는 다른 뷰에 의해 가려질 때 터치 이벤트를 받지 않도록 선택할 수 있기 때문에 방지는 비교적 간단합니다. Android 개발자 참조를 사용합니다:

때로는 사용자의 전체 동의와 인지 하에 작업이 수행되고 있는지를 애플리케이션이 확인할 수 있어야 하는 경우가 있습니다. 예를 들어 권한 요청을 수락하거나 구매를 하거나 광고를 클릭하는 경우입니다. 불행히도 악성 애플리케이션이 의도된 뷰의 목적을 숨겨 사용자를 속여 이러한 작업을 수행하도록 시도할 수 있습니다. 이를 해결하기 위해 프레임워크는 민감한 기능에 액세스하는 뷰의 보안을 향상시킬 수 있는 터치 필터링 메커니즘을 제공합니다.

터치 필터링을 활성화하려면 setFilterTouchesWhenObscured(boolean)을 호출하거나 android:filterTouchesWhenObscured 레이아웃 속성을 true로 설정하십시오. 활성화되면 프레임워크는 뷰의 창이 다른 가시적 창에 의해 가려질 때 수신된 터치를 폐기합니다. 결과적으로 뷰는 토스트, 대화 상자 또는 다른 창이 뷰의 창 위에 나타날 때 터치를 받지 않습니다.

htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 AWS 해킹을 전문가로 배우세요

HackTricks를 지원하는 다른 방법:

Last updated