20199105 2019-2020-2 《网络攻防实践》 第四周作业

这个作业属于哪个课程 :网络攻防实践

这个作业的要求在哪里 : 第四次作业-网络嗅探与协议分析

我在这个课程的目标是 : 学习网络攻防相关技术并进行实践

这个作业在哪个具体方面帮助我实现目标:学习网络嗅探技术与网络协议分析

一、实验内容

网络嗅探

1. 概述:

网络嗅探利用计算机网络接口截获其他计算机的数据报文,以监听数据流中包含的有效信息。实现网络嗅探的工具称为网络嗅探启,由于捕获到的数据报文是经过封包处理的二进制数据,因此还要结合网络协议分析技术进行解析。

2. 原理与实现:

以太网工作原理:以太网采用CSMA/CD协议的共享通信信道进行消息传输以避免冲突,网络中的站点使用广播机制发送数据。以太网中的数据以帧为单位,接口设备通常是网卡。发送数据时,在数据链路层装配上帧头和帧尾,通过MAC地址匹配数据包的目标。

当网卡处于混杂模式下,能够接受一切通过它连接的以太网络的数据帧。

3. 共享式网络和交换式网络:

根据以太网部署方式不同可分为共享式网络和交换式网络两种。

  1. 共享式网络通过集线器(Hub)进行连接,网络拓扑基于总线形式,这种连接方式导致同一集线器上的任一主机的数据包将发送到每一台主机

  2. 交换式网络通过交换机连接,在交换机中存在“MAC地址-端口映射表”,所有数据帧通过交换机转发。

考虑成本问题,现多使用交换机连接,交换式网络中的网络嗅探技术:

  • MAC地址洪泛攻击:发送大量虚假MAC地址,导致映射表溢出
  • MAC欺骗:修改源MAC地址,假冒所在监听的主机网卡
  • ARP欺骗:利用IP与MAC转换的协议漏洞

4. 不同平台网络嗅探技术实现:

  • 类UNIX平台下,内核态的BPF是类UNIX系统上数据链路层的一种接口,提供原始链路层封包的收发功能;用户态的libpcap类UNIX系统的抓包工具;二者过滤机制进行配合,共同提供UNIX平台的网络嗅探接口。

  • windows平台下,通过与libpcap相容的WinPcap进行抓取。

5. 网络嗅探软件

  • 类Unix平台下的嗅探软件:libpcap、tcpdump、wireshark和dsniff、sniffit等等

  • windows平台下的嗅探软件:wireshark、snifferPro等等

网络协议分析

网络协议分析技术原理:

对网络上传输的二进制格式数据包进行解析,从底向上逐层解析网络协议,同时进行IP分片包以及TCP会话的重组,解析与保存各个网络层次上的所有包头字段信息,以及最高层的应用层数据,以恢复出各层网络协议信息以及传输内容。

数据包解析过程如下图。

wireshark过滤命令总结:

  • ip过滤:以源地址查找包 ip.src==192.168.200.1,以目的地址查找包 ip.dst==192.168.200.2
  • 端口过滤:tcp.port==80,是把源端口和目的端口为80的包都过滤出来tcp.dstport==80只过滤目的端口为80的包,tcp.srcport==80只过滤源端口为80的包
  • 协议过滤:在Filter框中直接输入协议名即可
  • http模式过滤:
    过滤get包,http.request.method=="GET"
    过滤post包,http.request.method=="POST"
  • 可以使用and、or、not连接多个条件

二、实践过程

作业一:动手实践tcpdump

