20242935 2024-2025-2 《网络攻防实践》第三周作业

20242935 2024-2025-2 《网络攻防实践》第三周作业

网络嗅探与协议分析

一、实验要求

(1)动手实践tcpdump

使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个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.学习中遇到的问题及解决

3.学习感想和体会

二、知识点梳理

(1)网络嗅探与协议分析

  • 常用工具:
    • tcpdump:通过tcpdump分析访问某个网站时,涉及的Web服务器及其IP地址。例如监听HTTP流量:sudo tcpdump -n src <IP地址> and tcp port 80 and "tcp[13]&18=2"
    • Wireshark: 图形化工具,提供详细的数据包分析功能,支持协议解码和流量过滤(如使用 telnet 过滤器)。例如捕获TELNET登录流量(明文传输):过滤 telnet 流量:telnet;查看用户名和密码:Follow TCP Stream 追踪完整会话,看到明文密码。

(2)取证分析与攻击检测

  • 使用 Wireshark 分析扫描流量
  • Snort 入侵检测:入侵检测系统,可分析 pcap 文件,检测攻击行为(如 Nmap 扫描)
  • 蜜罐主机的开放端口
  • 使用 p0f 被动分析攻击主机操作系统:p0f是一款用于被动识别操作系统的工具

三、实验过程

任务一:动手实践tcpdump

使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?

  • 使用指令ifconfig查看kali虚拟机的IP地址位192.168.200.2
  • 再在kali终端使用指令进行监听,表示监听192.168.200.2的http通信
  • 再打开https://www.bilibili.com/,访问哔哩哔哩(因为www.tianya.cn打不开)
 sudo tcpdump -n src 192.168.200.2 and tcp port 80 and "tcp[13]&18=2"
  • 成功得到浏览器访问的Web服务器的IP地址如下image-20250314205541157

任务二:动手实践Wireshark

使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:

  • 选择在主机上进行telnet,首先将telnet打开

  • 在Kali Linux的终端中运行命令,指定编码格式访问清华大学BBS服务器,并以guest用户名进入

luit -encoding gbk telnet bbs.mysmth.net
  • 虚拟机中打开wireshark,双击选择eth0这个网卡,wireshark开始抓包

  • 看到清华大学BBS服务器的IP地址

    image-20250314214026586

  • 在wireshark的过滤器直接输入 telnet ,即可过滤显示telnet相关的数据包,通过查看wireshark里面可知其端口号为23

  • 在点击Follow,再点击Tcp stream,下拉就可以看到在输入用户名guest时,telnet是通过明文的方式一个个字符传输数据的

  • 可以看到嗅探的数据包用户名为guest,密码为空

    image-20250314214225063

任务三:取证分析实践,解码网络扫描器(listen.cap)

(1)攻击主机的IP地址是什么?

  • ​ 将listen.cap放到我们的kali虚拟机里面,我是放到了Downloads里面的

image-20250315160222638

  • 通过wirshark打开此文件
  • 经过分析数据包流量,发现攻击主机大量主动发送扫描数据包的源IP地址为:攻击主机IP:172.31.4.178
  • 这是通过Wireshark分析中,发现有大量数据包(尤其是TCP SYN)从这个IP发起,明确表明它是主动进行端口扫描的攻击主机

image-20250315162218834

(2)网络扫描的目标IP地址是什么?

  • 根据分析数据流向,发现攻击者发起扫描的目标主机IP地址明确为:目标主机IP:172.31.4.188

  • 这是攻击者TCP SYN数据包中的明确目标IP地址,所有扫描数据包均指向该主机地址

(3)本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?

  • 能明确确认本次扫描攻击工具为Nmap:因为在TCP SYN扫描中,攻击者发起的SYN包的TCP初始窗口大小(Win值)呈现周期性的变化规律,如1024、2048、3072、4096;此窗口大小循环变化的模式为Nmap在进行TCP SYN扫描时的典型行为特征;这种TCP窗口大小变化策略专门用于规避IDS/IPS检测以及探测目标主机操作系统类型
  • 同时也可以使用snort查看攻击机和靶机的IP地址、攻击者采用的工具(snort是一款入侵检测系统,它可以检测到pcap文件当中的一些攻击行为)
  • 首先使用指令更新APT库
sudo apt-get update 

  • 再使用指令安装snort
sudo apt-get install snort

image-20250315165135244

  • 在listen.pcap所在文件夹中单击鼠标右键,选择“在这里打开终端”
  • 在终端处输入并使用指令
sudo snort -q -c /etc/snort/snort.lua -r listen.pcap
  • Snort分析正常完成,但默认不会将警报(alert)输出到屏幕,而是保存到Snort默认日志文件中

  • 再下载Snort3社区规则文件

