UART

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!

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

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλου λογισμικού.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αποκλεισμών λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλο λογισμικό που κλέβει πληροφορίες.

Μπορείτε να ελέγξετε τον ιστότοπό τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:


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

Το UART είναι ένα σειριακό πρωτόκολλο, που σημαίνει ότι μεταφέρει δεδομένα μεταξύ στοιχείων ένα bit τη φορά. Αντίθετα, τα πρωτόκολλα παράλληλης επικοινωνίας μεταφέρουν δεδομένα ταυτόχρονα μέσω πολλαπλών καναλιών. Συνήθη σειριακά πρωτόκολλα περιλαμβάνουν τα RS-232, I2C, SPI, CAN, Ethernet, HDMI, PCI Express και USB.

Γενικά, η γραμμή διατηρείται ψηλά (σε λογική τιμή 1) ενώ το UART βρίσκεται σε κατάσταση αδράνειας. Στη συνέχεια, για να σηματοδοτήσει την έναρξη μεταφοράς δεδομένων, ο αποστολέας στέλνει ένα bit εκκίνησης στον παραλήπτη, κατά το οποίο η σήμανση διατηρείται χαμηλά (σε λογική τιμή 0). Στη συνέχεια, ο αποστολέας στέλνει πέντε έως οκτώ bits δεδομένων που περιέχουν το πραγματικό μήνυμα, ακολουθούμενα από ένα προαιρετικό bit ελέγχου περιττότητας και ένα ή δύο bits σταματημένου (με λογική τιμή 1), ανάλογα με τη διαμόρφωση. Το bit περιττότητας, που χρησιμοποιείται για έλεγχο σφαλμάτων, σπάνια βλέπεται στην πράξη. Το bit σταματημένου (ή τα bits) σηματοδοτούν το τέλος της μετάδοσης.

Αποκαλούμε την πιο συνηθισμένη διαμόρφωση 8N1: οκτώ bits δεδομένων, χωρίς περιττότητα και ένα bit σταματημένου. Για παράδειγμα, αν θέλαμε να στείλουμε τον χαρακτήρα C, ή 0x43 σε ASCII, σε μια διαμόρφωση UART 8N1, θα στέλναμε τα ακόλουθα bits: 0 (το bit εκκίνησης); 0, 1, 0, 0, 0, 0, 1, 1 (η τιμή του 0x43 σε δυαδική μορφή), και 0 (το bit σταματημένου).

Εργαλεία υλικού για επικοινωνία με το UART:

  • Προσαρμογέας USB-to-serial

  • Προσαρμογείς με τα chips CP2102 ή PL2303

  • Πολυεργαλείο όπως το Bus Pirate, το Adafruit FT232H, το Shikra, ή το Attify Badge

Αναγνώριση Θυρών UART

Το UART έχει 4 θύρες: TX(Μετάδοση), RX(Λήψη), Vcc(Τάση), και GND(Γη). Μπορείτε να βρείτε 4 θύρες με τα γράμματα TX και RX γραμμένα στο PCB. Αν όμως δεν υπάρχει καμία ένδειξη, μπορεί να χρειαστεί να προσπαθήσετε να τις βρείτε μόνοι σας χρησιμοποιώντας ένα πολύμετρο ή ένα αναλυτή λογικής.

Με ένα πολύμετρο και τη συσκευή απενεργοποιημένη:

  • Για να αναγνωρίσετε την GND ακίδα χρησιμοποιήστε τη λειτουργία Συνέχειας Δοκιμής, τοποθετήστε το πίσω ακροδέκτη στη γη και δοκιμάστε με τον κόκκινο μέχρι να ακούσετε ήχο από το πολύμετρο. Μπορεί να βρείτε πολλές ακίδες GND στο PCB, οπότε είτε έχετε βρει είτε όχι αυτή που ανήκει στο UART.

  • Για να αναγνωρίσετε τη θύρα VCC, ρυθμίστε τη λειτουργία DC τάσης και ρυθμίστε τη σε 20 V τάση. Μαύρος αισθητήρας στη γη και κόκκινος αισθητήρας στην ακίδα. Ενεργοποιήστε τη συσκευή. Αν το πολύμετρο μετρά μια σταθερή τάση είτε 3,3 V είτε 5 V, έχετε βρει την ακίδα Vcc. Αν λάβετε άλλες τάσεις, δοκιμάστε με άλλες θύρες.

  • Για να αναγνωρίσετε τη θύρα TX, λειτουργία DC τάσης έως 20 V τάση, μαύρος αισθητήρας στη γη, και κόκκινος αισθητήρας στην ακίδα, και ενεργοποιήστε τη συσκευή. Αν βρείτε ότι η τάση διακυμαίνεται για λίγα δευτερόλεπτα και στη συνέχεια σταθεροποιείται στην τιμή της Vcc, πιθανότατα έχετε βρει τη θύρα TX. Αυτό συμβαίνει επειδή κατά την ενεργοποίηση, στέλνει κάποια δεδομένα εντοπισμού σφαλμάτων.

  • Η θύρα RX θα είναι η πλησιέστερη στις άλλες 3, έχει τη χαμηλότερη διακύμανση τάσης και τη χαμηλότερη συνολική τιμή από όλες τις ακίδες UART.

