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

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

一、实验内容

1.网络嗅探

1.1 概述

DEF:网络嗅探(Sniff)作为攻击者经常使用的内网渗透技术,通常在攻击者获得内部网络中一台主机的访问权后实施,能够被动的、静默的嗅探网络上传输的数据,并从中窃取机密信息,此外还可以用来嗅探底层的网络信息协议,为发起进一步攻击收集信息,通过网络嗅探获得的数据还可以为攻击者进行中间人攻击提供帮助。实现网络嗅探技术的工具称为网络嗅探器(Sniffer),嗅探器捕获的数据报文是经过封包处理之后的二进制数据,因此通常会结合网络协议分析技术来解析嗅探到的网络数据。

**“双刃剑”:**由于网络嗅探的被动性与非干扰性,使其具有很强的隐蔽性,往往让网络信息泄露很难被发掘。但同时,网络嗅探对于防御方也具有重要的实际应用价值,网络管理员可以利用网络嗅探来捕获与分析网络的流量信息,以便找出所关心网络中潜在的问题并加以解决。另外,网络嗅探还为网络入侵检测系统提供底层数据来源基础,捕获原始网络传输报文,提交给网络入侵检测系统从中发现入侵迹象。

网络嗅探工具分类:

  • **硬件嗅探器:**通过专用硬件对网络数据进行补货和分析,也称为协议分析仪,有点事速度快,而且往往被放置在网络中的关键位置,因此捕获网络数据也比较全面,一些入侵检测系统、防火墙等设备常常也是基于硬件嗅探器运行的;缺点是成本较高,价格昂贵。
  • **软件嗅探器:**一般实现为不同操作系统类型上的应用软件,通过对网卡进行编程进行实现,价格便宜或者免费,易于使用,但速度慢,往往无法抓取网络上所有的传输数据,也就可能无法全面了解网络的故障和运行情况。

1.2 原理与实现

以太网工作原理:以太网是共享信道,采用CSMA/CD(载波监听/冲突检测技术)避免共享链路上的通信冲突。在以太网共享通信媒介中,网络上的站点采用广播方式,因此计算机能够接收到在共享媒介上发送给其他计算机的信息。以太网中数据的传播是以“帧”为单位进行的,而以太网上的网络接口设备,通常是网卡。网卡驱动程序支持一种混杂模式(Promiscuous Mode),处于该模式的网卡能够接收一切通过它连接共享通信媒介的数据帧,而不管该数据帧是否是传给它的。而为了嗅探以太网上的流量,就需要将网卡设置为混杂模式。

**共享式网络与交换式网络中的嗅探:**根据以太网部署方式的不同可将有线局域网分为一下两种:

  • **共享式网络:主要使用集线器(Hub)**连接,其网络拓扑是基于总线方式,物理上是广播的。
  • 交换式网络:主要使用交换机组建,所以数据帧都通过交换机进行数据转发。

随着交换机的价格越来越低廉,现在的网络都采用交换机连接或交换机与集线器混合连接。在交换机与集线器混合连接的网络中,网络嗅探仍能够捕获交换机同一端口上连接的主机通信。即使在纯交换的网络中,也可以采用如下技术手段使得本不应到达的数据包到达本地,就能实现嗅探

  • **MAC地址洪泛攻击:**向交换机发送大量含有虚构MAC地址和IP地址的数据包,致使交换机的“MAC地址-端口映射表”溢出无法处理,使得交换机进入所谓的“打开失效”模式,也就是开始了类似集线器的工作方式,向所有端口广播数据包,使得网络嗅探变得和在共享式网络环境下一样容易。
  • **MAC欺骗:**MAC欺骗的目的是假冒所要监听的主机网卡,攻击者通过将源MAC地址伪造成目标地址的源MAC地址,并将这样的数据包通过交换机发送出去,使得交换机不断更新它的“MAC地址-端口映射表”,从而让交换机相信攻击者主机的MAC地址就是目标主机的MAC地址,这样交换机就会将本应发送给目标主机的数据包发送给攻击者。
  • **ARP欺骗:**ARP欺骗是利用IP地址与MAC地址之间进行转换时的协议漏洞,达到MAC地址欺骗。这是目前交换式网络中最常用的一种嗅探技术手段。攻击者通过对网关和目标主机进行ARP欺骗,可以截获梁两者之间的通信数据,从而达到在交换式局域网中嗅探的目的。

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

  • 类UNIX平台:主要通过内核态的BPF(Berkeley Packet Filter)和用户态的libpcap抓包工具库实现。

    BPF是类UNIX系统上数据链路层的一种原始接口,提供原始链路层封包的收发功能。

    Lipbcap是类UNIX平台用户态下的抓包工具库,与内核态的BPF包嗅探与过滤机制相配合,为类UNIX平台上的应用程序提供标准的网络嗅探接口。

  • **Windows平台:**Windows操作系统内核并不提供标准的网络嗅探与抓包接口,因此需要通过增加一个驱动程序或网络组件来访问内核网卡驱动中捕获的数据包,而目前最常用的是与类UNIX平台上的BPF模块兼容的NPF(NetGroup Packet Filter)。在Windows用户态,拥有一个与libpcap库相兼容的标准抓包接口WinPcap,主要包含packet.dll与wpcap.dll两层模块。

    NPF是一个内核态虚拟设备驱动程序,它的功能是过滤数据包,并将这些数据包原封不动地传给用户态模块。

1.3 网络嗅探器软件

  • 类UNIX平台下的嗅探软件:

    • Libpcap抓包开发库
    • Tcpdump嗅探器软件
    • Wireshark嗅探器软件
    • 其他嗅探器软件:Snort,dsniff,snifft和linux_sniffer等
  • Windows平台网络嗅探器软件:

    • Wireshark嗅探器软件
    • SnifferPro嗅探器软件

