权威黑客知识讲座(三):浅析网络及网络攻击原理(一)

信息,并不是孤岛,为了实现信息的交流必须保证网络互连,而保证信息准确传递还需要依赖于标准和协议(与外国人交流,各自说各自的母语肯定无法沟通,所以需要统一语言,网络通信中的标准和协议就相当于语言的语法)。

作为黑客,只有先理解系统规则,才能推算出如何利用规则获取预期的结果。

(一)OSI七层模型原理

网络通信协议是基于开放系统互联(Open System InterConnection,OSI)参考模型定义的,OSI提供了一组国际通用的规则和标准,任何系统都可以遵循这些规则协议与其他系统进行通信,这些协议组织在7个分离而又互联的层中(OSI七层模型),每层各自负责不同方面,硬件因此也就只关注各自应用层面上的协议而忽略其他方面。

OSI七层模型如下所示:

1.物理层

主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。

2.数据链路层

定义了如何让格式化数据以进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。

3.网络层

在位于不同地理位置的网络中的两个主机系统之间提供连接和路径选择。Internet的发展使得从世界各站点访问信息的用户数大大增加,而网络层正是管理这种连接的层。

4.传输层

定义了一些传输数据的协议和端口号(WWW端口80等),如:TCP(传输控制协议,传输效率低,可靠性强,用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是将从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做段。

5.会话层

通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)。

6.表示层

可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换。

7.应用层

是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务。

通过这些协议传递数据时,以小数据块的形式发送数据,这些小数据块被称为数据包,每个数据包都包含这些层中协议的实现。从应用层开始,数据包在数据外包裹表示层,表示层外面包裹会话层,会话层外又包裹传输层等等,这个过程叫做封装。每个被包装的层都包含一个头和一个主体,头包含该层所需的协议信息而主体包含用于盖层的数据。某一层中的主体包含先前被封装的所有层的完整数据包,就像程序堆栈中的功能上下文。每一层都仅关注各自层面的协议内容,各自职责分明,互不干扰。(路由器仅关注网络层的协议信息,即只需保证数据传递到达其他路由器,而不关注数据内容)。

(二)OSI模型中的关键层

在OSI七层模型中有三层的协议规则最容易被黑客所利用改变,达到攻击的目的,这三层被称为关键层。

网络层:

该层中最著名的协议莫过于网际协议(Internet Protocol,IP),作用与Internet寻址和传递,每个系统都有一个IP地址,包括形如XX.XX.XX.XX的4字节的排列,在网络层中,存在着IP数据包和Internet控制消息协议(Internet Control Message Protocol,ICMP)数据包。其中IP数据包用于发送数据,ICMP数据包用于消息传递及诊断。IP有时并不能保证可以准确的是数据包到达最终目的地,一旦出现问题,会回送ICMP数据包将问题通知发送者。

ICMP一般用于连通性测试,使用ping命令,根据ICMP回送请求消息和应答消息可以测试是否与另一台主机进行通信(主机通过ping发送回送请求,在收到回送请求后,远程主机回送一个回送应答),通过ICMP可以很轻松的判断主机连通性及网络延时等。值得注意的是ICMP和IP都是无连接的,而网络层的所有协议只关心可以把数据包送达目的地址,然而有时网络连接会对数据包进行大小限制,不允许传送大数据包(可通过数据包分段解决)等原因不能保持连接或保证正确传递。

传输层:

该层中两个主要协议是传输控制协议(Transport Control Protocol,TCP)和用户数据报协议(User DataGram Protocol,UDP)。其中TCP广泛应用于telnet,HTTP,SMTP,FTP等,提供两个IP地址之间透明、可靠且双向的连接。TCP的双向连接类似于建立通话(拨打电话后建立通话连接),可靠性是指TCP保证所有数据会以正确顺序到达目的地,如果一个连接的数据包变得混乱并且到达目的地时次序紊乱,TCP将会确保他们在传输到下一层前正确排序,如果某些数据包在连接中丢失,目的地将会等待发送方重新传递丢失的数据包。

一组TCP标志和序号用以保障TCP传递正确性,其中TCP标志如下所示:

TCP标志

