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

相关推荐
huainingning14 小时前
RJ SW Console口忘记密码处理方法
linux·运维·服务器
布裘14 小时前
【银河麒麟】桌面系统循环登录,无法进入桌面?
linux·运维·服务器
慧都小项14 小时前
程序到了Linux才出错?用CLion把调试接到目标环境
linux·运维·服务器
汤姆yu15 小时前
Gemini 4 Argon模型综述:技术、能力与实际使用指南
网络·安全·web安全·ai·大模型
Seraphina3615 小时前
SQL注入(二)盲注
网络·数据库·经验分享·笔记·sql
Ruiery16 小时前
Linux 6.6内核内存管理深度解析(一):物理内存初始化 — memblock 怎么把内存交给 buddy
linux·运维·服务器
2401_8685347816 小时前
无线网络规划设计
服务器·网络
螺蛳粉 螺蛳粉16 小时前
第二篇:keepalived VRRP 原理篇:协议与 VIP 漂移机制深入解析
网络·智能路由器·负载均衡·keepalived·高可用
库拉镜像AI牛牛17 小时前
短剧内容自动化生产:知漫剧工作室落地教程
大数据·服务器·前端·人工智能·语音识别
Android系统攻城狮17 小时前
Linux Gstreamer深度解析之gst_audio_encoder_get_frame_max调用流程与实战(五十九)
linux·运维·服务器·gstreamer音视频·音视频进阶·gstreamer音视频进阶