20199123 2019-2020-2 《网络攻防实践》第4周作业
20199123 2019-2020-2 《网络攻防实践》第4周作业
0 总体结构
本次作业属于那个课程 | 《网络攻防实践》 |
---|---|
这个作业要求在哪里 | 《网络攻防实践》第四周作业 |
我在这个课程的目标是 | 学习网络攻防相关技术、掌握网络攻防相关能力 |
这个作业在哪个具体方面帮助我实现目标 | 复习TCP/IP协议基本知识,学习网络嗅探基本原理和工具的使用 |
作业正文 | 下述正文 |
其他参考文献 | 见文末 |
1.实践内容
1.1 网络嗅探
-
网络嗅探基本原理
网络嗅探技术是一把双刃剑,即可用于攻击者进行攻击,也可用于防御者进行检测。网络嗅探技术可以按照所监听的网络链路层网络进行分类,分为有线局域网和无线局域网两种。网络嗅探器按照实现方式也可以分为硬件和软件嗅探器两种。下面介绍有线局域网链路层协议——以太网为例,对网络嗅探技术的基本原理做简要介绍。
网络嗅探按照其定义可知其是用于对网络中传输的数据进行捕获,因此我们先了解下以太网的基本工作原理以便更好理解网络嗅探。以太网是共享信道,采用CSMA/CD(载波监听/冲突检测技术)。在以太网共享通信媒介中,网络上的站点采用广播方式因此计算机能够接收到在共享媒介上发送给其他计算机的信息。以太网数据以帧为数据单位进行传输,传输时需要加上帧头。在网卡收到以太网共享媒介上传输的数据时,如果网卡驱动程序设置为混杂模式,则其能够接收到一切通过它连接共享通信媒介的数据帧,这就可用于网络嗅探。
根据以太网在实际部署有线局域网方式的不同分为共享式网络与交换式网络两种。
- 共享式网络:使用集线器设备进行部署网络。由于集线器本身的特性(广播数据),因此此种方式使得在同一集线器上连接的所有主机在发送数据包时,都会发往每一台主机,因此其中任一主机都能够嗅探整个集线器上的全部网络流量。
- 交换式网络:使用交换机进行部署的网络。交换机内存中保存了MAC-端口映射表这便于交换机转发数据(具体的原理可百度或见教材)
- 还有下面的几种技术手段也可实现网络嗅探:(1)MAC地址泛红攻击(2)MAC欺骗(3)ARP欺骗
-
网络嗅探工具介绍
网络嗅探根据操作系统的不同分为类UNIX平台下和Windows平台下。类UNIX平台下网络嗅探技术主要通过内核态BPF和用户态libpcap抓包工具库实现。具体实现技术如图
Windows平台下主要是根据类UNIX平台的实现方式做了与BPF和libpcap兼容的NPF和WinPcap。
最常用的网络嗅探软件是tcpdump,其核心是libpcap抓包工具,具体的原理可以看下linux下的网络抓包工具tcpdump底层原理可以发现其实现的底层原理就是按照上图进行的。tcpdump的具体使用可以看这个博客tcpdump抓包分析。
1.2 网络协议
-
网络协议分析原理
网络协议分析是指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。其实网络协议分析就是对数据按照TCP/IP或其他模型的标准进行分析。
2.实践过程
-
动手实践1:tcpdump
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器访问多少个Web服务器?他们的IP地址都是什么?
- 分析:参考了博客网络分析之浏览器访问网站的通信过程可得治在发起浏览器访问时,需要做以下操作:
1、操作系统通过ARP广播协议获取网关的MAC;
2、紧接着使用DNS协议查询浏览的网址的具体地址获取其IP,数据在链路中进行传输(通过路由器去寻找目标IP);
3、服务器端得到数据包之后,取下MAC头发送到网络层,再匹配IP;取下IP头,进入传输层,进行TCP协议分析;
4、TCP协议的三次握手;
5、最后是应用层的http协议分析,服务器端进行应答。
以上过程的数据包封装如下图:
- 实践操作:在ubuntu终端中输入命令
sudo tcpdump src 192.168.200.3 and tcp dst port
具体的tcpdump命令行使用规则可见tcpdump参数详解及使用详解这里不做赘述。访问www.tianya.cn此时终端可以看到抓取的数据包详情。下图为tcp三次握手的数据包情况;
然后是http服务器的相应,如下图。由此可知浏览器访问的Web服务器有:
124.225.135.230海南省三亚市 124.225.65.154天涯IP
使用nslookup www.tianya.cn
查看天涯的ip为124.225.65.154
核实上述tcpdump已抓取到天涯的数据包
-
动手实践2:Wireshark
任务:使用Wireshark开源软件对在本机上以telnet方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:(1)你所登录的BBS服务器的IP地址与端口各是什么?(2)telnet协议是如何向服务器传送你输入的用户名及登录口令的?(3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
-
分析:在网上查了下如何进行telnet登录bbs,发现自己安装的winxp虚拟机里面自带telnet加上有wireshark软件就直接在winxp里面做了这个实践;查了几个bbs服务器,发现只有复旦大学的还能用,所以就选择复旦的bbs服务器了。
-
实践:(1)打开cmd输入命令行
telnet bbs.fudan.edu.cn
进入界面如下图,发现其IP为202.120.225.9
,然后注册再重新登录,通过查看wireshark里面可知其端口号为23
-
(2)通过wireshark的抓包可以发现telnet登录BBS和之前登录浏览器的方式很类似。首先是DNS找到网关的IP为192.168.200.1
;ARP解析寻找网关MAC;然后DNS解析IP地址202.120.225.9
;TCP协议三次握手;最后是telnet传输;
(3)在wireshark里面过滤一下Telnet,往下翻一翻就能看到自己输入的用户名和密码,由下图可知telnet是明文传输非常的不安全。
-
取证分析实践:解码网络扫描
问题:1、攻击主机的IP地址是什么?2、网络扫描的目标IP地址是什么?3、本次案例中是使用哪个扫描工具发起这些端口扫描?你是如何确定的?4、你所分析的日志文件中,攻击者使用了那些扫描方法,扫描的目标端口是什么,并描述其工作原理。5、在蜜罐主机上发现哪些端口是开放的?6、额外奖励问题:攻击机的操作系统是什么?
攻防对抗实践:攻击方用nmap扫描(达到特定目的),防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。
-
首先查看文件的会话,通过会话流量和地址分析可知,主要是在
172.31.4.178
和172.31.4.188
两个地址之间进行会话,因此其中一个为攻击机IP一个为靶机IP;紧接着我们查看文件中TCP会话数据包,可知攻击机IP为172.31.4.178
,网络扫描的目标IP为172.31.4.188
。
-
攻击方采用nmap扫描,本来是应该有一个验证的,但是我的机子上装不上snort...
-
接下来是分析攻击者使用了nmap哪些指令进行了攻击。首先通过上周的学习,我们知道nmap扫描的原理和ping类似,在每次扫描前,nmap会通过arp更新目标MAC地址,因此过滤文件的arp包如下图,不难看出一共进行了4次nmap扫描。其中第一次和第二次之间没有数据包,所以第一次作为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连接,所以猜测第四次nmap扫描使用了命令nmap -sV
探测靶机上开放的网络服务。
-
系统的版本。经查询发现不同操作系统的ttl是不一样的linux的
ttl
是64,点击telnet下面的详细信息可以看到ttl=64
因此靶机使用的操作系统应该是linux,这里也应该有一个验证,可是我的kali机子也搞不上p0f,那就这样吧~
-
最后使用命令
tcp.flags.syn == 1 and tcp.flags.ack == 1
进行过滤发现靶机上打开的端口为21、22、23、25、53、80、139、445、3306、5432、8009、8180
.如果wireshark过滤之后显示的是服务的话,可以使用端口对照表进行查看端口。
-
3.学习中遇到的问题及解决
1、我的kali机子出了点问题,所以全程实践我基本上避开了它同样也有些验证无法做...后期重装吧...
2、网络协议是真的不熟悉了...边查边学,后期要渐渐的熟悉起来。
3、有点上周的知识和本周知识脱节的感觉...看来还是我复习做的不到位...
4.实践总结
网络攻防的实践真的需要天时地利人和的完美搭配,你永远不知道前面有哪些坑...或许是硬件问题或许是网络问题,这真的很烦人也真的需要耐心去解决。通过上次和这次的实践已经让我非常的没脾气了,再多做几次,我觉得我的耐心又可以上升一个level了。同时我也意识到网络攻防这个实践需要多方面的知识,需要查的和学习的很多,后期还要多查资料,多学习。