Android: Erfassen von HTTP-Anfragen mit einem nicht gerooteten Android-Gerät

89

Ich habe eine Android-Anwendung, die ein Glas eines Drittanbieters verwendet. Eine HTTP-Anforderung wird vom JAR eines Drittanbieters an den Server gesendet, wenn die Anwendung ausgeführt wird. Ich muss eine HTTP-Anfrage erfassen, die von einem JAR eines Drittanbieters gesendet wird. Ich frage mich, ob es eine einfache Möglichkeit gibt, mit nicht gerooteten Geräten zu implementieren

Zum Starten: Ich habe versucht, "proxyDroid" herunterzuladen, aber es muss ein gerootetes Telefon benötigt werden. Ich habe auch versucht, "shark for root" mit "shark reader" herunterzuladen, das ebenfalls ein gerootetes Gerät benötigt. Ich habe viele andere Anwendungen ausprobiert, die die vollständige Anfrage erfassen konnten, aber alles, was es brauchte ist gerootetes Gerät

Ich brauche etwas, was Fiddler / Wireshark für Windows tun kann. Ein Netzwerkpaket-Analysator, der leicht in eine Android-Anwendung integriert werden kann und ein Anforderungsobjekt mit allen darin enthaltenen Header-Feldern enthält.

Venkatesh
quelle
Ist das deine "Android-Anwendung"?
CommonsWare
Ja meine Android-Anwendung
Venkatesh
Hallo @Venkatesh, hast du es jemals geschafft, http-Anfragen mit nicht verwurzeltem Android abzufangen?
@lalalalalala Nein. Ich konnte dies mit einem nicht gerooteten Gerät nicht erreichen.
Venkatesh

Antworten:

80

Sie können Charles - einen HTTP-Proxy / HTTP-Monitor / Reverse-Proxy, mit dem ein Entwickler den gesamten HTTP- und SSL / HTTPS-Verkehr zwischen seinem Computer und dem Internet anzeigen kann - auf Ihrem PC oder MAC installieren .

Konfigurationsschritte:

  • Lassen Sie Ihr Telefon und Ihren PC oder MAC in einem LAN
  • Starten Sie Charles, den Sie installiert haben (Standard-Proxy-Port ist 8888).
  • Richten Sie die WLAN-Konfiguration Ihres Telefons ein: Stellen Sie die IP-Adresse des Delegaten auf Ihren PC oder die IP-Adresse des MAC-Delegaten auf 8888 ein
  • Starten Sie Ihre App in Ihrem Telefon. Und überwachen Sie http-Anfragen auf Charles.
SFeng
quelle
4
Dieses Tutorial hat gut funktioniert: jaanus.com/blog/2012/02/12/…
Lionel
18
Leider ist es eine Shareware.
Fehler
1
Vielleicht möchten Sie alternativ Burp Suite ausprobieren, um den gleichen Job zu erledigen. Es ist sehr mächtig und kostenlos: portswigger.net/burp
gerodim
Gibt es ein Tool, um dasselbe mit Web-Socket-Verkehr zu tun? Ich meine auf Android selbst. (Ich kenne Wireshark / Fiddler für PC)
Amol M Kulkarni
Was ist für Android
Mohsen
17

Ich habe gerade Drony installiert, ist keine Shareware und benötigt kein Root auf dem Handy mit Android 3.x oder höher

https://play.google.com/store/apps/details?id=org.sandroproxy.drony

Es fängt die Anforderungen ab und wird in einem LOG angezeigt

Mauricio Gracia Gutierrez
quelle
Dies ist, was ich suche, aber ich möchte genauen Sourcode für diese App. Können Sie einen Link für den Quellcode für Android posten?
Smit.Satodia
2
@ Smit.Satodia Ich weiß nicht, ob sie den Quellcode teilen / veröffentlichen, wenn jemand es findet, den Link als Kommentar zu posten
Mauricio Gracia Gutierrez
2
Quellcode finden Sie hier: github.com/SuppSandroB/sandrop Es wurde ursprünglich auf Google Code hier gehostet: code.google.com/archive/p/sandrop
GabLeRoux
1
@ JanWytze Wenn Sie die Entwickler kontaktieren, können sie Ihnen vielleicht dabei helfen.
Mauricio Gracia Gutierrez
es protokolliert nur Hostname / IP, nicht wirklich nützlich
uingtea
17

Es gibt viele Möglichkeiten, dies zu tun, aber eine davon ist Geiger

Fiddler-Konfiguration

  1. Gehen Sie zu Optionen
  2. In HTTPS Registerkarte ermöglicht Capture - HTTPS - Verbindungen und Entschlüsseln HTTPS - Datenverkehr
  3. In Verbindungen Registerkarte ermöglicht Remote - Computer eine Verbindung herstellen
  4. Starten Sie den Geiger neu

Android-Konfiguration

  1. Stellen Sie eine Verbindung zu demselben Netzwerk her
  2. Ändern Sie die Netzwerkeinstellungen
  3. Fügen Sie einen Proxy für die Verbindung mit der IP-Adresse (oder dem Hostnamen) Ihres PCs und dem Standard-Fiddler-Port hinzu (8888 / Sie können dies in den Einstellungen ändern).

Jetzt können Sie das vollständige Protokoll Ihres Geräts in Fiddler anzeigen