Μπορείτε να μπερδέψετε τις θύρες TX και RX και τίποτα δεν θα συμβεί, αλλά αν μπερδέψετε την GND και τη θύρα VCC μπορεί να καταστρέψετε το κύκλωμα.

Σε ορισμένες συσκευές-στόχους, η θύρα UART είναι απενεργοποιημένη από τον κατασκευαστή με την απενεργοποίηση της RX ή της TX ή ακόμα και και των δύο. Σε αυτήν την περίπτωση, μπορεί να είναι χρήσιμο να εντοπίσετε τις συνδέσεις στο πλακέτα και να βρείτε κάποιο σημείο διακοπής. Ένα ισχυρό υπόδειγμα για την επιβεβαίωση της μη αν

ls /dev/

Για βασική αλληλεπίδραση με τη διεπαφή UART, χρησιμοποιήστε την ακόλουθη εντολή:

picocom /dev/<adapter> --baud <baudrate>

Για το minicom, χρησιμοποιήστε την παρακάτω εντολή για να το ρυθμίσετε:

minicom -s

Διαμορφώστε τις ρυθμίσεις όπως το baudrate και το όνομα της συσκευής στην επιλογή Ρύθμιση σειριακής θύρας.

Μετά τη διαμόρφωση, χρησιμοποιήστε την εντολή minicom για να ξεκινήσετε την πρόσβαση στην κονσόλα UART.

UART Μέσω Arduino UNO R3 (Πλακέτες με αφαιρούμενο Atmel 328p Chip)

Σε περίπτωση που οι προσαρμογείς UART Serial σε USB δεν είναι διαθέσιμοι, το Arduino UNO R3 μπορεί να χρησιμοποιηθεί με ένα γρήγορο χάκινγκ. Δεδομένου ότι το Arduino UNO R3 είναι συνήθως διαθέσιμο παντού, αυτό μπορεί να εξοικονομήσει πολύ χρόνο.

Το Arduino UNO R3 διαθέτει έναν προσαρμογέα USB σε σειριακή θύρα που είναι ενσωματωμένος στην πλακέτα. Για να λάβετε σύνδεση UART, απλώς αποσυνδέστε το μικροελεγκτή Atmel 328p από την πλακέτα. Αυτό το χάκι λειτουργεί σε παραλλαγές του Arduino UNO R3 που δεν έχουν το Atmel 328p κολλημένο στην πλακέτα (χρησιμοποιείται η SMD έκδοση). Συνδέστε τον ακροδέκτη RX του Arduino (Ψηφιακός Ακροδέκτης 0) στον ακροδέκτη TX της διεπαφής UART και τον ακροδέκτη TX του Arduino (Ψηφιακός Ακροδέκτης 1) στον ακροδέκτη RX της διεπαφής UART.

Τέλος, συνιστάται να χρησιμοποιήσετε το Arduino IDE για να λάβετε την Σειριακή Κονσόλα. Στην ενότητα εργαλεία στο μενού, επιλέξτε την επιλογή Σειριακή Κονσόλα και ορίστε το ρυθμό baud σύμφωνα με τη διεπαφή UART.

Bus Pirate

Σε αυτό το σενάριο, θα καταγράψουμε την επικοινωνία UART του Arduino που στέλνει όλες τις εκτυπώσεις του προγράμματος στον Σειριακό Παρακολουθητή.

# Check the modes
UART>m
1. HiZ
2. 1-WIRE
3. UART
4. I2C
5. SPI
6. 2WIRE
7. 3WIRE
8. KEYB
9. LCD
10. PIC
11. DIO
x. exit(without change)

# Select UART
(1)>3
Set serial port speed: (bps)
1. 300
2. 1200
3. 2400
4. 4800
5. 9600
6. 19200
7. 38400
8. 57600
9. 115200
10. BRG raw value

# Select the speed the communication is occurring on (you BF all this until you find readable things)
# Or you could later use the macro (4) to try to find the speed
(1)>5
Data bits and parity:
1. 8, NONE *default
2. 8, EVEN
3. 8, ODD
4. 9, NONE

