网络通信入门

我们一直听说要进行渗透测试,测试人员必须了解基本的网络概念,如IP地址,有类别的子网,无类子网,端口和广播网络.第一个原因是,哪些主机活动在批准的范围内,以及它们打开和响应的服务,端口和功能将决定评估员在渗透测试中将执行哪种活动.环境不断变化,系统经常被重新分配.因此,很可能旧的漏洞可能再次出现,并且在没有扫描网络的良好知识的情况下,可能会发生初始扫描必须重做.在接下来的部分中,我们将讨论网络通信的基础知识.

参考模型

参考模型提供了一种标准化方法,在全球范围内都可以接受因为使用计算机网络的人位于很宽的物理范围内,并且他们的网络设备可能具有异构架构.为了在异构设备之间提供通信,我们需要一个标准化模型,即参考模型,它将为我们提供这些设备可以通信的方式.

我们有两个参考模型,如作为OSI模型和TCP/IP参考模型.但是,OSI模型是一个假设模型,但TCP/IP是一个实用模型.

OSI模型

开放系统接口是由国际标准化组织(ISO)因此,它也被称为ISO-OSI模型.

OSI模型由七层组成,如下图所示.每个层都有一个特定的功能,但是每个层都为上面的层提供服务.

OSI Model

物理层

物理层负责以下活动 :

  • 激活,维护和停用物理连接.

  • 定义传输所需的电压和数据速率.

  • 将数字位转换为电信号.

  • 确定连接是单工,半双工还是全双工.

数据链路层

数据链路层执行以下功能 :

  • 对通过物理链路传输的信息执行同步和错误控制.

  • 启用错误检测,并将错误检测位添加到t他要发送的数据.

网络层

网络层执行以下操作函数 :

  • 通过各种渠道将信号路由到另一端.

  • 通过决定应采用哪种路由数据来充当网络控制器.

  • 将传出消息分成数据包并分成将传入的数据包组合成更高级别的消息.

传输层

传输层执行以下函数 :

  • 它决定数据传输是在并行路径还是单路径上进行.

  • 它执行多路复用,拆分数据.

  • 它将数据组分成更小的单位它们由网络层更有效地处理.

传输层保证传输o f数据从一端到另一端.

会话层

会话层执行以下功能 :

  • 管理消息并同步两个不同应用程序之间的对话.

  • 它控制日志记录开启和关闭,用户识别,计费和会话管理.

表示层

演示文稿图层执行以下功能 :

  • 此图层确保以接收系统将采用的形式传递信息理解并使用它.

应用层

应用层执行以下功能 :

  • 它提供不同的服务,例如以多种方式处理信息,重新传输信息文件,分发结果等等.

  • 功能应用层也会执行LOGIN或密码检查等离子.

TCP/IP模型

传输控制协议和Internet协议(TCP/IP)模型是一种实用模型,并在Internet中使用.

TCP/IP模型结合了两个层(物理和数据链路层)成一层 - 主机到网络层.下图显示了TCP/IP模型的各个层次 :

TCP/IP Model

应用层

该层与OSI模型的层相同,并执行以下功能 :

  • 它提供不同的服务,例如以多种方式处理信息,重新传输信息文件,分发结果等.

  • 应用程序层还执行LOGIN或密码检查等功能.

  • 以下是Application层中使用的不同协议 :

    • TELNET

    • FTP

    • SMTP

    • DN

    • HTTP

    • NNTP

传输层

它的功能与OSI模型中传输层的功能相同.考虑以下与传输层相关的重要点 :

  • 它使用TCP和UDP协议进行端到端传输.

  • TCP是一种可靠且面向连接的协议.

  • TCP还处理流量控制.

  • UDP不可靠,连接少协议不执行流量控制.

  • 此层使用TCP/IP和UDP协议.

Internet Layer

该层的功能是允许主机将数据包插入网络,然后使它们独立地到达目的地.但是,接收数据包的顺序可能与它们发送的顺序不同.

Internet层中使用了Internet协议(IP).

主机到网络层

这是TCP/IP模型中的最低层.主机必须使用某种协议连接到网络,以便它可以通过它发送IP数据包.该协议因主机和网络而异.

此层中使用的不同协议为 :

  • ARPANET

  • SATNET

  • LAN

  • 分组无线电

有用的架构

以下是一些有用的架构,用于网络通信 :

以太网帧架构

一位名叫Robert Metcalfe的工程师于1973年首次发明了IEEE标准802.3定义的以太网网络.它最初用于在工作站和打印机之间互连和发送数据.超过80%的LAN使用以太网标准,速度快,成本低,易于安装.另一方面,如果我们谈论帧,那么数据就会从主机传播到主机.帧由各种组件构成,如MAC地址,IP头,开始和结束定界符等.

以太网帧以Preamble和SFD开头.以太网报头包含源和目标MAC地址,之后存在帧的有效负载.最后一个字段是CRC,用于检测错误.基本的以太网帧结构在IEEE 802.3标准中定义,其解释如下:<

以太网(IEEE 802.3)帧格式

