>>> 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'
上面的输出是从python scapy解析的,[Raw]部分是我关心的问题。我需要识别[原始]部分中的每个字段,然后对其进行修改,有人可以帮忙吗?谢谢!
最佳答案
更新
Scapy直到v2.3.1仅具有基本Radius层,这些基本Radius层未注册到Scapy中,无法根据半径端口自动进行半径解剖。跳到最后以参考scapy<=2.3.1
的方式获取此问题的原始答案。
Scapy v2.3.2带有“半径”和“半径属性”图层,这些图层绑定到半径端口以进行自动解剖。因此,请更新Scapy,然后重试。
pip install --upgrade scapy
这是使用此版本的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'
原始答案引用船长
Scapy带有基本的Radius图层,但似乎它们并未自动绑定到radius端口。这意味着您将必须a)手动剖析
[Raw]
图层作为Radius()
或b)将半径图层绑定到radius-acct
端口。radius-acct 1813/tcp radacct # Radius Accounting
radius-acct 1813/udp radacct
a)手动将
Raw
分解为Radius
rad = Radius(pkts[0]['Raw'].load)
b)将Radius层绑定到dst端口1813以进行自动解剖:
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'
关于python - 如何从pcap文件转换Raw零件为普通格式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34846817/