20221902 2022-2023-2 《网络攻防实践》第三次作业

1.知识点梳理与总结

(1) 网络嗅探

网络嗅探是一种黑客常用的窃听技术,利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。

(2) 网络嗅探器

实现网络嗅探技术的工具称为网络嗅探器。嗅探器捕获的数据报文是经过封包处理之后的二进制数据,因此通常会结合网络协议分析技术来解析嗅探到的网络数据,这样才能恢复出TCP/IP协议栈上各层网络协议的内容,以及事件发送的应用层信息。

① 以太网工作原理:以太网采用了CSMA/CD技术,由于使用了广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。网卡是网络中主机接收发送数据的硬件设备。网卡完成收发数据包的工作。网卡对于数据的接收有四种模式:
    • 广播模式:该模式下的网卡能够接收网络中的广播数据。
    • 组播模式:该模式下的网卡能够接收组播数据。
    • 直接模式:只有匹配目的MAC地址的。网卡才能接收该数据。
    • 混杂模式:无论其目的MAC地址是什么,网卡都能够接收一切监听到的数据。
② 网络监听的原理
    • 利用以太网的特性把网卡置为混杂模式状态的工具,一旦网卡设置为这种模式,它就能接收经过它的每一个信息包。
    • 共享式网络嗅探:使用集线器连接,集线器上任意一台主机都能够嗅探整个集线器上的全部网络流量。
    • 交互式网络嗅探:通过MAC地址映射表来发送数据。通常有以下三种方式实现嗅探:
      MAC地址泛洪攻击、MAC欺骗、ARP欺骗。

(3) 网络协议分析

  • 定义:网络协议分析是网络嗅探器进一步解析与理解捕获数据包必须的技术手段,是指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
  • 原理:网络协议分析需要从底向上逐层解析网络协议,同时进行IP分片包以及TCP会话的重组,需要解析与保存各个网络层次上的所有包头字段信息,以及最高层的应用层数据,并提供给用户以了解网络数据包的全方位信息。
  • 技术实现:在开源的软件如Tcpdump、Wireshark和Snort中都有相应源码实现。
  • 网络协议分析工具:Wireshark

(4) 全开扫描、半开扫描原理

①TCP全开端口扫描原理
  • 如果目标端口是开放的,那么在接到主机端口发出的SYN请求之后,就会返回一个SYN+ACK的包,然后主机端口再回应一个ACK,这样就成功地和目标端口建立了一次TCP连接。过程如图:

在这里插入图片描述

  • 如果目标端口是关闭的,那么再接收到主机端口发出的SYN请求之后,就会返回一个RST回应,表示不接受这次请求,这样就中断了这次TCP连接。过程如图:

在这里插入图片描述

  • 还有一种特殊情况,主机发送出SYN请求之后,没有收到任何回应。多种原因可能造成这种情况,例如,目标主机没有活跃、一些网络安全设备屏蔽掉端口的SYN请求。关于屏蔽这种情况暂时不考虑。过程如图:

在这里插入图片描述

② TCP半开端口扫描原理
  • 如果目标端口时开放的,那么在街道主机端口发出的SYN请求之后,就会返回一个SYN+ACK的回应,表示愿意接受这次连接的请求,然后主机端口不再回应一个ACK而是发送一个RST表示中断这个连接。这样实际上并没有建立好完成的TCP连接,称之为半开扫描。过程如图:

在这里插入图片描述

  • 如果这个端口是关闭的话,扫描过程如图:

在这里插入图片描述

  • 在这次半开扫描实例中,还要考虑一种不确定的状态,我们发出去的包很容易被过滤掉,过滤开能来自对方的而防火墙设备,路由器规则,防火墙等。这些端口几乎不提示任何信息,偶尔也会响应ICMP的错误信息,过程如图:

在这里插入图片描述

2.实验要求

应用相关工具,利用网络嗅探和协议分析技术对攻击目标进行被动攻击以及实施防御。

  • 理解网络嗅探和协议分析的原理;
  • 掌握常见的嗅探与网络协议分析工具的使用;
  • 针对Windows/Linux两种系统进行网络嗅探和协议分析;
  • 利用网络嗅探和协议分析技术对攻防环境中的靶机进行攻击;
  • 理解网络嗅探和协议分析技术在防御中的应用和意义。

3.实验内容

(1) 动手实践tcpdump

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

(2) 动手实践Wireshark

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

  • 你所登录的BBS服务器的IP地址与端口各是什么?
  • TELNET协议是如何向服务器传送你输入的用户名及登录口令?
  • 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?

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

  • 攻击主机的IP地址是什么?
  • 网络扫描的目标IP地址是什么?
  • 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
  • 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
  • 在蜜罐主机上哪些端口被发现是开放的?
  • 攻击主机的操作系统是什么?

4.实验过程

(1) 动手实践tcpdump

  • 使用命令ifconfig查看本机IP地址

在这里插入图片描述

  • 使用tcpdump对本机向外的通信进行抓包,然后再浏览器中访问www.tianya.cn。
sudo tcpdump -n src 192.168.16.128 and tcp port 80 and "tcp[13]&18=2"

在这里插入图片描述

可以看到访问www.tianya.cn的过程中访问了多个服务器。

