SPI

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Βασικές Πληροφορίες

Το SPI (Serial Peripheral Interface) είναι ένα Πρωτόκολλο Σειριακής Περιφερειακής Επικοινωνίας που χρησιμοποιείται σε ενσωματωμένα συστήματα για την επικοινωνία σε κοντινές αποστάσεις μεταξύ ολοκληρωμένων κυκλωμάτων (ICs). Το Πρωτόκολλο Επικοινωνίας SPI χρησιμοποιεί την αρχιτεκτονική αφεντικό-δούλος που οργανώνεται από το Σήμα Ρολογιού και την Επιλογή Τσιπ. Η αρχιτεκτονική αφεντικό-δούλος αποτελείται από ένα αφεντικό (συνήθως ένας μικροεπεξεργαστής) που διαχειρίζεται εξωτερικές περιφερειακές συσκευές όπως EEPROM, αισθητήρες, συσκευές ελέγχου κ.λπ. που θεωρούνται ως δούλοι.

Πολλοί δούλοι μπορούν να συνδεθούν σε ένα αφεντικό, αλλά οι δούλοι δεν μπορούν να επικοινωνήσουν μεταξύ τους. Οι δούλοι διοικούνται από δύο ακίδες, το ρολόι και την επιλογή τσιπ. Καθώς το SPI είναι ένα συγχρονισμένο πρωτόκολλο επικοινωνίας, οι ακίδες εισόδου και εξόδου ακολουθούν τα σήματα του ρολογιού. Η επιλογή τσιπ χρησιμοποιείται από το αφεντικό για να επιλέξει ένα δούλο και να αλληλεπιδράσει μαζί του. Όταν η επιλογή τσιπ είναι υψηλή, η συσκευή δούλου δεν είναι επιλεγμένη, ενώ όταν είναι χαμηλή, το τσιπ έχει επιλεγεί και το αφεντικό θα αλληλεπιδρά με το δούλο.

Τα MOSI (Master Out, Slave In) και MISO (Master In, Slave Out) είναι υπεύθυνα για την αποστολή και λήψη δεδομένων. Τα δεδομένα στέλνονται στη συσκευή δούλου μέσω της ακίδας MOSI ενώ η επιλογή τσιπ κρατείται χαμηλή. Τα εισερχόμενα δεδομένα περιέχουν οδηγίες, διευθύνσεις μνήμης ή δεδομένα σύμφωνα με το φυλλάδιο του προμηθευτή της συσκευής δούλου. Μετά από μια έγκυρη είσοδο, η ακίδα MISO είναι υπεύθυνη για τη μετάδοση δεδομένων στον αφεντικό. Τα δεδομένα εξόδου στέλνονται ακριβώς στον επόμενο κύκλο ρολογιού μετά το τέλος της εισόδου. Οι ακίδες MISO μεταδίδουν δεδομένα μέχρι τα δεδομένα να μεταδοθούν πλήρως ή ο αφεντικός να ορίσει την ακίδα επιλογής τσιπ υψηλή (σε αυτήν την περίπτωση, ο δούλος θα σταματήσει τη μετάδοση και ο αφεντικός δεν θα ακούει μετά από αυτόν τον κύκλο ρολογιού).

Αποστολή Firmware από EEPROMs

Η αποστολή του firmware μπορεί να είναι χρήσιμη για την ανάλυση του firmware και την εντοπισμό ευπαθειών σε αυτόν. Συχνά ο firmware δεν είναι διαθέσιμος στο διαδίκτυο ή είναι ασήμαντος λόγω παραλλαγών παραγόντων όπως αριθμός μοντέλου, έκδοση κ.λπ. Επομένως, η εξαγωγή του firmware απευθείας από τη φυσική συσκευή μπορεί να είναι χρήσιμη για να είναι συγκεκριμένος κατά την αναζήτηση απειλών.

