| 1 | radius_attribute_type = { |
|---|
| 2 | 1: "User-Name", |
|---|
| 3 | 2: "User-Password", |
|---|
| 4 | 3: "CHAP-Password", |
|---|
| 5 | 4: "NAS-IP-Address", |
|---|
| 6 | 5: "NAS-Port", |
|---|
| 7 | 6: "Service-Type", |
|---|
| 8 | 7: "Framed-Protocol", |
|---|
| 9 | 8: "Framed-IP-Address", |
|---|
| 10 | 9: "Framed-IP-Netmask", |
|---|
| 11 | 10: "Framed-Routing", |
|---|
| 12 | 11: "Filter-Id", |
|---|
| 13 | 12: "Framed-MTU", |
|---|
| 14 | 13: "Framed-Compression", |
|---|
| 15 | 14: "Login-IP-Host", |
|---|
| 16 | 15: "Login-Service", |
|---|
| 17 | 16: "Login-TCP-Port", |
|---|
| 18 | 17: "unassigned", |
|---|
| 19 | 18: "Reply-Message", |
|---|
| 20 | 19: "Callback-Number", |
|---|
| 21 | 20: "Callback-Id", |
|---|
| 22 | 21: "unassigned", |
|---|
| 23 | 22: "Framed-Route", |
|---|
| 24 | 23: "Framed-IPX-Network", |
|---|
| 25 | 24: "State", |
|---|
| 26 | 25: "Class", |
|---|
| 27 | 26: "Vendor-Specific", |
|---|
| 28 | 27: "Session-Timeout", |
|---|
| 29 | 28: "Idle-Timeout", |
|---|
| 30 | 29: "Termination-Action", |
|---|
| 31 | 30: "Called-Station-Id", |
|---|
| 32 | 31: "Calling-Station-Id", |
|---|
| 33 | 32: "NAS-Identifier", |
|---|
| 34 | 33: "Proxy-State", |
|---|
| 35 | 34: "Login-LAT-Service", |
|---|
| 36 | 35: "Login-LAT-Node", |
|---|
| 37 | 36: "Login-LAT-Group", |
|---|
| 38 | 37: "Framed-AppleTalk-Link", |
|---|
| 39 | 38: "Framed-AppleTalk-Network", |
|---|
| 40 | 39: "Framed-AppleTalk-Zone", |
|---|
| 41 | 60: "CHAP-Challenge", |
|---|
| 42 | 61: "NAS-Port-Type", |
|---|
| 43 | 62: "Port-Limit", |
|---|
| 44 | 63: "Login-LAT-Port", |
|---|
| 45 | 70: "ARAP-Password", |
|---|
| 46 | 75: "Password-Retry", |
|---|
| 47 | 79: "EAP-Message", |
|---|
| 48 | 80: "Message-Authenticator", |
|---|
| 49 | 94: "Originating-Line-Info", |
|---|
| 50 | 101:"Error-Cause" |
|---|
| 51 | } |
|---|
| 52 | |
|---|
| 53 | class RadiusAttr(Packet): |
|---|
| 54 | name = "Radius Attribute" |
|---|
| 55 | fields_desc = [ ByteEnumField("type", 1, radius_attribute_type), |
|---|
| 56 | FieldLenField("len", None, "value", "B", adjust=lambda pkt,x: x+2), |
|---|
| 57 | StrLenField("value", "", length_from=lambda pkt: pkt.len-2) |
|---|
| 58 | ] |
|---|
| 59 | bind_layers( UDP, Radius, sport=1812) |
|---|
| 60 | bind_layers( UDP, Radius, dport=1812) |
|---|
| 61 | bind_layers( UDP, Radius, dport=1813) |
|---|
| 62 | bind_layers( UDP, Radius, sport=1813) |
|---|
| 63 | bind_layers( Radius, RadiusAttr, ) |
|---|
| 64 | bind_layers( RadiusAttr, RadiusAttr, ) |
|---|