ARP欺骗与DNS劫持

前言

之前写的文章太粗糙了,现在写一篇有点不粗糙的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缓存表里原有的对应关系。

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欺骗常见姿势及多机ARP欺骗

小结

本文关于ARP欺骗与DNS劫持,有一些可能比较偏向口水话,按参考文章复现姿势4,我是失败的,那个工具运行不了,运行需要python2,搞好了,也依然运行不了,说不存在模组.姿势5包抓到了,没登陆的cookie找到了,没什么用,但登录的cookie找不到,可能包太多了(⊙﹏⊙)。(突然发现修女姐姐也挺好看的OuO  一个人的网站自言自语,笔芯)

评论

  1. 博主
    6 月前
    2024-3-07 10:39:02

    test

    • ouo
      魅影幽蓝
      6 月前
      2024-3-07 10:41:02

      test2

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