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

news/2025/3/16 13:18:38/文章来源:https://www.cnblogs.com/JiaxinHou/p/18774807

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

1. 实验内容

(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. 实验过程

2.1 动手实践tcpdump

  • 启动kali,升级权限进入root模式,通过“ifconfig”确认ip地址为“192.168.200.12”

image-20250315151228794

  • 通过以下tcpdump命令对本机向外的通信进行抓包,然后在浏览器中访问"https://www.baidu.com/"
tcpdump -n src 192.168.200.12 and tcp port 80 and "tcp[13] & 18 =2"
  • 观察监听记录,可以发现访问百度时,浏览器将访问个5服务器,ip地址如图所示

image-20250315152944728

2.2 动手实践Wireshark

  • 打开wireshark,选择eth0网卡

image-20250315153805552

  • 通过以下命令,以TELNET方式访问清华大学BBS服务器
luit -encoding gbk telnet bbs.mysmth.net

image-20250315154053396

  • 新开一个终端窗口,ping 论坛域名,查询ip地址,可知是“120.92.212.76”

image-20250315155731830

  • 回到wireshark,在其中一个Destination为120.92.212.76的数据包中可以看出,该BBS论坛的端口号是23

image-20250315161544035

  • 想要利用Wireshark分析嗅探的数据包,并从中获取用户名及登录口令,我们首先要选择一条记录,右键点击“Follow”,选择“TCP Stream”

image-20250315162231040

  • 可以在一堆乱码中找到我们的用户名“guest”

image-20250315163217972

  • 修改“Show as”选择“GBK”,即可以在追踪的TCP流中看到中文字符,可以判断出其内容就是我们登录过程中返回的信息

image-20250315164018715

  • TELNET协议是如何向服务器传送你输入的用户名及登录口令的?

用户的终端通过TELNET客户端与远程服务器建立TCP连接,这一过程使用的是标准的TCP端口23,一旦连接建立,用户可以在终端中输入用户名和登录口令,输入的每个字符都会被即时捕获,也就是说,用户每敲一个字符,远程主机都会对此做出反应,因此我们会看到一红一蓝两两重复的字符。TELNET协议将用户输入的字符(如用户名和口令)编码成特定的格式,然后通过已经建立的TCP连接发送到远程服务器,此过程没有对数据进行加密,因此用户输入的内容以明文形式传输。远程服务器接收到这些数据后,会解析所接收到的字符,将其识别为用户名和口令。服务器将输入的用户名与口令与其数据库中存储的信息进行比对,以确认用户的身份,根据身份验证的结果,服务器会向客户端发送响应信息。

2.3 取证分析实践,解码网络扫描器(listen.cap)

  • 将listen.pcap复制到Kali虚拟机中

image-20250315185325466

  • 用 Wireshark 打开 listen.pcap,分析请求与数据回复包,判断攻击机IP地址是“172.31.4.178”,网络扫描目标IP地址(即靶机IP地址)是“172.31.4.188”

image-20250315185835531

  • 更新软件源,安装 snort
sudo apt-get update
sudo apt install snort

image-20250315191709519

  • 在listen.pcap所在文件夹打开终端,输入以下命令
snort -c /etc/snort/snort.lua -r listen.pcap -A alert_full

image-20250315233106628

  • 本次案例中使用了Nmap扫描工具发起端口扫描

image-20250315234421506

  • 在过滤栏筛选ARP数据包,攻击机每次扫描前会发送一个ARP请求包,来确定靶机是否活跃,故攻击机请求靶机MAC地址的ARP包可以作为攻击开始的标志

image-20250316112002938

  • 第一、二次攻击行为之间攻击机无其他动作,可以判断其只是在进行主机活跃检测,命令是nmap -sP 172.31.4.188
  • 第二次询问后,攻击者发送了很多syn包,靶机也有所回复,看上去是在做端口扫描,但通过观察第二次攻击末尾记录,可以看到攻击者构造了很多带有标志位的包,说明攻击者并不是单纯在做开放端口扫描,而是在做操作系统探测,命令是nmap -O 172.31.4.188

image-20250316114359030

  • 通过观察可以发现第三次攻击发送和接受的包非常多,约13万,这些包几乎全是攻击机发给靶机的syn包及靶机的回复,据数据推算是在做半开扫描,而且是全端口扫描,命令是nmap -sS -p 1-65535 172.31.4.188

image-20250316115304994

  • 第四次攻击对于可以连接的端口进入了更深入的交流,是nmap通过通信在检测靶机开放了什么服务,指令是nmap -sV 172.31.4.188

image-20250316115828690

  • tcp.flags.syn==1 and tcp.flags.ack==1 and ip.src==172.31.4.188为条件进行筛选,可以发现靶机开放端口有21 22 23 25 53 80 139 445 3306 3632 5432 8009 8180

image-20250316121156839

  • 安装p0f ,命令为apt-get install p0f

image-20250316121306419

  • 输入命令 p0f -r listen.pcap,可以看到攻击机操作系统为Linux 2.6.x

image-20250316121428542

3. 学习中遇到的问题及解决

  • 问题1:输入教程命令snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap报错

image-20250315204259686

  • 问题1解决方案:教程实验较早,安装的snort2版本,现在已更新snort3,一些规则及配置有更新,如配置文件从原来的.conf更新为.lua,命令语句中的console也不符合新版本要求,从而导致报错,找到原因后将命令改为snort -c /etc/snort/snort.lua -r listen.pcap -A alert_full,得以解决

  • 问题2:修改命令后虽不再报错,但仍未输出扫描数据信息

  • 问题2解决方案:以管理员模式打开配置文件,在5.configure detection板块对应位置添加语句enable_builtin_rules = true

image-20250315233334340

4. 学习感想和体会

本次实验除了起初网络不稳定,多次联网失败导致迟迟未能开始之外没有遇到很大困难。本科阶段也简单使用过Wireshark抓包工具,但也是一知半解,并没有掌握分析方法,通过这次实践,学会了一些使用技巧,锻炼了分析能力,同时回顾了TCP三次握手协议,在实践中对理论知识以及网络攻击有了更生动的了解,对nmap扫描工具也更加熟悉。此外,在遇到报错时总容易浮躁,这是我需要反思的一点,在网络上搜索解决方案与询问AI都没有解决问题,后来发现是思考角度出了错,关于unknown logger console问题,一直以为是配置文件中多出了新版本无法识别的语句,不断修改配置文件内容,但都无济于事,最后通过参考其他同学的博客,发现问题出在命令语句上,豁然开朗。

参考资料

Snort 3 Rule Writing Guide - Snort 3 Rule Writing Guide

一文读懂TCP的三次握手(详细图解)_tcp三次握手图解-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/899772.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android开发--Lesson02--常见的控件

一.简单空间 TextView TextView用来显示文本信息,可以在XML文件中添加并且添加其相对的样式:它的样式主要有以下内容:<TextViewandroid:id="@+id/textViewExample" <!-- 设置TextView的唯一标识符,用于在代码中引用 -->android:layout_width="wra…

AI编程:最疯狂的MCP服务器你一定要试试

我还记得我第一次听说MCP(模型上下文协议)的时候,我心想: “哈?又一个花里胡哨的缩写,这个世界已经快被这些缩写淹没了!” 但当我意识到MCP就像AI界的通用连接器——就像USB-C之于手机和笔记本电脑——我瞬间兴奋了。 再也不用折腾那些只能在某个地方工作的插件或奇怪的…

20241217实验一《Python程序设计》实验报告

20241217 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2412 姓名: 黄迅 学号:20241217 实验教师:王志强 实验日期:2025年3月12日 必修/选修: 公选课 一、实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能;(编写书中的程序…

域自适应

信息时代产生的大量数据使机器学习技术成功地应用在许多领域。大多数机器学习技术需要满足训练集与测试集独立同分布的假设,但在实际应用中这个假设很难满足。 域适应是一种在训练集和测试集不满足独立同分布条件下的机器学习技术。一般情况下的域适应只适用于源域目标域特征空…

JDK8-时间格式化类-时区类-工具类--java进阶day07

1.时间格式化类:DateTimeFormatter1.创建方式 使用DateTimeFormatter调用ofPattern方法即可. 2.格式化方法创建好DateTimeFormatter对象后,调用format方法,将要格式化的日期对象放入即可.3.日期字符串解析 将一个日期字符串变为日期,需要用到日历类对象,调用它的parse方法…

无人机仿真环境介绍及其配置

博客地址:https://www.cnblogs.com/zylyehuo/参考 https://space.bilibili.com/393165606/channel/collectiondetail?sid=1750583&spm_id_from=333.788.0.0仿真器 VS 模拟器目录为什么要学习 ROS 发展现状课程介绍ROS 是什么 历史起源总体设计 一个目标五个特点点对点的设…

为什么 AI 在处理新闻方面如此糟糕

托马斯史密斯插画来源:Ideogram新闻流淌在我的血液里。我的日常工作是一家新闻摄影机构的负责人,而我的主网站是一个专注于旧金山湾区新闻的站点。 我与新闻内容息息相关,所以我对 AI 在处理新闻方面的糟糕表现感受尤为深刻。 哥伦比亚新闻评论(Columbia Journalism Review…

活动回顾 - 《开源智能搜索与知识库管理 - Coco AI》直播活动圆满结束,附 PPT 下载与视频回放

2025 年 03 月 07 日,由搜索客社区和极限科技(INFINI Labs)联合举办的第 7 期线上 Meetup 技术交流直播活动圆满结束。本期 Meetup 直播活动吸引了超过 700+ 技术爱好者观看参与,活动主要介绍了极限科技新推出并正在研发的开源智能搜索产品 Coco AI 的技术特点和应用场景,…

一文带你搞懂SpringBoot项目实现自动化部署

前言要实现springboot项目自动化部署,需要了解下面四个技术点:SpringBoot Profiles Maven命令 Jenkins的使用 Shell脚本下面我们会一一来介绍这四个技术点,最后用一个综合事例来给大家呈现springboot项目的自动化部署。1. SpringBoot Profilesprofiles 是 Spring 框架的一种…

centos更改命令提示符颜色

PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"永久生效vim /etc/profile.d/test.sh PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"效果: PS1的定义中个常…

P1600 [NOIP 2016 提高组] 天天爱跑步解析

思维难度:cf2300+ 实现方案:贡献计算 方法:线段树合并或者树上差分+桶的统计 思路点补充: 按照题目的设定,如果一个观察员 \(j\) 能够观察到某个人经过,说明 \(j\)一定在第 \(i\)个人的路径上。 树上的路径是唯一确定的,由此可以得到两种情况。 情况一:观察员 \(j\) 此…

C#语言碎片:Switch-Case语句字符串匹配

Switch case语句在处理字符串类型匹配时候,case条件需要设置为静态常量或者一个具体的字符串:因为工具类ToolHand.Name 为变量,所以编译不通过。 使用if语句来逐个判断:看AI对此的解释:C#的switch语句在条件匹配之所以要用静态常量是因为,编译时常量(const)在编译时就被…