# 20212924 2021-2022-2 《网络攻防实践》第五周(第三次)作业

1.实验内容--网络嗅探与协议分析。

1.1 网络嗅探

  • 网络嗅探是指利用计算机的网络接口截获其它计算机的数据报文的一种手段。
  • 工作原理:与电话电路不同,计算机网络是共享通信通道的。共享意味着计算机能够接收到发送给其他计算机的信息。捕获在网络中传输的数据信息就称为Sniffing(窃听)。计算机的会话包括的显然就是随机的二进制数据。因此网络偷听程序也因为它的“协议分析”特性而著名,“协议分析”就是对于计算机的通信进行解码并使它变得有意义。

1.1.1网络嗅探软件

  • 类UNIX平台网络嗅探软件(libpcap抓包开发库、tcpdump嗅探器软件、wireshark嗅探器软件、Snort开源网络入侵检测系统、dsniff、sniffit、linux_sniffer等)
  • Windows平台网络嗅探器软件(NPF、winpcap、windump、wireshark、SniffPro、Buttsniffer、NetMon、Network Associates Sniffer等)
  • tcpdump是通用的命令行网络嗅探与数据包分析程序,允许用户能够从主机所在网络上截取和显示特定的TCP/IP数据包

1.1.2网络嗅探的防范措施

  • 采用安全的网络拓扑,尽量将共享式网络升级为交换式网络,并通过在交换机上设置VLAN等技术手段,对网络进行合理的分段,从而尽量使得网络包只被转发到目的主机上。
  • 用静态ARP或者MAC端口映射表代替动态机制,该措施主要是对渗透嗅探进行防范,通过在重要的主机或网关上设置静态的ARP对应表,以及在交换上设置静态的MAC-端口映射表,能够防止利用MAC地址欺骗、ARP欺骗等手段进行嗅探的手法。
  • 重视网络数据传输的集中位置点的安全防范,如网关、路由器和交换机等。
  • 避免使用明文传输口令或敏感信息的网络协议,而使用加密及安全增强的网络协议进行替代。

1.2 网络协议分析

1.2.1 基于Wireshark的TCP/HTTP协议深入分析

  • Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。通过TCP三次握手,建立了连接,三次握手基本结束,开始真正的数据传送阶段。

1.2.2 使用Wireshark分析ARP协议

  • 在显示筛选编辑框中输入“arp”,回车,分组列表窗口将只显示ARP消息。

1.2.3 使用Wireshark分析ICMP协议

  • 在cmder(也可以是一般的命令行窗口)中以个人网站为目标主机,在命令行窗口执行Ping命令,要求ping通;在显示筛选编辑框中输入“icmpv6”,回车,分组列表窗口将只显示icmp消息。

1.2.4 使用Wireshark分析IP协议

  • 在显示筛选编辑框中输入“ip”,回车,分组列表窗口将只显示IP消息。选取一个有IP协议的数据报。

1.3 Snort分析

  • Snort拥有三大基本功能:嗅探器、数据包记录器和入侵检测。嗅探器模式仅从网络上读取数据包并作为连续不断的流显示在终端上,数据包记录器模式是把数据包记录到硬盘上,网络入侵检测模式是最复杂的,而且是可配置的。我们可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。

2.实验过程

任务一:动手实践tcpdump

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

实践tcpdump操作过程

  • 访问www.tianya.cn网站首页。
截图1:天涯社区网站首页
  • 打开kali,使用ifconfig查看本机ip,本机ip为192.168.200.5
截图2:查看kali的ip
  • 使用tcpdump src 192.168.200.5 and tcp dst port 80指令进行查询,本机IP为192.168.200.5。结果如下:
截图3(部分截图):查看浏览器访问的Web服务器
- 通过上图,我们可以发现浏览器访问的Web服务器有:
124.225.135.230
82.221.107.34
124.225.206.22
18.64.156.63
  • 通过nslookup www.tianya.cn,查询到他的IP地址为124.225.206.22,即上面发现的浏览器访问的Web服务器中124.225.206.22为天涯社区首页。操作如下:
截图4:查看网址www.tianya.cn的ip

任务二:动手实践Wireshark

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

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

实践Wireshark操作过程

  • 打开kali中自带的Wireshark,然后在终端中输入指令luit -encoding gbk telnet bbs.fudan.edu.cn登录BBS。进入如下界面:
截图5:登录BBS界面
  • 在Wireshark中,通过查询,我们可以获得BBS服务器的IP为202.120.225.9,端口为23。
截图6:在Wireshark中查询BBS服务器的IP
  • 输入 new 进行注册。
截图7:注册界面
  • 注册时输入的用户名为yhq,密码为123456
截图8:注册界面
  • 再重新登陆:
截图9:重新登陆界面
  • 在wireshark的过滤器直接输入telnet,即可过滤显示telnet相关的数据包,通过查看wireshark里面可知其端口号为23。
截图10:BBS服务器的端口
  • 在wireshark的过滤器直接输入tcp.stream eq 0,通过右击-follow-Tcp Stream 进行追踪TCP流。
截图11:打开追踪TCP流的操作
  • 通过追踪TCP流可以看到用户名和密码。可以看到传递密码是用明文传输的,很容易被获取,可知telnet是明文传输非常的不安全。
截图12:追踪TCP流查看用户名和密码

任务三:listen.cap

  • 取证分析实践,解码网络扫描器
    • 攻击主机的IP地址是什么?

    • 网络扫描的目标IP地址是什么?

    • 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?

    • 你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。

    • 在蜜罐主机上哪些端口被发现是开放的?

    • 攻击主机的操作系统是什么?

  • 分析由人为构造的到一台蜜罐主机的5次不同类型的端口扫描。网络入侵检测器 snort捕获每次扫描的流量并存入tcpdump格式二进制网络日志文件中。

