前言
之前写的文章太粗糙了,现在写一篇有点不粗糙的OuO,关于ARP欺骗与DNS劫持,下一次写就不知道什么时候了,大的要来了咯。
复现环境
kali(本次利用的工具均在kali上使用,工具自带——192.168.78.133)
靶机(系统为win11,系统怎么好怎么来,只要俩机互通,最好有个浏览器就可以了—-192.168.78.132、192.168.78.150)
ARP欺骗
概述
什么是ARP?0.O?或者说这东西有啥子用。以下有一丢丢关于网络中以“帧”的形式传播数据,简单扯一下(往深里说也不会OMO)。
ARP具体是指ARP协议,在网络中为了传输数据,会对数据进行打包,而封装报文可以说是打包中一个步骤或者操作,打包是一步步来的按流程走的(打包顺序从左往右如上图)。先打包目标以太网地址(即IP地址),再打包源以太网地址(即MAC地址),但是有一些情况是不知道对方的MAC地址,可是IP报文必须封装成帧才能通过物理网络发送,因此发送方还需要知道接收方的物理地址(即MAC地址),这就需要一个通过IP地址获取物理地址的协议,以完成从IP地址到MAC地址的映射。地址解析协议ARP即可实现将IP地址解析为MAC地址。
一句话概括:ARP协议可将IP地址转换为MAC地址,然后IP报文才能够封装成帧(需要MAC地址)进行转递。
ARP缓存表
那ARP是怎么转换的?通过ARP缓存表根据IP查找到对应的MAC地址。它会自动收集构建出一个ARP缓存表,每次进行封装帧会通过IP查到对应的MAC地址。这个ARP缓存表会过期。
如何构建ARP缓存表?
1、发送ARP请求包
它会通过广播的方式发送ARP请求
2、接受ARP响应包
主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址
主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去
3、构建(更新)ARP表
将IP与MAC的映射关系更新(修改)到表中。
原理(过程)
原理:主机接收到一个应答包之后,并不会验证自己是否发送过对应的arp请求包,也不会验证这个arp请求包是否可信,而是直接用应答包里的IP地址和mac地址的对应关系替换掉arp缓存表里原有的对应关系。
过程:
攻击主机B向网关C发送一个应答包,包括主机A的IP地址、主机B的mac地址。同时,向主机A发送一个应答包,包括网关C的IP地址,主机B的mac地址。
这个时候,网关C就会将缓存表里主机A的mac地址换成主机B的mac地址,而主机a就会将缓存表里网关C的mac地址换成主机B的mac地址。
所以,网关C发送给主机A的消息全被主机B接收,主机A发送给网关C的消息也全被主机B接收,主机B就成为主机A和网关C通信的“中间人”。
准备
下载安装工具arpspoof
修改更新kali源,否则可能会出现以下情况。 vim /etc/apt/sources.list deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
执行以下命令,安装成功如下图。 apt-get update apt-get install dsniff
复现(利用)
断网
1、先探测目标网段信息
需知道目标IP、网关。 netdiscover -r netdiscover -r 192.168.78.0/24 masscan -p 20-1000(端口、地网段) 网断/子网掩码 --rate=发包速度 masscan -p 20-1000 192.168.78.0/24 --rate=10000 目的是为了知道目标的网段信息,也可以使用nmap(正常情况可能需要去推断出关于目标的信息,如网关---可能同一个网段有不同的网关)。
2、利用arpspoof开启arp攻击。
arpspoof -i eth0 -t 192.168.78.132 192.168.78.2 arpspoof -i 网卡 -t 目标ip -r 目标的网关 -i 使用那个网卡发 -t 攻击目标 -r 多向欺骗 运行工具如下图,需要一直运行不能关闭。
结果,靶机会出现断网,浏览器访问目前已打开不了baidu。
转发
目前处于断网,会引起目标警觉,这就尴尬了。所以我们为了避免被发现,在攻击机上开启转发功能。
开启路由转发功能 echo 1 > /proc/sys/net/ipv4/ip_forward 默认为0 ----不开启转发 1------开启转发
此时靶机可以访问网络了,但依然在我们的ARP欺骗中。
driftnet获取图片记录
driftnet获取图片记录,需要我们一直进行ARP欺骗(不能够关闭终端界面),且开启转发功能。结果如下图。
新打开一个终端界面。 driftnet -i eth0 -a -d 文件夹名称 当靶机浏览一些图片的时候,可以获取到图片记录。 注意:并不是所有的图片都会获取到,还有一些网站,我也不道呀QAQ,我去网上找也没有说法。(可能流量太多,有点吃不消dog,https的原因,)
ettercap嗅探HTTP网站帐号密码
ettercap-----kali自带的 注意:只能窃取http协议的网站账号密码。网上找也没有说法,可能https有防范加密作用。 ettercap -Tq -i eth0 T代表命令行界面而非GUI显示,q代表不显示数据包内容,i指定监听网卡。
防御溯源
绑定IP地址和MAC地址:在路由器或交换机上绑定IP地址和MAC地址,确保IP地址和MAC地址的对应关系正确。这样可以有效防止ARP欺骗攻击,因为攻击者无法伪造正确的IP地址和MAC地址对应关系。
配置静态ARP表:在计算机上配置静态ARP表,将正确的IP地址和MAC地址对应关系手动添加到表中。这样即使在网络中存在ARP欺骗攻击,计算机也能够使用静态配置的ARP表进行通信,避免被ARP欺骗所影响。
也可以借助一些相关的arp防御设备
溯源:查看arp缓存表,通过对应IP找到对应的mac地址。
DNS劫持
原理(过程)
原理:DNS(域名系统)劫持又叫域名劫持,指攻击者利用其他攻击手段,篡改了某个域名的解析结果,使得指向该域名的IP变成了另一个IP,导致对相应网址的访问被劫持到另一个不可达的或者假冒的网址,从而实现非法窃取用户信息或者破坏正常网络服务的目的。
DNS解析的粗略过程:
1、地址栏输入bmoomb.com
2、访问本机的hosts文件,查找 bmoomb.com 所对应的 IP,若找到,则访问该IP.
3、若未找到,则进行这一步,去(远程的)DNS服务器上面找bmoomb.com 的IP,访问该IP。
劫持就发生在第三步:由于恶意攻击者控制了你的网关,当你发送了一个查找freebuf.com的IP的请求的时候,中间人拦截住,并返回给你一个恶意网址的IP,你的浏览器就会把这个IP当做你想要访问的域名的IP!!这个IP是攻击者搭建的一个模仿了目标网站前端界面的界面,当你在该界面输入用户名密码或者付款操作的时候,就会中招。
还有一些情况是劫持了dns服务器。通过修改dns服务器上的一些网站解析IP,返回恶意IP让受害者去访问,最终达到效果。
我们在复现dns劫持可以对目标进行arp欺骗让其流量转到攻击机上面,来冒充其网关,达到控制其网关的效果(欺骗目标,假冒网关,流量拦截,修改返回)。
复现
一、流量引导
在arp欺骗下(后台运行,且开启转发功能,一定要成功了后才可进行下一步,不然会失败),流量流进攻击机,修改dns解析、添加一个目标一定会访问的域名解析IP,确保能够成功。 vi /etc/ettercap/etter.dns *.baidu.com A 恶意IP(写的是博客的IP)
二、ettercap工具
终端打开ettercap软件(ettercap -G)亦或者程序打开,选择网卡,并打勾✓
获取(收集)目标(网卡)网段的IP信息
添加目标,目标的网关
点击targets,查看攻击的目标。
打开Plugins,开启dns劫持。
结果如下
参考文章
小结
本文关于ARP欺骗与DNS劫持,有一些可能比较偏向口水话,按参考文章复现姿势4,我是失败的,那个工具运行不了,运行需要python2,搞好了,也依然运行不了,说不存在模组.姿势5包抓到了,没登陆的cookie找到了,没什么用,但登录的cookie找不到,可能包太多了(⊙﹏⊙)。(突然发现修女姐姐也挺好看的OuO 一个人的网站自言自语,笔芯)
test
test2