HTTP / HTTPS 요청을 가로 채고 다음과 같은 정보를 추출하고 (콘텐츠, 대상 등) 다양한 분석 작업을 수행하고 마지막으로 요청을 삭제할지 여부를 결정할 수있는 명령 줄 도구를 찾고 있습니다. 법적 요청은 신청서로 전달되어야합니다.
본질적으로 tcpdump
, Wireshark 또는 Snort 와 비슷하지만 HTTP 레벨에서 작동 하는 도구입니다 .
참고 문헌
답변
mitmproxy를 사용해보십시오 .
-
mitmproxy는 SSL을 지원하는 HTTP 용 중간자 프록시입니다. 트래픽 흐름을 즉시 검사하고 편집 할 수있는 콘솔 인터페이스를 제공합니다.
-
mitmdump는 기능은 동일하지만 사용자 인터페이스는없는 mitmproxy의 명령 행 버전입니다. tcpdump를 HTTP로 생각하십시오.
풍모
- HTTP 요청 및 응답을 가로 채고 즉시 수정하십시오.
- 나중에 재생하고 분석 할 수 있도록 완전한 HTTP 대화를 저장하십시오.
- HTTP 대화의 클라이언트 측을 재생하십시오.
- 이전에 기록 된 서버의 HTTP 응답을 재생합니다.
- 트래픽을 지정된 서버로 전달하려면 프록시 모드를 반전시킵니다.
- Python을 사용하여 HTTP 트래픽을 스크립트로 변경하십시오.
- 차단을위한 SSL 인증서는 즉시 생성됩니다.
스크린 샷
예
로컬 호스트의 포트 4000에서 수신 대기하는 Jekyll Bootstrap 앱 의 예를 설정했습니다 . 트래픽을 가로 채려면 다음을 수행하십시오.
% mitmproxy --mode reverse:http://localhost:4000 -p 4001
그런 다음 웹 브라우저 ( http://localhost:4001
) 에서 포트 4001의 내 mitmproxy에 연결하면 다음 과 같은 결과가 나타납니다.
그런 다음 GET
결과를 선택 하여 해당 헤더 정보를 볼 수 있습니다 GET
.
참고 문헌
답변
상황에 따라 들어오는 HTTP 요청을 수락하고 나가는 HTTPS 요청을하는 프록시를 사용할 수 있습니다. 예를 들어, git
github.com 간의 트래픽을 캡처하고 싶었 습니다. 나는 mitmproxy를 사용 했다 :
mitmproxy -s httpser.py
어디에 httpser.py
:
def request(context, flow):
flow.request.scheme = 'https'
flow.request.port = 443
나는 다음 git
과 같이 달렸다 .
export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr
이제 wireshark
청취를 사용 localhost
하여 일반 트래픽을 캡처 할 수 있습니다. 프록시가 없으면 github은 git
HTTPS를 사용하도록 리디렉션 합니다.
답변
mitmproxy
/mitmdump
에 Equalivant tcpdump
HTTPS이기 때문이다 mitmdump
. 단계는 다음과 같습니다.
mitmproxy
패키지를 설치하십시오 (macOS 🙂brew install mitmproxy
.-
다음 명령으로 mitmproxy CA 인증서 를 설치 하십시오 .
$ mitmdump --mode reverse:http://mitm.it/ -p 8080 $ wget --content-disposition http://localhost:8080/cert/pem $ open mitmproxy-ca-cert.pem # Open, install and mark the certificate as trusted.
다음은 리버스 프록시를 테스트하는 방법에 대한 간단한 테스트입니다.
- 다음을 실행하십시오
mitmdump --mode reverse:https://example.com/ -p 4433
. -
다른 쉘에서 다음을 실행하십시오
curl https://localhost:4433
..이제 페이지 소스를보고
mitmdump
명령은 다음과 같은 출력을 생성해야합니다.Proxy server listening at http://*:4433 [::1]:49446: clientconnect [::1]:49446: GET https://example.com/ HTTP/2.0 << 200 1.24k [::1]:49446: clientdisconnect
모든 트래픽에 대해 다음을 실행하십시오. mitmdump
또는 mitmproxy
.
자세한 내용은 mitmproxy
문서 페이지 를 참조하십시오.
찰스 프록시
macOS 를 사용하는 경우 호스트 간의 모든 HTTP 및 SSL / HTTPS 트래픽을 볼 수있는 Charles 프록시 앱 (GUI)도 있습니다.