hacktricks/todo/hardware-hacking/i2c.md

233 lines
7.6 KiB
Markdown
Raw Normal View History

# I2C
2022-04-28 16:01:33 +00:00
{% 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)
2022-04-28 16:01:33 +00:00
<details>
2022-03-08 23:18:28 +00:00
<summary>Υποστήριξη HackTricks</summary>
2022-03-08 23:18:28 +00:00
* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)!
* **Εγγραφείτε στο** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) ή στο [**telegram group**](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.
2022-03-08 23:18:28 +00:00
</details>
{% endhint %}
2022-03-08 23:18:28 +00:00
## Bus Pirate
2022-03-08 23:18:28 +00:00
Για να ελέγξετε αν ένα Bus Pirate λειτουργεί, συνδέστε +5V με VPU και 3.3V με ADC και αποκτήστε πρόσβαση στο bus pirate (χρησιμοποιώντας το Tera Term για παράδειγμα) και χρησιμοποιήστε την εντολή `~`:
2022-03-11 23:33:08 +00:00
```bash
# Use command
HiZ>~
Disconnect any devices
Connect (Vpu to +5V) and (ADC to +3.3V)
Space to continue
# Press space
Ctrl
AUX OK
MODE LED OK
PULLUP H OK
PULLUP L OK
VREG OK
ADC and supply
5V(4.96) OK
VPU(4.96) OK
3.3V(3.26) OK
ADC(3.27) OK
Bus high
MOSI OK
CLK OK
MISO OK
CS OK
Bus Hi-Z 0
MOSI OK
CLK OK
MISO OK
CS OK
Bus Hi-Z 1
MOSI OK
CLK OK
MISO OK
CS OK
MODE and VREG LEDs should be on!
Any key to exit
#Press space
Found 0 errors.
```
Όπως μπορείτε να δείτε στην προηγούμενη γραμμή εντολών, είπε ότι βρήκε 0 σφάλματα. Αυτό είναι πολύ χρήσιμο για να γνωρίζετε ότι λειτουργεί μετά την αγορά του ή μετά την αναβάθμιση ενός firmware.
2022-03-11 23:33:08 +00:00
Για να συνδεθείτε με το bus pirate, μπορείτε να ακολουθήσετε τα έγγραφα:
2022-03-08 23:18:28 +00:00
![](<../../.gitbook/assets/image (484).png>)
2022-03-08 23:18:28 +00:00
Σε αυτή την περίπτωση, θα συνδεθώ με μια EPROM: ATMEL901 24C256 PU27:
2022-03-08 23:18:28 +00:00
![](<../../.gitbook/assets/image (964).png>)
2022-03-08 23:18:28 +00:00
Για να μιλήσω με το bus pirate, χρησιμοποίησα το Tera Term συνδεδεμένο στη θύρα COM του pirate bus με μια Ρύθμιση --> Σειριακή Θύρα --> Ταχύτητα 115200.\
Στην παρακάτω επικοινωνία μπορείτε να βρείτε πώς να προετοιμάσετε το bus pirate για να μιλήσει I2C και πώς να γράψετε και να διαβάσετε από τη μνήμη (Σχόλια εμφανίζονται χρησιμοποιώντας "#", μην περιμένετε αυτό το μέρος στην επικοινωνία):
2022-03-08 23:18:28 +00:00
```bash
# Check communication with buspirate
i
Bus Pirate v3.5
Community Firmware v7.1 - goo.gl/gCzQnW [HiZ 1-WIRE UART I2C SPI 2WIRE 3WIRE KEYB LCD PIC DIO] Bootloader v4.5
DEVID:0x0447 REVID:0x3046 (24FJ64GA00 2 B8)
http://dangerousprototypes.com
# Check voltages
I2C>v
Pinstates:
1.(BR) 2.(RD) 3.(OR) 4.(YW) 5.(GN) 6.(BL) 7.(PU) 8.(GR) 9.(WT) 0.(Blk)
GND 3.3V 5.0V ADC VPU AUX SCL SDA - -
P P P I I I I I I I
GND 3.27V 4.96V 0.00V 4.96V L H H L L
#Notice how the VPU is in 5V becausethe EPROM needs 5V signals
# Get mode options
HiZ>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 I2C
(1)>4
I2C mode:
2024-02-10 22:40:18 +00:00
1. Software
2. Hardware
2022-03-08 23:18:28 +00:00
# Select Software mode
(1)>1
Set speed:
2024-02-10 22:40:18 +00:00
1. ~5kHz
2. ~50kHz
3. ~100kHz
4. ~240kHz
2022-03-08 23:18:28 +00:00
# Select communication spped
(1)> 2
Clutch disengaged!!!
To finish setup, start up the power supplies with command 'W'
Ready
# Start communication
I2C>W
POWER SUPPLIES ON
Clutch engaged!!!
# Get macros
I2C>(0)
2024-02-10 22:40:18 +00:00
0.Macro menu
1.7bit address search
2.I2C sniffer
2022-03-08 23:18:28 +00:00
#Get addresses of slaves connected
I2C>(1)
Searching I2C address space. Found devices at:
0xA0(0x50 W) 0xA1(0x50 R)
# Note that each slave will have a write address and a read address
2022-05-01 12:49:36 +00:00
# 0xA0 ad 0xA1 in the previous case
2022-03-08 23:18:28 +00:00
# Write "BBB" in address 0x69
I2C>[0xA0 0x00 0x69 0x42 0x42 0x42]
I2C START BIT
WRITE: 0xA0 ACK
WRITE: 0x00 ACK
WRITE: 0x69 ACK
WRITE: 0x42 ACK
WRITE: 0x42 ACK
WRITE: 0x42 ACK
I2C STOP BIT
# Prepare to read from address 0x69
I2C>[0xA0 0x00 0x69]
I2C START BIT
WRITE: 0xA0 ACK
WRITE: 0x00 ACK
WRITE: 0x69 ACK
I2C STOP BIT
# Read 20B from address 0x69 configured before
I2C>[0xA1 r:20]
I2C START BIT
WRITE: 0xA1 ACK
READ: 0x42 ACK 0x42 ACK 0x42 ACK 0x20 ACK 0x48 ACK 0x69 ACK 0x20 ACK 0x44 ACK 0x72 ACK 0x65 ACK 0x67 ACK 0x21 ACK 0x20 ACK 0x41 ACK 0x41 ACK 0x41 ACK 0x00 ACK 0xFF ACK 0xFF ACK 0xFF
NACK
```
### Sniffer
2022-03-08 23:18:28 +00:00
Σε αυτό το σενάριο θα καταγράψουμε την επικοινωνία I2C μεταξύ του arduino και της προηγούμενης EPROM, απλά χρειάζεται να επικοινωνήσετε και τα δύο συσκευές και στη συνέχεια να συνδέσετε το bus pirate στις ακίδες SCL, SDA και GND:
2022-03-08 23:18:28 +00:00
![](<../../.gitbook/assets/image (166).png>)
2022-03-08 23:18:28 +00:00
```bash
I2C>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)
(1)>4
I2C mode:
2024-02-10 22:40:18 +00:00
1. Software
2. Hardware
2022-03-08 23:18:28 +00:00
(1)>1
Set speed:
2024-02-10 22:40:18 +00:00
1. ~5kHz
2. ~50kHz
3. ~100kHz
4. ~240kHz
2022-03-08 23:18:28 +00:00
(1)>1
Clutch disengaged!!!
To finish setup, start up the power supplies with command 'W'
Ready
# EVEN IF YOU ARE GOING TO SNIFF YOU NEED TO POWER ON!
I2C>W
POWER SUPPLIES ON
Clutch engaged!!!
# Start sniffing, you can see we sniffed a write command
I2C>(2)
Sniffer
Any key to exit
[0xA0+0x00+0x69+0x41+0x41+0x41+0x20+0x48+0x69+0x20+0x44+0x72+0x65+0x67+0x21+0x20+0x41+0x41+0x41+0x00+]
```
{% 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)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Υποστήριξη HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Ελέγξτε τα [**σχέδια συνδρομής**](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.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}