解码网络扫描器的操作过程

  • 打开下载好的 listen.pcap,选择菜单栏中的统计->会话,再点击IPv4,可以看到 172.31.4.178 和 172.31.4.188 之间有大量的双向的网络数据包,因此可初步确定这两个是攻击主机IP和网络扫描的目标主机IP。
截图13:分析主机IP和扫描目标IP
  • 查看会话数据包内容,发现所有的请求数据包(如TCP SYN包)则是从172.31.4.178发起,所有的响应数据包(如SYN/ACK包)均是从172.31.4.188发出。
截图14:分析请求包与响应包
  • 攻击主机的IP地址是: 172.31.4.178。
  • 网络扫描的目标IP地址是: 172.31.4.188。
  • listen.pcap 复制到kali虚拟机中。
截图15: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格式的文件中读取数据包
截图16:示例操作截图
  • 可以发现本次攻击是使用nmap发起的。
截图17:nmap发起端口扫描
  • nmap扫描原理是基于ping的,因此每次扫描时,nmap会通过ARP来确定目标MAC地址,在wireshark中过滤到四组ARP(从攻击机到目标主机),说明共进行了四次端口扫描。
  • 扫描前nmap会通过arp更新目标MAC地址,所以使用Wireshark的过滤器扫描出arp包,可以看到共进行4次nmap扫描。
截图18:ARP广播进行ARP请求,目的主机回应表示主机存活
  • 可以看出攻击机第一次nmap扫描和第二次nmap扫描之间没有数据包,则第一次nmap扫描为探测目标IP是否活跃,指令为 nmap -sP 172.31.4.188
  • 观察第二次扫描的末尾数据包,发现有大量的TCP协议、ICMP协议、UDP协议数据,并使用了大量构造的标志位,以触发不同的响应包。从而,判断这些流量是由其nmap -O 靶机触发,进行远程主机的操作系统探测:
截图19:nmap -O扫描分析
  • 第三次ARP后均为TCP协议数据,并且数据量庞大,可以看到在数据包中存在大量SYN请求包,通过过滤器搜索 tcp。
截图20:TCP扫描分析
  • 可以看到序号9、10、13是一组半开放扫描,使用不完整的tcp三次握手来对目标主机进行尝试性的连接,攻击主机的57738号端口对目标ip的3306号端口发送SYN包,目标ip的3306号端口开放,返回一个 TCP SYN & ACK 包,然后攻击主机发送一个 RST 包停止建立连接。类似的监测出目标主机的23号端口、80号端口和139号端口开放。955号端口关闭。
  • 猜测扫描的指令可能为nmap -sS -p 1-65535 172.31.4.188 进行TCP SYN全端口扫描。
  • 第四次ARP后,不仅有TCP协议数据,还有HTTP、TELNET、SMB应用层协议的数据。
  • 在TCP的端口中,某些端口是确定的,比如22号端口用于ssh登录。以22号端口为例使用过滤器命令为 tcp.port == 22
截图21:-sV扫描分析
  • 发现除了建立TCP SYN扫描,还建立了ssh连接,这是为了探测靶机的网络服务,于是猜测攻击机对靶机进行了-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

截图22:查看蜜罐开放端口
  • 使用p0f工具,p0f是一款被动探测工具,能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。
  • 在终端先输入 sudo apt-get install p0f安装p0f,再输入sudo p0f -r listen.pcap 探测,得知版本为linux 2.6.x
截图23:安装p0f操作
截图24:操作系统版本

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

  • 问题1:tcpdump不清楚是啥,找不到它的打开方式。
  • 问题1解决方案: 通过查阅资料得知:wireshark是windows下面的抓包工具,tcpdump是linux下的抓包工具。tcpdump可以将网络中传送的数据包完全截获下来提供分析。它支持对网络层、协议层、主机、网络或端口的过滤、并提供and、or、not等逻辑帮你去掉无用的信息。只需要在命令端输入命令,调用tcpdump。
  • 问题2:在查询操作系统版本时,在宿舍运行sudo apt-get install p0f安装p0f时显示安装失败。
  • 问题2解决方案:通过查阅资料发现,kali在宿舍无法上网,需要设置kali的网络适配器为桥连接以及虚拟机的网络设置为桥连接模式为自动。

4.学习感悟、思考等

  • 本次试验之后,发现自己对Linux的相关软件的操作想当不熟练,像tcpdump的一些命令,对wireshark抓包工具还是不够熟悉,使用nmap进行网络服务类型探查时wireshark抓包的分析还是不很清楚。
  • 嗅探和分析可以帮助我们获得更多的信息,更了解被攻击系统,更容易攻入被攻击系统。随着攻防技术的发展,嗅探和分析的工具不断增加,整体成集成化、平台化发展。因为工具集成程度不一,所能完成的工作不一,因此我们需要选择合适的工具使用。网络嗅探与协议分析为关攻击者进行网络协议攻击、口令破解与系统入侵提供了重要的信息来源途径,作为被动攻击技术,很难被察觉,对局域网安全构成了持久的安全威胁。而对于防御者来讲,嗅探与协议分析可以帮助网络管理员对网络的运行状态、传输信息进行实时监控,也是网络入侵检测系统、网络流监控与管理系统等安全管理设备的技术基石。

参考资料

posted @ 2022-03-30 00:46  洛浅姬  阅读(157)  评论(0编辑  收藏  举报