Om du någon gång varit nyfiken på att veta hur man avlyssnar HTTP-trafik o veta hur applikationer eller tjänster svarar till servrar, eller modifiera trafik för att undersöka hur något fungerar, kommer du att vara intresserad av att veta Mitmproxy.
Mitmproxy är ett verktyg designat för felsökning, testning och webbtrafikanalys. Den används främst för att avlyssna, inspektera, modifiera och spela upp trafik av protokoll som HTTP/1, HTTP/2, HTTP/3, WebSockets och andra skyddade av SSL/TLS.
Som sådan är den främst inriktad på att övervaka trafik i företagssystem, vilket underlättar identifieringen av problem, såsom analys av aktivitet i dolda applikationsnätverk.
För att analysera HTTPS-trafik, Mitmproxy placeras på en transitnod och avlyssnar klientförfrågningar och vidarebefordra dem till destinationsservern. Under sessionen upprättar den en legitim HTTPS-anslutning med servern, men på klientsidan skapar den en simulerad anslutning med hjälp av ett falskt, dynamiskt genererat SSL-certifikat. Trafik som tas emot från klienten omdirigeras till den verkliga servern och svar från servern sänds tillbaka till klienten.
Mitmproxy kan konfigureras som en HTTP-proxy i webbläsaren, användas som en SOCKS5-proxy, eller till och med som en omvänd proxy framför en HTTP-server. Det tillåter också att trafik vidarebefordras på ett transparent sätt med hjälp av regler för paketdirigering eller filtreringsinställningar.
Mitmproxy inkluderar även mitmweb, ett grafiskt gränssnitt som låter dig använda mitmproxys huvudfunktioner i en visuell miljö. Miljön som erbjuds liknar Chromes utvecklingsverktyg, men med ytterligare funktioner som begärandeavlyssning och trafikuppspelning.
Mitmproxy stöder inte bara HTTP/2, HTTP/3 och Websockets, men det Det gör också att trafiken kan manipuleras i realtid genom manus. Dessutom erbjuder den andra avancerade verktyg som att normalisera paket till en ström, generera TLS-certifikat för avlyssnade sessioner och ta bort rubriker som tillåter klientcachelagring.
En annan funktion belyser att det inkluderar är möjligheten till blockera vissa förfrågningar med blockeringslistor, selektivt omdirigera trafik (även returnerar lokala filer), och ändra innehållet och rubrikerna med hjälp av reguljära uttryck. Dessutom tillhandahåller Mitmproxy mitmdump, ett kommandoradsverktyg som liknar tcpdump, och ett webbgränssnitt som heter mitmweb, för att göra trafikanalys ännu mer tillgänglig.
Ny version av Mitmproxy 11 med stöd för HTTP3
För närvarande Mitmproxy är i sin version 11 och huvudnyhet av denna version är cFull HTTP/3-kompatibilitet, som använder QUIC-protokollet som en transport för HTTP/2. med honomo du kan nu avlyssna HTTP/3-trafik på ett transparent sätt eller använd Mitmproxy som en omvänd proxy. Denna funktion har testats i Firefox, Chrome och olika versioner av cURL.
Förutom förbättringar av HTTP/3, även denna version har lagt till DNS-stöd igen, speciellt för DNS-poster för HTTPS och ECH. I tidigare versioner hanterade Mitmproxy DNS-förfrågningar genom getaddriinfo-funktionen, vilket var bekvämt eftersom libc tog hand om hela lösningsprocessen.
Detta API är dock begränsat till endast frågor för IPv4- och IPv6-adresser (A/AAAA-poster). Men Med den nya versionen stöder den nu frågor för andra DNS-poster än A/AAAA, till exempel HTTPSSVC-poster som används i ECH för att skicka information om offentlig krypteringsnyckel. Ett läge har också lagts till som låter dig rensa ECH-nycklar från HTTPS-poster i DNS.
Å andra sidan, för att ytterligare förbättra integrationen med DNS, Mitmproxy har migrerat till Hickory-biblioteket, skriven i Rust och utvecklad av Let's Encrypt-projektet, vilket möjliggör bättre hantering av DNS över TCP. Dessutom finns det nu ett alternativ att inaktivera konfigurationsbearbetning från /etc/hosts.
Slutligen, om du är intresserad av att kunna veta mer om det, kan du konsultera detaljerna i följande länk.
För intresserad av att kunna installera Mitmproxy, De bör veta att binärfilerna erbjuds direkt från den officiella webbplatsen. Även om vissa distributioner erbjuder Mitmproxy-paket genom sina inhemska arkiv, underhålls dessa av communityn.