mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
225 lines
22 KiB
Markdown
225 lines
22 KiB
Markdown
# Ράδιο
|
||
|
||
{% hint style="success" %}
|
||
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Υποστήριξη HackTricks</summary>
|
||
|
||
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
|
||
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
||
</details>
|
||
{% endhint %}
|
||
|
||
## SigDigger
|
||
|
||
[**SigDigger** ](https://github.com/BatchDrake/SigDigger)είναι ένας δωρεάν αναλυτής ψηφιακού σήματος για GNU/Linux και macOS, σχεδιασμένος για να εξάγει πληροφορίες από άγνωστα ραδιοσήματα. Υποστηρίζει μια ποικιλία συσκευών SDR μέσω SoapySDR και επιτρέπει ρυθμιζόμενη αποδιαμόρφωση σημάτων FSK, PSK και ASK, αποκωδικοποίηση αναλογικού βίντεο, ανάλυση σπασμένων σημάτων και ακρόαση αναλογικών φωνητικών καναλιών (όλα σε πραγματικό χρόνο).
|
||
|
||
### Βασική Ρύθμιση
|
||
|
||
Μετά την εγκατάσταση υπάρχουν μερικά πράγματα που μπορείτε να εξετάσετε για ρύθμιση.\
|
||
Στις ρυθμίσεις (το δεύτερο κουμπί καρτέλας) μπορείτε να επιλέξετε τη **συσκευή SDR** ή **να επιλέξετε ένα αρχείο** για ανάγνωση και ποια συχνότητα να συντονίσετε και το ρυθμό δείγματος (συνιστάται έως 2.56Msps αν ο υπολογιστής σας το υποστηρίζει)\\
|
||
|
||
![](<../../.gitbook/assets/image (245).png>)
|
||
|
||
Στη συμπεριφορά GUI συνιστάται να ενεργοποιήσετε μερικά πράγματα αν ο υπολογιστής σας το υποστηρίζει:
|
||
|
||
![](<../../.gitbook/assets/image (472).png>)
|
||
|
||
{% hint style="info" %}
|
||
Αν διαπιστώσετε ότι ο υπολογιστής σας δεν καταγράφει πράγματα, προσπαθήστε να απενεργοποιήσετε το OpenGL και να μειώσετε το ρυθμό δείγματος.
|
||
{% endhint %}
|
||
|
||
### Χρήσεις
|
||
|
||
* Απλά για να **καταγράψετε κάποιο χρόνο ενός σήματος και να το αναλύσετε** απλά κρατήστε πατημένο το κουμπί "Push to capture" όσο χρειάζεστε.
|
||
|
||
![](<../../.gitbook/assets/image (960).png>)
|
||
|
||
* Ο **Τυ tuner** του SigDigger βοηθά να **καταγράψετε καλύτερα σήματα** (αλλά μπορεί επίσης να τα υποβαθμίσει). Ιδανικά ξεκινήστε με 0 και συνεχίστε **να το αυξάνετε μέχρι** να βρείτε ότι ο **θόρυβος** που εισάγεται είναι **μεγαλύτερος** από την **βελτίωση του σήματος** που χρειάζεστε).
|
||
|
||
![](<../../.gitbook/assets/image (1099).png>)
|
||
|
||
### Συγχρονισμός με ραδιοφωνικό κανάλι
|
||
|
||
Με [**SigDigger** ](https://github.com/BatchDrake/SigDigger)συγχρονίστε με το κανάλι που θέλετε να ακούσετε, ρυθμίστε την επιλογή "Baseband audio preview", ρυθμίστε το πλάτος ζώνης για να λάβετε όλες τις πληροφορίες που αποστέλλονται και στη συνέχεια ρυθμίστε τον Tuner στο επίπεδο πριν αρχίσει πραγματικά να αυξάνεται ο θόρυβος:
|
||
|
||
![](<../../.gitbook/assets/image (585).png>)
|
||
|
||
## Ενδιαφέροντα κόλπα
|
||
|
||
* Όταν μια συσκευή στέλνει σπασμένα δεδομένα, συνήθως το **πρώτο μέρος θα είναι ένα προοίμιο** οπότε **δεν χρειάζεται** να **ανησυχείτε** αν **δεν βρείτε πληροφορίες** εκεί **ή αν υπάρχουν κάποια σφάλματα** εκεί.
|
||
* Σε πλαίσια πληροφοριών συνήθως θα πρέπει να **βρείτε διαφορετικά πλαίσια καλά ευθυγραμμισμένα μεταξύ τους**:
|
||
|
||
![](<../../.gitbook/assets/image (1076).png>)
|
||
|
||
![](<../../.gitbook/assets/image (597).png>)
|
||
|
||
* **Μετά την ανάκτηση των bits μπορεί να χρειαστεί να τα επεξεργαστείτε με κάποιο τρόπο**. Για παράδειγμα, στην κωδικοποίηση Manchester ένα up+down θα είναι 1 ή 0 και ένα down+up θα είναι το άλλο. Έτσι, ζεύγη 1s και 0s (ups και downs) θα είναι ένα πραγματικό 1 ή ένα πραγματικό 0.
|
||
* Ακόμα και αν ένα σήμα χρησιμοποιεί κωδικοποίηση Manchester (είναι αδύνατο να βρείτε περισσότερα από δύο 0s ή 1s στη σειρά), μπορεί να **βρείτε αρκετά 1s ή 0s μαζί στο προοίμιο**!
|
||
|
||
### Αποκάλυψη τύπου διαμόρφωσης με IQ
|
||
|
||
Υπάρχουν 3 τρόποι αποθήκευσης πληροφοριών σε σήματα: Διαμόρφωση της **αμplitude**, **συχνότητας** ή **φάσης**.\
|
||
Αν ελέγχετε ένα σήμα υπάρχουν διαφορετικοί τρόποι για να προσπαθήσετε να καταλάβετε τι χρησιμοποιείται για την αποθήκευση πληροφοριών (βρείτε περισσότερους τρόπους παρακάτω) αλλά ένας καλός είναι να ελέγξετε το γράφημα IQ.
|
||
|
||
![](<../../.gitbook/assets/image (788).png>)
|
||
|
||
* **Ανίχνευση AM**: Αν στο γράφημα IQ εμφανίζονται για παράδειγμα **2 κύκλοι** (πιθανώς ένας στο 0 και άλλος σε διαφορετική αμplitude), αυτό μπορεί να σημαίνει ότι αυτό είναι ένα σήμα AM. Αυτό συμβαίνει επειδή στο γράφημα IQ η απόσταση μεταξύ του 0 και του κύκλου είναι η αμplitude του σήματος, οπότε είναι εύκολο να οπτικοποιηθούν διαφορετικές αμplitudes που χρησιμοποιούνται.
|
||
* **Ανίχνευση PM**: Όπως στην προηγούμενη εικόνα, αν βρείτε μικρούς κύκλους που δεν σχετίζονται μεταξύ τους, πιθανώς σημαίνει ότι χρησιμοποιείται φάση διαμόρφωσης. Αυτό συμβαίνει επειδή στο γράφημα IQ, η γωνία μεταξύ του σημείου και του 0,0 είναι η φάση του σήματος, οπότε αυτό σημαίνει ότι χρησιμοποιούνται 4 διαφορετικές φάσεις.
|
||
* Σημειώστε ότι αν οι πληροφορίες είναι κρυμμένες στο γεγονός ότι αλλάζει μια φάση και όχι στη φάση αυτή καθαυτή, δεν θα δείτε διαφορετικές φάσεις σαφώς διαφοροποιημένες.
|
||
* **Ανίχνευση FM**: Το IQ δεν έχει πεδίο για να αναγνωρίσει συχνότητες (η απόσταση από το κέντρο είναι η αμplitude και η γωνία είναι η φάση).\
|
||
Επομένως, για να αναγνωρίσετε FM, θα πρέπει **να βλέπετε βασικά μόνο έναν κύκλο** σε αυτό το γράφημα.\
|
||
Επιπλέον, μια διαφορετική συχνότητα "αναπαρίσταται" από το γράφημα IQ με μια **ταχύτητα επιτάχυνσης γύρω από τον κύκλο** (έτσι στο SysDigger επιλέγοντας το σήμα το γράφημα IQ γεμίζει, αν βρείτε μια επιτάχυνση ή αλλαγή κατεύθυνσης στον δημιουργημένο κύκλο, αυτό μπορεί να σημαίνει ότι αυτό είναι FM):
|
||
|
||
## Παράδειγμα AM
|
||
|
||
{% file src="../../.gitbook/assets/sigdigger_20220308_165547Z_2560000_433500000_float32_iq.raw" %}
|
||
|
||
### Αποκάλυψη AM
|
||
|
||
#### Έλεγχος του περιγράμματος
|
||
|
||
Έλεγχος πληροφοριών AM με [**SigDigger** ](https://github.com/BatchDrake/SigDigger)και απλά κοιτάζοντας το **περίγραμμα** μπορείτε να δείτε διαφορετικά καθαρά επίπεδα αμplitude. Το χρησιμοποιούμενο σήμα στέλνει παλμούς με πληροφορίες σε AM, έτσι φαίνεται ένας παλμός:
|
||
|
||
![](<../../.gitbook/assets/image (590).png>)
|
||
|
||
Και έτσι φαίνεται ένα μέρος του συμβόλου με την κυματομορφή:
|
||
|
||
![](<../../.gitbook/assets/image (734).png>)
|
||
|
||
#### Έλεγχος του Ιστογράμματος
|
||
|
||
Μπορείτε να **επιλέξετε ολόκληρο το σήμα** όπου βρίσκονται οι πληροφορίες, να επιλέξετε τη λειτουργία **Αμplitude** και **Επιλογή** και να κάνετε κλικ στο **Ιστόγραμμα.** Μπορείτε να παρατηρήσετε ότι 2 καθαρά επίπεδα βρίσκονται μόνο
|
||
|
||
![](<../../.gitbook/assets/image (264).png>)
|
||
|
||
Για παράδειγμα, αν επιλέξετε τη Συχνότητα αντί της Αμplitude σε αυτό το σήμα AM θα βρείτε μόνο 1 συχνότητα (δεν υπάρχει τρόπος πληροφορίες που διαμορφώνονται σε συχνότητα να χρησιμοποιούν μόνο 1 συχνότητα).
|
||
|
||
![](<../../.gitbook/assets/image (732).png>)
|
||
|
||
Αν βρείτε πολλές συχνότητες πιθανώς αυτό δεν θα είναι FM, πιθανώς η συχνότητα του σήματος έχει απλώς τροποποιηθεί λόγω του καναλιού.
|
||
|
||
#### Με IQ
|
||
|
||
Σε αυτό το παράδειγμα μπορείτε να δείτε πώς υπάρχει ένας **μεγάλος κύκλος** αλλά και **πολλές κουκίδες στο κέντρο.**
|
||
|
||
![](<../../.gitbook/assets/image (222).png>)
|
||
|
||
### Λάβετε το Ρυθμό Συμβόλων
|
||
|
||
#### Με ένα σύμβολο
|
||
|
||
Επιλέξτε το μικρότερο σύμβολο που μπορείτε να βρείτε (έτσι είστε σίγουροι ότι είναι μόνο 1) και ελέγξτε τη "Συχνότητα επιλογής". Σε αυτή την περίπτωση θα ήταν 1.013kHz (έτσι 1kHz).
|
||
|
||
![](<../../.gitbook/assets/image (78).png>)
|
||
|
||
#### Με μια ομάδα συμβόλων
|
||
|
||
Μπορείτε επίσης να υποδείξετε τον αριθμό των συμβόλων που θα επιλέξετε και το SigDigger θα υπολογίσει τη συχνότητα ενός συμβόλου (όσο περισσότερα σύμβολα επιλέξετε, τόσο καλύτερα πιθανώς). Σε αυτό το σενάριο επέλεξα 10 σύμβολα και η "Συχνότητα επιλογής" είναι 1.004 Khz:
|
||
|
||
![](<../../.gitbook/assets/image (1008).png>)
|
||
|
||
### Λάβετε Bits
|
||
|
||
Αφού βρείτε ότι αυτό είναι ένα **AM διαμορφωμένο** σήμα και ο **ρυθμός συμβόλων** (και γνωρίζοντας ότι σε αυτή την περίπτωση κάτι up σημαίνει 1 και κάτι down σημαίνει 0), είναι πολύ εύκολο να **αποκτήσετε τα bits** που κωδικοποιούνται στο σήμα. Έτσι, επιλέξτε το σήμα με πληροφορίες και ρυθμίστε τη δειγματοληψία και την απόφαση και πατήστε δείγμα (ελέγξτε ότι έχει επιλεγεί η **Αμplitude**, ο ανακαλυφθείς **Ρυθμός Συμβόλων** είναι ρυθμισμένος και η **Ανάκτηση Ρολογιού Gadner** είναι επιλεγμένη):
|
||
|
||
![](<../../.gitbook/assets/image (965).png>)
|
||
|
||
* **Συγχρονισμός με τις επιλεγμένες περιόδους** σημαίνει ότι αν έχετε προηγουμένως επιλέξει περιόδους για να βρείτε τον ρυθμό συμβόλων, αυτός ο ρυθμός συμβόλων θα χρησιμοποιηθεί.
|
||
* **Χειροκίνητο** σημαίνει ότι ο υποδεικνυόμενος ρυθμός συμβόλων θα χρησιμοποιηθεί
|
||
* Στην **Επιλογή σταθερού διαστήματος** υποδεικνύετε τον αριθμό των διαστημάτων που πρέπει να επιλεγούν και υπολογίζει τον ρυθμό συμβόλων από αυτό
|
||
* **Ανάκτηση Ρολογιού Gadner** είναι συνήθως η καλύτερη επιλογή, αλλά πρέπει ακόμα να υποδείξετε κάποιο περίπου ρυθμό συμβόλων.
|
||
|
||
Πατώντας δείγμα αυτό εμφανίζεται:
|
||
|
||
![](<../../.gitbook/assets/image (644).png>)
|
||
|
||
Τώρα, για να κάνει το SigDigger να καταλάβει **πού είναι το εύρος** του επιπέδου που μεταφέρει πληροφορίες, πρέπει να κάνετε κλικ στο **χαμηλότερο επίπεδο** και να το κρατήσετε πατημένο μέχρι το μεγαλύτερο επίπεδο:
|
||
|
||
![](<../../.gitbook/assets/image (439).png>)
|
||
|
||
Αν υπήρχαν για παράδειγμα **4 διαφορετικά επίπεδα αμplitude**, θα έπρεπε να ρυθμίσετε τα **Bits ανά σύμβολο σε 2** και να επιλέξετε από το μικρότερο στο μεγαλύτερο.
|
||
|
||
Τέλος, **αυξάνοντας** το **Zoom** και **αλλάζοντας το μέγεθος της σειράς** μπορείτε να δείτε τα bits (και μπορείτε να επιλέξετε όλα και να αντιγράψετε για να αποκτήσετε όλα τα bits):
|
||
|
||
![](<../../.gitbook/assets/image (276).png>)
|
||
|
||
Αν το σήμα έχει περισσότερα από 1 bit ανά σύμβολο (για παράδειγμα 2), το SigDigger έχει **κανέναν τρόπο να ξέρει ποιο σύμβολο είναι** 00, 01, 10, 11, οπότε θα χρησιμοποιήσει διαφορετικές **κλίμακες γκρι** για να αναπαραστήσει το καθένα (και αν αντιγράψετε τα bits θα χρησιμοποιήσει **αριθμούς από 0 έως 3**, θα χρειαστεί να τα επεξεργαστείτε).
|
||
|
||
Επίσης, χρησιμοποιήστε **κωδικοποιήσεις** όπως **Manchester**, και **up+down** μπορεί να είναι **1 ή 0** και ένα down+up μπορεί να είναι 1 ή 0. Σε αυτές τις περιπτώσεις πρέπει να **επεξεργαστείτε τα αποκτηθέντα ups (1) και downs (0)** για να αντικαταστήσετε τα ζεύγη 01 ή 10 ως 0s ή 1s.
|
||
|
||
## Παράδειγμα FM
|
||
|
||
{% file src="../../.gitbook/assets/sigdigger_20220308_170858Z_2560000_433500000_float32_iq.raw" %}
|
||
|
||
### Αποκάλυψη FM
|
||
|
||
#### Έλεγχος των συχνοτήτων και της κυματομορφής
|
||
|
||
Παράδειγμα σήματος που στέλνει πληροφορίες διαμορφωμένες σε FM:
|
||
|
||
![](<../../.gitbook/assets/image (725).png>)
|
||
|
||
Στην προηγούμενη εικόνα μπορείτε να παρατηρήσετε αρκετά καλά ότι **χρησιμοποιούνται 2 συχνότητες** αλλά αν **παρατηρήσετε** την **κυματομορφή** μπορεί να μην **μπορείτε να προσδιορίσετε σωστά τις 2 διαφορετικές συχνότητες**:
|
||
|
||
![](<../../.gitbook/assets/image (717).png>)
|
||
|
||
Αυτό συμβαίνει επειδή κατέγραψα το σήμα και στις δύο συχνότητες, επομένως η μία είναι περίπου η άλλη σε αρνητική:
|
||
|
||
![](<../../.gitbook/assets/image (942).png>)
|
||
|
||
Αν η συγχρονισμένη συχνότητα είναι **πιο κοντά σε μία συχνότητα από ότι στην άλλη** μπορείτε εύκολα να δείτε τις 2 διαφορετικές συχνότητες:
|
||
|
||
![](<../../.gitbook/assets/image (422).png>)
|
||
|
||
![](<../../.gitbook/assets/image (488).png>)
|
||
|
||
#### Έλεγχος του ιστογράμματος
|
||
|
||
Έλεγχος του ιστογράμματος συχνότητας του σήματος με πληροφορίες μπορείτε εύκολα να δείτε 2 διαφορετικά σήματα:
|
||
|
||
![](<../../.gitbook/assets/image (871).png>)
|
||
|
||
Σε αυτή την περίπτωση αν ελέγξετε το **ιστόγραμμα αμplitude** θα βρείτε **μόνο μία αμplitude**, οπότε **δεν μπορεί να είναι AM** (αν βρείτε πολλές αμplitudes μπορεί να είναι επειδή το σήμα έχει χάσει ισχύ κατά μήκος του καναλιού):
|
||
|
||
![](<../../.gitbook/assets/image (817).png>)
|
||
|
||
Και αυτό θα ήταν το ιστογράφημα φάσης (το οποίο καθιστά πολύ σαφές ότι το σήμα δεν είναι διαμορφωμένο σε φάση):
|
||
|
||
![](<../../.gitbook/assets/image (996).png>)
|
||
|
||
#### Με IQ
|
||
|
||
Το IQ δεν έχει πεδίο για να αναγνωρίσει συχνότητες (η απόσταση από το κέντρο είναι η αμplitude και η γωνία είναι η φάση).\
|
||
Επομένως, για να αναγνωρίσετε FM, θα πρέπει **να βλέπετε βασικά μόνο έναν κύκλο** σε αυτό το γράφημα.\
|
||
Επιπλέον, μια διαφορετική συχνότητα "αναπαρίσταται" από το γράφημα IQ με μια **ταχύτητα επιτάχυνσης γύρω από τον κύκλο** (έτσι στο SysDigger επιλέγοντας το σήμα το γράφημα IQ γεμίζει, αν βρείτε μια επιτάχυνση ή αλλαγή κατεύθυνσης στον δημιουργημένο κύκλο, αυτό μπορεί να σημαίνει ότι αυτό είναι FM):
|
||
|
||
![](<../../.gitbook/assets/image (81).png>)
|
||
|
||
### Λάβετε το Ρυθμό Συμβόλων
|
||
|
||
Μπορείτε να χρησιμοποιήσετε την **ίδια τεχνική με αυτήν που χρησιμοποιήθηκε στο παράδειγμα AM** για να αποκτήσετε το ρυθμό συμβόλων μόλις έχετε βρει τις συχνότητες που μεταφέρουν σύμβολα.
|
||
|
||
### Λάβετε Bits
|
||
|
||
Μπορείτε να χρησιμοποιήσετε την **ίδια τεχνική με αυτήν που χρησιμοποιήθηκε στο παράδειγμα AM** για να αποκτήσετε τα bits μόλις έχετε **βρει ότι το σήμα είναι διαμορφωμένο σε συχνότητα** και τον **ρυθμό συμβόλων**.
|
||
|
||
{% hint style="success" %}
|
||
Μάθετε & εξασκηθείτε στο AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||
Μάθετε & εξασκηθείτε στο GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||
|
||
<details>
|
||
|
||
<summary>Υποστήριξη HackTricks</summary>
|
||
|
||
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
|
||
* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
||
</details>
|
||
{% endhint %}
|