mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 21:24:06 +00:00
86 lines
7 KiB
Markdown
86 lines
7 KiB
Markdown
# Tapjacking
|
||
|
||
<details>
|
||
|
||
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Andere Möglichkeiten, HackTricks zu unterstützen:
|
||
|
||
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
||
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
||
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories** senden.
|
||
|
||
</details>
|
||
|
||
## **Grundlegende Informationen**
|
||
|
||
**Tapjacking** ist ein Angriff, bei dem eine **bösartige Anwendung** gestartet wird und sich **über einer Opferanwendung positioniert**. Sobald sie die Opfer-App sichtbar verdeckt, ist ihre Benutzeroberfläche so gestaltet, dass sie den Benutzer dazu verleitet, mit ihr zu interagieren, während sie die Interaktion an die Opfer-App weiterleitet.\
|
||
Effektiv **blendet es den Benutzer aus, sodass er nicht weiß, dass er tatsächlich Aktionen auf der Opfer-App ausführt**.
|
||
|
||
### Erkennung
|
||
|
||
Um Apps zu erkennen, die anfällig für diesen Angriff sind, sollten Sie nach **exportierten Aktivitäten** im Android-Manifest suchen (beachten Sie, dass eine Aktivität mit einem Intent-Filter standardmäßig automatisch exportiert wird). Sobald Sie die exportierten Aktivitäten gefunden haben, **überprüfen Sie, ob sie Berechtigungen erfordern**. Dies liegt daran, dass die **bösartige Anwendung auch diese Berechtigung benötigt**.
|
||
|
||
### Schutz
|
||
|
||
#### Android 12 (API 31,32) und höher
|
||
|
||
[**Laut dieser Quelle**](https://www.geeksforgeeks.org/tapjacking-in-android/)**,** werden Tapjacking-Angriffe von Android ab Android 12 (API 31 & 30) automatisch verhindert. Selbst wenn die Anwendung anfällig ist, **können Sie sie nicht ausnutzen**.
|
||
|
||
#### `filterTouchesWhenObscured`
|
||
|
||
Wenn **`android:filterTouchesWhenObscured`** auf **`true`** gesetzt ist, empfängt die `View` keine Berührungen, wenn das Fenster der Ansicht von einem anderen sichtbaren Fenster verdeckt wird.
|
||
|
||
#### **`setFilterTouchesWhenObscured`**
|
||
|
||
Das Attribut **`setFilterTouchesWhenObscured`**, das auf true gesetzt ist, kann auch die Ausnutzung dieser Schwachstelle verhindern, wenn die Android-Version niedriger ist.\
|
||
Wenn es auf **`true`** gesetzt ist, kann beispielsweise ein Button automatisch **deaktiviert werden, wenn er verdeckt ist**:
|
||
```xml
|
||
<Button android:text="Button"
|
||
android:id="@+id/button1"
|
||
android:layout_width="wrap_content"
|
||
android:layout_height="wrap_content"
|
||
android:filterTouchesWhenObscured="true">
|
||
</Button>
|
||
```
|
||
## Ausnutzung
|
||
|
||
### Tapjacking-ExportedActivity
|
||
|
||
Die neueste Android-Anwendung, die einen Tapjacking-Angriff durchführt (+ Aufruf vor einer exportierten Aktivität der angegriffenen Anwendung), finden Sie unter: [**https://github.com/carlospolop/Tapjacking-ExportedActivity**](https://github.com/carlospolop/Tapjacking-ExportedActivity).
|
||
|
||
Befolgen Sie die **README-Anweisungen**, um sie zu verwenden.
|
||
|
||
### FloatingWindowApp
|
||
|
||
Ein Beispielprojekt, das **FloatingWindowApp** implementiert, das verwendet werden kann, um es über anderen Aktivitäten anzuzeigen und einen Clickjacking-Angriff durchzuführen, finden Sie unter [**FloatingWindowApp**](https://github.com/aminography/FloatingWindowApp) (etwas veraltet, viel Glück beim Erstellen der APK).
|
||
|
||
### Qark
|
||
|
||
{% hint style="danger" %}
|
||
Es scheint, dass dieses Projekt nicht mehr gewartet wird und diese Funktion nicht mehr ordnungsgemäß funktioniert.
|
||
{% endhint %}
|
||
|
||
Sie können [**qark**](https://github.com/linkedin/qark) mit den Parametern `--exploit-apk` --sdk-path `/Users/username/Library/Android/sdk` verwenden, um eine bösartige Anwendung zu erstellen und auf mögliche **Tapjacking**-Sicherheitslücken zu testen.
|
||
|
||
Die Abhilfemaßnahme ist relativ einfach, da der Entwickler wählen kann, keine Touch-Ereignisse zu empfangen, wenn eine Ansicht von einer anderen verdeckt wird. Verwenden Sie die [Android Developer’s Reference](https://developer.android.com/reference/android/view/View#security):
|
||
|
||
> Manchmal ist es unerlässlich, dass eine Anwendung überprüfen kann, ob eine Aktion mit dem vollen Wissen und der Zustimmung des Benutzers durchgeführt wird, z. B. das Gewähren einer Berechtigungsanfrage, das Tätigen eines Kaufs oder das Klicken auf eine Anzeige. Leider könnte eine bösartige Anwendung versuchen, den Benutzer dazu zu bringen, diese Aktionen unwissentlich auszuführen, indem sie den beabsichtigten Zweck der Ansicht verbirgt. Als Abhilfe bietet das Framework einen Touch-Filtermechanismus an, der verwendet werden kann, um die Sicherheit von Ansichten zu verbessern, die Zugriff auf sensible Funktionen bieten.
|
||
>
|
||
> Um den Touch-Filter zu aktivieren, rufen Sie [`setFilterTouchesWhenObscured(boolean)`](https://developer.android.com/reference/android/view/View#setFilterTouchesWhenObscured%28boolean%29) auf oder setzen Sie das android:filterTouchesWhenObscured-Layoutattribut auf true. Wenn dies aktiviert ist, verwirft das Framework Berührungen, die empfangen werden, wenn das Fenster der Ansicht von einem anderen sichtbaren Fenster verdeckt wird. Als Ergebnis erhält die Ansicht keine Berührungen, wenn ein Toast, ein Dialogfeld oder ein anderes Fenster über dem Fenster der Ansicht angezeigt wird.
|
||
|
||
<details>
|
||
|
||
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
||
Andere Möglichkeiten, HackTricks zu unterstützen:
|
||
|
||
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
|
||
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
|
||
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegramm-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
|
||
|
||
</details>
|