最近在研究snmp协议,用Python的pysnmp模块编写了一段可以获取snmp协议中netstat的脚本,了解了一些pysnmp的用法。
0x01 安装pysnmp
>>> pip install pysnmp
>>> import pysnmp()
0x02 pysnmp
def snmpget(printer_ip):
cg = cmdgen.CommandGenerator() ##获得CommandGenerator对象
errorIndication, errorStatus, errorIndex, varBinds = cg.getCmd(
cmdgen.CommunityData('server', 'public', 1), ## 扫描名称,扫描方式,版本号
cmdgen.UdpTransportTarget((printer_ip, 161)), ## 扫描IP,扫描端口
'.1.3.6.1.2.1.4.20.1.3.192.168.0.69' ## OID,此处表示获取子网掩码
)
subnet_mask = str(varBinds[0]).split('=')[1].strip() ##结果存在varBind()中
return subnet_mask
0x03 nmap
Python的nmap的使用方式与nmap的参数一样,初始化后直接输入语句即可。返回值为多重字典组成的json数据,使用在线json转换工具即可找到最终要找的目标值。
def Scan():
nm = nmap.PortScanner()
result = nm.scan(hosts=target, arguments="-sU -p 161 --script=snmp-netstat")
totle_list = str(result['scan'][target][