Sniffing einer Android-App, um die API-URL zu finden

Lesezeit: 7 Minuten

Benutzer-Avatar
derpyderp

Ich bin neugierig, wie ich die API-URL herausfinden könnte, die eine Android-Anwendung (jede App, die ich installiert habe) verwendet, wenn sie API-Aufrufe an einen Online-Server (z. B. einen RESTful-Dienst) durchführt. Ich nehme an, ich muss Pakete auf dem Gerät erfassen und sie vielleicht in Wireshark oder so analysieren, um die URL zu finden? Ich bin ziemlich kompetent in der Java/Android-Entwicklung, aber ein bisschen verloren, wenn es um Netzwerkanalysen geht.

  • Sie könnten einen Debugging-HTTP-Proxy wie Charles verwenden.

    – Lesleh

    26. Dezember 2013 um 1:05 Uhr

  • Wie ich angemerkt habe, bin ich mit Netzwerkanalyse oder Debugging nicht sehr erfahren. Könnten Sie Ihren Kommentar erweitern? Vielen Dank

    – derpyderp

    28. Dezember 2013 um 16:29 Uhr

  • Im Wesentlichen installieren Sie Charles auf Ihrem Computer, weisen Ihr Android-Gerät an, diesen Computer als HTTP-Proxy zu verwenden, und dann werden alle Anfragen dorthin gesendet, sodass Sie die einzelnen Anfragen sehen können, die über Apps gestellt wurden. SSL ist etwas komplizierter.

    – Lesleh

    29. Dezember 2013 um 12:42 Uhr

Benutzer-Avatar
Alok

Sie können dies mit Hilfe von tun WireShark. Ich liste hier Schritte auf

  1. Installieren WireShark auf deinem Computer
  2. Jetzt müssen wir ein virtuelles Android-Gerät (AVD) erstellen, damit wir das Android SDK von der offiziellen Website herunterladen können. Android SDK wird mit einem Emulator zum Testen geliefert
  3. Erstellen Sie nach dem Einrichten des Android SDK ein virtuelles Android-Gerät (AVD), auf dem wir die App installieren
  4. Starten Sie dieses virtuelle Gerät. Sie können die Befehlszeile verwenden, um zu starten (emulator @<AVD name>)
  5. Nach dem Erstellen der virtuellen Geräteinstallations-App mit dem Befehl adb adb install app_file_name.apk
  6. Jetzt können wir mit der Erfassung der Pakete beginnen, daher werde ich vorschlagen, andere Anwendungen auf Ihrem Computer zu schließen, die das Netzwerk verwenden, damit unsere erfassten Pakete relevanter sind.
  7. Starten Sie nun Wireshark mit Root-Zugriff
  8. Wählen Sie die Schnittstelle aus, die Sie erfassen möchten, und klicken Sie auf Start, um mit der Erfassung zu beginnen.

    Wireshar-Startbild

  9. Beginnen Sie jetzt mit der Verwendung dieser App, damit Pakete hin und her übertragen werden und Wireshark sie erfasst.

    Liste der Pakete

  10. Wenn Sie eine App verwendet haben, die alle Arten von Aktivitäten abdeckt, können Sie Wireshark stoppen, um Pakete zu erfassen.

  11. Beginnen Sie jetzt mit dem Hauptgeschäft, Pakete sorgfältig zu analysieren, aber nicht alle Pakete sind für unsere Arbeit nützlich. Filtern Sie also Pakete, die für Sie relevant sind. lässt Ihre IP-Adresse 192.168.0.32 und filtert dann alle Pakete, deren IP diese ist. so wird der Filterausdruck sein ip.addr==192.168.0.32 Wenden Sie diesen Filter an. Trotzdem wenden wir einen anderen Filter an, um nur relevante Pakete aufzulisten, damit die App möglicherweise mit dem HTTP-Protokoll auf die API zugreift, also wenden Sie den HTTP-Filter an. Ausdruck wäre http. Sie können beide Filter gleichzeitig anwenden ip.addr==192.168.0.32 and http Drücken Sie die Eingabetaste, um sich zu bewerben.

    Wireshark-Details

  12. Sehen Sie sich die Informationen für aufgelistete Pakete genau an. Sie werden viele wichtige Details, API-Schlüssel, Cookies usw. sehen

  • Sie müssen Android SDK installieren, um ADB und Emulator zu erhalten

    – Alok

    3. Dezember 2014 um 7:58 Uhr

  • was ist mit https? Wenn eine App, die sich über das https-Protokoll verbindet, immer noch Whireshark-Protokolle erstellen kann?

    – Bevölkerung retten

    10. Juli 2015 um 5:06 Uhr

  • mit https ist das Protokoll “TLS 1.2” und die Anfrage ist verschlüsselt, so dass die Anfrage von Wireshark protokolliert wird, ABER nicht viele nützliche Informationen (kein Endpunkt, keine Cookies)

    – minhhq

    12. März 2020 um 4:42 Uhr

  • zeigt es https log?

    – bhaskar

    27. September 2021 um 12:52 Uhr