以太网数据包传输以太网帧作为其有效载荷.以下是以太网帧的图形表示以及每个字段的描述 :

<tr style ="text-align:center ;>>

字段名称前导码SFD(帧开始分隔符)目的地MAC来源MAC类型数据CRC
大小(以字节为单位)7166246-15004

Preamble

以太网帧前面有一个7字节大小的前导码,它通知接收系统帧正在启动,并允许发送方和接收方建立位同步.

SFD(帧起始分隔符)

这是一个1字节的字段表示目标MAC地址字段以下一个字节开头.有时SFD字段被认为是Preamble的一部分.这就是为什么在许多地方将前导码视为8个字节.

  • 目的地MAC : 这是一个6字节的字段,其中,我们有接收系统的地址.

  • 源MAC : 这是一个6字节的字段,其中,我们有发送系统的地址.

  • 类型 : 它定义了框架内的协议类型.例如,IPv4或IPv6.它的大小是2个字节.

  • 数据 : 这也称为Payload,实际数据插入此处.其长度必须介于46-1500字节之间.如果长度小于46个字节,则添加填充0以满足最小可能长度,即46.

  • CRC(循环冗余校验) ) : 这是一个包含32位CRC的4字节字段,允许检测损坏的数据.

扩展以太网帧(以太网II帧) )格式

以下是扩展以太网帧的图形表示,使用它可以获得大于1500字节的负载;

字段名称目的地MAC来源MAC类型DSAPSSAPCtrl数据CRC
大小(以字节为单位)662111> 464

字段的描述,与IEEE 802.3以太网fra不同我,如下 :

DSAP(目标服务访问点)

DSAP是一个1字节长的字段,表示逻辑地址用于接收消息的网络层实体.

SSAP(源服务访问点)

SSAP是一个1字节长的字段,表示已创建消息的网络层实体的逻辑地址.

Ctrl

这是一个1字节的控制字段.

IP数据包架构

Internet协议是TCP/IP协议套件中的主要协议之一.该协议在OSI模型的网络层和TCP/IP模型的Internet层工作.因此,该协议负责基于其逻辑地址识别主机并通过底层网络在它们之间路由数据. IP提供了一种通过IP寻址方案唯一标识主机的机制. IP使用尽力而为的传递,即它不保证数据包将被传递到目标主机,但它将尽力到达目的地.

在我们的后续章节中,我们将了解两种不同版本的IP.

IPv4

这是Internet协议版本4,它使用32位逻辑地址.以下是IPv4标题的图表以及字段和减号的描述;

IPv4

版本

这是使用的互联网协议的版本;例如,IPv4.

IHL

Internet标头长度;整个IP头的长度.

DSCP

差异化服务代码点;这是服务类型.

ECN

显式拥塞通知;它包含有关路径中看到的拥塞的信息.

总长度

整个IP数据包的长度(包括IP报头和IP有效负载) .

标识

如果IP数据包在传输过程中被分段,则所有片段都包含相同的标识号.

标志

根据网络资源的要求,如果IP数据包太大而无法处理,这些"标志"会告诉它们是否可以分段.在这个3位标志中,MSB始终设置为"0".

片段偏移

此偏移量告诉片段的确切位置在原始IP数据包中.

生存时间

为了避免在网络中循环,每个数据包都会发送一些TTL值设置,这告诉我们网络可以跨越多少路由器(跳).在每一跳时,其值减1,当值达到零时,数据包将被丢弃.

协议

告诉网络层目标主机,此数据包所属的协议,即下一级协议.例如,ICMP的协议号为1,TCP为6,UDP为17.

Header Checksum

此字段用于保持校验和整个标头的值,然后用于检查数据包是否无错接收.

源地址

32位地址数据包的发件人(或来源).

目标地址

数据包的接收者(或目的地)的32位地址.

选项

这是一个可选字段,如果IHL的值大于5,则使用该字段.这些选项可能包含诸如安全性等选项的值,记录路线,时间戳等

如果您想详细研究IPv4,请参阅此链接 -   www.it1352.comhttps://www.tutorialspoint.com/ipv4/index.htm

IPv6

Internet协议版本6是最新的通信协议,其作为其前身IPv4 w网络层(第3层)上的orks.除了提供大量的逻辑地址空间外,该协议还具有丰富的功能,可以解决IPv4的缺点.以下是IPv4标题的图表以及字段和减号的描述;

IPv6

版本(4位)

它表示Internet协议的版本 -  0110.

流量类别(8位)

这8位分为两部分.最重要的6位用于服务类型,以使路由器知道应该向该数据包提供哪些服务.最低有效2位用于显式拥塞通知(ECN).

流标签(20位)

此标签用于维护属于通信的分组的顺序流.源标记序列以帮助路由器识别特定分组属于特定信息流.该字段有助于避免重新排序数据包.它专为流媒体/实时媒体而设计.

有效载荷长度(16位)

此字段用于告诉路由器多少特定数据包在其有效负载中包含的信息.有效载荷由扩展标头和上层数据组成.使用16位,可以指示最多65535个字节;但如果扩展标头包含逐跳扩展标头,则有效负载可能超过65535字节,此字段设置为0.

