20199307 2019-2020-2 《网络攻防实践》第四周作业
问题 | 源 |
---|---|
作业所属课程 | 网络攻防实践 |
作业要求 | https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10518 |
课程目标 | 了解网络攻防的概要 |
这个作业在哪个具体方面帮助我实现目标 | 深入了解网络嗅探、网络协议的分析 |
作业正文.... | 见后文 |
其他参考资料 | 见后文 |
一、实践内容
1.1网络嗅探
1.1.1网络嗅探技术概述
-
网络嗅探概念:网络嗅探利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。
-
网络嗅探器(Sniffer):实现网络嗅探技术的工具,它捕获的数据报文是经过处理之后的二进制数据,因此通常会结合网络协议分析技术来解析嗅探到的而网络数据。
-
网络嗅探是一把双刃剑:
- 对于攻击者来说,网络嗅探是他们经常使用的渗透技术,他们在获得内部网络中一台主机的访问权后进行实施,能够静默地、被动地嗅探到网络上传输的数据。
- 对于防御者来说,网络管理员可以利用网络嗅探来捕获与分析网络的流量信息,以便找出所关心网络中潜在的问题并解决。
-
网络嗅探的监听对象:目前主要的监听对象是以太网(有线局域网)和Wi-Fi(无线局域网)。
-
网络嗅探器的分类:按照实现形式分为软件嗅探器和硬件嗅探器。
- 硬件嗅探器:通过专用硬件对网络数据进行捕获和分析,也称为协议分析仪。
- 优点:速度快,因为常常放到网络中关键位置,所以捕获的网络数据也比较全面。
- 缺点:成本较高、价格昂贵。
- 软件嗅探器:一般实现为不同操作系统类型上的应用软件,通过对网卡进行编程从而实现。
- 优点:价格便宜或者免费,方便使用。
- 缺点:速度慢,往往无法抓取网络上所有的传输数据,不能全面了解网络运行状态。
- 硬件嗅探器:通过专用硬件对网络数据进行捕获和分析,也称为协议分析仪。
1.1.2网络嗅探的原理与实现
-
以太网工作原理:共享通信信道,它采用了载波侦听/冲突检测技术(CSMA/CD)避免共享链路的通信冲突。以太网中传输的数据是以“帧”为单位,帧头中包含发送源和目标的MAC地址。共享信道中,网卡在收到数据时只会收到与网卡自身的MAC地址匹配的数据。
-
共享式网络:使用集线器(Hub)连接,网络拓扑基于总线方式,物理上是广播的。交互式网络:使用交换机组建,所以数据帧都是通过交换机来进行数据转发的。它内存中有“MAC地址-端口映射表”,通过该表将数据发送到特定端口上。
-
交换机中的嗅探攻击方法:
- MAC地址洪泛攻击:发送大量虚构的含有MAC地址和IP地址数据包,使交换机的映射表溢出,变成类似共享式网络一样便于嗅探。
- MAC欺骗:假冒所要监听的网卡,伪造目标源的MAC地址,使交换机相信攻击者的MAC地址就是目标地址,从而达到嗅探。
- ARP欺骗:目前交换式网络最常用的嗅探手段,利用IP地址于MAC地址之间进行转换时的协议漏洞,达到MAC欺骗。
-
类UNIX平台的网络嗅探技术实现:主要通过内核态的BPF和用户态的libpcap抓包工具实现。
-
Windows平台的网络嗅探实现技术:
- NPF(与类UNIX平台上的BPF模块兼容),内核态虚拟设备驱动程序,功能是过滤数据包,并将这些数据包完整的上传给用户;
- WinPcap:与libpcap库相兼容的标准抓包接口。
1.1.3实现网络嗅探软件
- 类UNIX平台:libpcap抓包开发库、tcpdump、wireshark等。
- Windows平台:wireshark、SnifferPro、Buttsniffer、NetMon、Network Associates Sniffer等。
1.1.4网络嗅探的检测与防范
-
网络嗅探检测:同一主机上,可以通过检查网卡是否运行在混杂模式下,来发现正在监听的嗅探器。许多版本的linux内核只检查数据包中的IP地址以确定是否送到IP协议栈,因此可以构造MAC地址无效而IP。
-
网络嗅探防范:采取一系列措施达到减少或消除网络嗅探对网络数据所造成的安全危险。以下为四种措施:
- 使用安全的网络拓扑,尽量将共享式网络升级为交换式网络。
- 用静态ARP或者MAC-端口映射表代替动态机制,能够防范MAC地址欺骗、ARP欺骗等。
- 重视网络数据传输的集中位置点的安全防范。比如网关、路由器、交换机等重要区域。
- 避免使用明文传输口令或敏感信息的网络协议,使用加密及安全增强的网络协议。
1.2网络协议分析
1.2.1网络协议分析技术
-
概念:对获取到的二进制格式数据包进行解析,恢复出各层网络协议信息以及传输内容的技术方法。
-
原理:网络协议分析技术原理类似于对数据包解包的过程,需要从底向上逐层地解析网络协议,同时进行IP分片包以及TCP会话的重组。他需要恢复出各层网络协议信息以及传输内容。
-
网络协议分析典型步骤:
1.通过网络嗅探获取原始数据。这里的数据是在链路层传输的二进制数据包,大多数是以太网数据帧。
2.分析以太网数据帧,定位出帧头各字段结构,根据帧头Type字段确定网络层协议类型,并提取数据帧中包含的网络层数据内容。
3.进一步对IP数据包进行分析,如需重组则先重组,根据IP协议头中的Protocol字段,确定传输层协议类型,并提取IP数据包中的传输层数据内容。
4.继续根据TCP或UDP的目标端口确定具体的应用层协议,并对TCP或UDP数据包进行拼接重组,得到应用层特定的应用交互内容。
5.根据相应得应用层协议对数据进行整合恢复,得到实际传输的数据。
1.2.2网络协议分析工具Wireshark
-
作用:对网络数据进行分析,主要作用是捕获网络数据包,对于数据包进行协议分析时尽可能地显现详细情况。被应用于多个安全领域。
-
wireshark过滤命令:
- 端口过滤:例如过滤TCP协议端口号为80的包,
tcp.port==80
;只过滤TCP协议源端口号为80的包,tcp.srcport==80
;过滤TCP协议目的端口号为80的包,tcp.dstport==80
。 - ip过滤:例如过滤源ip地址的包,
ip.src==192.168.200.125
;例如过滤目的ip地址的包,ip.dst==192.168.200.125
- 协议过滤:在过滤框中输入协议名称即可。
- http模式过滤:
过滤get包,http.request.method=="GET"
过滤post包,http.request.method=="POST"
- 端口过滤:例如过滤TCP协议端口号为80的包,
二、实践过程
实践一、动手实践tcpdump
问题: 使用tcpdump
开源软件对在本机上访问www.tianya.cn
网站过程进行嗅探,回答问题:你在访问www.tianya.cn
网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
答案:
1.首先查询本机ip地址为:192.168.200.2
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200323232537335-1255826760.png)
2.kali中使用浏览器输入天涯的链接www.tianya.cn
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324002923014-428488024.png)
3.使用sudo tcpdump src 192.168.200.68 and tcp dst port 80命令捕获80端口的TCP协议数据包,监听192.168.200.2的http通信
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324003344360-847068066.png)
4.对ip地址124.225.135.230
进行查询,显示所属地为海南
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324005545902-117575170.png)
实践二、利用Wireshark分析嗅探的数据包
问题: 使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
1.你所登录的BBS服务器的IP地址与端口各是什么?
2.TELNET协议是如何向服务器传送你输入的用户名及登录口令?
3.如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
答案:
1.实践环境是在kali,首先开启wireshark,并选择eth0网卡
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324091252883-548901096.png)
2.以复旦大学BBS为例,在终端输入命令luit -encoding gbk telnet bbs.fudan.edu.cn
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324091441454-2080706816.png)
3.到wireshark查看网络动态,在filter框过滤只显示telnet协议的数据,我们发现它的ip地址是202.120.225.9,端口号是23
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324091543277-1626817034.png)
4.使用wireshark的tcp追踪流查看数据
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324092750067-2040496651.png)
5.在选定由本机到目标源的tcp流,就可以看到账号密码
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324093358394-1573190545.png)
实践三、取证分析实践:解码网络扫描
问题: 人为构造的到一台蜜罐主机的5次不同类型的端口扫描。
1.攻击主机的IP地址是什么
2.网络扫描的目标IP地址是什么
3.本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的
4.你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理
5.蜜罐主机上哪些端口被发现是开放的
6.攻击主机的操作系统是什么
答案:
1、2.攻击机采用ARP协议进行探测,通过端口扫描判断主机是否活跃,通过下图可以看出,攻击机的ip地址为172.31.4.178
,网络扫描的目标IP地址是172.31.4.188
。who has 172.31.4.188 tell 172.31.4. 178
,从这条信息中可以看出,是由VM虚拟机发送ARP response报文表示活跃,获取目标主机mac地址。
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324101315665-1911206062.png)
3、4.通过snort命令,可以发现攻击机使用nmap发起端口扫描的,使用如下代码:
- 安装snort:
sudo apt-get install snort
- 使用命令
sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r ./listen.pcap
- 该命令中,-q作用是不显示标志和状态报告,-r <##> 从##文件中读取数据包
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324103319266-306435928.png)
说出攻击者的扫描方法,并描述其工作原理:
在wireshark中过滤ARP,因为使用nmap时,每次都会先探测主机是否活跃,所以在广播域内广播arp request
报文。由下图可知,第一个RAP与第二个之安没有数据包,所以可以确定第一次是采用namp -sP
进行单纯的主机活跃探测。
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324182629042-1465725639.png)
接下来,我们看第二次扫描,将抓包过程挪到第二次扫描的末端,可以看到攻击机在UDP、TCP、SSH端口上使用了大量标志位。由此可知,第二次扫描使用了namp -o
。
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324183648800-861275710.png)
接下来,我们看第三次扫描,在这次扫描过程中往返数据包相差很大(13w多),我们预测是采用了全局端口扫描,所以应该是使用namp -sS
命令进行TCP SYN所有端口的扫描。
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324184304936-656238877.png)
接下来,我们观察到,在第四次ARP后,不仅有TCP协议数据,还有HTTP、TELNET、SMB应用层协议的数据,因此猜测攻击机使用namp -sV
进行网络服务的探测。我们还可以看到第四次扫描所用时间明显比前面多,一般在进行网络服务的探测时会耗费很多时间,所以我们进一步确定。
OSI模型
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324185157914-1408686846.png)
要想知道靶机上那些端口是开放的。通过filter的指令tcp.flags.syn == 1 and tcp.flags.ack == 1
,根据过滤之后的结果可以看出,端口21、22、23、25、53、80、139、445、3306、5432、8009、8180是开放的。
![](https://img2020.cnblogs.com/blog/1800808/202003/1800808-20200324185623507-134802009.png)
以下列出这些端口的信息:
端口号 | 作用 |
---|---|
21 | 文件传输协议FTP |
22 | 安全壳协议SSH |
23 | 网络终端协议Telnet |
25 | 简单邮件传输协议SMTP |
53 | 域名系统DNS |
80 | 超文本传输协议HTTP |
139 | Windows"文件和打印机共享 |
445 | 信息服务块协议SMB |
3306 | MYSQL默认端口 |
5432 | 为PGSQL预留的 |
8009 | AJP协议 |
8180 | Tomcat |
实践四、攻防对抗实践
问题: 攻击方用nmap扫描,防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。
答案: 问题答案在如上实践中全部体现。
三、学习中遇到的问题及解决方法
问题一: kali在使用时无法联网。
问题一解决方法: 通过ifconfig得知,eth0网卡处于停用状态,百度查询后开启网卡eth0,方法在此。
四、实践总结
经过本次实践,我将之前遗忘的网络协议的知识点回忆起来好多,让我对网络攻防的认识更进一层。网络嗅探的过程又是比较有趣的过程,熟练掌握嗅探器对学好网络攻防是很关键的。