意义

目的

URG

紧急

标识重要数据

ACK

确认

确认连接:对于大多数连接它被打开

PSH

发送

通知接收方马上发送数据而不是缓冲数据

RST

复位

复位连接

SYNF

同步

在连接开始期间同步序号

FIN

结束

结束时关闭连接

在一个三次握手(对应的有四次挥手)过程中,SYN和ACK标志一起使用以打开连接。当客户端希望打开通向服务器连接时,就向服务器发送一个SYN打开、ACK关闭的数据包。当服务器响应一个数据包时,这个数据包的SYN、ACK全部打开,在此之后,所有数据包都是ACK打开、SYN关闭,只有前两次需要同步序号时SYN是打开的。

序号用来保证连接可靠性,使无序数据包变得有序,并且可以用来检测数据包是否丢失、还可以防止来自某个连接的数据包与其他连接的数据包混在一起。

当连接开始时,双方都生成一个初始序号。在前两次握手的SYN包中,这个序号被传送到另一方,每个被发送的数据包,序号做增量处理,包含在TCP数据包的投中,此外TCP头有一个确认号,为另一方的序号加一。

与TCP相比,UDP具有很少的开销和内置功能,功能的缺乏导致它的行为更像是IP协议,是无连接并且不可靠的,UDP并不适用内置功能创建功能和保持可靠性,而是期望应用程序来处理这些问题,UDP常应用于不需要连接的场景中。

数据链路层:

作为Ethernet(以太网)的基础,该层为每一个设备分配了由6个字节组成的全球唯一地址,即媒体访问控制(MAC)地址,该地址通常写成十六进制的形式:XX:XX:XX:XX:XX:XX.

有时这些地址也被称为硬件地址(因为每个硬件地址是唯一的且改地址存储在硬件设备的集成电路存储器中)。

Ethernet头包含一个源地址和一个目的地址,他们用来路由Ethernet数据包,Ethernet寻址也有一个特殊的广播地址,他的所有位由二进制1构成(ff:ff:ff:ff:ff:ff:ff)。任何发往该地址的Ethernet数据包被发往所有已连接设备。

MAC地址不能改变,而IP地址可以定期改变。IP作用于网络层因为不需关心硬件地址,但是需要一种关联这两种寻址模式的方法,这种方法称为地址解析协议(Address Resolution Protocol,ARP)。

ARP有四种不同类型的消息,其中ARP请求消息和ARP应答消息比较重要。ARP请求消息是发往广播地址的,它包含发送者的IP和MAC地址,用来寻找IP对应MAC地址。ARP应答是发往特定MAC地址(和IP地址)的相应相应,用来回应IP对应MAC地址。大多数情况都会缓存ARP应答收到的MAC/IP对,这样就不需要为每个单一数据包发送ARP请求和应答。

处于同一网络地址的两台机器,在知道相互的MAC地址前,是不能相互通信的,如果一台机器想要与另一台机器通过IP建立一个TCP连接,首先要检查自身的ARP缓存查看是否有该IP的记录,如果是第一次尝试通信,缓存中就没有记录,它会向广播地址发送一个ARP请求。该请求的主要意思是“如果你是IP为XB的,请向mac地址:aa:aa回应一下”。因为请求是发往广播地址的,网络中所有设备都会看到请求,但只有对应IP地址的系统才会做出回应。作为响应,第二台机器会直接向该机器回送一个ARP应答“我是XB,我的地址是bb:bb”。机器在收到应答后,将IP和MAC地址缓存到ARP缓存中,并使用硬件地址进行通信。

PS:本节课的内容很多很枯燥,希望大家能够掌握这些基本概念,所有基于网络的攻击都是依赖于这些协议标准的,此外网络是相当复杂的一门课程,希望学有余力的朋友能够再继续深入学习一下,如果没有精力也要搞懂本课中的一些名词,

还记得第一课我叫大家做的三件事么

1、学习语言(对汇编需了解)

2、熟悉网络(本课交代了基础概念)

3、安装虚拟机

希望还没有安装虚拟机的朋友抓紧时间安装一下,从下一课开始,就正式进入安全攻击行为的学习了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值