¿Hay alguna forma de capturar la solicitud HTTPS con Python?

1

Creé un script de Python simple para capturar la solicitud HTTP. Capturé solicitudes HTTP con mi script en python.

Pero no puedo capturar solicitudes HTTPS. Solo quiero capturar información sobre las URL.

Utilicé scapy para olfatear. Por ejemplo:

from scapy.all import IP, sniff
from scapy.layers import http

def tcp_ayikla(paket):
    if not paket.haslayer(http.HTTPRequest):
        return

    http_katmani = paket.getlayer(http.HTTPRequest)

    ip_katmani = paket.getlayer(IP)
    print '\n{0[src]} IP adresinden {1[Method]} {1[Host]}{1[Path]} sitesine ziyaret'.format(ip_katmani.fields, http_katmani.fields)

sniff(filter='tcp', prn=tcp_ayikla)

Por lo tanto, tengo preguntas sobre el olfateo.

1-) ¿Por qué no puedo recibir solicitudes HTTPS?

Si uso netstat de esta manera:

netstat -ap | grep http

Puedo ver las solicitudes HTTPS

2-) ¿Hay alguna otra forma en otros lenguajes de programación?

Porque estoy intentando registrar solicitudes HTTP.

¿Qué hice?

  • Intenté analizar la salida netstat con python. No quiero esto. Porque no es puro Python.
  • Lo intenté con scapy. No pude captar las solicitudes de HTTPS.
  • Intenté leer las informaciones de URL de SQLite. No quiero esta. Porque no se trata de red.

¿Qué debo hacer?

¿Debo rendirme?

    
pregunta Ali 21.07.2017 - 23:35
fuente

1 respuesta

4

El protocolo HTTPS está cifrado por encima de la capa de aplicación HTTP. Es decir, la solicitud GET (URL completa) está cifrada en el encabezado HTTP y una aplicación que escucha el tráfico de la red no podrá descifrar el tráfico.

Dicho esto, podría registrar las direcciones IP (especialmente aquellas conectadas a servidores en el puerto 443 - HTTPS) ya que la capa IP no está cifrada con HTTPS.

Esto es lo que hace tu comando netstat. Busca conexiones TCP en su tarjeta de red y anota cuáles se están conectando al puerto 443 (protocolo bien conocido para https) y observa la dirección IP de los servidores HTTPS a los que se está conectando.

Debo tener en cuenta que si captura tráfico de red cifrado, es posible descifrar dicho tráfico capturado si guarda la clave SSL desde su navegador. Consulte aquí las instrucciones sobre cómo descifrar el tráfico de la red de escuchas SSL con wireshark cuando registra sus claves SSL; deberías poder hacer algo similar con scapy.

    
respondido por el dr jimbob 22.07.2017 - 00:05
fuente

Lea otras preguntas en las etiquetas