1、抓取SNMP报文

SNMP报文的形式大致如下图所示

我们这里使用netcat这个工具来抓取snmpPDU(协议数据单元)。(因为我们并不需要前面的IPUDP首部)

关于netcat的一些基本使用可以看这里http://www.cnblogs.com/oloroso/p/4610563.html

本文由乌合之众 lym瞎编,欢迎转载 blog.cnblogs.net/oloroso
本文由乌合之众 lym瞎编,欢迎转载 my.oschina.net/oloroso

netcat获取snmp报文

1 先获取snmpwalk发出的(get-next-request)

我们使用nc来监听161端口,然后把输出重定向到文件a.hex。因为监听的是161端口,所以这里必须以root权限运行。

sudo nc -u -l 161 >a.hex

这样之后使用snmpwalk这个工具来向这个“受控端”发送命令。

snmpwalk -c public -v 2c localhost 1.3.6.1.4.201566.1.1

2 再获取代理程序发回的(get-response)

我们先要打开代理程序Agent,然后使用下面的命令将a.hex的内容发给代理程序,并将接收到的返回保存到b.hex

o@o-pc:~/snmpPUD$ nc -u 127.0.0.1 161 <a.hex >b.hex
^C
o@o-pc:~/snmpPUD$

下图是针对SNMPv1版本的。目前比较通用的是SNMP v2c/v3版本,具有八种PDU类型。

分析获取到的报文

先使用hexdump来查看一下获取到的报文内容。(hexdump是一个很好用的十六进制分析工具)

o@o-pc:~/snmpPUD$ hexdump -C a.hex
00000000  30 2c 02 01 01 04 06 70  75 62 6c 69 63 a1 1f 02  |0,.....public...|
00000010  04 22 70 8b d4 02 01 00  02 01 00 30 11 30 0f 06  |."p........0.0..|
00000020  0b 2b 06 01 04 01 8c a6  5e 01 01 01 05 00        |.+......^.....|
0000002e
o@o-pc:~/snmpPUD$ hexdump -C b.hex
00000000  30 30 02 01 01 04 06 70  75 62 6c 69 63 a2 23 02  |00.....public.#.|
00000010  04 22 70 8b d4 02 01 00  02 01 00 30 15 30 13 06  |."p........0.0..|
00000020  0e 2b 06 01 04 01 8c a6  5e 01 01 01 01 01 00 02  |.+......^.......|
00000030  01 2b                                             |.+|
00000032

报文分析结果

先看结果,然后再慢慢分析

get-next-request报文示例分析(a.hex)

