как вынюхать пакеты, изменить, а затем отправить - PullRequest
0 голосов
/ 29 августа 2018

Я хочу прослушать IP-пакеты, а затем изменить поле ToS на 1 и добавить параметры в заголовок IP, а затем отправить измененный пакет вместо исходного пакета. Я обнаружил, что можно сделать это с Scapy, но, кажется, не работает. кто-нибудь может мне помочь с этим?

from scapy.all import *
from scapy.layers.inet import IP

def chgSend(x):
    x[IP].tos = 1
    send(x)
while 1:
    sniff(filter="ip src host 10.0.0.2", prn=chgSend)

1 Ответ

0 голосов
/ 16 января 2019

Теперь я могу подменить IP-адрес и изменить поле ToS с помощью этого кода:

from scapy.all import *
from scapy.layers.inet import IP


def change_send(pckt):
    actual_src = pckt[IP].src
    pckt[IP].src = "192.168.1.5"
    pckt[IP].tos = 1
    sendp(pckt)
    print("We changed source from " + actual_src + " to " + pckt[IP].src)


while 1:
    sniff(filter="ip src host 192.168.1.2", prn=change_send)

Если вы не хотите менять IP-адрес источника, убедитесь, что вы не застряли в бесконечном цикле.

...