一、实训目的:

 通过实训理解ARP欺骗的原理掌握中间攻击的方法。

二、场景描述:

在虚拟机环境下配置 “Win7”和“Kali Linux”虚拟系统,使得2个系统之间能够相互通信,网络拓扑如图所示。

三、实验环境:

1. 软件:VMware Workstations14以上版本

2. 虚拟机:Kali-Linux、Windows 7

1) 打开虚拟机:启动kali-linux 启动windows7(未装补丁)

2) 获取IP地址(ifconfig、ipconfig)

Kali-Linux :192.168.88.129

Windows 7: 192.168.88.128

在虚拟机环境下配置 “Win7”和“Kali Linux”2个虚拟系统,使得虚拟系统之间能够相互通信。

四、实验步骤

具体攻击实现

  具体的中间人攻击,大体上可以分为以下几个步骤:

1. 对目标主机进行ARP欺骗,声称自己是网关。

2. 转发目标的NAT数据到网关,维持目标的外出数据。

3. 对网关进行ARP欺骗,声称自己是目标主机。

4. 转发网关的NAT数据到目标主机,维持目标的接收数据。

5. 监听劫持或者修改目标的进入和外出数据,从而实现攻击。

其中1,3都是ARP欺骗;2,4都是转发,下面会分别说到。

1、断网攻击实施步骤

步骤1:在Win7中,在命令提示符中输入命令“ipconfig /all”查看自身的MAC地址和网关IP地址,下面第一张图所示。然后输入命令“ arp –a”查看ARP缓存表中的网关MAC地址,下面第二张图所示。

步骤2:在kali终端中,输入命令“ifconfig”,查看kali的IP地址与MAC地址,如图所示。

步骤3:主机扫描

方法1:执行ping扫描最简单的方法是使用工具fping,fping使用ICMP ECHO一次请求多个主机,对当前局域网还存在那些主机进行快速扫描,以确定要攻击的主机的ip地址。

fping -a -g 192.168.88.0/24 > result

#使用fping工具扫描了192.168.88.0/24网段内的所有主机,并将扫描结果输出到result文件中。其中,-a参数表示只输出活动的主机,-g参数表示扫描整个网段。

方法2:执行nmap -sP 192.168.88.0/24,扫描网络中活跃的主机。(推荐使用)

-sP 选项表示只利用ping扫描进行主机发现,不进行端口扫描

-sS 进行TCP的半开放扫描,如果禁ping的时候可以使用这个参数

注:用nmap进行主机扫描速度快,而且能穿透防火墙,是比较可靠的扫描工具。

步骤5:arpspoof 是一款进行arp欺骗的工具,攻击者通过毒化受害者arp缓存,将网关mac替换为攻击者mac,然后攻击者可截获受害者发送和收到的数据包,可获取受害者账户、密码等相关敏感信息。

注意:

运行 arpspoof 命令时提示:arpspoof未找到命令,其原因是你还未安装 arpspoof 工具;

arpspoof 是 dsniff 的一个附属工具,所以我们需要安装的是 dsniff :使用以下命令安装dsniff:apt-get install dsniff

步骤5-1:更换更新源为阿里云,原有的更新源加#号注释

使用命令打开对应更新源文件:vim /etc/apt/sources.list

添加下面源地址:

#阿里云Kali镜像源

deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib

#中科大Kali镜像源

deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib

#清华大学Kali镜像源

deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free

#kali源

deb http://http.kali.org/kali kali-rolling main contrib non-free

deb-src http://http.kali.org/kali kali-rolling main contrib non-freedeb

步骤5-2:修改完成后执行apt-get update命令完成更新

注意:如果出现没有数字签名问题,那就是需要下载证书

使用命令:

wget archive.kali.org/archive-key.asc #下载证书

apt-key add archive-key.asc #添加证书

步骤5-3:重新安装命令,apt-get install dsniff

命令格式:arpspoof  -h  #查看arpspoof版本信息

-i 后面的参数是网卡名称

-t 后面的参数是目的主机和网关,截获目的主机发往网关的数据包

步骤6:断网攻击:arpspoof -i eth0 -t 192.168.88.128 192.168.88.2

1)可以看到,当ARP攻击开始时,就出现了请求超时的提示(-t 持续ping,需手动结束)

2)arp  -a   查看靶机网关mac地址的变化

3)此时再次到win7上测试网络,如无特殊情况,win7 已经无法连接到互联网了,状态如下:

2、攻击利用1:内网截获图片

Arp欺骗:目标ip的流量经过我的网卡,从网关出去。

Arp断网:目标ip的流量经过我的网卡

1.  echo 1  >/proc/sys/net/ipv4/ip_forward

设置ip流量转发,不会出现断网现象

有时不能这样直接修改,还有另外一种方法

修改/etc/sysctl.conf文件,使得net.ipv4.ip_forward = 1;等于0为不转发。然后更新使用命令 sysctl -p

  1. 在ARP欺骗前,ping baidu.com -t检查是否能够上网
  1. 目标ip(win7):192.168.88.128,正常上网

此时,win7和网关通信的数据包都会流经kali,

  1. kali 中利用driftnet工具,可以捕获win7机器正在浏览的图片

Driftnet是一个监听网络流量并从它观察到的TCP流中提取图像的程序。

在命令行输入:

apt-get install driftnet

driftnet -i eth0

当我使用win7上网时,从图中可以看出,kali 正在不断地捕获win7和网卡之间的数据包(其中有警告:图片太小没法抓取)

Driftnet是一个监听网络流量并从它观察到的TCP流中提取图像的程序。

只能抓取http协议网址下的图片:

3、攻击利用2HTTP账户密码获取已启动arp欺骗的前提下 做如下操作

使用ettercap -Tq -i eth0 启动

-T 文本模式输出,不使用图形用户界面 -q 静默模式

-i 指定要监听的网络接

注:ettercap:一个基于ARP地址欺骗方式的网络嗅探工具,主要适用于交换局域网络

在win7访问登录网址,输入用户名及密码。这里我输入zhangsan/123456

返回kali攻击机,查看记录

如果用户名为中文,出现如下情况注,直接在网上找个在线解码工具解下码就OK了

4、攻击利用3抓取https协议的用户名与密码已启动arp欺骗的前提下 做如下操作

1、命令行输入: vim  /etc/ettercap/etter.conf进入配置文件

  找到下红框的内容,输入字母i进入编辑模式,把#注释符去掉,按键盘右上角ESC键退出编辑模式,进入命令行模式,同时按住shift键与冒号键:然后输入wq进行保存并退出。

  1. 另外再启动第二kali终端,输入下面命令

命令执行:sslstrip -a -f –k

sslstrip是一个命令行工具,用于将HTTPS连接转换为HTTP连接,以便进行中间人攻击。其中

-a选项表示将所有请求重定向到攻击者控制的设备上

-f选项表示强制使用HTTP而不是HTTPS

-k选项表示忽略证书错误。

因此,这个命令的作用是在中间人攻击中使用sslstrip工具将HTTPS连接转换为HTTP连接,并将所有请求重定向到攻击者控制的设备上,同时忽略证书错误。

3、另起第三个Kali终端输入:ettercap -Tq -i eth0

-T:启动文本模式  q:安静模式  -i:攻击机网卡

4、Win7访问https协议网站后台

注意:使用google浏览器 ,不要使用用IE浏览器(默认开启了HSTS(HTTP Strict Transport Security--HTTP严格传输安全)功能,该功能会强制浏览器只能通过HTTPS协议访问原本就是HTTPS协议编写的网站)

  4.1、直接访问出现不安全连接界面,点击“高级”

4.2、点击“继续前往”

5、进入登入后台,随机输入账号密码

6、回到kali虚拟机,查看ettercap工具的抓取结果

问题:

出现sslstrip安装失败时,根据提示进行操作

apt-get update 更新kali镜像源

如果执行上述命令提示签名无效,就是需要进行添加证书

wget archive.kali.org/archive-key.asc #下载证书

apt-key add archive-key.asc #添加证书

然后在进行安装就可以安装成功了

总结:

抓取图片以及http、https协议的用户名和密码,使用arpspoof、sslstrip、driftnet和ettercap这四个工具他们的关系与执行顺序是什么样的。

它们之间的关系如下:

  1. arpspoof:用于欺骗目标机器,使其将流量发送到攻击者的机器上。
  2. sslstrip:用于将https流量转换为http流量,以便于进行嗅探。

3、ettercap:用于嗅探流量并提取用户名和密码等信息。

4、driftnet:用于通过网络嗅探技术,捕获到传输中包含图片数据的网络流量

执行的顺序如下:

  1. 使用arpspoof欺骗目标机器,使其将流量发送到攻击者的机器上。

2、在攻击者的机器上运行sslstrip,将https流量转换为http流量。--抓取https协议特有步骤

3、使用ettercap嗅探流量并提取用户名和密码等信息。或者使用driftnet来抓取图片信息

拓展:ettercap.conf配置文件取消注释的语句解释。

redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp -d %destination --dport %port - j REDTRECT --to-port %rport"

redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp -d %destination --dport %port -j REDIRECT --to-port %rport" 分别是什么意思

redir_command_on和redir_command_off是用于开启和关闭iptables端口转发的命令。其中,iptables是一个Linux系统中用于管理网络连接的工具,可以通过它来设置网络连接的规则。具体来说,redir_command_on命令用于将来自指定端口的数据流量重定向到另一个IP地址和端口,而redir_command_off命令则用于关闭这个端口转发规则。

其中,redir_command_on命令中的参数含义如下:

- %iface:表示网络接口名称,即网络连接的设备名称。

- %destination:表示目标IP地址(受害者主机IP)。

- $port:表示源端口号。

- %rport:表示目标端口号。

redir_command_off命令中的参数含义与redir_command_on命令相同。

下面是两个具体的范例:

# 开启端口转发规则

redir_command_on = "iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.1.100 --dport 80 -j REDIRECT --to-port 8080"

其中,eth0是指要监听的网络接口;8080是指ettercap监听的端口号。这个命令的作用是将所有通过80端口的流量重定向到ettercap监听的端口上,以便ettercap可以捕获流量并分析其中的https账号和密码。

# 关闭端口转发规则

redir_command_off = "iptables -t nat -D PREROUTING -i eth0 -p tcp -d 192.168.1.100 --dport 80 -j REDIRECT --to-port 8080"

```

注:本文只用作记录学习过程分享,请勿用来作为不正当的操作

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