HTTP/HTTPS 트래픽을 스니핑하는 데 어떤 도구를 사용할 수 있나요?

HTTP/HTTPS 트래픽을 스니핑하는 데 어떤 도구를 사용할 수 있나요?

저는 HTTP/HTTPS 요청을 가로채고, (콘텐츠, 대상 등) 정보를 추출하고, 다양한 분석 작업을 수행하고, 궁극적으로 요청을 제거해야 하는지 여부를 결정할 수 있는 명령줄 도구를 찾고 있습니다. 법적 요청은 애플리케이션으로 전달되어야 합니다.

본질적으로 유사한 도구tcpdump,와이어샤크, 또는호흡이지만 HTTP 수준에서 작동합니다.

인용하다

답변1

노력하다미트프로시.

  • mitmproxy는 SSL을 지원하는 HTTP 중간자 프록시입니다. 트래픽을 동적으로 검사하고 편집할 수 있는 콘솔 인터페이스를 제공합니다.

  • mitmdump는 mitmproxy의 명령줄 버전으로, 기능은 동일하지만 사용자 인터페이스가 없습니다. HTTP용 tcpdump를 생각해 보세요.

특징

  • HTTP 요청과 응답을 가로채서 즉시 수정합니다.
  • 나중에 재생하고 분석할 수 있도록 전체 HTTP 대화를 저장하세요.
  • HTTP 세션을 재생하기 위한 클라이언트입니다.
  • 서버에서 이전에 기록된 HTTP 응답을 재생합니다.
  • 역방향 프록시 모드는 트래픽을 지정된 서버로 전달합니다.
  • Python을 사용하여 HTTP 트래픽에 대한 스크립트 변경을 수행합니다.
  • 차단에 사용되는 SSL 인증서는 동적으로 생성됩니다.

스크린샷

   스테인레스 스틸 샘플

예시를 세웠어요지킬 부트로더애플리케이션이 내 로컬 호스트의 포트 4000에서 수신 대기 중입니다. 트래픽을 가로채기 위해 다음을 수행합니다.

% mitmproxy --mode reverse:http://localhost:4000 -p 4001

그런 다음 내 웹 브라우저( )에서 포트 4001의 mitmproxy에 연결하면 http://localhost:4001결과는 mitmproxy입니다.

   mitmproxy의 ss 및 JB #1

그런 다음 결과를 선택하여 해당 GET결과와 관련된 헤더 정보를 볼 수 있습니다 GET.

   mitmproxy의 ss 및 JB #2

인용하다

답변2

mitmproxy/mitmdump

tcpdumpHTTPS에 해당하는 것은 mitmdump. 다음과 같이 진행하세요:

  1. 설치 mitmproxy패키지(macOS brew install mitmproxy: ).
  2. 설치하다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.
    

이제 역방향 프록시를 테스트하는 방법에 대한 간단한 테스트는 다음과 같습니다.

  1. 달리기: mitmdump --mode reverse:https://example.com/ -p 4433.
  2. 다른 셸에서 다음을 실행합니다 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 트래픽을 볼 수 있는 애플리케이션(GUI)입니다.

답변3

어떤 경우에는 들어오는 HTTP 요청을 수락하고 나가는 HTTPS 요청을 만드는 프록시를 사용할 수 있습니다. 예를 들어, github.com 간의 트래픽을 캡처하고 싶습니다 git. 나는 사용했다미트프로시:

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

이제 wiresharkListen on을 사용하면 localhost일반 트래픽을 캡처할 수 있습니다. 프록시가 없으면 github은 gitHTTPS를 사용하도록 리디렉션됩니다.

관련 정보