
Utilidad simple para olfatear tráfico HTTP/HTTPS descifrado en un dispositivo macOS/iOS (ya sea con jailbreak o no)
Sencilla utilidad en python puro para olfatear tráfico HTTP/HTTPS descifrado registrado por una de las APIs de Apple no tan bien documentadas.
python3 -m pip install -U harlogger
Este método se aplica al perfil CFNetwork de Apple. Este perfil está pensado para depurar procesos que utilizan el framework CFNetwork. Este método no incluye el cuerpo de la petición/respuesta.
Descarga el perfil CFNetwork para macOS de Apple:
Instálalo haciendo doble clic
¡Eso es todo! :) Ahora puedes empezar a capturar todo usando:
python3 -m harlogger profile
Este método se aplica al perfil CFNetwork de Apple. Este perfil está pensado para depurar procesos que utilizan el framework CFNetwork. Este método no incluye el cuerpo de la petición/respuesta.
Descarga el perfil CFNetwork para iOS de Apple:
Instálalo de la forma que prefieras. Yo estoy usando pymobiledevice3:
# if you don't already have it
python3 -m pip install -U pymobiledevice3
# install the profile
pymobiledevice3 profile install CFNetworkDiagnostics.mobileconfig
¡Eso es todo! :) Ahora puedes empezar a capturar todo usando:
python3 -m harlogger mobile profile
La salida debería verse así:
➜ harlogger git:(master) ✗ python3 -m harlogger profile
➡️️ POST https://www.bing.com/fd/ls/lsp.aspx HTTP/1.1
Accept: */*
Content-Type: text/xml
Origin: https://www.bing.com
Accept-Encoding: gzip, deflate, br
Cookie: SRCHHPGUSR=CW=414&CH=622&SW=414&SH=736&DPR=3&UTC=180&DM=1&SRCHLANG=en&HV=1634801804; _HPVN=CS=eyJQbiI6eyJDbiI6MiwiU3QiOjAsIlFzIjowLCJQcm9kIjoiUCJ9LCJTYyI6eyJDbiI6MiwiU3QiOjAsIlFzIjowLCJQcm9kIjoiSCJ9LCJReiI6eyJDbiI6MiwiU3QiOjAsIlFzIjowLCJQcm9kIjoiVCJ9LCJBcCI6dHJ1ZSwiTXV0ZSI6dHJ1ZSwiTGFkIjoiMjAyMS0xMC0yMVQwMDowMDowMFoiLCJJb3RkIjowLCJEZnQiOm51bGwsIk12cyI6MCwiRmx0IjowLCJJbXAiOjEwfQ==; SUID=M; _EDGE_S=SID=1BF42681120765EF1EA73656137A640E; _SS=SID=1BF42681120765EF1EA73656137A640E; MUID=1B0D347B85756FDD055524B284086E36; SRCHD=AF=NOFORM; SRCHUID=V=2&GUID=5B989717430E450D9314C927C97602C9&dmnchg=1; SRCHUSR=DOB=20211007; _EDGE_V=1; MUIDB=1B0D347B85756FDD055524B284086E36
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1
Referer: https://www.bing.com/
Content-Length: 458
Accept-Language: en-us
⬅️ HTTP/2.0 204 (request POST https://www.bing.com/fd/ls/lsp.aspx HTTP/1.1)
x-msedge-ref: Ref A: E5B5AE34FBA148E6BDFFBF421B940462 Ref B: VIEEDGE1816 Ref C: 2021-10-21T07:36:44Z
Date: Thu, 21 Oct 2021 07:36:44 GMT
x-cache: CONFIG_NOCACHE
Access-Control-Allow-Origin: *
Los dispositivos iOS 14.x contienen una función oculta para capturar el tráfico HTTP/HTTPS descifrado de todos los procesos que utilizan el framework CFNetwork en un formato HAR
Para activar esta función en un dispositivo con jailbreak, basta con colocar la configuración correcta
para com.apple.CFNetwork y activar la notificación com.apple.CFNetwork.har-capture-update.
Este método incluye también el cuerpo de la solicitud/respuesta.
iOS 13.x o inferior no dispone de esta función.
/var/mobile/Library/Preferences/python3 -m harlogger preference
La salida debería verse así:
➜ harlogger git:(master) ✗ python3 -m harlogger mobile preference
➡️ CFNetwork(1140) POST https://www.bing.com/fd/ls/lsp.aspx
POST /fd/ls/lsp.aspx HTTP/2.0
Accept: */*
Content-Type: text/plain
Origin: https://www.bing.com
Cache-Control: max-age=0
Content-Length: 472
Accept-Language: en-us
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1
Accept-Encoding: gzip, deflate, br
Referer: https://www.bing.com/
⬅️ CFNetwork(1140) 0
➡️ CFNetwork(1140) POST https://www.bing.com/fd/ls/lsp.aspx
POST /fd/ls/lsp.aspx HTTP/2.0
Accept: */*
Content-Type: text/xml
Origin: https://www.bing.com
Content-Length: 378
Accept-Language: en-us
Host: www.bing.com
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 14_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1 Mobile/15E148 Safari/604.1
Referer: https://www.bing.com/
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
<ClientInstRequest><Events><E><T>Event.ClientInst</T><IG>EB94C422BC394F90A876D39A790BECBC</IG><TS>1634801882467</TS><D><![CDATA[[{"T":"CI.BoxModel","FID":"CI","Name":"v2.8","SV":"4","P":{"C":1,"N":5,"I":"5iv","S":"V","M":"V+L+M+MT+E+N+C+K+BD","T":1669960,"F":0},"V":"zrpx/////////visible/+zryw/////////hidden/@p"}]]]></D></E></Events><STS>1634801882467</STS></ClientInstRequest>
A partir de iOS 15.0, el dispositivo requerirá que el proceso objetivo cumpla con cualquiera de los siguientes requisitos:
com.apple.private.cfnetwork.har-capture-delegationget-task-allowcom.apple.security.get-task-allowdebugPara que el dispositivo habilite el registro HAR, puedes
usar pymobiledevice3 de la siguiente manera:
python3 -m pymobiledevice3 developer dvt har
Ahora puedes comenzar a olfatear usando el método de preferencia:
python3 -m harlogger preference