20242938 2024-2025-2 《网络攻防实践》第三周作业
实验内容
(1)动手实践tcpdump
使用tcpdump开源软件对在本机上访问www.baidu.com网站过程进行嗅探,回答问题:你在访问www.baidu.com网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
(2)动手实践Wireshark
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
1.你所登录的BBS服务器的IP地址与端口各是什么?
2.TELNET协议是如何向服务器传送你输入的用户名及登录口令?
3.如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
(3)取证分析实践,解码网络扫描器(listen.cap)
1.攻击主机的IP地址是什么?
2.网络扫描的目标IP地址是什么?
3.本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
4.你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
5.在蜜罐主机上哪些端口被发现是开放的?
6.攻击主机的操作系统是什么?
实验过程
2.1动手实践tcpdump
输入命令sudo apt-get install tcpdump
安装tcpdump
tcpdump
是一个强大的命令行网络数据包捕获和分析工具,常用于网络故障排查、安全分析和流量监控。
基本用法
- 捕获所有流量(默认监听第一个网络接口):
tcpdump
- 指定网络接口(例如
eth0
):tcpdump -i eth0
- 保存捕获的数据到文件:
tcpdump -w capture.pcap
- 读取已捕获的流量文件:
tcpdump -r capture.pcap
- 过滤特定流量(如捕获端口 80 的 HTTP 流量):
tcpdump port 80
- 仅显示数据包概要信息:
tcpdump -n -v
- 查看特定主机的流量:
tcpdump host 192.168.1.1
- 过滤 TCP 或 UDP 流量:
tcpdump tcp tcpdump udp
首先输入ifconfig
获取本机ip地址
然后输入sudo tcpdump -i any -n src host 192.168.200.4 and "(dst port 80 or dst port 443)"
代码分析
-i any
- 监听所有网络接口(如果你知道具体接口,比如
eth0
,可以改为-i eth0
)。
- 监听所有网络接口(如果你知道具体接口,比如
-n
- 关闭 DNS 解析,直接显示 IP 地址,提高效率。
src host 192.168.200.4
- 仅捕获本机(
192.168.200.4
)发出的流量,避免不必要的数据包干扰。
- 仅捕获本机(
(dst host www.baidu.com or dst port 80 or dst port 443)
- 只捕获发送到
www.baidu.com
的数据包。 - 由于
www.baidu.com
解析后可能涉及多个 IP,所以保留dst port 80 or dst port 443
以捕获所有相关流量。
- 只捕获发送到
在访问 www.baidu.com
网站首页时,浏览器访问了 14 个不同的 Web 服务器,它们的 IP 地址如下:
HTTP 服务器(端口 80):
23.10.249.154
23.0.174.24
34.107.221.82
101.28.133.120
60.9.5.121
HTTPS 服务器(端口 443):
110.242.68.66
60.221.18.38
110.242.69.21
110.242.70.57
34.117.188.166
34.107.243.93
34.149.100.209
34.160.144.191
60.6.196.36
这些服务器共同处理了浏览器的请求,因为百度使用了负载均衡和内容分发网络(CDN)技术,将请求分发到不同的服务器以提高性能和可靠性。
2.2使用 Wireshark 进行 TELNET 登录 BBS 的嗅探与协议分析
打开 Wireshark** 并选择 本机的网络接口(例如 eth0
或 wlan0
)。在
Capture Filter
(捕获过滤器)中输入:
port 23
- TELNET 使用 TCP 端口 23 进行通信,此过滤器仅捕获与 TELNET 相关的数据包。
点击 “Start”(开始),开始数据包捕获。
使用 TELNET 登录 BBS**
在Kali Linux的终端中运行命令luit -encoding gbk telnet bbs.mysmth.net
,访问清华大学BBS。(不知道为什么这么丑)
已经不支持创建新用户了
输入guest以游客身份进入论坛(感觉是很久之前的话题了?)
从wireshark捕获的包数据可以看出BBSip为120.92.212.76
,端口为23
- TELNET 协议是 明文传输 的,没有加密。
取证分析实践,解码网络扫描器(listen.cap)
查找异常的 IP 地址
用wireshark打开listen.apcp
,然后在 Wireshark 过滤器栏输入:
ip.src
然后按 Enter,查看所有源 IP 地址。
- 哪个 IP 发送最多的数据包?
- 哪个 IP 访问多个不同端口?
- 是否有一个 IP 反复发送 SYN 数据包?
由图可知攻击者ip为172.31.4.178,被攻击的ip地址为172.31.4.188
然后通过snort工具来识别攻击者用何种方式进行攻击,在终端输入sudo apt install snort
安装snort
在listen.pcap所在文件夹中单击鼠标右键,选择“在这里打开终端”。
在终端处输入并运行命令sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap
图中并没有显示攻击者的攻击方式,我们可以在终端中输入sudo nano /etc/snort/snort.lua
来修改snort.lua文件的相关规则让其显示。在ips的{}
中找到被注释掉的enable_builtin_rules = true
添加该规则
然后输入snort -c /etc/snort/snort.lua -r listen.pcap -A alert_full
,可以看到攻击者采用的攻击方式如下
从日志中的检测信息来看,攻击者正在执行 Nmap XMAS 扫描,并且尝试扫描目标 端口 1 和 端口 21。
工作原理:
-
XMAS 扫描:Nmap XMAS 扫描通过发送带有 URG、PUSH 和 FIN 标志位的 TCP 数据包,试图诱导目标主机回复不同的响应,以此来判断端口是否开放。
-
由于这种扫描方法发出的数据包看起来像是一个已经终止的连接(因为 FIN 和 URG 被设置),它们可能会被防火墙或 IDS(入侵检测系统)忽视,因为很多网络设备默认情况下不会响应这种类型的包。
-
如果端口处于 开放状态,目标主机会发送 RST (Reset) 数据包以响应。否则,通常不会有响应或者会收到 ICMP unreachable 响应。日志中出现了以下信息:
-
[116:401:1] "(tcp) Nmap XMAS attack detected"
-
[116:423:1] "(tcp) TCP has no SYN, ACK, or RST"
-
[116:422:1] "(tcp) TCP PDU missing ack for established session"
这些都表明目标主机收到了带有 XMAS 特征的扫描包,且这些包并不符合正常的 TCP 握手和数据流协议。
开放的端口为:
- 端口 1(最常见的端口,通常用于某些基础服务)
- 端口 21(FTP 服务端口)
我们可以通过p0f工具查看攻击者的操作系统,输入sudo apt install p0f
安装p0f
然后输入sudo p0f -r listen.pcap
查看攻击者的操作系统为Linux 2.6.x
实验心得
- 在使用snort工具时遇到了些麻烦,原因是对于工具的不熟悉,不知道如何部署规则导致的,后续查阅资料方得到解决。
- 嗅探工具会给我们提供很多信息,重要的是如何获取对我们有用的信息,需要多多使用,熟能生巧。
- 实验时应该多多思考,要怎么做,为什么这样做,知其然知其所以然。