Benutzer-Avatar
Träumerei_ss

Eine sehr schnelle Methode.
Gehen Sie zu PlayStore, suchen Sie nach Paketerfassung

Herunterladen, installieren und ausführen.
Es ist einfach, einfach und schnell. Es gibt Ihnen Details zu den APIs, URLs und Antworten mit ihren Headern.

Diese Anwendung folgt dem Konzept von Paketschnüffeln. Daher funktioniert dies möglicherweise nicht mit stark gesicherten Anwendungen wie WhatsApp, Facebook, Twitter.

UPDATE 1:

Das Paketerfassung ist nicht mehr im Playstore verfügbar, versuchen Sie es OS-Monitor

UPDATE 2:

Das Paketerfassung ist wieder verfügbar.

  • Die App ist nicht mehr im Play Store verfügbar. Gibt es eine Ersatzlösung?

    – Kr1

    31. Oktober 2018 um 6:27 Uhr

  • @118218 Du kannst es damit versuchen play.google.com/store/apps/details?id=com.eolwral.osmonitor

    – Träumerei_ss

    31. Oktober 2018 um 8:37 Uhr

  • Die ursprünglich vorgeschlagene App ist nach wie vor (wieder) verfügbar.

    – Futter

    2. März 2019 um 14:20 Uhr

  • Das ist einfach und hat bei mir funktioniert. Dies sollte die akzeptierte Antwort sein, danke.

    – Onkar Musale

    18. August 2020 um 8:06 Uhr

  • Derzeit in aktuellem Android defekt.

    – Edza

    27. Februar 2021 um 11:50 Uhr

Benutzer-Avatar
Mohammed Javad

Führen Sie auf einem Windows 10-Computer einfach die folgenden Schritte aus:

  1. Gehen Sie zu Einstellungen > Netzwerk & Internet > Mobiler Hotspot und aktivieren Sie Meine Internetverbindung mit anderen Geräten teilen.

  2. Verbinden Sie Ihr Mobilgerät mit diesem freigegebenen Hotspot.

  3. Um Internetzugang in Ihrem Handy zu erhalten, klicken Sie jetzt auf Adapteroptionen ändern.

  4. Gehen Sie zu den Eigenschaften, indem Sie mit der rechten Maustaste auf den Netzwerkadapter klicken, von dem aus das Internet für Ihren Windows-Computer freigegeben wird.

  5. Aktivieren Sie die Optionen für die gemeinsame Nutzung der Internetverbindung auf der Registerkarte „Freigabe“, indem Sie die entsprechende Verbindung auswählen (vom Mobilgerät verwendete lokale Verbindung) und klicken Sie auf „OK“.

