Python如何使用scapy发送gtp数据包。我尝试转换gtp消息的现有十六进制流,但无法正确创建它

时间:2017-08-29 07:46:33

标签: python scapy telecommunication

Python如何使用scapy发送gtp数据包。我尝试转换gtp消息的现有十六进制流,但无法正确创建它。 有一些链接,但没有ans就在上面。 scapy not parsing GTP layers

1 个答案:

答案 0 :(得分:0)

快速举例试过, 第一个十六进制流如下

000c29dad1de000c29e3c64d08004500007c00004000401167bbc0a828b3c0a828b2086808680068bf6432ff00580000000128db0000450000540000400040015ea5ca0b289ec0a828b20800bee70000287b0411204bf43d0d0008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637

进入scapy交互模式并将上述十六进制流分配给变量

a = '000c29dad1de000c29e3c64d08004500007c00004000401167bbc0a828b3c0a828b2086808680068bf6432ff00580000000128db0000450000540000400040015ea5ca0b289ec0a828b20800bee70000287b0411204bf43d0d0008090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f3031323334353637'
b = a.decode('hex')
B = Ether(b)
B.show()
###[ Ethernet ]###
  dst= 00:0c:29:da:d1:de
  src= 00:0c:29:e3:c6:4d
  type= 0x800
###[ IP ]###
     version= 4L
     ihl= 5L
     tos= 0x0
     len= 124
     id= 0
     flags= DF
     frag= 0L
     ttl= 64
     proto= udp
     chksum= 0x67bb
     src= 192.168.40.179
     dst= 192.168.40.178
     \options\
###[ UDP ]###
        sport= 2152
        dport= 2152
        len= 104
        chksum= 0xbf64
###[ Raw ]###
           load= '2\xff\x00X\x00\x00\x00\x01(\xdb\x00\x00E\x00\x00T\x00\x00@\x00@\x01^\xa5\xca\x0b(\x9e\xc0\xa8(\xb2\x08\x00\xbe\xe7\x00\x00({\x04\x11 K\xf4=\r\x00\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./01234567'

这里scapy没有剖析并显示GPRS,但我们仍然可以发出,即windows nc

send(B, iface='Intel(R) Dual Band Wireless-N 7260')

所以用接口发出的数据包,由wireshark显示为 enter image description here