实验原理: tcpdump通用的命令行进行网络嗅探与数据包分析,允许用户能从主机所在网络上截取和显示特定的TCP/IP数据包,利用libpcap库捕获数据,支持BPF过滤规则,而libpcap在linux系统链路层中抓包是通过PF_PACKET套接字来实现的。

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

  • 根据上一章所学,使用nslookup命令查询天涯网站的ip地址为124.225.65.154

  • 首先,使用ifconfig命令查询本机IP地址为192.168.200.68,打开浏览器访问www.tianya.cn,在终端使用命令 sudo tcpdump src 192.168.200.68 and tcp dst port 80,表示只捕获80端口的TCP协议数据包,监听192.168.200.68的http通信

  • 从图中可以看到,在浏览网页中,访问了两个服务器,IP地址分别为124.255.65.154和218.77.130.200,都在海南

  • 内容分发网络(CDN)是一种新型网络内容服务体系,其基于IP网络而构建,基于内容访问与应用的效率要求、质量要求和内容秩序而提供内容的分发和服务。通俗的讲,就是网络加速。

天涯的网站服务器在海南,运营商是电信,而我在北京访问网站时,因为跨地区,跨运营商的原因,网站打开速度就会比当地客户访问慢很多,因此嗅探到了CDN节点速度慢很多

 

作业二:利用Wireshark分析嗅探的数据包

原理:

wireshark是一个网络数据包分析工具,可以捕获网络数据包,并进行详细的协议分析。支持tcpdump相关命令通过过滤器设置抓包时过滤。在过滤器栏filter框中输入过滤条件,点击expression调出

TELNET协议传输数据原理:终端用户通过键盘输入的数据传给操作系统内核的终端驱动进程,由终端驱动进程再将数据传给Telnet客户进程,Telnet客户进程把收到的数据传送给TCP,由TCP在客户端和服务器端建立TCP连接,数据就通过TCP连接送到了服务器端,服务器的TCP层将收到的数据送到相应的应用层Telnet服务器进程

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

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

  • 重启telnet服务并查看telnet服务是否开启

  • 尝试telnet网上搜的某BBS,出现了拒绝连接的问题

  • 访问本机,发现可以使用telnet服务

  • 在尝试一波方法之后,发现可能是没开防火墙,使用sudo ufw status查看防火墙状态,果然是inactive

使用sudo ufw enable sudo ufw default deny命令,运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

使用sudo ufw allow 23,允许外部访问23端口

  • 打开wireshark开始抓包,然后使用telnet访问202.120.255.9,端口为23

(我之前找的IP地址有些问题,无法连接,因此copy了孙启龙同学使用的复旦大学BBS服务器IP地址,感谢~)

  • 过滤器直接输入 telnet ,即可过滤显示telnet相关的数据包,可以详细信息栏看到端口号为23以及与虚拟机中的服务端程序建立TCP连接(三次握手)等信息

  • 通过wireshark打开pcap文件,可以观察到攻击机采用ARP协议进行探测,通过端口扫描判断主机是否存活,可知攻击机与扫描目标主机在同一子网内(根据上一章所学,如果扫描外网会用ICMP包)
    原理是在广播域内广播ARP request报文,可以看到 who has 172.31.4.188(目标ip) tell 172.31.4. 178(攻击机ip),目标主机发送ARP response报文表示活跃,可以得到目标主机mac地址。


作业三:取证分析实践:解码网络扫描

任务: 人为构造的到一台蜜罐主机的5次不同类型的端口扫描。

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

  • 攻击机采用ARP协议进行探测,通过端口扫描判断主机是否存活,可知攻击机与扫描目标主机在同一子网内(根据上一章所学,如果扫描外网会用ICMP包)

在广播域内广播ARP request报文,可以看到 who has 172.31.4.188(目标ip) tell 172.31.4. 178(攻击机ip),目标主机发送ARP response报文表示活跃,可以得到目标主机mac地址。

  • 通过snort,可以发现攻击机使用nmap发起端口扫描的,这里学习了同学的方法,使用sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap命令

-q 安静模式,不显示标志和状态报告