Η απόκτηση του Σειριακού Κονσόλας μπορεί να είναι χρήσιμη, αλλά συχνά συμβαίνει ότι τα αρχεία είναι μόνο για ανάγνωση. Αυτό περιορίζει την ανάλυση για διάφορους λόγους. Για παράδειγμα, εργαλεία που απαιτούνται για την αποστολή και λήψη πακέτων δεν θα υπάρχουν στο firmware. Έτσι, η εξαγωγή των δυαδικών αρχείων για αντιστροφή μηχανικής δεν είναι εφικτή. Επομένως, η αποθήκευση ολόκληρου του firmware στο σύστημα και η εξαγωγή των δυαδικών για ανάλυση μπορεί να είναι πολύ χρήσιμη.

Επίσης, κατά την ερυθρή ανάγνωση και την απόκτηση φυσικής πρόσβασης σε συσκευές, η αποστολή του firmware μπορεί να βοηθήσει στην τροποποίηση των αρχείων ή στην ενσωμάτωση κακόβουλων αρχείων και στη συνέχεια στην ανανέωσή τους στη μνήμη, η οποία θα μπορούσε να βοηθήσει στην ενσωμάτωση ενός πίσω πόρτας στη συσκευή. Επομένως, υπάρχουν πολλές δυνατότητες που μπορούν να ξεκλειδωθούν με την αποστολή του firmware.

Προγραμματιστής και Αναγνώστης EEPROM CH341A

Αυτή η συσκευή είναι ένα οικονομικό εργαλείο για την αποστολή firmware από EEPROMs και επίσης την ανανέωσή τους με αρχεία firmware. Αυτή έχει γίνει δημοφιλής επιλογή για την εργασία με τα τσιπ BIOS του υπολογιστή (τα οποία είναι απλώς EEPROMs). Αυτή η συσκευή συνδέεται μέσω USB και χρειάζεται ελάχιστα εργαλεία για να ξεκινήσει. Επίσης, συνήθως ολοκληρώνει γρήγορα την εργασία, οπότε μπορεί να είναι χρήσιμη και στη φυσική πρόσβαση σε συσκευές.

Συνδέστε τη μνήμη EEPROM με τον Προγραμματιστή CH341a και συνδέστε τη συσκευή στον υπολογιστή. Σε περίπτωση που η συσκευή δεν ανιχνεύεται, δοκιμάστε να εγκαταστήσετε τους οδηγούς στον υπολογιστή. Βεβαιωθείτε επίσης ότι η EEPROM είναι συνδεδεμένη στη σωστή προσανατολισμένη θέση (συνήθως, τοποθετήστε την ακίδα VCC σε αντίστροφη προσανατολι

binwalk -e <filename>

Το μπορεί να είναι .bin ή .rom ανάλογα με τα εργαλεία και τις ρυθμίσεις που χρησιμοποιούνται.

Σημειώστε ότι η εξαγωγή firmware είναι μια ευαίσθητη διαδικασία και απαιτεί πολλή υπομονή. Οποιαδήποτε ανεπιθύμητη χειρισμός μπορεί να καταστρέψει το firmware ή ακόμη και να το διαγράψει εντελώς και να καταστήσει τη συσκευή αναξιοποίητη. Συνιστάται να μελετήσετε προσεκτικά τη συγκεκριμένη συσκευή πριν προσπαθήσετε να εξάγετε το firmware.

Bus Pirate + flashrom

Σημείωση ότι ακόμη κι αν το PINOUT του Pirate Bus υποδεικνύει ακροδέκτες για MOSI και MISO για σύνδεση με SPI, ορισμένα SPI μπορεί να υποδεικνύουν τους ακροδέκτες ως DI και DO. MOSI -> DI, MISO -> DO

Σε Windows ή Linux μπορείτε να χρησιμοποιήσετε το πρόγραμμα flashrom για να αντλήσετε το περιεχόμενο της μνήμης flash εκτελώντας κάτι παρόμοιο με:

# In this command we are indicating:
# -VV Verbose
# -c <chip> The chip (if you know it better, if not, don'tindicate it and the program might be able to find it)
# -p <programmer> In this case how to contact th chip via the Bus Pirate
# -r <file> Image to save in the filesystem
flashrom -VV -c "W25Q64.V" -p buspirate_spi:dev=COM3 -r flash_content.img
Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated