中间人攻击小结

数据截获

1.站表溢出(mac泛洪)

交换机中站表的项的工作原理
通过以太网帧的源MAC地址学习获得,当交换机无法找到以太网帧的目标MAC地址,会广播该帧给所有端口。站表每一项都有生命周期,如果周期内没有收到与源MAC地址匹配的对应帧则删除该项。当站表填满时,交换机停止学习时所有帧将广播出去,直到某项被删除。

攻击手法
局域网内,kali机(攻击机)运行macof脚本
先发送大量虚假源MAC地址帧占领交换机的站表,使得交换机转发的每一帧都是广播发送,攻击者设置网卡为混杂状态则可截获所有经过交换机的报文。

防御
限制每个端口允许学习的最大地址数,这样从某个端口学习的地址数达到上限就不会记录到站表中

附脚本

#mac泛洪攻击脚本
from scapy.all import *
import time
 
iface = 'eth0'    //设置攻击机网卡
try:
    while 1:   //不断泛洪
        randmac = str(RandMAC())  //随机mac地址
        randip = str(RandIP())   //随机IP地址
        packet = Ether(src=randmac,dst=randmac)/IP(src=randip,dst=randip)  //利用scapy库对其进行封包
        sendp(packet,iface=iface,loop=0)  //开始攻击
        
except KeyboardInterrupt:   //报错处理
	print('/n[+]Stop')   

 

2.ARP欺骗

原理
局域网中的主机根据MAC地址进行通信,发送方检查其ARP缓存是否存储目标IP的MAC地址,否则广播发送ARP请求报文,只有目标IP的主机才会响应一个包含其MAC地址的ARP应答报文,发送方收到应答后,更新自身ARP缓存。

攻击手法
通过伪造IP地址与MAC地址的映射关系实现欺骗攻击。。发送虚假的ARP请求或应答报文,使目标主机接收错误的(目标)IP和(攻击者)MAC绑定关系。
kali下自带的arpspoof工具 arpspoof -i [interface攻击机网卡] -t [目标ip] [gateway]

防御
①客户端 静态绑定 网关真实地址,arp -s 网关IP 网关MAC
②路由器交换机设备上设置 端口与MAC 的静态绑定
③定期检测自身ARP缓存,检测是否存在MAC地址相同的不同表项
 

3.DHCP欺骗

原理
DHCP用于自动配置终端接入网络所需的信息。此过程主机并没有对DHCP服务器进行认证。攻击者可以伪装成DHCP服务器,使主机刚接入网络时就被分配虚假网关,随后主机的所有通信都会经过攻击者指定网关。

攻击手法
①攻击者将伪造的DHCP服务器接入局域网,当目标主机发送DHCP广播请求时并收到多个DHCP服务器应答时(最先响应的服务器为其提供配置信息),只要伪造DHCP早一步对目标主机应答,那么目标主机将收到伪造DHCP的虚假配置信息(其中虚假网关IP通常是DHCP),因此当目标主机通信时,伪造DHCP都会收到报文。

②也可通过恶意脚本占满dhcp服务器的可分发ip,然后运行恶意dhcp服务器,然后将网关指向攻击机或者攻击者可控机(启动路由能力),通过它抓包获取数据包内容

防御
①将交换机划分为信任及与非信任端口,交换机只转发从信任端口发出的DHCP报文(请求和确认),将真实DHCP服务器端口和连接不同交换机的端口设置为信任端口。
②在交换机上激活,以构建一个表项,映射:客户端mac地址,ip地址,ip地址,vlan以及端口id对应关系
 

4.ICMP路由重定向

原理
路由器A检测主机使用非优化路由时,会向主机发送一个ICMP重定向报文,要求其改变路由为从路由B发送报文,同时,路由A会把初始报文向路由B转发,主机以后的报文都从路由B发出。
在这里插入图片描述
攻击手法:(单向截获)
攻击者向目标主机发送虚假ICMP重定向消息,该消息源地址为实际路由,该消息用来通知主机新路由为攻击者机器,主机错认为该消息来自真实路由,错误地修改自己的默认网关为攻击者机器,此后目标主机发送的报文都会经过攻击机机器。

netwox 86 功能:sniff and send ICMP4/ICMP6 redirect (嗅探和发送icmp重定向报文)
攻击机先在etc/sysctl.conf 将参数改为“1”,开启路由转发功能

netwox 86 -f [被攻击主机ip地址] -g [新指定的网关ip地址] -i [当前网关ip地址]

防御
①网关端:
·关闭ICMP重定向(no ip redirects)
·变长子网掩码划分网段
·使用网络控制列表(ACL)和代理
②主机端:
可以使用防火墙等过滤掉ICMP报文,将主机配置成不处理ICMP重定向消息
linux

#vim /etc/sysctl.conf    
net.ipv4.conf.eth0.accept_redirects = 0    
net.ipv4.conf.eth1.accept_redirects = 0    
net.ipv4.conf.lo.accept_redirects = 0    
net.ipv4.conf.default.accept_redirects = 0    
net.ipv4.conf.all.accept_redirects = 0

windows

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
EnableICMPRedirects REG_DWORD 0x0(默认值为0x1)

说明:该参数控制Windows 2000是否会改变其路由表以响应网络设备(如路由器)发送给它
的ICMP重定向消息,有时会被利用来干坏事。Win2000中默认值为1,表示响应ICMP重定向报文,需改为0。
 

欺骗攻击

1.DNS欺骗

DNS工作原理
当客户向服务器查询域名时,本地DNS服务器首先在本地缓存中进行查找,然后在本地数据库进行查询;如果没有匹配信息则像根服务器或指定的DNS服务器进行迭代查询,每台服务器都重复类似动作,当在某台服务器的数据库找到对应信息后,查询路径中的所有服务器都会在自己的缓存中保存一份复制,然后返回给路径中的下一个服务器。

攻击手法
攻击者根据DNS工作原理,通过拦截和修改DNS的请求和应答包进行定向DNS欺骗,即只有目标主句查询特定域名时,才修改返回的DNS应答为虚假IP,其他情况还是返回真实的DNS应答。当主机访问特定域名时,其实访问的是攻击者指定的IP地址,从而实现DNS欺骗。

DNS欺骗手段主要有
①缓存感染:攻击DNS服务器,将虚假的映射写入到服务器的缓存或数据库中,当DNS查询经过该服务器时,服务器返回虚假应答报文

②DNS信息劫持:截获并修改DNS主机A记录、MX记录、CNAME记录应答报文,返回虚假的应答报文给目标主机

③DNS重定向:截获并修改DNS主机的NS记录应答报文,返回虚假的DNS服务器地址给目标,当主机访问特定域名时,实际上从虚假服务器获得DNS应答

④host劫持:修改目标主机的Hosts文件,写入虚假的主机-IP映射,主机优先查询hosts文件中的映射,没找到匹配信息才发送DNS请求

主要工具:Cain&AbelEttercap

防御
①在个人主机建立白名单,为经常访问的域名建立一个主机和IP地址映射的白名单,存在hosts文件中,dns解析优先查找Hosts文件
②直接用IP地址访问,但是有些站点配置虚拟主机,拒绝直接访问IP地址
③应用加密通信,web—https,远程访问----SSH,用基于SSL的协议收发数据和邮件等

 
GOT IT!

 
******************************************************
阅读《内网攻防》以及本人对此做的实验小结~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章