Eine vollständige Anleitung finden Sie auch hier

Arash Hatami
quelle
2
Fiddler Beta ist unter macOS verfügbar (basierend auf Mono). Dies sind gute Nachrichten, wenn Sie keinen PC haben.
MacKentoch
Danke, aber ich meine alle Computer in dieser Antwort. PC / Laptop / etc ... :) @MacKentoch
Arash Hatami
6

Sie können Fiddler als Webdebugger verwenden http://www.telerik.com/fiddler/web-debugging

Fiddler ist ein Debugging-Tool der Telerik-Software, mit dem Sie jede von Ihrem Computer initiierte Anforderung abfangen können.

Bürger Ken
quelle
4
Während dieser Link die Frage beantworten kann, ist es besser, die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen. Nur-Link-Antworten können ungültig werden, wenn sich die verlinkte Seite ändert
zohar
6

Es ist 2020, für die neueste Lösung können Sie Burp Suite verwenden, um den https-Verkehr zu überwachen, ohne Ihr Android-Gerät zu rooten.

Schritte:

  1. Installieren Sie die Burp Suite

  2. Proxy aktivieren

  3. Importieren Sie die Zertifizierung in Ihr Android-Handy

  4. Ändern Sie Ihre Wifi-Konfiguration so, dass Sie den Proxy abhören

  5. Profitieren!

Ich habe das vollständige Tutorial und den Screenshot dazu hier geschrieben: https://www.yodiw.com/monitor-android-network-traffic-with-burp/

Jodi
quelle
Es wäre schön, die Daten von der Website zu kopieren, damit Sie hier antworten können. Da Ihre Website möglicherweise ausfällt. Aus demselben Grund empfiehlt SO auch das Zitieren anstelle von Links. Abgesehen von diesem großartigen Tutorial.
Mark
Um fair zu sein, war es vielleicht besser, stackoverflow.com/a/39684919/5506988 zu verbessern, als eine weitere "Antwort" zu schreiben.
Mark
4

Sie können Burp-Suite verwenden. Befolgen Sie die nachstehenden Anweisungen.

Konfigurieren Sie den Burp Proxy-Listener

Wechseln Sie in Burp zur Registerkarte "Proxy" und dann zur Registerkarte "Optionen". Klicken Sie im Abschnitt "Proxy-Listener" auf die Schaltfläche "Hinzufügen".

Geben Sie auf der Registerkarte "Bindung" im Feld "An Port binden:" eine Portnummer ein, die derzeit nicht verwendet wird, z. B. "8082". Wählen Sie dann die Option "Alle Schnittstellen" und klicken Sie auf "OK".

Konfigurieren Sie Ihr Gerät für die Verwendung des Proxys

Gehen Sie auf Ihrem Android-Gerät zum Menü "Einstellungen".

Wenn Ihr Gerät noch nicht mit dem von Ihnen verwendeten drahtlosen Netzwerk verbunden ist, schalten Sie die Schaltfläche "Wi-Fi" ein und tippen Sie auf die Schaltfläche "Wi-Fi", um auf das Menü "Wi-Fi" zuzugreifen.

Suchen Sie in der Tabelle "Wi-Fi-Netzwerke" Ihr Netzwerk und tippen Sie darauf, um das Verbindungsmenü aufzurufen.

Tippen Sie auf "Verbinden". Wenn Sie ein Passwort konfiguriert haben, geben Sie es ein und fahren Sie fort.

Sobald Sie verbunden sind, halten Sie die Netzwerkschaltfläche gedrückt, um das Kontextmenü aufzurufen. Tippen Sie auf „Netzwerkkonfiguration ändern“.

Stellen Sie sicher, dass das Kontrollkästchen "Erweiterte Optionen anzeigen" aktiviert ist.

Ändern Sie die "Proxy-Einstellungen" in "Manuell", indem Sie auf die Schaltfläche tippen.

Geben Sie dann die IP-Adresse des Computers, auf dem Burp ausgeführt wird, in den "Proxy-Hostnamen" ein. Geben Sie die Portnummer ein, die zuvor im Abschnitt "Proxy-Listener" konfiguriert wurde, in diesem Beispiel "8082". Tippen Sie auf "Speichern".

Testen Sie die Konfiguration

Gehen Sie in Burp zur Registerkarte "Proxy Intercept" und stellen Sie sicher, dass "Intercept" aktiviert ist (wenn auf der Schaltfläche "Intercept is off" steht, klicken Sie darauf, um den Interception-Status umzuschalten).

Öffnen Sie den Browser auf Ihrem Android-Gerät und rufen Sie eine HTTP-Webseite auf (Sie können eine HTTPS-Webseite besuchen, wenn Sie das CA-Zertifikat von Burp auf Ihrem Android-Gerät installiert haben.)

Die Anfrage sollte in Burp abgefangen werden.

Vis
quelle
2

SandroProxy scheint besser zu sein als Drony (vom selben Entwickler): Sie können den Datenverkehr bequem im Browser Ihres PCs anzeigen und analysieren (müssen dies aber nicht).

Sollte auch in Emulatoren funktionieren.

Nicolai Weitkemper
quelle
1

Legen Sie einen https://mitmproxy.org/ als Proxy in demselben LAN fest

  • Open Source
  • Eingebaut in Python 3
  • Installierbar über Pip
AlexisCaffa
quelle