HTTP / HTTPS trafiğini koklamak için hangi aracı kullanabilirim?


23

HTTP / HTTPS isteklerini engelleyebilen, aşağıdaki gibi bilgileri (içerik, hedef vb.) Çıkarabilen, çeşitli analiz görevlerini gerçekleştirebilen ve sonunda isteğin bırakılıp bırakılmayacağını belirleyebilecek bir komut satırı aracı arıyorum. Yasal istekler, başvuruya iletilmek yerine gönderilmelidir.

Doğada tcpdump, Wireshark veya Snort'a benzeyen ancak HTTP düzeyinde çalışan bir araç.

Referanslar

Yanıtlar:


20

Mitmproxy'yi deneyin .

  • mitmproxy, HTTP için bir SSL yetenekli erkekte orta proxy'dir. Trafik akışlarının anında denetlenmesini ve düzenlenmesini sağlayan bir konsol arayüzü sunar.

  • mitmdump, aynı işlevselliğe sahip olan ancak kullanıcı arayüzü olmayan mitmproxy'nin komut satırı sürümüdür. HTTP için tcpdump'ı düşünün.

Özellikler

  • HTTP isteklerini ve yanıtlarını durdurun ve anında değiştirin.
  • Daha sonra tekrarlama ve analiz için eksiksiz HTTP konuşmalarını kaydedin.
  • Bir HTTP görüşmesinin istemci tarafını tekrar oynatın.
  • Önceden kaydedilmiş bir sunucunun HTTP yanıtlarını tekrarlayın.
  • Trafiği belirtilen bir sunucuya iletmek için proxy modunu ters çevirin.
  • Python'u kullanarak HTTP trafiğinde kodlanmış değişiklikler yapın.
  • Anında müdahale için SSL sertifikaları oluşturulur.

Ekran görüntüsü

   örnek ss

Örnek

Yerel ana bilgisayarımdaki bağlantı noktası 4000'i dinleyen bir Jekyll Bootstrap uygulaması örneği hazırlıyorum . Bu trafiği engellemek için aşağıdakileri yaparım:

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

Sonra web tarayıcımdan ( http://localhost:4001) bağlantı noktası 4001'deki mitmproxy'ime bağlanın;

   mitmproksi s / JB # 1 ile

Daha sonra GETbununla ilişkili başlık bilgisini görmek için sonuçlardan herhangi birini seçebilirsiniz GET:

   mitmproxy s / JB # 2 ile birlikte

Referanslar


3

Bazı durumlarda, gelen HTTP isteklerini kabul eden ve giden HTTPS isteklerini yapan bir proxy kullanabilirsiniz. Örnek olarak, gitve github.com arasındaki trafiği yakalamak istedim . Mitmproksi kullandım :

mitmproxy -s httpser.py

nerede httpser.py:

def request(context, flow):
  flow.request.scheme = 'https'
  flow.request.port = 443

Sonra gitböyle koştum :

export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr

Şimdi wiresharkdinlemeyi kullanarak localhost, düz trafiği yakalayabilirsiniz. Proxy olmadan, github gitHTTPS kullanmaya yönlendirirdi .


2

mitmproxy/mitmdump

İçin Equalivant tcpdumpHTTPS olduğu için mitmdump. İşte adımlar:

  1. mitmproxyPaketi kurun (macOS:) brew install mitmproxy.
  2. Mitmproxy CA sertifikasını aşağıdaki komutlarla yükleyin :

    $ 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.
    

Şimdi, ters proxy'nin nasıl test edileceğine dair basit bir test:

  1. Çalıştırın: mitmdump --mode reverse:https://example.com/ -p 4433.
  2. Başka bir kabukta: çalıştırın curl https://localhost:4433.

    Şimdi, sayfa kaynağını görmelisiniz ve mitmdumpkomut aşağıdaki gibi çıktı vermelidir:

    Proxy server listening at http://*:4433
    [::1]:49446: clientconnect
    [::1]:49446: GET https://example.com/ HTTP/2.0
              << 200  1.24k
    [::1]:49446: clientdisconnect
    

Tüm trafik için, sadece çalıştırın: mitmdumpveya mitmproxy.

Daha fazla bilgi için bakınız: mitmproxydocs sayfası .


Charles Proxy

MacOS'taysanız, ana bilgisayarlar arasındaki tüm HTTP ve SSL / HTTPS trafiğini görüntülemenizi sağlayan Charles Proxy uygulaması (GUI) da vardır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.