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

一、实践内容

1、网络嗅探

网络嗅探技术概述:

  • 网络嗅探利用计算机网络接口截获其他计算机数据报文,以监听数据流中包含的一些私密信息。捕获的数据报文是经过封包处理的二进制数据,所以通常结合网络协议分析技术进行解析。

  • 网络嗅探技术按照所监听的链路层网络进行分类可分为有线局域网和无线局域网,目前以太网和WiFi分别是最流行的链路层协议。按照实现形式可将网络嗅探器分为软件嗅探器和硬件嗅探器。

网络嗅探的原理与实现

以以太网为例介绍。

  • 以太网在部署有线局域网时分为共享式网络与交换式网络。共享式网络使用集线器连接,网络拓扑基于总线方式;交互式网络使用交换机组建,数据通过交换机转发。
    • 集线器会将从某台主机收到的数据发往所有接口,因此任一主机都能嗅探整个集线器上的全部网络流量。
    • 交换机会检查每一个收到的数据帧,并对其进行转发处理,发送至特定端口。这种方式可以减少网络被嗅探的风险。不过还是可以通过以下三种方式嗅探:1)MAC地址洪泛攻击 2)MAC欺骗 3)ARP欺骗
  • 类UNIX平台的网络嗅探技术主要通过内核态的BPF和用户的libpcap抓包工具库实现,二者配合为类UNIX平台的应用程序提供标准的网络嗅探接口
  • Windows平台的网络嗅探实现技术通过NPF和WinPcap实现

网络嗅探软件

  • 类UNIX平台最常用的包括libcap抓包开发库、tcpdump以及wireshark。
  • Windows平台上有类UNIX平台上对应的移植版本NPF/winpcap/windump/wireshark,此外还有snifferPro软件等。

网络嗅探的检测与防范

  • 可以通过检查网卡是否运行在混杂模式、或基于混杂模式下操作系统和协议栈的不同特性来检测。
  • 防范措施有:
    1)采用安全的网络拓扑,使用交换式网络,对网络进行合理的分段,尽量使网络包只被转发到目标主机上。
    2)用静态ARP或MAC-端口映射表代替动态机制,在重要的主机或网关上设置静态的ARP对应表,以及在交换机上设置静态的MAC-端口映射表,能够防止利用MAC地址欺骗、ARP欺骗等。
    3)重视网络数据传输的集中位置点的安全防范,如网关、路由器等。
    4)避免使用明文传输口令或敏感信息的网络协议,使用安全性强的网络协议进行替代。

2、网络协议分析

网络协议分析技术

  • 原理
    • 对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息及传输内容的技术方法。
    • 典型过程主要包括以下几个步骤:1)嗅探到链路层传输的二进制数据包;2)对数据帧进行结构分析,确定网络层协议类型并提取网络层数据内容;3)进一步对IP数据包进行分析;4)根据TCP或UDP的目标端口确定具体的应用层协议;5)依据相应应用层协议对数据进行整合恢复得到实际传输数据。
  • 技术实现
    开源的软件如tcpdump、wireshark、snort中都有相应源码实现。
    Snort网络协议分析处理过程如下:1)解析以太网数据帧;2)解析IP数据包;3)解析TCP数据包

二、实践过程

1、tcpdump

使用tcpdump对在本机上访问 www.tianya.cn 时进行嗅探。在访问 www.tianya.cn 网站首页时,浏览器将访问多少个web服务器,IP地址都是什么?

在ubuntu终端中输入命令:sudo tcpdump src 192.168.1.108 and tcp dst port(中间的IP为虚拟机自身的IP,该命令表示所有由主机发出的,SYN位置1,ACK位置0的,发往端口80(http)的数据包)。网页访问 www.tianya.cn,此时终端可以看到抓取的数据包详情。和tianya服务器建立连接也就是TCP的三次握手,访问了多少web服务器关键就在于TCP握手阶段。记录监听结果如下

可以看到IP有124.225.135.230;124.225.65.173;124.225.65.154;218.77.130.200
使用nslookup www.tianya.cn查看天涯的ip为124.225.65.154核实上述tcpdump已抓取到天涯的数据包

2、wireshark

使用wireshark对在本机上以telnet方式登录BBS进行嗅探与协议分析。1)BBS服务器的IP地址与端口?2)telnet协议是如何向服务器传送你输入的用户名及登录口令?3)如何利用wireshark分析嗅探的数据包,并从中获取用户名及登录口令?

  • winxp虚拟机里面自带telnet并且有wireshark软件,于是我就在winxp里面做了这个实践

1)打开cmd输入命令行telnet bbs.fudan.edu.cn进入界面如下图,开始输入命令行的时候不可行,需要把Telnet打开。发现其IP为202.120.225.9,然后注册再重新登录,通过查看wireshark可知其端口号为23