# From now on pulse enter for default
(1)>
Stop bits:
1. 1 *default
2. 2
(1)>
Receive polarity:
1. Idle 1 *default
2. Idle 0
(1)>
Select output type:
1. Open drain (H=Hi-Z, L=GND)
2. Normal (H=3.3V, L=GND)

(1)>
Clutch disengaged!!!
To finish setup, start up the power supplies with command 'W'
Ready

# Start
UART>W
POWER SUPPLIES ON
Clutch engaged!!!

# Use macro (2) to read the data of the bus (live monitor)
UART>(2)
Raw UART input
Any key to exit
Escritura inicial completada:
AAA Hi Dreg! AAA
waiting a few secs to repeat....

Ανάκτηση Firmware με την Κονσόλα UART

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

Υπάρχουν πολλοί τρόποι για να γίνει αυτό και η ενότητα SPI καλύπτει μεθόδους για την εξαγωγή του firmware απευθείας από την EEPROM με διάφορες συσκευές. Ωστόσο, συνιστάται να δοκιμάσετε πρώτα την ανάκτηση του firmware με την Κονσόλα UART, αφού η ανάκτηση του firmware με φυσικές συσκευές και εξωτερικές αλληλεπιδράσεις μπορεί να είναι επικίνδυνη.

Η ανάκτηση του firmware από την Κονσόλα UART απαιτεί πρώτα την πρόσβαση στους bootloaders. Πολλοί δημοφιλείς προμηθευτές χρησιμοποιούν το uboot (Universal Bootloader) ως τον bootloader τους για τη φόρτωση του Linux. Επομένως, η πρόσβαση στο uboot είναι απαραίτητη.

Για να έχετε πρόσβαση στον boot bootloader, συνδέστε τη θύρα UART στον υπολογιστή και χρησιμοποιήστε οποιοδήποτε εργαλείο Serial Console και κρατήστε την τροφοδοσία της συσκευής αποσυνδεδεμένη. Μόλις το σύστημα είναι έτοιμο, πατήστε το πλήκτρο Enter και κρατήστε το. Τέλος, συνδέστε την τροφοδοσία της συσκευής και αφήστε τη να εκκινήσει.

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

Συνήθως, η εντολή για την ανάκτηση του firmware είναι:

md

Το UART σημαίνει "Universal Asynchronous Receiver/Transmitter". Αυτό θα αδειάσει τη μνήμη (περιεχόμενο EEPROM) στην οθόνη. Συνιστάται να καταγράψετε την έξοδο της Serial Console πριν ξεκινήσετε τη διαδικασία για να καταγράψετε τη μνήμη.

Τέλος, απλά αφαιρέστε όλα τα περιττά δεδομένα από το αρχείο καταγραφής και αποθηκεύστε το αρχείο ως filename.rom και χρησιμοποιήστε το binwalk για να εξάγετε τα περιεχόμενα:

binwalk -e <filename.rom>

Αυτό θα εμφανίσει τα πιθανά περιεχόμενα από το EEPROM σύμφωνα με τις υπογραφές που βρέθηκαν στο αρχείο hex.

Παρόλο που είναι απαραίτητο να σημειωθεί ότι δεν είναι πάντα η περίπτωση ότι το uboot είναι ξεκλείδωτο ακόμα κι αν χρησιμοποιείται. Αν το πλήκτρο Enter δεν κάνει τίποτα, ελέγξτε για διαφορετικά πλήκτρα όπως το Space Key, κλπ. Αν ο bootloader είναι κλειδωμένος και δεν διακόπτεται, αυτή η μέθοδος δεν θα λειτουργήσει. Για να ελέγξετε αν το uboot είναι ο bootloader για τη συσκευή, ελέγξτε την έξοδο στην κονσόλα UART κατά την εκκίνηση της συσκευής. Μπορεί να αναφέρει το uboot κατά την εκκίνηση.

WhiteIntel είναι μια μηχανή αναζήτησης που τροφοδοτείται από το dark web και προσφέρει δωρεάν λειτουργίες για να ελέγξετε αν μια εταιρεία ή οι πελάτες της έχουν διαρρεύσει από κλέφτες κακόβουλου λογισμικού.

Ο κύριος στόχος του WhiteIntel είναι η καταπολέμηση των αναλήψεων λογαριασμών και των επιθέσεων ransomware που προκύπτουν από κακόβουλο λογισμικό που κλέβει πληροφορίες.

Μπορείτε να ελέγξετε τον ιστότοπό τους και να δοκιμάσετε τη μηχανή τους δωρεάν στο:

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

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

Last updated