Scapy中SNMPvarbind字段的类型

时间:2014-07-28 08:50:08

标签: networking snmp scapy

我正在尝试创建自定义SNMP陷阱。

  

发送(IP(dst =" 10.152.1.81",src =" 10.152.1.100")/ UDP(sport = 55555,   dport = 3338)/ SNMP(版本= 1,社区='测试',   PDU = SNMPtrapv2(ID = 14452,   varbindlist = [SNMPvarbind(OID =' 1.3.6.1.2.1.1.3.0',值= 6100)])))

在Wireshark中:

  

...   值(Integer32):6100   ...

在十六进制中看起来:

  

02 02 17 d4

在哪里' 02 02'是值类型(Integer32)。 但我需要将值类型更改为

  

价值(时间戳):6100

十六进制:

  

43 04 17 d4

是的,我可以使用hex更改它:

e=IP(dst="10.152.1.81", src="10.152.1.100")/UDP(sport=55555, dport=3338)/SNMP(version=1 , community= 'test' , PDU=SNMPtrapv2(id=14452, varbindlist=[SNMPvarbind(oid='1.3.6.1.2.1.1.3.0',value=6100)]))
>>> str(e)
"E\x00\x00E\x00\x01\x00\x00@\x11b\xc3\n\x98\x01d\n\x98\x01Q\xd9\x03\r\n\x001T\xf10'\x02\x01\x01\x04\x04test\xa7\x1c\x02\x028t\x02\x01\x00\x02\x01\x000\x100\x0e\x06\x08+\x06\x01\x02\x01\x01\x03\x00\x02\x02\x17\xd4"
>>> c = "E\x00\x00E\x00\x01\x00\x00@\x11b\xc3\n\x98\x01d\n\x98\x01Q\xd9\x03\r\n\x001T\xf10'\x02\x01\x01\x04\x04test\xa7\x1c\x02\x028t\x02\x01\x00\x02\x01\x000\x100\x0e\x06\x08+\x06\x01\x02\x01\x01\x03\x00\x43\x04\x17\xd4"
>>> send IP(c)

但是当我使用' large'陷阱。

是否有另一种方法可以更改此类型,或者我可以在Scapy中找到SNMPvarbind的所有可能字段(可能是value_timeticks,value_oid等)?

抱歉我的谷歌英语。 感谢。

1 个答案:

答案 0 :(得分:0)

我认为您可以使用课程ASN1_TIME_TICKS

它应该是这样的:

varbindlist=[SNMPvarbind(oid=ASN1_OID("1.3.6.1.2.1.1.3.0"),value=ASN1_TIME_TICKS(6100))]

<德尔> http://fossies.org/dox/scapy-2.2.0/classscapy_1_1asn1_1_1asn1_1_1ASN1__TIME__TICKS.html