Jetzt können Sie den gesamten Netzwerkverkehr des Mobilgeräts in Wireshark sehen, wenn Sie die vom Mobilgerät verwendete LAN-Verbindung auswählen. Um das Ergebnis nach HTTP-Traffic zu filtern, können Sie im Filterfeld http und for eingeben https Webverkehr, den Sie eingeben können tls.handshake.type eq 1

  • einfache Lösung, aber für die Analyse von HTTPS-Inhalten mit modernen Android-Apps ist es fast unmöglich

    – Falk Alexander

    18. Februar 2021 um 7:23 Uhr

Benutzer-Avatar
Davor Josipović

Laden Sie das Android +6.0-Image für PC von dieser Seite herunter: https://www.android-x86.org/.

Zum Beispiel: https://www.android-x86.org/releases/releasenote-6-0-r3.html

Stellen Sie sicher, dass Ihre App mit dieser Android-Version funktioniert – Sie können die Android-Mindestversion auf überprüfen Google Play store –, und nimm keine zu hohe Zahl für die Andriod-Version: Je höher die Zahl, desto mehr Sicherheitseinschränkungen hat sie.

Installieren VirtualBoxmounten Sie das ISO-Image, booten Sie Android und installieren Sie die App über Google Play.

Jetzt haben Sie zwei Möglichkeiten:

  1. Wenn der Datenverkehr unverschlüsselt ist, können Sie den gesamten NIC-Datenverkehr in einer Textdatei protokollieren. z.B VBoxManage modifyvm "vm-name" --nictrace1 on --nictracefile1 c:\file.pcap (vgl. hier)

  2. Wenn der Datenverkehr verschlüsselt ist, können Sie einen Man-in-the-Middle-Ansatz verwenden. Eine App, die dies ermöglicht, ist HttpCanary. Es stellt eine VPN-Verbindung her und leitet Ihren Datenverkehr über dieses VPN um. Es entschlüsselt und funktioniert gut, aber seien Sie vorsichtig mit Ihren privaten Daten.

  3. Wenn die App das Anheften von Zertifikaten verwendet, wird es komplizierter. Lesen Sie dies bloggen. Sie müssen verwenden Dies Ansatz für x86-Images. Beachten Sie, dass der Autor in diesem Artikel Android x86 8.1 (nicht x64!) und Xposed Android SDK27 verwendet. Viel Glück!!

Debug-Proxy verwenden. Klicken Sie auf die Play-Schaltfläche und Sie können URLs erfassen und weitere Details anzeigen

https://play.google.com/store/apps/details?id=com.dans.apps.webd

Benutzer-Avatar
Prithavi Raj Nagar

  1. Installieren Sie Virtual Box und Genymotion
    http://www.2daygeek.com/install-upgrade-oracle-virtualbox-on-ubuntu-centos-debian-fedora-mint-rhel-opensuse/
    und http://www.2daygeek.com/install-genymotion-android-emulator-on-ubuntu-centos-debian-fedora-rhel-opensuse-arch-linux-mint/#
  2. Führen Sie genymotion aus. 3 . Danach installieren Sie Ihr Wunsch-Android ADV.
  3. Starten Sie nun Wireshark mit Root-Zugriff

Benutzer-Avatar
Benutzer16516930

versuch es mal mit klassisch tcpdump

$ tcpdump -D
1.eth0 [Up, Running, Connected]
2.any (Pseudo-device that captures on all interfaces) [Up, Running]
3.lo [Up, Running, Loopback]
4.bluetooth-monitor (Bluetooth Linux Monitor) [Wireless]
5.usbmon2 (Raw USB traffic, bus number 2)
6.usbmon1 (Raw USB traffic, bus number 1)
7.usbmon0 (Raw USB traffic, all USB buses) [none]
8.nflog (Linux netfilter log (NFLOG) interface) [none]
9.nfqueue (Linux netfilter queue (NFQUEUE) interface) [none]
10.dbus-system (D-Bus system bus) [none]
11.dbus-session (D-Bus session bus) [none]
12.bluetooth0 (Bluetooth adapter number 0)
13.eth1 [none, Disconnected]

1227870cookie-checkSniffing einer Android-App, um die API-URL zu finden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy