
macOS/iOS 기기(탈옥 여부 무관)에서 복호화된 HTTP/HTTPS 트래픽을 스니핑하기 위한 간단한 유틸리티
Apple의 그다지 잘 문서화되지 않은 API 중 하나에 의해 기록된 HTTP/HTTPS 복호화 트래픽을 스니핑하기 위한 간단한 순수 파이썬 유틸리티입니다.
python3 -m pip install -U harlogger
이 방식은 Apple의 CFNetwork 프로파일에 적용됩니다. 이 프로파일은 CFNetwork 프레임워크를 사용하는 프로세스를 디버깅하기 위한 것입니다. 이 방식은 요청/응답 본문을 포함하지 않습니다.
Apple의 macOS용 CFNetwork 프로파일을 다운로드합니다:
더블클릭하여 설치합니다
끝입니다! :) 이제 다음 명령으로 모든 것을 스니핑할 수 있습니다:
python3 -m harlogger profile
이 방식은 Apple의 CFNetwork 프로파일에 적용됩니다. 이 프로파일은 CFNetwork 프레임워크를 사용하는 프로세스를 디버깅하기 위한 것입니다. 이 방식은 요청/응답 본문을 포함하지 않습니다.
Apple의 iOS용 CFNetwork 프로파일을 다운로드합니다:
원하는 방법으로 설치합니다. 저는 pymobiledevice3를 사용합니다:
# if you don't already have it
python3 -m pip install -U pymobiledevice3
# install the profile
pymobiledevice3 profile install CFNetworkDiagnostics.mobileconfig
끝입니다! :) 이제 다음 명령으로 모든 것을 스니핑할 수 있습니다:
python3 -m harlogger mobile profile
출력은 다음과 같아야 합니다:
➜ 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: *
iOS 14.x 기기에는 CFNetwork 프레임워크를 사용하는 모든 프로세스의 복호화된 HTTP/HTTPS 트래픽을 HAR 형식으로 스니핑하는 숨겨진 기능이 포함되어 있습니다. 탈옥된 기기에서 이 기능을 활성화하려면 com.apple.CFNetwork에 대한 올바른 환경설정을 배치하고 com.apple.CFNetwork.har-capture-update 알림을 트리거하기만 하면 됩니다.
이 방법은 요청/응답 본문도 포함합니다.
iOS 13.x 이하에는 이 기능이 없습니다.
/var/mobile/Library/Preferences/ 안에 넣습니다python3 -m harlogger preference
출력은 다음과 같아야 합니다:
➜ 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>
iOS 15.0부터 기기는 대상 프로세스에 다음 요구 사항 중 하나를 충족할 것을 요구합니다:
com.apple.private.cfnetwork.har-capture-delegation 엔타이틀먼트get-task-allow 엔타이틀먼트com.apple.security.get-task-allow 엔타이틀먼트debug 모드일 것기기에서 HAR 로깅을 활성화하려면 다음과 같이
pymobiledevice3를 사용할 수 있습니다:
python3 -m pymobiledevice3 developer dvt har
이제 preference 메서드를 사용하여 스니핑을 시작할 수 있습니다:
python3 -m harlogger preference