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.