J'ai créé un simple python Script pour capturer la demande HTTP. J'ai capturé des demandes HTTP avec mon python Script.
Mais je ne peux pas capturer les demandes HTTPS. Je veux juste capturer des informations sur les URL.
J'ai utilisé scapy
à renifler. Par exemple:
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)
Donc, j'ai des questions sur renifler.
1-) Pourquoi je ne peux pas obtenir des demandes https?
Si j'utilise netstat
comme ceci:
netstat -ap | grep http
Je peux voir les demandes https
2-) Y a-t-il un moyen dans une autre langue de programmation?
Parce que j'essaie de loger les demandes HTTP.
Qu'est-ce que j'ai fait?
Que dois-je faire?
Devrais-je abandonner?
Le protocole HTTPS est crypté au-dessus de la couche d'application HTTP. C'est-à-dire que la demande d'obtention (URL complète) est cryptée dans l'en-tête HTTP et une application écouteuse sur le trafic réseau ne sera pas en mesure de déchiffrer le trafic.
Cela dit, vous pouvez enregistrer les adresses IP (en particulier celles connectées à des serveurs sur le port 443 - https) car la couche IP n'est pas cryptée avec HTTPS.
C'est ce que fait votre commande netstat. Il cherche TCP Connexions sur votre carte réseau et les notes qui se connectent au port 443 (protocole bien connu pour HTTPS) et observent l'adresse IP des serveurs HTTPS que vous connectez.
Je noter que si vous capturez le trafic de réseau crypté, il est possible de décrypter un tel trafic capturé si vous enregistrez la clé SSL de votre navigateur. Voir ici pour des instructions Comment Decrypt SSL Eavedroped trafic réseau avec WireShark lorsque vous enregistrez vos touches SSL; Vous devriez être capable de faire quelque chose de similaire avec Scapy.
Il existe plusieurs techniques que l'on peut utiliser pour renifler le trafic HTTPS. Il y a quelques semaines, j'ai écrit une application homme-intermédiaire avec asyncio
pour une visualisation facile du trafic de votre Internet (HTTP ou HTTPS). Vous pouvez trouver le projet ici; mitm
: https://github.com/synchronizing/mitm
En substance, si vous imaginez une connexion client normale ressemblant à:
client <-> server
mitm
crée une proxy man-in-the-intermédiaire qui sert de serveur pour le client, et comme le client pour le serveur:
client <-> mitm (server) <-> mitm (emulated client) <-> server
La fonction mitm (server)
et mitm (emulated client)
peut alors cracher les demandes qui se produisent entre le client
et le server
.