文章发布时间应是3月份,犹豫疫情的缘故一直到现在;没有进行内容同步。感谢各位的支持,同时社区欢迎有兴趣有能力的小伙伴一起学习;更多教程可以关注微信公众号:Esn技术社区
TCP/IP 的基础知识,即传输控制协议 (TCP) 和互联网协议 (IP)。这些是互联网上用于通信的最常见协议。
什么是协议?
协议只是一种商定的通信方式。我们现在都在用普通话进行交流,那么普通话就是我们之间的协议交流方式。如果我们没有商定的沟通方式,人们将使用多种语言、语法和规则,而我们谁也不会相互理解。
协议类似。协议只是定义了一种具有所有规则的通信方式。这些规则通常由 RFC(Request for Comments)定义。
互联网上使用的协议有很多很多。这些包括 TCP、IP、UDP、FTP、HTTP、SMTP 等,并且每个都有自己的一组规则,必须遵守这些规则才能有效地进行通信(类似于我们在通过书面语言进行通信时使用的规则)。在 Internet 上使用的最重要的两个协议可能是 IP 和 TCP,所以让我们来看看它们中的每一个。
IP(互联网协议)
IP 或 Internet 协议是用于定义数据包通过 Internet 时的源和目标 IP 地址的协议。它经常与其他协议(例如 TCP)结合使用,因此经常使用的结合是 TCP/IP。
让我们看一下 IP 数据包标头,看看它包含是什么
第 1 行
- 版本:这定义了 IP 的版本,v4 或 v6。
- IHL:定义包头长度。
- 服务类型 (TOS ):这定义了此数据包的服务类型。这些包括最小化延迟、最大化吞吐量、最大化可靠性和最小化货币成本。
- 总长度:这定义了 IP 数据包(包括数据)或片段的总长度。其最大值为 65,535。
第 2 行
- 标识:此字段唯一标识每个数据包。它对于重新组装碎片数据包至关重要。
- IP 标志:此字段定义数据包是否被分段 (M) 或不分段 (D)。对该字段的操作可用于规避 IDS 和防火墙。查看我关于nmap和hping3的教程,了解我们如何操纵数据包以逃避入侵检测系统和其他安全设备。它还可以与 Window 字段一起使用,以识别发送者的操作系统。
- Fragment Offset:当数据包被分片时使用该字段。它定义了应从 IP 标头的开头重新组装数据包的位置。
第 3 行
- TTL:这是“生存的时间”。这定义了数据包过期之前互联网上的跃点数。它因操作系统而异,因此有助于识别发送者的操作系统。
- 协议:此字段定义 IP 使用的协议。大多数情况下,它将是 6 或 TCP,1 用于 ICMP,17 用于 UDP,等等。
- Header Checksum:这是一个错误检查字段。它计算校验和(一种简单的算法)来确定标头中数据的完整性。
第 4 行和第 5 行
- 源/目标:IP 标头的这些行可能是标头中最重要的部分,因为它包含源 IP 地址和目标 IP 地址。
第 6 行
- 选项:此字段是可变长度的,它的使用是可选的。
- 填充:此字段用于在必要时填充标头的剩余位和字节。
注释:如果有什么不懂的可以去网上寻找一些学习资料。我这里写的有点不是很清楚。因为考虑时间关系大过年的我有点迷瞪。如果有错的可以后台说给我修改。
第一行:
源端口/目标端口:可能最重要的是,这些是源端口和目标端口。这些字段决定了通信来自哪个端口(源)和去向(目标)。
第二行:
序列号:序列号由源机器的 TCP 堆栈生成,用于确保数据包到达时按正确的顺序排列。它在击败MitM 攻击方面也很重要。
第三行:
确认号:这是接收系统发回的序列号的回显。它基本上说,“我收到了带有序列号的数据包。” 这样,发送方就知道数据包到达了。如果发送方在固定时间内没有收到确认号,它将重新发送数据包以确保接收方收到数据包。这样,TCP 是可靠的(相比之下,UDP 不这样做,因此不可靠)。
第四行:
第四行有一些关键信息。让我们跳过数据偏移和保留字段。这将我们带到第 4 行中间附近的 8 位。这些是三向握手和n次映射扫描的臭名昭著的标志。
前两位 CWR 和 ECE 超出了初级的范围。接下来的六位是 URG、ACK、PSH、RST、SYN 和 FIN 标志。TCP使用这些标志进行通信;
- SYN:打开一个新的连接。
- FIN:连接的正常“软”关闭。
- ACK:对数据包的确认。三次握手后的所有数据包都应设置该位。
- RST:连接的硬关闭,通常用于传达数据包已到达错误的端口或 IP。
- URG:该标志表示后面的数据是紧急的。
- PSH:将数据通过缓冲区推送到应用程序。
如果您熟悉Nmap作为侦察工具,那么您已经使用了利用所有这些标志的扫描。通过创建带有不应该在野外看到的标志组合的数据包,我们可能能够从非常安全的系统中获得响应,甚至可以逃避检测。
- 窗口大小:在某些图表中,这被简单地描述为窗口字段。它的作用是传达 TCP 堆栈必须缓冲数据包的窗口大小。这就是 TCP 管理流量控制的方式。从侦察或取证的角度来看,仅此字段就足以识别发送数据包的操作系统。该字段因操作系统而异,甚至因 SP 而异。鉴于这一信息,人们可以以大约 80% 的准确度预测发送数据包的操作系统。事实上,正是这个字段和其他一些字段(IP 标头中的 DF 和 TTL)被诸如p0f之类的操作系统指纹识别器用来识别操作系统。
第五行:
- 校验和:该字段使用简单的算法来检查错误。本质上,它是一个完整性检查器。
- URG 指针:该字段指向紧急数据序列号的最后一个字节。必须同时设置 URG 标志才能激活该字段。
第六行:
- 选项:与 IP 标头一样,TCP 标头有一个选项字段,可在必要时使用,并且长度可变。
- 填充:填充是使 TCP 标头达到 32 位的倍数所必需的。
注释:TCP/IP这些只是的理解程度只是我自己的理解程度。如果说你有专业的知识可以在后台给我补充一下。因为这些只是是目前被遗忘的最重要的知识。虽然他被一些工具代替了但是在执行危险的项目的时候使用他人工具终归会留下痕迹的。
如若转载,请注明出处:https://www.hanjifoods.com/16707.html