20199127 2019-2020-2 《网络攻防实践》第四周作业
这个作业属于哪个课程 | 《网络攻防实践》 |
---|---|
这个作业要求在哪里 | 第四次作业 网络嗅探与协议分析 |
我在这个课程的目标是 | 学习网络攻防相关技术、掌握网络攻防相关能力 |
这个作业在哪个具体方面帮助我实现目标 | 学习网络嗅探技术,解析网络中传输的信息 |
参考 | TCP/IP详解 卷1:协议;WireShark教程 – 黑客发现之旅(5) – (nmap)扫描探测; wireshark显示过滤器使用技巧;sourt使用手册 |
网络嗅探与协议分析
1. 实践内容
第四章内容包括网络嗅探和网络协议分析,二者结合起来用以分析截获的数据,可分为以下几个部分具体梳理。
网络嗅探:
1、网络嗅探基本介绍
网络嗅探利用计算机的网络接口截获目的地址为其他计算机的数据报文,以监听数据流中所包含的私密信息。实现网络嗅探技术的工具称为网络嗅探器。截获到的是经过封包的二进制数据,通常会结合网络协议分析技术来解析嗅探到的网络数据。
网络嗅探是攻击者经常使用的内网渗透技术,通常在攻击者获得内部网络中的一台主机的访问权后实施。可以静默地、被动地嗅探网络上传输的数据。所以针对网络嗅探的检测与防范还是比较困难的。基本的检测防范方法包括:1、网络嗅探的检测:如检查网卡是否运行在混杂模式下。也可以通过操作系统和协议栈对混杂模式的香型不同来判断。2、网络嗅探的防范:采用安全的网络拓扑(交换式网络),用静态ARP代替动态,避免明文传输,重视网络集中节点的保护(路由器,交换机等)。
2、原理及实现
原理:
以太网是共享通信信道数据以帧为单位传输,以太网帧头中包括发送源的MAC地址与目标MAC地址。当站点需要发送数据时,通过协议栈进行TCP/IP封包,在数据链路层“装配”帧头与帧尾,发送至共享通信介质上。网卡驱动程序在正常模式下,只会接受目标MAC地址与自身MAC地址相匹配的数据帧。但是网卡的混杂模式将会接收一切通过它连接共享通信媒介的数据帧。
网络嗅探实现:
1、共享式网络嗅探:使用集线器连接,集线器上任意一台主机都能够嗅探整个集线器上的全部网络流量。
2、交互式网络嗅探:通过MAC地址映射表来发送数据。通常有以下三种方式实现嗅探:①MAC地址泛洪攻击:向交换机发送大量含有虚构MAC地址和IP地址的数据包,使映射表溢出无法处理,交换机进入类似集线器的工作方式。②MAC欺骗:通常用于突破基于MAC地址的局域网访问控制。③ARP欺骗:利用IP地址与MAC地址之间进行转换时的协议漏洞,达到MAC欺骗。
3、类Unix网络嗅探:数据链路层上的交换(switched)网络与非交换(unswitched)网络之间也存在区别。在非交换网络中,以太网数据包经过网络上的每个设备,期望每个系统设备只查看以其作为目的地址发送的数据包。然而,将设备设置为混杂模式(promiscuous mode)是相当容易的,该模式允许设备查看所有数据包,而不管其目的地址是什么。大多数的数据包捕获程序,例如tcpdump,默认情况下将它们监听的设备设置为混杂模式。
4、Windows网络嗅探:Windows系统不提供嗅探与抓包接口,但又有一个内核态虚拟设备驱动程序,NPF可以过滤数据包。使用Winpcap来生成数据包比使用原始套接字更加灵活,功能更加丰富。在基于原始套接字方法中,由于原始套接字的某些限制,其构造的数据包最底层协议的数据包只能是IP数据包不能够构造IP层以下的协议数据包,例如链路层数据包就不能构造,而使Winpcap可以构造基于链路层的数据包。
网络协议分析技术
网络协议分析技术原理:对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
网络协议分析技术的具体流程:通过嗅探得到链路层原始二进制数据包、对以太网帧进行结构分析、对IP数据包进行分析、确定具体的应用层协议、对数据进行整合恢复,得到实际传输数据。常用的工具如Wireshark。
2.实践过程
作业一:tcpdump实践
任务:利用tcpdump对在本机上访问www.tianya.cn网站过程进行嗅探。在访问网站首页时,浏览器将访问多少个web服务器,IP地址是什么?
利用tcpdump进行嗅探。原理上:建立TCP三次握手,HTTP请求报文,HTTP响应报文,TCP四次挥手离开。因此浏览器将访问多少个web服务器,即TCP三次握手时抓取syn不等于0并且ack不等于0的包,输入如下命令:tcpdump -nn 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0 and(host 192.168.200.64)and(port 80)'
其中的IP地址为本地主机地址,80端口用于网页浏览,如果不加端口名,还将会查询出经443端口的IP, 443端口为网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。
主要IP地址如下:
221.182.218.229
221.182.218.244
72.21.202.25
99.86.113.26
99.86.113.16
221.182.218.238
其中的ip地址每次访问也会有不同,用nslookup验证tcpdump的正确性,根据天涯网首页的源代码可以找到相关服务器域名,如passport.tian.cn , static.tianya.cn;两者相较对比可验证正确性.
作业二:Wireshark实践
任务:使用wireshark对在本机上以telnet方式登录BBS进行嗅探与协议分析。
-
BBS服务器的IP地址与端口?
-
telnet协议是如何向服务器传送你输入的用户名及登录口令?
-
如何利用wireshark分析嗅探的数据包,并从中获取用户名及登录口令?
1.将本地物理机上的Telnet打开,因为win10中默认为关闭的。具体为控制面板 —> 程序—>启用或关闭 Windows 服务 —> 勾选 Telnet。如下图;之后开启wireshark,抓取数据包
2.wireshark开启的同时,在终端输入
telnet bbs.fudan.edu.cn
进入复旦日月光华论坛(本想找找其他学校,但还是复旦的好看),可以看到其IP地址为202.120.225.9;端口为23;输入guest进入
3.在过滤器中输入
ip.src == 202.120.225.9
可以看做telnet协议数据包,通过追踪 TCP 流可以看到我们的账号和密码(Telnet协议在传输用户名和密码时采用的时明文传输);如下图
作业三:取证分析实践
任务人为构造的到一台蜜罐主机的5次不同类型的端口扫描。
攻击主机的IP地址是什么?
网络扫描的目标IP地址是什么?
本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理
蜜罐主机上哪些端口被发现是开放的?
攻击主机的操作系统是什么?
(1)利用wireshark对tcpdump格式二进制网络日志文件进行分析,打开统计里的conversation,可得两个IP地址 172.31.4.178和172.31.4.188来往最密切, 通过端口扫描响应的内容可得攻击者ip地址为172.31.4.178, 目标IP地址为172.31.4.188
(2)通过snort扫描检测。①要使用snort,那么首先解决snort的安装,输入下列命令sudo apt-get install snort
,太棒了_,安装snort失败。
②失败报错是啥没截图也不记得了,反正就是apt-get更新不了,报了什么错也不记得了也没截图,不是我故意的,实在是这一段太烦人了,耗了太多时间。需要更新库源并且修改DNS解析。那就先进行这两步,这两步都要用到vim,太棒了_,编辑进vim失败,保存失败。
③报错E212: Can't open file for writing
,解决链接找不到了,有同样问题的同学自行搜索。解决这一步之后,太棒了_,更新失败。……我吐血了……之后又加上sudo apt-get dist-upgrade
这一步更新。终于解决。(其实之前还尝试了一些其他方法,不知道有没有辅助到。另外,我看其他同学没遇到这么多问题,可能这就是命吧)
④(再说一下,这里解决过程都没截图,实在是我不知道每一步解决之后是不是解决了问题)
3.在wireshark中筛选ARP,nmap扫描前是通过ARP确定MAC地址,且每次扫描前会检测目标ip是否活跃. 在图中找到目的地为broadcast, 形式为who has 172.31.4.188?Tell 172.31.4.178 . 地址扫描探测是指利用ARP请求目标网段,如果目标网段没有过滤规则,则可以通过回应消息获取目标网段中存活机器的IP
地址和MAC
地址,进而掌握拓扑结构。如:172.31.4.178
向指定网段发起ARP请求,如果IP不存在,则无回应, 因存在,所有回应为MAC地址. 可以看出攻击机第一次nmap扫描和第二次nmap扫描之间没有数据包,则第一次nmap扫描为探测目标IP是否活跃nmap -sP 172.31.4.188
4.第二次扫描的时间没有第三次扫描时间长,应该不是对所有端口进行扫描. 同时发现攻击机向靶机发送精心设计的TCP/UDP/ICMP数据包, 根据nmap -O
的原理, Nmap内部包含了2600多已知系统的指纹特征(在文件nmap-os-db文件中), 根据返回的数据包生成系统指纹与样本库作比较,查找匹配的系统, 如果无法匹配,以概率形式列举出可能的系统。猜测第二次扫描为主动探测操作系统, nmap -O
扫描.
5.第三次扫描 往返的是13W数据包, 大致扫描了6W多端口, 所以猜测为TCP SYN扫描,即半开连接扫描, 即为nmap -sS
, 半连接扫描不使用完整的TCP连接。攻击方发起SYN请求包;如果端口开启,目标主机回应SYN ACK包,攻击方再发送RST包。如果端口未开启,目标主机直接返回RST包结束会话
6.第四次扫描, 筛选端口tcp.port==80
, 80端口是用于万维网(WWW)服务的超文本传输协议(HTTP) ,发现第四次扫描建立了HTTP连接,即猜测该次扫描为nmap -sV
,确定目标主机开放端口上绑定的网络应用服务类型与版本. 网络服务探查主要依据网络服务在实现应用层协议时所包含的特殊指纹信息. 扫描主机向目标主机发送特制的数据包,根据反馈包中包含的指纹特征,识别开放端口的网络服务.
7.通过筛选tcp.flags.syn == 1 and tcp.flags.ack == 1
确定开放端口为21 , 22 , 23, 25, 53, 80, 139, 445,3306, 5432, 8009 , 8180
。
8.用p0f -r listen.pcap
进行探测得该操作系统为linux 2.6.X,p0f工具为监听网卡收发的数据包,能从数据包中读取远端机器操作系统服务版本等信息。
任务四:攻防实践
任务:攻击方用nmap扫描,防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。
metasploitable-linux靶机当攻击方,IP地址为192.168.200.125
.进行了两次扫描,,第一次为nmap -sP
,第二次为nmap -O
.
kali 当防守方,IP地址为 192.168.200.64
,用tcpdump截获攻击机和目标机之间的通信tcpdump host 192.168.200.3 and 192.168.200.125
.根据下图分析可得攻击信息,得到验证。
3.学习中遇到的问题及解决
问题一:kali不能上网,重置网卡后仍无效
解决方案:找到问题,为VMware几项服务之前被我关闭,被设为手动启动,现在忘了,开启各项服务并重新启动虚拟机解决。
问题二:取证分析实践遇到问题,具体详解已在任务三中阐述。
4.实践总结
1.要多实践,同时在做实验的时候要弄清楚为什么.
2.不懂就问,遇到问题要及时与同学交流
3.学一门新的技术真的有点难
参考在文首