1、ICMP重定向概念:

ICMP重定向技术,是用来提示主机改变自己的主机路由从而使路由路径最优化的一种ICMP报文。其概念理解的要义是原主机路由不是最佳路由,而其默认网关提醒主机优化自身的主机路由而发送的报文。

最能说明ICMP重定向意义的典型拓扑如下:

2、ICMP重定向细节:

(1)报文格式:

帧首部

IP首部

ICMP重定向首部

ICMP重定向数据

ICMP重定向负载部分

类型:5

代码:0(0~3)

校验和

建议使用的最优路由next-hop地址

IP首部

IP报文有效载荷的前8bytes

代码0~3代表的含义:

代码

描述

0

网络重定向

1

主机重定向

2

服务匹配条件下网络重定向

3

服务匹配条件下主机重定向

·建议使用的最优路由地址:

路由器或其他网关类设备的接口地址。

·IP首部:

原ICMP报文IP报头。

·IP报文有效载荷的前8bytes:

原ICMP报文中的类型、代码、校验、序列号等字段。

(2)发生条件:

·数据包的入接口和路由后的指定的出接口是同一个接口。

·数据包的源IP地址和该包应走的下一跳IP属于同一网段。

·数据报非源路由的(这种情况应该比较少见了,源路由多见于Token Ring)。

·系统开启重定向功能。

·受到ICMP重定向攻击。

(3)系统响应:

·大部分windows系列OS会选择添加一条主机路由作为默认动作。

·部分UNIX系列和UNIX-LIKE系列OS同样选择添加一条主机路由作为默认动作。

·部分UNIX系列和UNIX-LIKE系列OS以及一般而言绝大多数路由类网络设备会忽略。

·Linux等可以作为路由器的OS针对ICMP重定向有着不同的标准动作选择。

3、ICMP重定向应用:

(1)单纯的提供路由优化选项建议。

(2)定向改变数据流传输路由路径。

(3)通过优化路由改善服务的质量。

(4)进行非法的网络攻击入侵行为。

4、ICMP重定向攻击:

从安全的角度来讲,ICMP重定向报文没有协议状态检查,以及合法性机制验证,十分类似ARP报文,可以轻而易举的进行欺骗攻击。

当然不同的操作系统对于受到的ICMP重定向报文也会按照自己的一些标准进行过滤,例如Windows之接受来自其自身默认网关的ICMP重定向报文,其余来源ICMP重定向报文则被丢弃,但伪造网关发送报文十分容易。

ICMP攻击可以达到的目的:流量的嗅探劫持、中间人代理权(这两点差不多)

举例说明:

·拓扑如下:

过程说明:

(1)正常时,user通过交换机Switch连接到网关设备Gateway,利用默认网关与跨网段的   服务器Server通信。

(2)异常情况下,攻击者Attacker可以伪造网关向user发送ICMP重定向报文,可以结合   ARP欺骗技术,然后用户user主机路由变成流量要通过Attacker来进行转发通信。

(3)攻击者可以截获、提取、分析、修改、重放用户user的数据包,造成多种安全威胁。

5、ICMP重定向防御:

(1)网关端:

·关闭ICMP重定向(no ip redirects)。

·变长子网掩码划分网段。

·使用网络控制列表(ACL)和代理。

(2)主机端:

可以使用防火墙等过滤掉ICMP报文,或使用反间谍软件监控。

结合防ARP、IP欺骗等进行防御。 

