httptap ist ein Tool, mit dem sich HTTP- und HTTPS-Anfragen von Linux-Programmen leicht einsehen lassen
- Mit
httptap -- lassen sich die Netzwerkanfragen eines bestimmten Befehls nachverfolgen
- Wenn man zum Beispiel mit dem Befehl
curl eine Anfrage an eine bestimmte URL sendet, gibt httptap die entsprechende Anfrage und Antwort aus
httptap benötigt keine Root-Rechte und wirkt sich nicht systemweit aus
- Aktuell funktioniert es nur unter Linux; eine Portierung auf andere Betriebssysteme ist schwierig
- Installation
- Schnellstart
- Mit dem Befehl
curl kann man HTTP-Anfragen senden und mit httptap Anfrage und Antwort prüfen
- Wird mit der Option
-L Redirects gefolgt, entstehen zusätzliche HTTP-Anfragen
- Beispiele mit Google Cloud und
kubectl
- Mit dem Befehl
gcloud compute instances list lassen sich die HTTP-Anfragen nachverfolgen, die beim Auflisten von Compute-Instanzen in Google Cloud entstehen
- Mit dem Befehl
kubectl get all lassen sich die HTTP-Anfragen nachverfolgen, die beim Auflisten von Ressourcen in einem Kubernetes-Cluster entstehen
- DNS-over-HTTP
- Mit der Option
--doh-url von curl lassen sich DNS-over-HTTP-Anfragen ausführen
- Mit
httptap können DNS-Anfragen und -Antworten eingesehen werden
- HAR-Ausgabe
- HTTP-Anfragen und -Antworten lassen sich in eine HAR-Datei dumpen
- HAR-Dateien können mit verschiedenen Viewern visualisiert werden
- Funktionsweise
httptap verwendet Netzwerk-Namespaces, um Befehle in einer isolierten Umgebung auszuführen
- Es erstellt ein TUN-Device, um den Netzwerkverkehr zu verfolgen, und erzeugt eine temporäre Zertifizierungsstelle, um HTTPS-Traffic zu entschlüsseln
- Hinweise
- Prozesse können keine eingehenden Netzwerkverbindungen annehmen
- Es werden Zugriffsrechte auf
/dev/net/tun benötigt
- Alle ICMP-Echo-Requests werden lokal beantwortet, ohne ICMP-Pakete an das echte Netzwerk zu senden
2 Kommentare
Es wurde an der Monastic Academy in Vermont in den USA entwickelt. Wir glauben, dass ein klösterlicher Tagesablauf und allgemeiner die Praxis des buddhistischen spirituellen Pfads ideale Bedingungen für technologische Entwicklung bieten.
Hacker-News-Kommentare
Der Abschnitt "How it was made" in der README ist fast so interessant wie das Tool selbst
http_proxyauftreten, und Programme könnten die Variable ignorieren/etc/resolv.confgemountet; ich frage mich, ob es helfen würde, das Verzeichnis/etc/ca-certificatesebenfalls mit einem temporären CA-Bundle zu mountenhttptap ist ein HTTP-Tracer auf Prozessebene, der ohne Root-Rechte ausgeführt werden kann
httptap <command>gestartet, lassen sich HTTP/HTTPS-Anfragen und -Antworten auf der Standardausgabe mitverfolgenEin weiteres Tool zur Analyse von Netzwerkverkehr ohne Root-Rechte ist rootless Podman mit Pasta
--network=pasta:--pcap,myfile.pcapwird der Netzwerkverkehr in eine PCAP-Datei geschriebenDie Verwendung eines TUN-Geräts ist eine clevere Idee, und der Abschnitt "How it was made" gehört zu den besten GitHub-READMEs überhaupt
Ich werde das sofort zum Debuggen von nginx-Konfigurationen verwenden
Ich habe kürzlich eine ähnliche Funktion in mitmproxy gebaut, aber mit anderen Trade-offs
Ein anderer Ansatz mit LD_PRELOAD kann bei statisch gelinkten ELFs scheitern, zum Beispiel bei Golang-Binaries
Eine großartige Nutzung des TCP/IP-Stacks im Userspace von gVisor
Mitmproxy v11.1 kann ebenfalls etwas Ähnliches leisten