2)首先是DNS找到网关的IP为192.168.200.1;TCP协议三次握手;最后是telnet传输;

  • 在这插叙一下三次握手过程吧。
    三次握手过程如上图所示
    第一次:客户端发送请求到服务器,服务器知道客户端发送,自己接收正常。SYN=1,seq=x
    第二次:服务器发给客户端,客户端知道自己发送、接收正常,服务器接收、发送正常。ACK=1,ack=x+1,SYN=1,seq=y
    第三次:客户端发给服务器:服务器知道客户端发送,接收正常,自己接收,发送也正常.seq=x+1,ACK=1,ack=y+1

  • 为什么连接的时候是三次握手,关闭的时候却是四次握手?

  • 因为当服务器收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当服务器收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉客户端,"你发的FIN报文我收到了"。只有等到服务器所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

3)在wireshark里面过滤一下Telnet



可以看到输入的用户名hytnew(截图不全)



同样也可以看见输入的密码qwert123(截图不全),由此可知telnet是明文传输,非常的不安全。

3、取证分析实践:解码网络扫描

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

  • 将老师给的文件用wireshark打开。可以发现:攻击机的IP是172.31.4.178,网络扫描目标的IP是172.31.4.188.

  • 攻击方采用的是nmap扫描,通过snort进行分析可得结论。
  • 在每次扫描前,nmap会通过arp更新目标MAC地址,因此过滤文件的arp包如下图,不难看出一共进行了4次nmap扫描,扫描的起点分别是5,7,2071和133220。其中第一次和第二次之间没有数据包,所以第一次作为ARP的单独扫描,也就是使用nmap -sp命令判断网段中活跃的主机

  • 判断第二次nmap扫描使用的命令。使用命令tcp.port == 57738 and tcp.flags.syn == 1 and tcp.flags.ack == 0,这个表示tcp端口57738发送tcp请求但无回应,通过wireshark过滤出来的数据包可知,此次扫描基本囊括了靶机上的所有协议和服务,所以猜测是进行了namp -O扫描靶机上安装的操作系统。

  • 第三次扫描的端口数大致往返包大致为12W,考虑到靶机多数端口都处于关闭状态,整体数据流应为([SYN]->[SYN, ACK])大小为2,故大致扫描了6w个端口。nmap默认只能扫描1000个端口,所以第三次扫描的参数应该是nmap -sS来人为指定扫描端口的数量。

  • 使用命令tcp.port == 23(23为telnet端口)过滤文件数据。发现攻击机对靶机进行4次扫描过程。可以看出在第一二三次扫描都只是建立了连接就结束了,但在第四次扫描的时候出现了telnet连接;使用命令tcp.port == 22(22为ssh端口)可知第一二三次都是确定目标端口打开,第四次出现了ssh连接,此处是为了探知靶机的ssh软件版本。由此我们知道第三次和第四次对22端口的扫描实际上是一体的,第三次用来发现22端口是否打开,第四次探知22端口服务的软件版本。因此第四次扫描为nmap -sV,探测靶机上开放的网络服务。

  • 使用命令tcp.flags.syn == 1 and tcp.flags.ack == 1进行过滤发现靶机上打开的端口为21、22、23、25、53、80、139、445、3306、5432、8009、8180。

  • 系统的版本:通过查看上文的22端口的ssh数据包可以捕获如下信息:ttl=64、ssh版本为SSH-2.0-OpenSSH_4.7p1 De。

4、攻防对抗实践:

攻击方用nmap扫描(达到特定目的),防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。

  • 我用的xp进行nmap扫描攻击kali,kali用tcpdump嗅探,wireshark抓包
    xp的IP为192.168.200.5,kali的IP为192.168.200.3(不知道为什么跟之前的IP不一样了)



由此可以看出是nmap -sP命令


用nmap -sV命令时显示所有1000个端口都关闭了

从wireshark抓包情况也可以看到服务器发回rst位,同时win置为0,是告诉客户端不要发包,所有端口都关闭了。貌似看不出来是使用的什么命令吧。。

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

1、登录Ubuntu后上不去网,不管是nat模式还是桥接模式
解决:打开虚拟网络编辑器,把vmnet0的自动桥接改成电脑本机连接的网络
2、在winxp 打开 bbs.fudan.edu.cn,开始能正常打开,但是第二次又连接不上了,过一段时间在开又好了???也不知道为什么。

四、实践总结

之前搭环境的时候会偷个懒无脑跟着大神做,但这次实践做下来就需要自己动脑去思考其中的原理,同时收获的也更多了,就是那些命令记不太清,wireshark看着有点头大,还需要反复实践才行

posted @ 2020-03-24 08:31  黄雅婷  阅读(335)  评论(0编辑  收藏  举报