ICMP重定向及其攻防技术的更多相关文章

  1. 2018-2019-2 20165237《网络攻防技术》Exp1 PC平台逆向破解

    2018-2019-2 20165237<网络攻防技术>Exp1 PC平台逆向破解 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调 ...

  2. 2018-2019-2 20165312《网络攻防技术》Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165312<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.信息搜集技术与隐私保护--知识点总结 二.实验步骤 各种搜索技巧的应用 Google Hac ...

  3. 2018-2019-2 20165315《网络攻防技术》Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165315<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.实验内容 二.实验步骤 1.各种搜索技巧的应用 2.DNS IP注册信息的查询 3.基本的扫 ...

  4. SpringMVC归纳-1(model数据模型与重定向传参技术)

    要点: model是一个Map结构的数据模型,能重定向时传递数据(拼接URL),但不安全,主要用于渲染前端页面,配合Thymeleaf填充html里面里设置好的参数. @RequestParam用来获 ...

  5. 2018-2019-2 20165206 网络攻防技术 Exp5 MSF基础应用

    - 2018-2019-2 20165206<网络攻防技术>Exp5 MSF基础应用 - 实验任务 1.1一个主动攻击实践,如ms08_067; (1分) 1.2 一个针对浏览器的攻击,如 ...

  6. 2018-2019-2 20165336《网络攻防技术》Exp5 MSF基础应用

    2018-2019-2 20165336<网络攻防技术>Exp5 MSF基础应用 一.攻击实例 主动攻击的实践 ms08_067(成功) payload/generic/shell_rev ...

  7. 2018-2019-2 20165312《网络攻防技术》Exp5 MSF基础应用

    2018-2019-2 20165312<网络攻防技术>Exp5 MSF基础应用 目录 一.知识点总结 二.攻击实例 主动攻击的实践 ms08_067 payload/generic/sh ...

  8. 2018-2019-2 20165312《网络攻防技术》Exp4 恶意代码分析

    2018-2019-2 20165312<网络攻防技术>Exp4 恶意代码分析 知识点总结 1.有关schtasks schtacks的作用:安排命令和程序定期运行或在指定时间内运行.从计 ...

  9. 2018-2019-2 20165312《网络攻防技术》Exp3 免杀原理与实践

    2018-2019-2 20165312<网络攻防技术>Exp3 免杀原理与实践 课上知识点总结 1.恶意软件检测机制 基于特征码的检测(需要定期更新病毒库) 启发式恶意软件检测(实时监控 ...

随机推荐

  1. iOS开发小技巧--取消按钮的选中状态

    首先要自定义按钮,并且实现如下方法,对,就是这么实现!!

  2. Ajax-jQuery_Ajax_实例 ($.ajax、$.post、$.get)

    Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. 推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看, 地址为:h ...

  3. Linux ad7606 驱动

    Linux中已经移植好了ad7606,位于driver/staging/iio/adc/目录中.只要在板级文件中添加device中即可. 移植参考文档: https://wiki.analog.com ...

  4. udhcpc

    /********************************************* * dhcpc * dhcpc是dhcp的客户端,在busybox中实现.今天正好了解一下. * Tony ...

  5. Spring Tools Suite (STS) 简介

    首先,sts是一个定制版的Eclipse,专为Spring开发定制的,方便创建调试运行维护Spring应用. 官方页面.下载地址(3.8.1 win x64). 其次,没什么好介绍的,用一下就明白了. ...

  6. Apache -- phpmyadmin导入文件过大

    方法一: 找到php.ini(或php.ini-pre1.7.2)搜索这3个地方: upload_max_filesize memory_limit post_max_size 将他们后面的值修改成大 ...

  7. Android4.4 Framework分析——getContentResolver启动ContentProvider的过程

    ContentProvider的创建通常是在第一次使用的时候. 没时间分析,可參考老罗的分析 http://blog.csdn.net/luoshengyang/article/details/696 ...

  8. erlang -- ios apns provider -- erlang 实现

    os apns-apple notification server 与第三方provider的通信原理网上已有很多介绍,这里不再介绍,有想了解的大家可以去IOS官网https://developer. ...

  9. PHP清除HTML代码、空格、回车换行符的函数

    清除HTML代码.空格.回车换行符的函数如下 function DeleteHtml($str) { $str = trim($str); $str = strip_tags($str,"& ...

  10. php如何解决多线程同时读写一个文件的问题

    <?php header("content-type:text/html;charset=utf-8"); $fp = fopen("lock.txt", ...