(2) 动手实践Wireshark

  • 输入命令访问BBS服务器
sudo luit -encoding GBK telnet bbs.fudan.edu.cn

在这里插入图片描述

  • 输入new注册一个账户,用户名为besti,密码是123456,然后开启wireshark抓包,重新访问BBS服务器

在这里插入图片描述
在这里插入图片描述
从ip报头中的得知BBS服务器的ip为202.120.225.9,从tcp报头中得知服务的端口是23。

在这里插入图片描述
在这里插入图片描述
telnet是通过明文的方式一个个字符传输数据的,输入用户名时,我在键盘中键入“1”时,telnet协议使用明文的方式将“1”传输给服务器,服务器回复“*”回显在我们的命令行中。

在这里插入图片描述

  • 对于输入密码时的情况,传输时还是以明文传输,只不过回显的时候服务器回显“*”而不是对应的明文。
  • 从而得到完整的用户名“besti”和密码“123456”。

(3) 取证分析实践,解码网络扫描器

  • 将 listen.pcap 复制到kali虚拟机中,使用snort对二进制记录文件进行入侵检测。
sudo apt-get update // 更新APT库 
sudo apt-get install snort // 安装snort 
sudo chmod 777 /etc/snort/snort.conf // 给予snort.conf可读可写可执行权限 
snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap // -A开启报警模式,-q不显示状态报告,,-u为初始化后改变snort的UID,-c为使用后面的配置文件,进入IDS模式,-r从pcap格式的文件中读取数据包 

在这里插入图片描述

本次攻击是使用nmap扫描,攻击机ip是172.31.4.178,靶机ip 是172.31.4.188。

  • 使用arp包更新目标MAC地址,所以使用Wireshark的过滤器扫描出arp包,可以看到攻击机对靶机进行了4次询问,如下图,其中的红框画出来的部分是靶机询问攻击机的MAC地址。

在这里插入图片描述

可以看出攻击机第一次nmap扫描和第二次nmap扫描之间没有数据包,则第一次nmap扫描为探测目标IP是否活跃,指令为 nmap -sP 172.31.4.188

在这里插入图片描述

原理是tcp半开放扫描,根据扫描得到的消息数为1335580,猜测应该是对靶机的所有端口(65535个)进行扫描。攻击机向靶机发出握手申请,如果靶机回复[SYN,ACK],说明该端口开放,这时候攻击机就就不需要回复第三次握手的确认[ACK]了,因为这里只是为了探测端口是否开放,而不是为了真的建立连接,所以回复[RST]即可,如上图的80端口。攻击机向靶机发出握手申请,如果靶机回复[RST,ACK],说明该端口是关闭的,如上图的5900和8080端口。更多详情可见本博客中的1.知识点梳理与总结

  • 用以下命令进行筛选确认靶机哪些端口是开启的。
tcp.flags.syn == 1 and tcp.flags.ack == 1

在这里插入图片描述

3306、139、80、25等端口都是开放的。

  • 查看ICMP包

在这里插入图片描述

发现攻击机Ping了靶机两次,这可能是攻击机判断与靶机的网络连通性,以及靶机是否在线

  • 查看SSH、MySQL、SMTP包

在这里插入图片描述

发现都有对应的包,说明应该是使用了nmap的-sV扫描探测端口开启的服务以及版本信息。

  • 使用p0f工具,p0f是一款被动探测工具,能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。
  • 先安装p0f,再用p0f进行探测。
sudo apt-get install p0f//安装p0f
sudo p0f -r listen.pcap //探测

在这里插入图片描述

得知版本为linux 2.6.x。

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

问题1:访问复旦大学时,出现乱码

在这里插入图片描述

  • 解决方法:进行GBK编码
sudo luit -encoding GBK telnet bbs.fudan.edu.cn

问题2:安装snort时,无法定位

在这里插入图片描述
解决方法:输入命令,进行更新

sudo apt-get update

问题3:无法更新

在这里插入图片描述

  • 解决方法:

1.打开 /etc/apt/sources.list 文件

sudo vim /etc/apt/sources.list

2.用#把默认官方源注释掉,添加正确的源

deb http://http.kali.org/kali kali-rolling main contrib non-free
deb http://http.kali.org/kali sana main non-free contrib
deb http://security.kali.org/kali-security sana/updates main contrib non-free
deb http://old.kali.org/kali moto main non-free contrib

3.更新软件列表

sudo apt-get update #更新软件列表
sudo apt-get upgrade #更新软件
sudo apt-get dist-upgrade #升级
sudo apt-get clean #删除缓存包
sudo apt-get autoclean #删除未安装的deb包

问题4:执行sudo apt-get upgrade时,出现证书失效问题

在这里插入图片描述
解决方法:申请新证书

wget -q -O - https://archive.kali.org/archive-key.asc | apt-key add

在这里插入图片描述
历经漫长的等待~
在这里插入图片描述
下载成功!
在这里插入图片描述

安装snort过程中出现很多问题,写了一篇博客,更多详情参见安装snort时,无法定位——Kali机update时出现问题

6.学习感悟、思考等

本次实验不仅使我学习了tcpdump相关命令、wireshark的过滤等功能,还锻炼了我解决问题的能力。

参考资料

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值