先来看看计算机网络通信面临的威胁:
- 截获——从网络上窃听他人的通信内容
- 中断——有意中断他人在网络上的通信
- 篡改——故意篡改网络上传送的报文
- 伪造——伪造信息在网络上传送
截获信息的攻击称为被动攻击,而更改信息和拒绝用户使用资源的攻击称为主动攻击
网络基础知识
IOS网络七层模型
从下到上:
物理层:传输的是比特流,网卡位于这层。
数据链路层:本层传输的是帧;本层主要定义了如何格式化数据,错误检测。交换机位于本层
网络层:本层传输的是数据包,路由器位于本层。本层协议是IP协议(Internet Protocol Address),主要功能是路由选择最短路径,将数据包从发送端路由到接收端
传输层:协议有TCP(传输控制协议)/UDP(用户数据报协议);主要是控制重传、数据分割之类的,主要是解决数据之间的传输,和传输质量。是IOS最核心的一层,其中TCP协议是最重要的协议
会话层:不同机器之间建立会话
表示层:解决不同系统之间的语法问题
应用层:应用网络中发送数据:需要注意Http协议(超文本传输协议),Https(超文本传输安全协议)
TCP/IP四层模型
与IOS七层模型相同,从下往上依次为:链路层(物理层+数据链路层),网络层(IP),传输层(TCP),应用层(应用层+表示层+会话层)(HTTP)。
TCP/IP 、 HTML、端口、URL、、、
网络安全威胁
社会工程、嗅探、钓鱼、拒绝服务、远程控制、
网络安全防护
虚拟专用网络、防火墙
无线局域网防护
无线局域网概述、安全管理
案例
查看端口信息:netstat -ano
查看指定端口信息:netstat -aon|findstr "80"(注意是英文双引号。)
嗅探攻击
(基于ARP欺骗的嗅探技术)
ARP:Address Resolution Protocol 地址解析协议。
ARP:Address Resolution Protocol 地址解析协议。
RARP:Reverse Address Resolution Protocol 逆向地址解析协议。
不同的网络,如以太网,令牌网...,在数据链路层都有不同的寻址机制。
在以太网的局域网中,一台主机和另外一台主机通信发包,是根据48bit的以太网地址来确定目的接口的,设备驱动程序从不检查IP数据报中的目的IP地址。
地址解析协议(ARP)为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层48bit地址的转换。RFC 826[Plummer1982]是ARP规范描述文档。
ARP为IP地址到对应的硬件地址之间提供动态映射。RARP是被那些没有磁盘驱动器的系统使用(一般是无盘工作站或X终端),它需要系统管理员进行手工设置。
ARP通信过程解析:
(1).比如在一个局域网上,一台主机A(192.168.0.12)要访问机器B(192.168.0.11)。他会发送一份称作ARP请求的以太网数据帧给以太网上的每个主机(广播包)。ARP请求数据帧中包含目的主机的IP地址,意思就是:“如果你是这个IP地址的拥有者,请回答你的硬件地址。”
(2).目的主机收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址及对应的硬件地址。(非广播)
(3).收到ARP应答后,系统的ARP缓存便会记录MAC-IP的对应信息(ARP攻击点),在CMD里打arp -a便可查询现在机器的ARP缓存情况。现在IP数据报现在就可以传送了。
在ARP背后有一个基本概念,那就是网络接口有一个硬件地址(一个48bit的值,标识不同的以太网或令牌环网络接口)。在硬件层次上进行的数据帧交换必须有正确的接口地址。但是,TCP/IP有自己的地址:32 bit的IP地址。知道主机的IP地址并不能让内核发送一帧数据给主机。内核(如以太网驱动程序)必须知道目的端的硬件地址才能发送数据。ARP的功能是在32bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。
值得注意:arp协议是不可靠和无连接的,通常即使主机没有发出arp请求,也会接受发给它的 arp回应,并将回应的mac和ip对应关系放入自己的arp缓存中。此外,内核为2.4.x的linux系统在arp实现中,考虑到了arp欺骗,不会接受未经请求的arp回应,因此直接向这种系统发送arp reply也是无效的,不过,有意思的是虽然它不会接受未经请求的arp reply,但是只要接收到arp的request,它就会更新自己的arp缓存。
ARP协议
ARP协议
自从交换机成为架设局域网的主流设备后,ARP攻击有了新的用途:用ARP欺骗辅助嗅探!原理很简单,先看看下面两幅图:
左图是正常通信时,两台机器数据流向。右图是B被A机器ARP欺骗后,两台机器的数据流向,着重看右图,B被ARP欺骗后,数据的流向改变了,数据先是发给了A,然后再由A转发给网关;而从网关接收数据时,网关直接把发给B的数据转发给了A,再由A转发给B,而A的自己的数据流向是正常的。现在B的数据全部要流经A,如果A要监听B是易于反掌的事情了。
再简单说说这个ARP欺骗的过程吧,也就是怎么实现改变B的数据流向:
1).现在架设A的IP地址是192.168.1.11,MAC地址是:11-11-11-11-11-11;B的IP地址是192.168.1.77,MAC地址是77-77-77-77-77-77;网关IP地址是192.168.1.1,MAC地址是:01-01-01-01-01-01。
2).A发送ARP欺骗包(ARP应答包)给B,告诉B:我(A)是网关,你把访问外网的数据发给我(A)吧!ARP欺骗包如下:
SrcIP: 192.168.1.1 ,SrcMAC:11-11-11-11-11-11
DstIP: 192.168.1.77 ,DstMAC:77-77-77-77-77-77
3).A发送ARP欺骗包(ARP应答包)给网关,告诉网关:我(A)是机器B,结果网关把所有给B的数据都发到A那里了。ARP欺骗包如下:
SrcIP: 192.168.1. 77,SrcMAC:11-11-11-11-11-11
DstIP: 192.168.1. 1,DstMAC:01-01-01-01-01-01
4).机器A有一个辅助用的转发软件,它负责把“网关->B”和“B->网关”的数据包转发。
至此,ARP欺骗的辅助任务完成了,接下来就是用你的嗅探器进行偷窥了
这里有几点值得注意一下的:
1).ARP欺骗包每隔一段时间要发一次,否则网关和B的ARP缓存会更新!
2).ARP欺骗完成后,网关的ARP记录会有两记录的MAC地址是相同的,分别是:192.168.1.11(11-11-11-11-11-11)和192.168.1.77(11-11-11-11-11-11),这样可能会比较明显,嗯~可以把A自己在网关的ARP缓存改了:192.168.1.11(01-10-01-10-01-10,乱写一个),但这样会有两个问题:一个是这个MAC是乱写的,局域网内根本没有这个MAC地址的机器,根据交换机的工作原理,网关发给192.168.1.11这IP的机器的数据将会被广播。第二个是,此刻你(A)的正常与外界通信的能力将会丧失。可以权衡考虑一下。