mitmproxy reverse engineering verktøykasse for apper API på iOS

mitmproxy, utviklet av Mitmproxy-prosjektet, er en kraftig og interaktiv avskjærende proxy som støtter SSL/TLS og tilbyr et konsollgrensesnitt for håndtering av HTTP/1-, HTTP/2- og WebSocket-trafikk. Dette verktøyet er spesielt nyttig for å fange opp og analysere alle data som utveksles mellom iOS-enheten din og eksterne servere, noe som gjør det til en uvurderlig ressurs for reverse engineering av private API-er i applikasjoner.
Key Takeaways
- mitmproxy støtter ikke bare HTTP, HTTP/2, HTTP/3, men også andre webprotokoller som WebSocket, DNS, generisk TCP/TLS-proxy og generisk UDP/DTLS-proxy.
- Python API lar deg skrive tillegg og skript med API som gir full kontroll over mitmproxy og gjør det mulig å implementere dine egne kommandoer.
- Et av hovedformålene med mitmproxy er muligheten til å reversere utviklingen av iOS-appers private API med kryptering av Man In the Middle (MITM)-angrep.
- mitmproxy er et kommandolinjeverktøy, ledsaget av mitmweb, som gir et intuitivt webgrensesnitt som ligner på Chromes DevTools for å overvåke nettverkstrafikk.
Last ned
mitmproxy kan installeres på alle populære skrivebordsplattformer, inkludert Windows, Linux og macOS. For de to første kan du bruke et dedikert installasjonsprogram. Det anbefales å installere mitmproxy for macOS via The Missing Package Manager for macOS – brew.
Oversikt
Mitmproxy fungerer som en omfattende verktøykasse for reverskonstruering av API-ene til applikasjoner som opererer på iOS-enheter. Den består av tre nøkkelmoduler: mitmproxy, mitmdump og mitmweb. Mitmdump-modulen fungerer som kommandolinjemotparten til mitmproxy, sammenlignet med tcpdump for HTTP. Samtidig tilbyr mitmweb et brukervennlig nettbasert grensesnitt for sømløs interaksjon med mitmproxys funksjoner.
En av hovedfordelene med mitmproxy er muligheten til å generere et rot-SSL-sertifikat som kan installeres på iPhone-enheten din. Denne unike funksjonen lar deg dekryptere HTTPS-kommunikasjon, noe som muliggjør en omfattende analyse av alle apptilkoblinger til servere.
Denne åpenheten er spesielt fordelaktig for reverse engineering av private API-er, ettersom det legger til rette for en dyp forståelse av de underliggende kommunikasjonsprotokollene. I tillegg kan mitmproxy brukes til å avdekke de spesifikke private dataene som overføres av appen til eksterne servere, for eksempel GPS-posisjon, enhetstype, iOS-versjon og mer.

