Как использовать scapy для отправки сообщения GTPv2? - PullRequest
0 голосов
/ 17 февраля 2020

Я использую scapy (https://github.com/secdev/scapy) для отправки сообщения эхо-запроса gtpv2, как показано ниже:

from scapy.contrib.gtp_v2 import GTPV2EchoRequest as GTPV2EchoRequest
from scapy.contrib.gtp_v2 import IE_RecoveryRestart as IE_RecoveryRestart
from scapy.contrib.gtp_v2 import GTPV2Command as GTPV2Command
ie = IE_RecoveryRestart(ietype='Recovery Restart', restart_counter=17, CR_flag=0, instance=0)
gtp = IP(src="10.64.13.28", dst="10.71.33.131")/UDP(sport=2123, dport=2123) / GTPHeader(seq=12345) / GTPV2EchoRequest() / GTPV2Command() / ie
ans, unans = sr1(gtp,timeout=2)

Но я вижу искаженный пакет на wireshark .:

wireshark-snapshot

Есть идеи, что мне здесь не хватает?

1 Ответ

0 голосов
/ 18 февраля 2020

Сработал следующий код:

from scapy.contrib.gtp_v2 import GTPHeader as GTPHeader
from scapy.contrib.gtp_v2 import GTPV2EchoRequest as GTPV2EchoRequest
from scapy.contrib.gtp_v2 import IE_RecoveryRestart as IE_RecoveryRestart
ie = IE_RecoveryRestart(ietype='Recovery Restart', length=1, restart_counter=17, CR_flag=0, instance=0)
gtp = Ether()/IP(dst="10.15.11.93")/UDP(sport=2123, dport=2123) / GTPHeader(seq=12345, length=9, P=0) / GTPV2EchoRequest(IE_list=[ie])
ans, unans = srp1(gtp,timeout=2,iface='eth0')
...