1.什么是中间人攻击
Man-in-the-MiddleAttack(简称“MITM攻击”),通过各种技术手段将攻击服务器放置在两台正常通信的计算机之间。

2.中间人攻击的三种方式
1)DNS欺骗
修改受害人计算机host,或者DNS服务器,控制路由器等方法,把受害人要访问的域名对应的ip解析为攻击者控制的机器,这时受害人发送给目标机器的数据就发到了攻击人的机器上。攻击者可以监听甚至修改数据。

2)会话劫持
攻击人参与到受害人和目标机器正常的Tcp会话中,从而干涉会话双方的数据传输。这个“攻击人”可以是物理服务器,也可以是逻辑上的木马程序,关键在于它能否获得通信双方的数据。
典型的会话劫持是基于TCP/IP的工作原理来设计的,TCP/IP是使用点对点连接进行数据传输的,如果发送数据后不慎掉线,恰好另一个人接着ip地址连接到Inernet,那他会不会收到服务器返回数据呢?
TCP协议采用两个条件来确认每条已经建立连接的TCP通道,
第一个是基础连接确认(源IP,源TCP端口,目的IP,目的TCP端口),
第二个是序号标识(SEQ),TCP建立连接时,规定:序号SEQ是本报文中传送的数据在发送主机所要传送的整个数据流中的顺序号,而确认序列号ACKSEQ是发送本报文的主机希望接收的对方主机的顺序号。一台主机发出的报文中的SEQ值应等于它所收到的报文中的ACKSEQ值,ACKSEQ值应为收到的SEQ+本次发送的TCP数据长度。
知道这两个条件,就可以进行会话劫持了。攻击人在原来的合法主机收到另一台合法主机发送的TCP报文前,向该主机发送一个符合条件的TCP报文,如果该主机先收到攻击报文,就会受到欺骗而把合法的TCP会话建立在攻击主机与被攻击主机之间,而且攻击报文会让被攻击主机对下一次要收到的TCP报文中的确认序号值得要求发生变化,使得另一台合法的主机向被攻击主机发出的报文被拒绝,这种模式称为“主动劫持”。

3)代理服务器
代理服务器的工作原理:IE发送一个包含目标URL的HTTP请求,代理服务器接收并解析出HTTP报文里的目标URL和相关参数,然后把这个URL与目标网站连接,获取目标网站返回的数据后缓冲到代理服务器的硬盘上,再把这些数据返回给客户端。
常见的代理类型有HTTP,SMTP,POP3,FTP,SSL,SOCK4/5

3.中间人攻击的防御
对应DNS欺骗,首先要检查本机的HOSTS文件,以免被攻击者加了恶意站点进去;其次要确认自己使用的DNS服务器是ISP提供的,因为ISP服务器的安全性较好;如果是依靠网关自带的DNS解析来连接internet的,就要拜托管理员定期检查网关设备是否遭受入侵。

一般局域网才会发生会话劫持,因为要结合嗅探和欺骗技术的攻击手段,必须依靠ARP和MAC做基础,所以网关应该使用交换式网络代替共享式网络,静态ARP,,捆绑MAC+IP等方法来限制欺骗,认证方式的连接等。

代理服务器本身就是一个“中间人”角色,当目标IP被屏蔽,或者想在网络中隐藏自己,可以是用代理服务器。