Python 如何将原始零件从pcap文件转换为正常格式? pkts[0].show() ###[以太网]### dst=00:00:5e:00:01:32 src=00:01:d7:ea:ec:45 类型=IPv4 ###[知识产权]### 版本=4L ihl=5L tos=0x0 len=523 id=56882 标志=DF frag=0升 ttl=255 proto=udp chksum=0x8738 src=221.131.232.12 dst=10.212.68.18 \选择权\ ###[UDP]### 运动=半径 dport=半径\帐户 len=503 chksum=0xdda4 ###[原始]### load='\x04\x01\xefna\r\xa5\xb0w\x05\xbaU]t\x9a9k\x1c
更新Python 如何将原始零件从pcap文件转换为正常格式? pkts[0].show() ###[以太网]### dst=00:00:5e:00:01:32 src=00:01:d7:ea:ec:45 类型=IPv4 ###[知识产权]### 版本=4L ihl=5L tos=0x0 len=523 id=56882 标志=DF frag=0升 ttl=255 proto=udp chksum=0x8738 src=221.131.232.12 dst=10.212.68.18 \选择权\ ###[UDP]### 运动=半径 dport=半径\帐户 len=503 chksum=0xdda4 ###[原始]### load='\x04\x01\xefna\r\xa5\xb0w\x05\xbaU]t\x9a9k\x1c,python,scapy,Python,Scapy,更新 Scapy直到目前为止,只有基本的桡骨层未注册到Scapy,用于基于桡骨端口的自动桡骨解剖。跳到最后,查看关于scapy的问题的原始答案。您是否确实知道原始部分中包含哪个协议?它应该是Radius协议。我得到了与您相同的输出,但我的请求是修改Radius pcap的“属性值对”。我想“加载”部分可能是相关的。现在我无法修改它,因为我真的不知道加载意味着什么,我想我应该首先将它转换为普通字符串。scapy的radius层没有解析radius属性(rfc2866,请参见[1]),因此它们将显示
Scapy直到目前为止,只有基本的桡骨层未注册到Scapy,用于基于桡骨端口的自动桡骨解剖。跳到最后,查看关于
scapy的问题的原始答案。您是否确实知道原始部分中包含哪个协议?它应该是Radius协议。我得到了与您相同的输出,但我的请求是修改Radius pcap的“属性值对”。我想“加载”部分可能是相关的。现在我无法修改它,因为我真的不知道加载意味着什么,我想我应该首先将它转换为普通字符串。scapy的radius层没有解析radius属性(rfc2866,请参见[1]),因此它们将显示为原始层。您可能必须自己实现这一点。[1] 伊恩,你可能应该接受这个答案(并投票表决),这对丁丁来说是件好事,也会帮助其他人看到你的问题。丁丁:也许你可以编辑你的答案,添加你评论的内容,因为它真的很有用谢谢你们两个!感谢@Pierre,最近发布的scapy 2.3.2随附了radius属性层,我对我的答案进行了更新。我还修复了指向官方scapy github回购协议的链接。这应该完全回答了这个问题。@tintin做得很好!我希望我能两次投票支持你的答案!
>>> pkts[0].show()
###[ Ethernet ]###
dst = 00:00:5e:00:01:32
src = 00:01:d7:ea:ec:45
type = IPv4
###[ IP ]###
version = 4L
ihl = 5L
tos = 0x0
len = 523
id = 56882
flags = DF
frag = 0L
ttl = 255
proto = udp
chksum = 0x8738
src = 221.131.232.12
dst = 10.212.68.18
\options \
###[ UDP ]###
sport = radius_acct
dport = radius_acct
len = 503
chksum = 0xdda4
###[ Raw ]###
load = '\x04;\x01\xefna\r\xa5\xb0w\x05\xbaU]t\x9a9k\x1c<\x01\x0fwzcna06629197\x05\x06\x01!e\x9f\x04\x06\xdd\x83\xe8\x0c\x08\x06\n\x9e\xfd\x9b\x0b\nnat-hsi1 \x1fZJWZH-MC-CMNET-BRAS12-CN_ME60(\x06\x00\x00\x00\x03)\x06\x00\x00\x00\x00*\x06$\x1d|o+\x06g\x88\xe3L,#ZJWZH-M01222175401439efd39c069285-\x06\x00\x00\x00\x01.\x06\x00\x03\xa0 /\x06\x00c\xbeC0\x06\x00\x9dq04\x06\x00\x00\x00\x005\x06\x00\x00\x00\x037\x06S\xbbGk=\x06\x00\x00\x00\x0f\x1f\x13c8:3a:35:4f:30:d8W4slot=1;subslot=2;port=22;vlanid=1439;vlanid2=1754;\x06\x06\x00\x00\x00\x02\x07\x06\x00\x00\x00\x013\x06\x00\x00\x00\x00\x1c\x06\x00\x00\x00\x00\x1b\x06\x00\t:\x80\x1a\xc1\x00\x00\x07\xdb<"10.158.253.155 c8:3a:35:4f:30:d8\x03\x06\x00@\x02\xb8\x02\x06\x00@\x02\xb8\x06\x06\x00@\x02\xb8\x05\x06\x00@\x02\xb8\x16\x06\x00\x00\x00\x0f\x1a\x06\x00\x01\x0e\xa5\x8a\x08nat444T\x06\x00\x00\x00\x00=\x06\x00\x00\x00\x0f>\x06\x00\x00\x00\x0f\x90\x06\x00\x00\x00\x00\x91\x06\x00\x00\x00\x00\x92\x06\x00\x00\x00\x00\x93\x06\x00\x00\x00\x00\x94\x06\x00\x00\x00\x00\x95\x06\x00\x00\x00\x00\x99\x13c8:3a:35:4f:30:d8\x9f\x06\x00\x00\x00\x00\x01\x06\x01@\x00\x00M\x06\x00_\xc2\x88\xa1\x06\xb7\xf5#]\xa2\x06\x00\x004\x00\xa3\x06\x00\x00C\xff'
pip install --upgrade scapy
Radius(data).show()
###[ Radius ]###
code= Accounting-Request
id= 59
len= 495
authenticator= 'na\r\xa5\xb0w\x05\xbaU]t\x9a9k\x1c<'
\attributes\
|###[ Radius Attribute ]###
| type= User-Name
| len= 15
| value= 'wzcna06629197'
|###[ Radius Attribute ]###
| type= NAS-Port
| len= 6
| value= '\x01!e\x9f'
|###[ Radius Attribute ]###
| type= NAS-IP-Address
| len= 6
| value= '\xdd\x83\xe8\x0c'
|###[ Radius Attribute ]###
| type= Framed-IP-Address
| len= 6
| value= '\n\x9e\xfd\x9b'
|###[ Radius Attribute ]###
| type= Filter-Id
| len= 10
| value= 'nat-hsi1'
|###[ Radius Attribute ]###
| type= NAS-Identifier
| len= 31
| value= 'ZJWZH-MC-CMNET-BRAS12-CN_ME60'
|###[ Radius Attribute ]###
| type= Acct-Status-Type
| len= 6
| value= '\x00\x00\x00\x03'
|###[ Radius Attribute ]###
| type= Acct-Delay-Time
| len= 6
| value= '\x00\x00\x00\x00'
|###[ Radius Attribute ]###
| type= Acct-Input-Octets
| len= 6
| value= '$\x1d|o'
|###[ Radius Attribute ]###
| type= Acct-Output-Octets
| len= 6
| value= 'g\x88\xe3L'
|###[ Radius Attribute ]###
| type= Acct-Session-Id
| len= 35
| value= 'ZJWZH-M01222175401439efd39c069285'
|###[ Radius Attribute ]###
| type= Acct-Authentic
| len= 6
| value= '\x00\x00\x00\x01'
|###[ Radius Attribute ]###
| type= Acct-Session-Time
| len= 6
| value= '\x00\x03\xa0 '
|###[ Radius Attribute ]###
| type= Acct-Input-Packets
| len= 6
| value= '\x00c\xbeC'
|###[ Radius Attribute ]###
| type= Acct-Output-Packets
| len= 6
| value= '\x00\x9dq0'
|###[ Radius Attribute ]###
| type= 52
| len= 6
| value= '\x00\x00\x00\x00'
|###[ Radius Attribute ]###
| type= 53
| len= 6
| value= '\x00\x00\x00\x03'
|###[ Radius Attribute ]###
| type= 55
| len= 6
| value= 'S\xbbGk'
|###[ Radius Attribute ]###
| type= NAS-Port-Type
| len= 6
| value= '\x00\x00\x00\x0f'
|###[ Radius Attribute ]###
| type= Calling-Station-Id
| len= 19
| value= 'c8:3a:35:4f:30:d8'
|###[ Radius Attribute ]###
| type= 87
| len= 52
| value= 'slot=1;subslot=2;port=22;vlanid=1439;vlanid2=1754;'
|###[ Radius Attribute ]###
| type= Service-Type
| len= 6
| value= '\x00\x00\x00\x02'
|###[ Radius Attribute ]###
| type= Framed-Protocol
| len= 6
| value= '\x00\x00\x00\x01'
|###[ Radius Attribute ]###
| type= Acct-Link-Count
| len= 6
| value= '\x00\x00\x00\x00'
|###[ Radius Attribute ]###
| type= Idle-Timeout
| len= 6
| value= '\x00\x00\x00\x00'
|###[ Radius Attribute ]###
| type= Session-Timeout
| len= 6
| value= '\x00\t:\x80'
|###[ Radius Attribute ]###
| type= Vendor-Specific
| len= 193
| value= '\x00\x00\x07\xdb<"10.158.253.155 c8:3a:35:4f:30:d8\x03\x06\x00@\x02\xb8\x02\x06\x00@\x02\xb8\x06\x06\x00@\x02\xb8\x05\x06\x00@\x02\xb8\x16\x06\x00\x00\x00\x0f\x1a\x06\x00\x01\x0e\xa5\x8a\x08nat444T\x06\x00\x00\x00\x00=\x06\x00\x00\x00\x0f>\x06\x00\x00\x00\x0f\x90\x06\x00\x00\x00\x00\x91\x06\x00\x00\x00\x00\x92\x06\x00\x00\x00\x00\x93\x06\x00\x00\x00\x00\x94\x06\x00\x00\x00\x00\x95\x06\x00\x00\x00\x00\x99\x13c8:3a:35:4f:30:d8\x9f\x06\x00\x00\x00\x00\x01\x06\x01@\x00\x00M\x06\x00_\xc2\x88\xa1\x06\xb7\xf5#]\xa2\x06\x00\x004\x00\xa3\x06\x00\x00C\xff'
radius-acct 1813/tcp radacct # Radius Accounting
radius-acct 1813/udp radacct
rad = Radius(pkts[0]['Raw'].load)
bind_layers(TCP, Radius, dport=1813)
bind_layers(UDP, Radius, dport=1813)
>>> Radius(pkts[0][Raw].load).show()
###[ Radius ]###
code= Accounting-Request
id= 59
len= 495
authenticator= 'na\r\xa5\xb0w\x05\xbaU]t\x9a9k\x1c<'
###[ Raw ]###
load= '\x01\x0fwzcna06629197\x05\x06\x01!e\x9f\x04\x06\xdd\x83\xe8\x0c\x08\x06\n\x9e\xfd\x9b\x0b\nnat-hsi1 \x1fZJWZH-MC-CMNET-BRAS12-CN_ME60(\x06\x00\x00\x00\x03)\x06\x00\x00\x00\x00*\x06$\x1d|o+\x06g\x88\xe3L,#ZJWZH-M01222175401439efd39c069285-\x06\x00\x00\x00\x01.\x06\x00\x03\xa0 /\x06\x00c\xbeC0\x06\x00\x9dq04\x06\x00\x00\x00\x005\x06\x00\x00\x00\x037\x06S\xbbGk=\x06\x00\x00\x00\x0f\x1f\x13c8:3a:35:4f:30:d8W4slot=1;subslot=2;port=22;vlanid=1439;vlanid2=1754;\x06\x06\x00\x00\x00\x02\x07\x06\x00\x00\x00\x013\x06\x00\x00\x00\x00\x1c\x06\x00\x00\x00\x00\x1b\x06\x00\t:\x80\x1a\xc1\x00\x00\x07\xdb<"10.158.253.155 c8:3a:35:4f:30:d8\x03\x06\x00@\x02\xb8\x02\x06\x00@\x02\xb8\x06\x06\x00@\x02\xb8\x05\x06\x00@\x02\xb8\x16\x06\x00\x00\x00\x0f\x1a\x06\x00\x01\x0e\xa5\x8a\x08nat444T\x06\x00\x00\x00\x00=\x06\x00\x00\x00\x0f>\x06\x00\x00\x00\x0f\x90\x06\x00\x00\x00\x00\x91\x06\x00\x00\x00\x00\x92\x06\x00\x00\x00\x00\x93\x06\x00\x00\x00\x00\x94\x06\x00\x00\x00\x00\x95\x06\x00\x00\x00\x00\x99\x13c8:3a:35:4f:30:d8\x9f\x06\x00\x00\x00\x00\x01\x06\x01@\x00\x00M\x06\x00_\xc2\x88\xa1\x06\xb7\xf5#]\xa2\x06\x00\x004\x00\xa3\x06\x00\x00C\xff'