sudo wget https://www.snort.org/downloads/community/snort3-community-rules.tar.gz -O /tmp/snort3-community-rules.tar.gz
sudo mkdir -p /etc/snort/rules
sudo tar -xzvf /tmp/snort3-community-rules.tar.gz -C /etc/snort/rules
  • 执行后,文件解压到了一个名为snort3-community-rules的子目录下(即:/etc/snort/rules/snort3-community-rules/
sudo mv /etc/snort/rules/snort3-community-rules/* /etc/snort/rules/
  • 再检查文件位置
ls /etc/snort/rules/snort3-community.rules
  • 再执行Snort分析命令
sudo snort -c /etc/snort/snort.lua -r listen.pcap -R /etc/snort/rules/snort3-community.rules -A alert_fast -l /var/log/snort

image-20250315173625748

  • 往下拉,可以看到图中清晰地显示出了Snort检测到的报警信息,可以发现本次攻击是使用nmap发起的

image-20250315173707909

(4)你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。

  • namp在每次开启扫描之前,都会先发送一个ARP广播请求包,在局域网内找到某个 IP 地址对应的 MAC 地址,来确定靶机是否还活跃
  • 那么在Wireshark中筛选ARP

image-20250315174429511

  • nmap在发起端口扫描之前总是先通过ping扫描和针对80端口的探测确定目标主机是否活跃
  • 通过过滤器搜索icmp,可以定位icmp协议对应的ping扫描,实现两次ping扫描

image-20250315175721139

  • 攻击者主机发送大量的TCP SYN数据包到目标主机的不同端口

  • 若目标主机端口是开放的,目标主机返回[SYN, ACK],攻击者随即发送RST包终止连接

  • 若端口关闭,目标主机直接返回[RST, ACK]

  • 所以可能发出的扫描指令如下:

    • nmap -p 172.31.4.188:这是一个基本的 nmap 扫描命令,试图扫描 IP 地址 172.31.4.188 的默认端口
    • nmap -O 172.31.4.188:-O 选项用于操作系统探测,尝试猜测目标主机的操作系统和版本
    • nmap -sL -p 1-65535 172.31.4.188:-sL 表示仅列出目标,不会实际发送探测包,仅显示指定范围内的 IP;-p 1-65535 指定扫描所有端口(1 到 65535)
    • nmap -v 172.31.4.188:-v 选项启用详细模式,提供更详细的扫描输出

(5)在蜜罐主机上哪些端口被发现是开放的?

  • 通过过滤器的 tcp.flags.syn == 1 and tcp.flags.ack == 1 可以过滤出SYN | ACK的数据包,这是目标主机反馈攻击主机的端口活跃信息

image-20250315180904938

  • 可查看靶机的开放端口有:21 22 23 25 53 80 139 445 3306 5432 8009 8180
  • 以上端口均回应了SYN,ACK确认报文,说明攻击者扫描时这些端口明确显示为开放状态

(6)攻击主机的操作系统是什么

  • 使用p0f工具,p0f是一款被动探测工具
  • 在listen.pcap所在文件夹中单击鼠标右键,选择“在这里打开终端”
  • 在终端先更新软件源中的所有列表
sudo apt-get update

  • 再安装p0f
sudo apt-get install p0f

  • 再使用指令探测
sudo p0f -r listen.pcap

image-20250315182703710

  • 执行完毕,可以得知版本为linux 2.6.x

image-20250315183412114

四、学习中遇到的问题及解决

问题一:Snort确实安装成功了,但Snort缺少必要的配置文件:/etc/snort/snort.conf。执行命令:ls /etc/snort/snort.conf。显示:ls: cannot access '/etc/snort/snort.conf': No such file or directory。这表示默认配置文件不存在。

解决方法:我的Snort版本是3.1.82,Snort 3.x 默认配置文件已经更换为 snort.lua 而非 snort.conf。那么需要的命令应如下所示:

sudo snort -q -c /etc/snort/snort.lua -r listen.pcap

问题二:在安装p0f时出现SYSTEM ERROR : Can't access file 'listen.pcap'.

![Uploaded image](D:\program\gongfangshijian\第三次作业\20242935 2024-2025-2 《网络攻防实践》第三周作业.assets\kEoJ9TRhME%3D-174203491392538.png)

解决方法:我之前上传的listen.pcap文件位于虚拟机的Downloads目录中,但我现在处于~根目录下。因此需要切换回到包含listen.pcap文件的目录再执行命令。

五、学习感想和体会

动手使用 tcpdump 和 Wireshark 让我直观体会到数据包的传输过程,尤其是 TELNET 明文传输的脆弱性。遇到 Snort 配置文件缺失和 p0f 文件路径错误时,通过查阅文s档和调整命令(如使用 snort.lua 和切换目录)解决了问题,培养了动手能力。

六、参考资料

1.tcpdump参数解析及使用详解(转载)-CSDN博客

posted @ 2025-03-17 11:43  BeenThrough  阅读(14)  评论(0)    收藏  举报