You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**#2:** Read world-readable shared preferences of another app.
92
93
93
-
**#3:** To read files of another app, modify the `sharedUserId` in this app's `AndroidManifest.xml`, then rebuild the APK - this works only if another app has the shared user ID defined, also make sure to fully uninstall this app first, or reinstall might fail
94
+
**#3:** To access files of another app, modify the [sharedUserId](https://developer.android.com/guide/topics/manifest/manifest-element#uid) in this app's [AndroidManifest.xml](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/AndroidManifest.xml#L4), then rebuild the APK - this works only if another app has the shared user ID defined.
@@ -131,31 +132,25 @@ URIs for internal QA testing:
131
132
132
133
**#1:** Test an intent filter of another app.
133
134
134
-
**#2:** Send an intent to another app to bypass its biometrics / security.
135
+
**#2:** Send an intent to another app to directly bypass its biometric / security.
135
136
136
-
**#3:** Send an intent to another app to bypass its biometrics / security by triggering its push notification manager, then manually opening the received push notification.
137
+
**#3:** Send an intent to another app to indirectly bypass its biometric / security by triggering its push notification manager, then manually opening the received push notification.
137
138
138
139
**#4:** Send an intent to another app to poison its widget.
139
140
140
141
**#5:** Send a \[pending\] intent to another app multiple times to cause Denial of Service (DoS).
141
142
142
143
**#6:** Send a mutable pending intent to another app to extract subsequently added intent extras.
143
144
144
-
**#7:** Access a protected component, such as a file or SQLite content provider of another app, by exploiting its exported (proxy) component.
145
+
**#7:** Access a protected component, such as a file or SQLite content provider of another app, by exploiting the app's exported (proxy) component.
145
146
146
147
**#8:** Test a deep link of another app.
147
148
148
-
```xml
149
-
<data
150
-
android:host="hidden"
151
-
android:scheme="kira" />
152
-
```
153
-
154
-
**#9:** Perform a battering ram attack on a deep link or content provider URI of another app by adding `</payload>` placeholder into the intent's URI.
149
+
**#9:** Perform a battering ram attack on a deep link or content provider URI of another app by adding `</payload>` placeholder in the intent's URI.
155
150
156
-
**#10:** You can send an intent to `HiddenActivity` for inspection before sending it to the target.
151
+
**#10:** You can send an intent to `HiddenActivity` for inspection before sending it to another app.
157
152
158
-
**#11:** Test a file content provider for path traversal via `../`, and for arbitrary file read/write.
153
+
**#11:** Test a file content provider for path traversal via `../`, and for arbitrary file read / write.
159
154
160
155
**#12:** Test an SQLite content provider for SQL injection via projection and selection.
161
156
@@ -215,7 +210,7 @@ The following applies to both the `proxy intent` and `target intent` extras, but
215
210
* key `HiddenActivityClose`,
216
211
* and value `</close-on-success>`.
217
212
218
-
When testing intent injections, you will often need to specify [com.kira.malware.activities.HiddenActivity](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/java/com/kira/malware/activities/HiddenActivity.java) as the `target intent` class name, and set the file or SQLite content provider intent extra to the same `target intent`, as shown in the images below.
213
+
When testing intent injections, you will often need to specify [com.kira.malware.activities.HiddenActivity](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/java/com/kira/malware/activities/HiddenActivity.java) as the `target intent` class name, and scope the file or SQLite content provider intent extra to the same `target intent`, as shown in the images below.
219
214
220
215
---
221
216
@@ -241,18 +236,24 @@ When testing intent injections, you will often need to specify [com.kira.malware
241
236
242
237
### Broadcast Monitor
243
238
244
-
**#1:** Listen for a broadcast intent from another app and extract sensitive information from its extras.
239
+
**#1:** Listen for a broadcast intent from another app and extract sensitive information from the intent extras.
**#1:** Verify whether misconfigured asset links allow [app link](https://developer.android.com/training/app-links/verify-applinks) hijacking — this applies only on intent filters with `autoVerify` attribute.
247
+
**#1:** Verify whether misconfigured asset links allow [app link](https://developer.android.com/training/app-links/verify-applinks) hijacking - this applies only to intent filters with `autoVerify` attribute.
253
248
254
249
**#2:** Hijack a deep link of another app by specifying it in this app's `AndroidManifest.xml` under [HiddenActivity](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/AndroidManifest.xml#L66), then rebuild the APK.
255
250
251
+
```xml
252
+
<data
253
+
android:host="hidden"
254
+
android:scheme="kira" />
255
+
```
256
+
256
257
**#3:** Initiate a deep link callback from a website to hijack the flow of another app.
257
258
258
259
**#4:** Leverage existing web browser sessions to hijack the authenticated flow of another app.
@@ -267,15 +268,15 @@ When testing intent injections, you will often need to specify [com.kira.malware
267
268
268
269
<palign="center">Figure 10 - Web</p>
269
270
270
-
<palign="center"><imgsrc="https://github.com/ivan-sincek/malware-apk/blob/main/img/deep_link_callback_flow.png"alt="Deep Link Callback Flow"height="600em"></p>
271
+
<palign="center"><imgsrc="https://github.com/ivan-sincek/malware-apk/blob/main/img/deep_link_callback.png"alt="Deep Link Callback"height="600em"></p>
271
272
272
-
<palign="center">Figure 11 - Deep Link Callback Flow</p>
273
+
<palign="center">Figure 11 - Deep Link Callback</p>
273
274
274
275
### Task Hijacking
275
276
276
277
**#1:** Changing the task affinity at runtime is not possible.
277
278
278
-
**#2:** To hijack a task of another app, modify the task affinity in this app's `AndroidManifest.xml` under [MainActivity](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/AndroidManifest.xml#L48), then rebuild the APK.
279
+
**#2:** To hijack a task of another app, modify the task affinity in this app's `AndroidManifest.xml` under [MainActivity](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/AndroidManifest.xml#L48), then rebuild the APK
279
280
280
281
Read more about the taskjacking [here](https://developer.android.com/privacy-and-security/risks/strandhogg).
281
282
@@ -287,7 +288,7 @@ Read more about the taskjacking [here](https://developer.android.com/privacy-and
287
288
288
289
**#1**: Test if another app can detect an overlay.
289
290
290
-
**#2**: Detect an overlay by checking [MotionEvent.FLAG_WINDOW_IS_OBSCURED and MotionEvent.FLAG_WINDOW_IS_PARTIALLY_OBSCURED](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/java/com/kira/malware/fragments/TapHijackingFragment.java#L33) flags - this solution works only on older Android versions.
291
+
**#2**: Detect an overlay by checking [MotionEvent.FLAG_WINDOW_IS_OBSCURED and MotionEvent.FLAG_WINDOW_IS_PARTIALLY_OBSCURED](https://github.com/ivan-sincek/malware-apk/blob/main/src/Malware/app/src/main/java/com/kira/malware/fragments/TapHijackingFragment.java#L35) flags - this solution works only on older Android versions.
291
292
292
293
Read more about tapjacking [here](https://developer.android.com/privacy-and-security/risks/tapjacking).
293
294
@@ -297,17 +298,17 @@ Read more about tapjacking [here](https://developer.android.com/privacy-and-secu
297
298
298
299
### Accessibility Monitor
299
300
300
-
**#1**: Extract sensitive information from another app's UI by abusing the accessibility service.
301
+
**#1**: Extract sensitive information from the UI of another app by abusing the accessibility service.
301
302
302
-
Read more about the solution [here](https://developer.android.com/reference/android/view/View#attr_android:importantForAccessibility);
303
+
Read more about the solution [here](https://developer.android.com/reference/android/view/View#attr_android:importantForAccessibility).
0 commit comments