-r <tf> 从pcap格式的文件中读取数据包

  • nmap扫描原理是基于ping的,因此每次扫描时,nmap会通过ARP来确定目标MAC地址,在wireshark中过滤到四组ARP(从攻击机到目标主机),说明共进行了四次端口扫描

  • 下面来分析端口扫描类型

第一次ARP后并没有其他协议数据,是攻击机使用namp –sP进行主机活跃探测

第二次ARP后是大量的TCP协议、ICMP协议、UDP协议数据,因此攻击机应该使用了nmap –O进行操作系统扫描。可以看到第9、10、13条数据为一组,是攻击机对目标主机端口3306的TCP SYN扫描;第11、12、14为一组是攻击机对目标主机端口139的TCP SYN扫描

  • 后续还有许多,应该是端口未开放,故只有两条数据,可根据反馈RST标志判断一次连接

  • 最后还有ICMP协议数据包和UDP协议数据包,UDP端口扫描返回ICMP说明端口不可达

  • 第三次ARP后均为TCP协议数据,并且数据量庞大(排到了133219),但多数端口不可达,故大约扫描了6w个端口,应该是使用nmap -sS -p 1-65535命令进行TCP SYN全端口扫描

  • 第四次ARP后,不仅有TCP协议数据,还有HTTP、TELNET、SMB应用层协议的数据

OSI模型协议

  • 因此猜测攻击机使用namp -sV进行网络服务的探测

  • 上述协议都有对应的TCP端口,因此可以通过筛选tcp.flags.syn == 1 and tcp.flags.ack == 1确定有哪些端口开放,这一段端口顺序很整齐

开放的端口有

  • 21(文件传输协议FTP)
  • 22(安全壳协议SSH)
  • 23(网络终端协议Telnet)
  • 25(简单邮件传输协议SMTP)
  • 53(域名系统DNS)
  • 80(超文本传输协议HTTP)
  • 139(Windows"文件和打印机共享)
  • 445(信息服务块协议SMB)
  • 3306(MYSQL默认端口)
  • 5432(为PGSQL预留的)
  • 8009(AJP协议)
  • 8180(Tomcat)

作业四:攻防对抗实践

任务: 攻击方用nmap扫描,防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。

  • 方操作系统为kali,IP地址为192.168.200.66
  • 防守方操作系统为metasploitable,IP地址为192.168.200.125

在metasploitable上利用指令tcpdump -i eth0 -w dump.pcap监听并且保存文件为dump.pcap

  • 在kali主机上用nmap进行攻击,包括-sP,-sV,-sS,-O攻击

  • 利用tcpdump -r dump.pcap查看和分析,或者导出利用Wireshark进行分析

  • 在实验过程中也可选择主机所在网络,通过wireshark直接捕获进行分析

具体分析在作业三中已详细叙述,实验完成。

 


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

问题一:在使用telnet访问BBS服务器时,出现了拒绝连接的问题,后发现是可以连接本机,因此是防火墙未开启,开启对端口23的权限后,成功连接,具体步骤在作业二实验中详细叙述了。

问题二:telnet访问时中文呈现乱码

解决办法:按如下步骤,在”终端”菜单下将”字符编码”改为从UTF-8改为GBK后, telnet的中文可以正常显示了


四、学习感想和体会

本章实验感觉很好玩,wireshark真的超级好用(比起终端一行行看得眼花缭乱),学习了tcpdump的一些命令,还有wireshark的过滤等功能,之前学过wireshark抓包都忘了,所以实验真的很重要,在实践中学比较全面还能记得住。

最后取证分析的时候花了比较多的时间,划分扫描数据,一个个搜索端口对应的协议,对应着wireshark数据把一些常见协议的连接过程看了一遍,思路清晰了一些。

 


参考资料:

  1. Tcpdump使用详解

  2. Wireshark过滤命令

  3. Ubuntu使用telnet

  4. Ubuntu防火墙设置

posted @ 2020-03-23 16:32  FLwww  阅读(298)  评论(0)    收藏  举报