Mitmproxy – Programlanabilir Intercept Proxy Kullanımı

Bu yazı mitmproxy yazılımı hakkında kısa bir bilgi vermek için yazılmıştır.
Mitmproxy yazılımı aslında Burp Suite, Charles gibi yazılımların programlanabilir versiyonudur.

HTTP isteklerini araya girerek izleyebilir, engelleyebilir, modifiye edebilirsiniz. Bu tarz işlemleri burp eklentileriyle de yapmanız mümkün ama Mitmproxy bu iş için en iyi seçenektir. Mitmproxy ile yapılacak işlemleri basit bir python scripti yazarak gerçekleştirebilirsiniz.

Python için tek yapmanız gereken pip install mitmproxy ile gerekli paketleri kurmak. Aşağıdaki kod parçası host değiştirmeyi sağlamaktadır.
from mitmproxy import http

def request(flow: http.HTTPFlow):
    # redirect to different host
    if flow.request.pretty_host == "example.com":
        flow.request.host = "mitmproxy.org"
    # answer from proxy
    elif flow.request.path.endswith("/brew"):
     flow.response = http.HTTPResponse.make(
            418, b"I'm a teapot",
        )

Client connection from xxxxxxxx killed by block_global hatasıyla karşılaşırsanız, dışarıdan bağlanılanırken sıkıntı yaratmaması için –set block_global=false parametresini kullanabilirsiniz.

Çeşitli mitm-script’lerine şu repodan erişebilirsiniz:
https://github.com/KevCui/mitm-scripts

Mitmproxy HTTPS isteklerini işleyebilmek için gerekli olan sertifikaları /root/.mitmproxy dizini altında tutmaktadır burada bulunan 6 dosyayı kaydederek tekrar kurulum yaptığınızda sertifikaları cihazınıza tekrar tekrar kurmak zorunda kalmazsınız.

mitmproxy-ca-cert.cer dosyasını android telefonunuza yükleyerek HTTPS isteklerini inceleyebilirsiniz.