十六进制数据 解释
30 表示SNMP协议报文(整个报文是一个SEQUENCE)
2c 消息长度44字节(表示后面还有44个字节的内容)
02 01 01 协议版本(2c)(前两个字节02表示INTEGER类型01是指1个字节长度,最后的01是值01)
04 参数类型(OCTSTR)
06 群体(community)名长度
70 75 62 6c 69 63 群体名public的assic码值
a1 PUD类型get-next-request
1f snmp pdu的长度为31个OctStr(后面的内容31字节)
02 04 22 70 8b d4 请求标识符Request ID
02 01 00 表示error-state为0
02 01 00 表示error-index为0
30 11 表示后面变量绑定是SEQUENCE类型17个字节长度
30 0f 表示(变量名1
06 表示该字段是OID类型
0b OID长度11字节
2b 06 01 04 01 1.3.6.1.4.1(标识1.3被合并为2B)
8c a6 5e 201566 (这也是根据规则转换得到的)
01 01 01 1.1.1
05 00 表示NULL

get-response报文示例分析(b.hex)

十六进制数据 解释
30 表示SNMP协议报文(整个报文是一个SEQUENCE)
30 消息长度48字节(表示后面还有48个字节的内容)
02 01 01 协议版本(2c)(前两个字节02 01 表示INTEGER类型)
04 参数类型(OCTSTR)
06 群体(community)名长度
70 75 62 6c 69 63 群体名public的assic码值
a2 PUD类型get-response
23 snmp pdu的长度为35个OctStr(后面的内容31字节)
02 04 22 70 8b d4 请求标识符Request ID
02 01 00 表示error-state为0
02 01 00 表示error-index为0
30 11 表示后面变量绑定是SEQUENCE类型17个字节长度
30 0f 表示(变量名1
06 表示该字段是OID类型
0b OID长度11字节
2b 06 01 04 01 1.3.6.1.4.1(标识1.3被合并为2B)
8c a6 5e 201566 (这也是根据规则转换得到的)
01 01 01 1.1.1
00 表示.0 即第一个实例\
  (下面的值实际是节点1.3.6.1.4.1.201566.1.1.1.0的)
02 01 2b 02 01 表示INTEGER类型1个字节,2b表示值(43)
05 00 表示NULL

下面是使用snmpwalk命令获取的结果

SNMP报文抓取与分析(一)相关推荐

  1. webservice-SOAP报文抓取与分析

    目录 一.什么是SOAP? 二.IDEA抓取SOAP报文 1. IDEA下载插件 2. 配置Tunnellij,Tunnellij是一个类似于Eclipse的TCP/IP Monitor的插件,比较流 ...

  2. 【原创】网络报文抓取研究

    1     引言 网络报文抓取是指通过对主机网络设备的探测,实现获取该网络当前传输的所有信息,并根据信息的源主机.目标主机.服务协议和端口等信息简单过滤掉不关心数据,然后提交给上层应用程序进行进一步处 ...

  3. 嘘,我已经瞒着开发解锁APP日志文件抓取及分析啦!

    ------·今天距2020年87天·------ 这是ITester小栈第49次推文 大家好,我是coco小锦鲤 经过之前的APP系列 我们知道了APP的测试流程 也列举了APP通用测试用例 还解答 ...

  4. Thread dump文件抓取和分析(JCA工具)

    Thread dump文件抓取和分析 接下来分析CentOS下怎么抓取Thread dump文件,JCA怎么分析Thread dump文件. 1.CentOS下抓取Thread dump文件 Cent ...

  5. log 的抓取与分析

    log 的抓取与分 http://blog.csdn.net/yaoming168/article/details/38777727 log 的抓取与分析 一.Android log框架简介 二.lo ...

  6. 如何用python抓取文献_浅谈Python爬虫技术的网页数据抓取与分析

    浅谈 Python 爬虫技术的网页数据抓取与分析 吴永聪 [期刊名称] <计算机时代> [年 ( 卷 ), 期] 2019(000)008 [摘要] 近年来 , 随着互联网的发展 , 如何 ...

  7. python新闻评论分析_使用 python 抓取并分析京东商品评论数据

    本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D ...

  8. 【干货】-- 带你抓取并分析知乎高评分电影

    最近突然想看电影了,跑去电影天堂却不知道该看哪一步,很纠结呀,想来想去还是去知乎上搜搜高评分的电影.发现新大陆呀,还是网友的力量大,挖掘出了高评分的电影,并作一一罗列,足足400多部啊.具体内容可点击 ...

  9. 短视频评论的抓取及分析

    短视频评论的抓取及分析 一.设计背景 目前,短视频已经成为大多数人娱乐消遣的主要方式.用户在观看视频内容的同时,也同样关注视频评论,并且很多时候评论带给人们的乐趣远远超过视频本身.但是各短视频平台都没 ...

  10. JAVA+网络数据包的抓取与分析实验

    一.实验目的 熟悉TC P/IP数据包的结构. 掌握Wireshark的使用方法. 能够利用JNet Pcap编程实现数据包的抓取与分析. 二.实验准备 1.通过抓包,可以进行网络故障分析.流量监控. ...

最新文章

  1. 又为写作思路熬到秃头?这16篇最新论文打包送你
  2. Django中ORM之或语句查询
  3. c++ 隐藏进程_Linux 查看进程的动态信息
  4. centos7 host修改
  5. 赛尔笔记 | 通用领域条件性知识图谱数据集
  6. 信号完整性Sigrity2018各组件功能介绍
  7. 莱斯康混响插件合集 – Lexicon Plugin Bundle macOS
  8. AD7705驱动代码 -- Linux SPI设备驱动
  9. 商场云WiFi靠谱吗
  10. VUE图片裁剪,打码,旋转功能
  11. linux编译一直失败,linux编译安装时常见错误解决办法
  12. FI财务会计全局设置
  13. 1200PLC学习资料整理
  14. IPv6-计算机网络
  15. python编程图文_深入Python多进程编程基础——图文版
  16. 英雄联盟(LOL)外挂原理(仅供学术交流)
  17. 微信小程序接入微信客服【超详细,仅需3步】
  18. Druid.io系列(一):简介
  19. Flash 应用之我见
  20. prompt set feedback off set define off (转)

热门文章

  1. C语言使用SQLite3数据库
  2. POJ 1486 Sorting Slides (二分图关键匹配边)
  3. 如何打造7*24h持续交付通道?阿里高级技术专家的5点思考
  4. [数据结构]链表的实现在PHP中
  5. Slider 滑动条效果
  6. [Advance] How to debug a program (下):示例
  7. 运维人员写项目方案及推进项目的基本流程思路
  8. JMeter入门合集
  9. JavaScript 常用功能总结
  10. CSS样式表初始化杂谈