My learning path (网络安全高级应用)TCP/IP高级技术

简介:

本篇文章的内容主要讨论关于TCP/IP中数据报一些理论,包括针对于IP数据报的格式,ICMP数据报等内容,包括使用hping工具模拟一些常见的攻击,并使用sniffer pro查看正常报文和攻击报文的差别。

IP数据报

      IP数据报由首部,数据两部分组成。

image

      这里看的是IP数据报的首部,可以看到以下信息。每一行占32个比特,即4个字节,目的IP地址往上的信息都是固定内容,则固定需要20个字节,选项为非固定信息,可变长度,选项最多可长达40个字节。

版本:表示IP版本号,目前版本为IPv4。此位占4个比特。 
首部长度:表示IP数据报的首部长度,占4个比特位。一般IP数据报头长度为20字节。(首部长度占4个比特,则可以有15个字节,表示在IP数据包头中有15行,每行为32个比特,则4个字节,所以IP数据报首部最多长达60个字节。) 
区分服务:表示数据包的优先级和服务类型,占8个比特,用于实现QoS的要求。 
总长度:表示IP数据报的长度,包括首部和数据,占16比特,最长为65535字节。 
标识:IP数据包的标识(在IP分片中会详细介绍),占16比特。 
标志:标志字段,占3比特。 
分片偏移:在IP分片中的偏移量,占13比特。 
TTL:生存时间,当数据包经过一个路由器,TTL值减去1,当为0时,丢弃数据包。 
协议号:在此IP数据报中封装的上层协议,如TCP,UDP等。 
效验和:占16比特位,用于检查数据是否被篡改。

IP分片的原理

      如同IP数据包一样,在数据链路层也会有相应的帧格式,并且数据桢中所包含的数据,也就是上层IP数据包的大小也是有限制的,最大值被称为MTU(最大传输单元),以太网的MTU值为1500字节,PPP链路的MTU值为296字节。但是我们通信所产生的数据流量并不一定小于MTU,在以太网中,当数据大于1500时,就会出现IP分片,将数据分成几部分发送。在IP分片的时候,就需要用到上述IP数据报首部中的第二行中的信息了。标识,同时发送多个数据的时候会产生不同的IP分片,标识就是用来确定此数据包中包含的数据是哪个数据中的分片。标志用来确认这是否是此数据中多个IP分片中的最后一个,而分片偏移就是用来接收方进行分片重组的,相当于序号,通过序号来进行分片重组。

下面通过sniffer pro 抓包工具来证实IP分片。

实验拓扑:PC1和PC2分别连接路由器的两端。PC1使用windows操作系统,装上sniffer软件进行抓包,而PC2使用Linux系统进行IP分片的证实。 
PC1 :  IP  200.1.1.10  MASK  255.255.255.0  网关: 200.1.1.1 
PC2 :  IP  192.168.1.10  MASK  255.255.255.0  网关: 192.168.1.1 
路由器的两个接口分别是PC的两个网关,实现通信。

实验步骤:

setup  : 安装sniffer pro软件。 
setup  : 网络相关配置,达成通信。 
setup  : 开始sniffer工具,并且设置自己为监控的对象。

image

 

选择监控的网卡之后,选择规定过滤 define filter,在其中设置自己的IP地址为监控对象。

image

确定之后,点击左上角开始按钮开始监控。

我们在linux主机(PC2)使用PING命令进行分片证实。

首先抓到第一个包

image

从第一个包中可以得到以上信息,通过第二个数据包对比,就可以看出差异。

image

      通过以上实验,说明确实会产生IP分片。在以前的操作系统中,当出现一些利用分片偏移错误的数据包发送给系统,会直接导致系统瘫痪,如今已经有了很好的防范不会产生如此后果。我们在linux主机上安装Hping工具,就可以模拟这种攻击。

安装过程就掠过了。

在Linux系统下键入以下脚本 
#!/bin/bash 
for ((i=1;i<50;i++)) 
do 
hping 200.1.1.10 –1 –x –d 1000 –N $i –c 1 
hping 200.1.1.10 –1 –d 200 –g 400 –N $i –c 1 
done

      这样就模拟了利用分片偏移错误而形成的泪滴攻击。其中-1表示hping中的icmp模式,-x表示more fragments 标志,表示后续还有数据,未发完。-d为数据包大小,-N为标识,-c为数量。正常数据包第二个包的分片偏移应该为980,而第二次发送的数据包我们用-g设置分片偏移为400 则产生了泪滴攻击的效果。

ICMP报文

      ICMP报文就封装在IP数据包中,分为差错报告和查询报文。

查询报文:type 8  type 0都属于查询报文。当我们ping一台主机,ping通会产生两种报文,回送请求(8)和回送应答(0)就是这两种类型了。 
差错报告报文:差错报告报文总共分为 type3 终点不可达  type 4 源点抑制 type 5 改变路由 type 11超时 type 12参数问题 
type 3  : 终点不可达,终点不可达的数据包由中间路由发出,当此路由器不能将数据发送给目的主机或者找不到目的主机时,将数据包丢弃,再给源发送type3 的报文。终点不可达分为16种,常见的有1 主机不可达,3端口不可达。显示为 type 3 code =1。 

