mitmproxy reverse engineering værktøjskasse til apps API på iOS

mitmproxy, udviklet af Mitmproxy Project, er en kraftfuld og interaktiv opsnappende proxy, der understøtter SSL/TLS og leverer en konsolgrænseflade til håndtering af HTTP/1-, HTTP/2- og WebSocket-trafik. Dette værktøj er især nyttigt til at indsamle og analysere alle data, der udveksles mellem din iOS-enhed og eksterne servere, hvilket gør det til en uvurderlig ressource til reverse engineering af private API'er i applikationer.
Key Takeaways
- mitmproxy understøtter ikke kun HTTP, HTTP/2, HTTP/3, men også andre webprotokoller såsom WebSocket, DNS, Generic TCP/TLS Proxy og Generic UDP/DTLS Proxy.
- Python API giver dig mulighed for at skrive tilføjelser og scripts med API, der tilbyder fuld kontrol over mitmproxy og gør det muligt at implementere dine egne kommandoer.
- Et af hovedformålene med mitmproxy er muligheden for at reverse engineere iOS-apps private API med kryptering via Man In the Middle (MITM)-angreb.
- mitmproxy er et kommandolinjeværktøj, ledsaget af mitmweb, som giver en intuitiv webgrænseflade svarende til Chromes DevTools til at overvåge netværkstrafik.
Download
mitmproxy kan installeres på alle populære desktopplatforme, herunder Windows, Linux og macOS. Til de to første kan du bruge et dedikeret installationsprogram. Det anbefales at installere mitmproxy til macOS via The Missing Package Manager til macOS – brew.
Oversigt
Mitmproxy fungerer som en omfattende værktøjskasse til reverse engineering af API'erne i applikationer, der kører på iOS-enheder. Den består af tre nøglemoduler: mitmproxy, mitmdump og mitmweb. Mitmdump-modulet fungerer som kommandolinjemodstykket til mitmproxy, sammenlignet med tcpdump for HTTP. Samtidig tilbyder mitmweb en brugervenlig webbaseret grænseflade til problemfri interaktion med mitmproxys funktioner.
En af de vigtigste fordele ved mitmproxy er dens evne til at generere et root SSL-certifikat, der kan installeres på din iPhone-enhed. Denne unikke funktion giver dig mulighed for at dekryptere HTTPS-kommunikation, hvilket muliggør en omfattende analyse af alle appforbindelser til servere.
Denne gennemsigtighed er især fordelagtig for reverse engineering af private API'er, da det letter en dyb forståelse af de underliggende kommunikationsprotokoller. Derudover kan mitmproxy bruges til at afdække de specifikke private data, der transmitteres af appen til eksterne servere, såsom GPS-placering, enhedstype, iOS-version og mere.

En anden bemærkelsesværdig funktion ved mitmproxy er dens evne til at opfange og ændre anmodninger, før de sendes eller modtages af serveren. Denne funktionalitet er især værdifuld i forbindelse med sikkerhedspenetrationstest, da den giver brugerne mulighed for at indsætte brugerdefineret kode i anmodningerne. Denne dynamiske ændring af anmodninger giver et praktisk middel til at vurdere systemets modstandsdygtighed over for forskellige sikkerhedssårbarheder og hjælper med at identificere potentielle svagheder, der kan udnyttes. mitmproxys fleksibilitet i at ændre anmodninger øger dens anvendelighed som et kraftfuldt værktøj i sikkerhedsprofessionelles og forskeres arsenal.
Mitmproxy spillede en afgørende rolle som et af de primære værktøjer, der blev anvendt af Kaspersky Security Researchers under Operation Triangulation . Dets funktioner var afgørende for at dekryptere HTTPS-trafik, hvilket gjorde det muligt for forskerne at spore og analysere den selvinstallerende Messages-malware på iOS-enheder, der var designet til at overtage iDevice uden at efterlade spor.
Info: mitmproxy understøtter Windows-, macOS-, Linux-, iOS- og Android-enheder.
Derudover muliggør mitmproxy overvågning og ændring af anmodninger i realtid , hvilket muliggør dynamiske justeringer undervejs under opfangningsprocessen. Det er dog værd at bemærke, at installationen af et rod-SSL-certifikat ikke giver mulighed for at opfange HTTPS-trafik fra Apple-tjenester, herunder iMessage. Denne begrænsning opstår, fordi iOS implementerer SSL-pinning for forbedrede sikkerhedsforanstaltninger.
Nyheder
- Tilføj understøttelse af redigering af ikke-tekstfiler i en hex-editor.
- Tilføj server_connect_error hook, der udløses, når forbindelsesoprettelse mislykkes.
- Tilføj sektion i mitmweb til gengivelse, tilføjelse og fjernelse af en kommentar.
- Ret ubrugelig visning af flerdelt formularindhold.
- Dokumentationsforbedringer af CA-certifikatgenerering.
- Gør det muligt at læse flows fra stdin med mitmweb.
- Opdater aioquic-afhængighed til >= 1.0.0, < 2.0.0.
- Ret en fejl, hvor async client_connected handlers ville få mitmproxy til at gå ned.
- Tilføj knap til at lukke flowdetaljepanelet.
- Ignorer SIGPIPE-signaler, når der er meget trafik. Socket-fejl håndteres direkte og kræver ikke ekstra signaler, der genererer støj.
- Tilføj primitiv websocket-aflytning og -ændring.
- Tilføj understøttelse af eksport af websocket-meddelelser, når du bruger
Mitmproxy tilbyder muligheden for at opfange både HTTP- og HTTPS-anmodninger og -svar, hvilket muliggør dynamiske ændringer i realtid. Brugere kan gemme hele HTTP-samtaler til efterfølgende afspilning og dybdegående analyse. Værktøjet understøtter også afspilning af klientsiden af en HTTP-samtale og kan reproducere HTTP-svar fra en tidligere optaget server. Derudover har mitmproxy en reverse proxy-tilstand til at videresende trafik til en server.
På macOS og Linux tilbyder den en transparent proxy-tilstand. Til scriptede ændringer af HTTP-trafik understøtter mitmproxy Python, hvilket giver brugerne mulighed for at foretage brugerdefinerede ændringer. Derudover genereres SSL/TLS-certifikater til aflytning undervejs, hvilket forbedrer værktøjets fleksibilitet og tilpasningsevne til forskellige sikkerhedsscenarier. Kildekoden kan findes på GitHub Repository .

Mitmweb fungerer som mitmproxys webbaserede brugergrænseflade og leverer en interaktiv platform til undersøgelse og ændring af HTTP-trafik. Mitmweb adskiller sig fra mitmdump ved at gemme alle flows i hukommelsen, hvilket gør det velegnet til indsamling og manipulation af prøver.
Mitmdump fungerer som kommandolinjemodstykket til mitmproxy og tilbyder tcpdump-lignende funktionalitet. Dette værktøj gør det muligt at observere, registrere og programmatisk ændre HTTP-trafik. For omfattende dokumentation henvises til outputtet fra --help-flaget.
Sådan installeres mitmproxy på macOS
Den foretrukne metode til at installere mitmproxy på macOS er via Homebrew. Alternativt kan separate binære filer af mitmproxy til macOS downloades fra den officielle mitmproxy.org-hjemmeside. Bemærk venligst, at Rosetta er påkrævet til Apple Silicon.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install mitmproxy