2017-06-21 4 views
0

Ich versuche, einen Filter für Pakete, die HTTP-Daten enthalten, zu machen, aber ich habe keine Ahnung, wie dies zu tun ist.Verwenden von Scapy zu Fitler-HTTP-Paketen

I.E. Gibt es eine Möglichkeit, Pakete mit Scapy zu filtern, die nur HTTP sind?

Jede Hilfe wird geschätzt.

Antwort

1

Ja, es ist, mit der .haslayer Funktion und ein wenig Analyse:

methods=['GET','POST','HEAD','PUT','DELETE','CONNECT','OPTIONS','TRACE']#Define http methods 
s=sniff(1)#sniff one packet to parse you can put this in a loop 
a=[] 
a.append(s[0]) 
if a[0].haslayer(TCP):#Checks for TCP protocol 
if a[0].dport == 80:#Checks for http port 80 
    if a[0].haslayer(Raw):#Checks if packet has payload 
    r=a[0][0][Raw].load 
    for i in methods:#Checks if any of the http methods are present in load, if there are it prints to screen 
    if i in r: 
    print r 
1

Ja, Sie können. Sie können nach TCP-Port 80 filtern (jedes Paket prüfen oder BPF verwenden) und dann die TCP-Payload prüfen, um sicherzustellen, dass ein HTTP-Header vorhanden ist.