En annen bemerkelsesverdig funksjon ved mitmproxy er dens evne til å fange opp og endre forespørsler før de sendes eller mottas av serveren. Denne funksjonaliteten er spesielt verdifull i forbindelse med sikkerhetspenetrasjonstesting, ettersom den lar brukere injisere tilpasset kode i forespørslene. Denne dynamiske modifiseringen av forespørsler gir et praktisk middel for å vurdere systemets motstandskraft mot ulike sikkerhetssårbarheter og bidrar til å identifisere potensielle svakheter som kan utnyttes. mitmproxys fleksibilitet i å endre forespørsler forbedrer dens nytteverdi som et kraftig verktøy i arsenalet til sikkerhetsfagfolk og forskere.
Mitmproxy spilte en avgjørende rolle som et av de viktigste verktøyene som ble brukt av Kaspersky Security Researchers under Operation Triangulation . Funksjonene var avgjørende for å dekryptere HTTPS-trafikk, slik at forskerne kunne spore og analysere den selvinstallerende Messages-skadevaren på iOS-enheter som var designet for å ta over iDevice uten å etterlate spor.
Info: mitmproxy støtter Windows-, macOS-, Linux-, iOS- og Android-enheter.
I tillegg tilrettelegger mitmproxy for sanntidsovervåking og modifisering av forespørsler, noe som muliggjør dynamiske justeringer underveis under avlyttingsprosessen. Det er imidlertid verdt å merke seg at installasjon av et rot-SSL-sertifikat ikke gir muligheten til å avlytte HTTPS-trafikk fra Apple-tjenester, inkludert iMessage. Denne begrensningen oppstår på grunn av at iOS implementerer SSL-pinning for forbedrede sikkerhetstiltak.
[[highlight h2="Hva er nytt" color="#d9d9d9" text="Legg til støtte for redigering av ikke-tekstfiler i en heksadesimal editor.|Legg til server_connect_error-krok som utløses når tilkoblingsetableringen mislykkes.|Legg til seksjon i mitmweb for gjengivelse, legge til og fjerne en kommentar.|Rettelse av ubrukelig visning av flerdelt skjemainnhold.|Dokumentasjonsforbedringer for generering av CA-sertifikat.|Gjør det mulig å lese flyter fra stdin med mitmweb.|Oppdater aioquic-avhengighet til >= 1.0.0, < 2.0.0.|Rettelse av en feil der asynkrone client_connected-håndterere krasjet mitmproxy.|Legg til knapp for å lukke panelet for flytdetaljer.|Ignorer SIGPIPE-signaler når det er mye trafikk. Socket-feil håndteres direkte og krever ikke ekstra signaler som genererer støy.|Legg til primitiv websocket-avskjæring og modifisering.|Legg til støtte for eksport av websocket-meldinger når du bruker "rå" eksport.|Funksjonen "lagre brødtekst" inkluderer nå også WebSocket-meldinger.|Rettelse av kompatibilitet med eldre kryptografiversjoner og deaktiver en avskrivningsadvarsel på Python <3.11.|Rette en feil ved proxying av Unicode-domener.
Mitmproxy tilbyr muligheten til å fange opp både HTTP- og HTTPS-forespørsler og -svar, noe som muliggjør dynamiske modifikasjoner i sanntid. Brukere kan lagre hele HTTP-samtaler for senere avspilling og grundig analyse. Verktøyet støtter også avspilling av klientsiden av en HTTP-samtale og kan reprodusere HTTP-svar fra en tidligere innspilt server. I tillegg har mitmproxy en omvendt proxy-modus for å videresende trafikk til en server.
På macOS og Linux tilbyr den en transparent proxy-modus. For skriptede endringer i HTTP-trafikk støtter mitmproxy Python, slik at brukere kan gjøre tilpassede endringer. I tillegg genereres SSL/TLS-sertifikater for avlytting underveis, noe som forbedrer verktøyets fleksibilitet og tilpasningsevne til ulike sikkerhetsscenarier. Kildekoden finnes på GitHub Repository .

Mitmweb fungerer som mitmproxys nettbaserte brukergrensesnitt, og tilbyr en interaktiv plattform for undersøkelse og modifisering av HTTP-trafikk. Mitmweb skiller seg fra mitmdump og beholder alle flyter i minnet, noe som gjør det godt egnet for fangst og manipulering av prøver.
Mitmdump fungerer som kommandolinjemotparten til mitmproxy, og tilbyr tcpdump-lignende funksjonalitet. Dette verktøyet lar deg observere, registrere og programmatisk endre HTTP-trafikk. For omfattende dokumentasjon, se utdataene fra --help-flagget.
Slik installerer du mitmproxy på macOS
Den foretrukne metoden for å installere mitmproxy på macOS er gjennom Homebrew. Alternativt kan frittstående binærfiler av mitmproxy for macOS lastes ned fra det offisielle nettstedet mitmproxy.org. Vær oppmerksom på at Rosetta kreves for Apple Silicon.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install mitmproxy