2.网络协议分析

2.1 网络协议分析技术

**网络协议分析原理:**网络协议分析是指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。网络协议分析与主机的解包过程原理类似,需要从底向上逐层地解析网络协议,同时进行IP分片包以及TCP会话的重组,但不同的是,主机上接收数据包的的关键目的只是获取其中包含的应用层数据,而网络协议分析则需要解析与保存各个网络层次上的所有包头字段信息,以及最高层的应用层数据内容,并提供给用户以了解网络数据包的全方位信息。

网络协议分析的典型过程:

  1. 首先网络嗅探得到在链路层传输的二进制数据包。
  2. 对以太网数据帧进行结构分析,根据帧头的Type字段确定网络层协议类型。
  3. 进一步对IP数据包进行分析。
  4. 根据TCP或UDP的目标端口确定具体的应用层协议,并对TCP或者UDP数据包进行拼接重组,得到应用层协议的应用交互内容。
  5. 依据相应的应用层协议对数据进行整合恢复,得到实际传输的数据。

二、实践过程

1.动手实践:tcpdump

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

A:

  1. 启动虚拟机Kali,打开终端,输入 ifconfig 查询本机IP,为192.168.0.103

2.输入命令 sudo tcpdump src 192.168.0.103 and tcp dst port ,打开浏览器,访问www.tianya.cn,此时可以在终端看见抓包的详情。

可以发现,先后访问了 124.225.65.154 218.77.130.200 124.225.135.230 124.225.135.206

3.最后,输入nslookup www.tianya.cn来验证正确性。

发现 124.225.65.154 正确

2.动手实践:Wireshark

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

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

A:

以下操作均在虚拟机Kali上完成

在终端输入命令 luit -encoding gbk telnet bbs.fudan.edu.cn,进入复旦大学BBS首页。

这里我输入new注册新用户,输入用户名huanshi,密码mima1234,打开虚拟机自带的 wireshark,并过滤telnet,可以看到服务器的IP地址为202.120.225.9,端口为23

接着,右键选择追踪流,点击TCP流,这里我已经进行了登录,可以看见我的用户名和密码,所以 Telnet协议在传输用户名和密码时采用明文传输

8

在此窗口的左下角,将整个对话换为本机->服务器,可以更加清楚的看到用户名和密码。

9

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

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

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

A:

  • 打开listen.pcap,点击菜单栏中的统计,选择Conversations,发现有两个地址来往密切,故攻击机IP地址为 172.31.4.178 ,目标IP地址为 172.31.4.188
  • 在kali中使用apt-get install snort安装snort,输入sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r /home/kali/Downloads/listen.pcap,通过snort扫描发现攻击方式为nmap
  • nmap每次扫描都会通过ARP报文来确定目标的MAC地址,且每次扫描前会检测目标IP是否活跃,通过ARP过滤,会发现四组从攻击机到攻击目标的Broradcast,发送消息为Who has 172.31.4.188? Tell 172.31.4.178
  • 下面分析nmap的类型:

    再进行分析前,首先要对三次握手有一个复习,如下图所示:

    • 第一次扫描和第二次扫描之间没有其他协议的数据包,故可以确定第一次采用的是 nmap -sP 进行主机活跃探测。

    • 第二次扫描之后出现了大量的TCP,UDP,ICMP协议的数据包,所以攻击机使用了nmap -O进行了操作系统扫描。

    • 第三次扫描后,出现了大量的TCP数据包,排到了大约13W,但大多数端口处于不可达状态,所以其实大概扫描了6W多个端口,故推测应该是使用nmap -sS -p 1-65535进行了TCP SYN全端口扫描。

      在数据包中存在大量SYN请求包,这是攻击机57738端口向目标主机进行的TCP SYN扫描,目的是用于扫描目标主机的端口是否活跃,攻击机会发送一个**[SYN]包,如果活跃则目标主机会反馈一个[SYN, ACK]包,攻击机端口会立刻发送一个[RST]包关闭这个链接,目标端口不活跃则会反馈[RST ,ACK]**包。

      17
    • 第四次扫描后出现了ICMP,HTTP,TELNET,SMB,SMTP等协议数据,因此猜测攻击机使用nmap -sV,进行网络服务探测扫描

  • 然后通过 tcp.flags.syn == 1 and tcp.flags.ack == 1过滤出**[SYN,ACK]数据包,确定哪些端口开放,得到开放的端口有21,22,23,25,53,80,139,445,3306,3632,5432,8009,8180**。

  • 通过 sudo p0f -r /home/kali/Downloads/listen.pcap 判断攻击机的操作系统为Linux 2.6.x

攻防对抗实践

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

这一部分与上述相似,故没重复。

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

本次实践中未遇到不可解决的问题,其他同学有遇到中文编码乱码的问题,在上次作业中已经在百度中被我解决,并且Kali也已经设置成中文版本,具体可参考 kali 2020.1版本安装及中文汉化

本次实践最大的问题就是看不懂Wireshark,不会根据Info进行分析,所以做作业的时候刚开始感觉很懵,经过很长时间的参考和观察,逐渐看的有点门道,但还是很小白,希望老师能在课上讲解一下。

四、学习感想和体会

经过本次实践,我发现对计算机网络中三次握手方面的知识已经遗忘的差不多了,所以还需要补一补,在网上看到一个比较生动的讲解

经过本次实践,基本了解了网络嗅探方面的知识,以及如何运用Sniffer进行网络嗅探,所以还是要多实践,实践出真知

猜你喜欢

转载自www.cnblogs.com/wongyoho/p/12559377.html