下一个标头(8位)

此字段用于指示扩展标头的类型,或者如果扩展标头不存在,则它指示上层PDU.上层PDU类型的值与IPv4相同.

跳限制(8位)

该字段用于停止数据包无限循环在网络中.这与IPv4中的TTL相同.跳跃限制字段的值在通过链路(路由器/跳跃)时递减1.当字段达到0时,数据包将被丢弃.

源地址(128位)

此字段指示数据包的发起者地址.

目标地址(128位)

此字段提供数据包预期收件人的地址.

如果您想详细研究IPv6,请参阅此链接 -   www.it1352.comhttps://www.tutorialspoint. com/ipv6/index.htm

TCP(传输控制协议)标头架构

我们知道TCP是一个连接面向对象的协议,其中在开始通信之前在两个系统之间建立会话.通信完成后,连接将关闭. TCP使用三次握手技术在两个系统之间建立连接套接字.三次握手意味着在两个系统之间来回发送三条消息 -  SYN,SYN-ACK和ACK.在两个系统(启动系统和目标系统)之间工作的步骤如下:

步骤1和减号;设置了SYN标志的数据包

首先,尝试启动连接的系统从设置了SYN标志的数据包开始.

步骤2 : 设置了SYN-ACK标志的数据包

现在,在此步骤中,目标系统返回一个包含SYN和ACK标志集的数据包.

第3步和第3步;设置了ACK标志的数据包

b

最后,启动系统会将数据包返回到原始目标系统并设置了ACK标志.

以下是TCP标题的图表以及字段 : 的描述;

带有ACK标志的TCP数据包设置

源端口(16位)

它标识发送设备上应用程序进程的源端口.

目标端口(16位)

它标识接收设备上应用程序进程的目标端口.

序列号( 32位)

会话中段的数据字节序列数.

确认号(32位)

当设置ACK标志时,该数字包含预期数据字节的下一个序列号,并作为对先前接收数据的确认.

数据偏移量( 4位)

该字段同时包含TCP报头的大小(32位字)和整个TCP段中当前报文中数据的偏移量.

保留(3位)

保留供将来使用,默认设置为零.

标志(1) - 每个)

  • NS : 显式拥塞通知信令进程使用此Nonce Sum位.

  • CWR : 当主机收到设置了ECE位的数据包时,它会设置Congestion Windows Reduced以确认收到了ECE.

  • ECE : 它有两个含义 :

    • 如果SYN位清零,则ECE表示IP数据包有CE (拥塞经验)位设置.

    • 如果SYN位设置为1,则ECE表示该设备具有ECT功能.

  • URG : 它表示紧急指针字段具有重要数据并且应该被处理.

  • ACK : 它表示确认字段具有重要性.如果ACK被清除为0,则表示该数据包不包含任何确认.

  • PSH : 设置后,它向接收站请求PUSH数据(一旦到达)而不缓冲它.

  • RST : 重置标志具有以下功能 :

    • 它用于拒绝传入连接.

    • 用于拒绝某个段.

    • 用于重启连接.

  • SYN : 此标志用于在主机之间建立连接.

  • FIN : 该标志用于释放连接,此后不再交换数据.因为具有SYN和FIN标志的数据包具有序列号,所以它们的处理顺序正确.

Windows大小

该字段用于两个站之间的流量控制,并指示接收器为一个段分配的缓冲区数量(以字节为单位),即接收方期望的数据量.

  • 校验和 : 该字段包含标题,数据和伪标题的校验和.

  • 紧急指针 : 如果URG标志设置为1,它指向紧急数据字节.

  • 选项 : 它有助于其他选项,常规标题不包含这些选项.选项字段始终以32位字描述.如果此字段包含小于32位的数据,则使用填充覆盖剩余的位以达到32位边界.

如果如果您想详细研究TCP,请参阅此链接 -   https://www.it1352.comhttps://www.tutorialspoint.com/data_communication_computer_network/transmission_control_protocol.htm

UDP(用户数据报协议)标头架构

UDP是一种简单的无连接协议,与TCP不同,面向连接的协议.它涉及最少量的沟通机制.在UDP中,接收器不生成对接收到的分组的确认,并且发送者不等待对所发送的分组的任何确认.这个缺点使得该协议不可靠并且处理起来更容易.以下是UDP标题的图表以及字段 : 的描述;

UPD

源端口

此16位信息用于标识数据包的源端口.

目标端口

此16位信息用于标识目标计算机上的应用程序级别服务.

长度

length字段指定UDP数据包的整个长度(包括标头).它是一个16位字段,最小值是8字节,即UDP标头本身的大小.

校验和

这field存储发送方在发送之前生成的校验和值. IPv4将此字段设置为可选字段,因此当校验和字段不包含任何值时,将其设置为0并将其所有位设置为零.

要详细研究TCP,请参阅此链接 -   https://www.it1352.comhttps://www.tutorialspoint.com/data_communication_computer_network/user_datagram_protocol.htm