还有一种常见的为type 11超时报文,他的code值为0或者1,0的情况为:每个数据包都有ttl值,当一个路由器接到一个ttl值为0的数据包,则直接丢弃,并发送type 11 code =0的报文给源,而1为目的主机使用,当目的主机超过一定时限还没有收到全部的数据分片时,会给源发送 type = 11 code =1的报文。


本文转自 郑伟  51CTO博客,原文链接:http://blog.51cto.com/zhengweiit/406278

相关文章
|
5天前
|
SQL 安全 算法
网络安全与信息安全:攻防之间的技术博弈
【4月更文挑战第20天】在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要屏障。本文深入探讨了网络安全漏洞的成因、加密技术的进展以及提升安全意识的必要性,旨在为读者提供全面的网络安全知识框架,同时分享最新的防御策略和技术手段。通过对网络攻防技术的分析,本文揭示了安全防御的复杂性,并强调了持续教育和技术创新在网络安全领域的重要性。
15 6
|
15天前
|
数据采集 大数据 数据安全/隐私保护
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
本文探讨了使用Perl和RobotRules库在遵循robots.txt规则下抓取小红书数据的方法。通过分析小红书的robots.txt文件,配合亿牛云爬虫代理隐藏真实IP,以及实现多线程抓取,提高了数据采集效率。示例代码展示了如何创建一个尊重网站规则的数据下载器,并强调了代理IP稳定性和抓取频率控制的重要性。
掌握网络抓取技术:利用RobotRules库的Perl下载器一览小红书的世界
|
1天前
|
SQL 监控 安全
网络安全与信息安全:防御前线的关键技术与策略
【4月更文挑战第24天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些宝贵资产不受威胁的保险箱。本文深入探讨了网络安全漏洞的本质、加密技术的进展以及提升个人和企业安全意识的重要性。通过分析当前网络环境中的安全挑战,我们提出了一系列创新的防御机制和实践方法,以期为读者提供一套全面的信息保护方案。
|
1天前
|
存储 监控 安全
网络安全与信息安全:防御前线的技术与意识
【4月更文挑战第24天】在数字化时代,网络和信息安全已成为维护社会稳定、保护个人隐私和企业资产的关键。本文深入探讨了网络安全漏洞的概念、加密技术的进展以及提升安全意识的重要性。通过分析当前网络威胁的多样性,我们强调了持续监控、定期更新系统、使用复杂密码和多因素认证的必要性。同时,文章还介绍了非对称加密、量子加密等先进加密技术的原理和应用。最后,我们讨论了培养全民网络安全意识的策略,包括教育培训、模拟演练和社会工程防护。
|
5天前
|
安全 物联网 网络安全
网络安全与信息安全:防御前线的关键技术与策略
【4月更文挑战第21天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些资产不受威胁的盾牌。本文深入探讨了网络安全漏洞的本质、加密技术的进展以及提升个人和企业安全意识的方法。通过分析当前网络攻击的模式和动机,我们提出了一系列切实可行的防御措施,旨在帮助读者构建更加安全的网络环境。
|
7天前
|
存储 监控 安全
网络安全与信息安全:防御前线的关键技术与意识
【4月更文挑战第18天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些宝贵资产不受威胁的盾牌。本文深入探讨了网络安全的核心议题—漏洞管理、加密技术以及安全意识的重要性。通过分析当前网络环境中普遍存在的安全挑战,我们阐述了如何通过持续监控、定期更新和强化员工培训来构建一个更加坚固的防线。
|
8天前
|
存储 监控 安全
网络安全与信息安全:防范漏洞、应用加密、提升意识
【4月更文挑战第18天】 在数字化时代,网络安全与信息安全保障已成为维护国家安全、企业利益和个人隐私的关键。本文深入探讨网络安全的多面性,包括识别和防御网络漏洞、应用加密技术保护数据以及提升全民网络安全意识的重要性。通过对这些关键领域的分析,文章旨在为读者提供实用的策略和建议,以增强其网络环境的安全防护能力。
10 0
|
9天前
|
网络协议 Java API
深度剖析:Java网络编程中的TCP/IP与HTTP协议实践
【4月更文挑战第17天】Java网络编程重在TCP/IP和HTTP协议的应用。TCP提供可靠数据传输,通过Socket和ServerSocket实现;HTTP用于Web服务,常借助HttpURLConnection或Apache HttpClient。两者结合,构成网络服务基础。Java有多种高级API和框架(如Netty、Spring Boot)简化开发,助力高效、高并发的网络通信。
|
15天前
|
存储 安全 网络安全
未来云计算与网络安全:技术创新与挑战
随着数字化时代的来临,云计算与网络安全成为了当今科技领域的焦点。本文从技术创新和挑战两个方面探讨了未来云计算与网络安全的发展趋势。在技术创新方面,人工智能、区块链和量子计算等新兴技术将为云计算和网络安全带来前所未有的发展机遇;而在挑战方面,隐私保护、数据泄露和网络攻击等问题也将不断考验着技术研究者和行业从业者的智慧和勇气。未来,只有不断创新,同时加强安全防护,才能实现云计算与网络安全的良性发展。
16 1
|
16天前
|
传感器 监控 安全