网络通信安全部分笔记一

网络安全——需要先保证连通信(安全是建立在网络通信上的)

计算机网络通信:将不同地理位置的计算机进行连接,实现资源共享和信息传递。

针对计算计算机网络进行分类:

①局域网(LAN):

一般可以理解为最大的局域网就是内网

内网是什么?:

类似校园网,政务网,企业网

在一个大的内网中,可以再继续进行分类,分成多个小局域网。所以局域网是范围最小的网络,类似办公室,部门,教室,都是局域网。

那什么是外网呢?:

运营商(ISP)的网络:因特网服务提供商——电信、移动、联通

如果内网想访问百度,那就需要找运营商申请网络

在一个大的内网中,可以再继续进行分类,分成多个小的局域网,所以局域网目前是范围最小的网络,一般的局域网——类似办公室,教室,部门,都是局域网。局域网也是相对不安全的一种网。

②城域网(MAN)

城市城市之间的           针对运营商     范围相对比较大

③广域网(WAN)

范围最大的(地球村),最大的广域网——Internet

TCP/IP协议栈

数据传输:其实是数据封装与解封装的过程

发送方:封装数据 (从上往下) 接收方:解封装数据(从下往上)     道理同寄快递收快递拆快递

什么叫从下往上?什么是从下往上?

先来了解一下OSI参考模型,现在全球通信用的都是TCP/IP协议栈。

早期的时候,是使用分组交换网络,每个国家有每个国家的网络,国家与国家之间没法进行互通,为了实现跟其他国家的通信,所以提出了OSI参考模型,用来定义一套的通信标准。

通信方式:
单播:一对一
组播:一对多
广播:一对所有

源地址:发送方的IP地址或者MAC地址
目的地址:接收方的IP地址或者MAC地址

OSI参考模型(7层模型)

从下往上排列

①物理层

②数据链路层

③网络层

④传输层

⑤会话层

⑥表示层

⑦应用层

TCP/IP协议栈(4/5层模型)——目前通信的标准

从下往上(4层)

①网络接口层

②网络层

③传输层

④应用层

那如果是五层怎么分呢?
从下往上(5层)

①物理层:关注的是传输介质(传输介质分为有线传输和无线传输),传输的数据是比特流(01010101)

②数据链路层:关注的硬件是交换机(二层交换机和三层交换机)   传输的数据是数据帧      

地址:MAC地址(物理地址/硬件地址)

每张网卡都有MAC地址——由48位的二进制数组成,表示形式为十六进制。

物理地址. . . . . . . . . . . . . : CA-B2-9B-A0-8C-9B

唯一性:夸张点说,全球的通信设备,网卡上的MAC地址是不能冲突的(全球唯一性)

特殊的物理地址:FF-FF-FF-FF-FF-FF(最大)——广播MAC地址

比如:

发送数据:源地址:54-E1-AD-81-EC-66              目的地址:54-E1-AD-81-EC-66    单播帧

发送数据:源地址:54-E1-AD-81-EC-66              目的地址:FF-FF-FF-FF-FF-FF    广播帧

如果目的地址是一个具体的地址,就是单播帧。如果目的地址全是F,那就是广播帧。

③网络层:关注的硬件是路由器(三层设备:路由器、三层交换机、安全设备)传输的数据是数据包

地址:IP地址,分类为IPv4地址和IPv6地址。一般使用IPv4地址,因为IPv6地址还没有完全普及。

IPv4 地址 . . . . . . . . . . . . : 192.168.89.1(首选)

IPv4地址,是由32位的二进制数组成的,表示形式:三点分十进制     三个点分成四个部分,每个部分8位。

IP地址是联网的通行证,同样也有唯一性,类似于身份证

IP地址的分类:

A:IPv4地址的第一个部分范围在1-127之间       10.100.200.200
特殊的A类IPv4地址:127.0.0.1  (这个地址是用于本地回环测试的,不能用于通信)或者localhost都是代表本地。
B:IPv4地址的第一个部分范围在128-191之间      172.200.100.1
特殊的B类IPv4地址:169开头的地址  (这个地址是用于主机自动获取IP地址失败后得到的地址)
C:IPv4地址的第一个部分范围在192-223之间      192.168.200.1
D:用于组播通信,224开头的地址
E:科研用的

子网掩码:是跟IP地址成对出现的,有IP地址一定要有子网掩码

A类默认子网掩码:255.0.0.0
B类默认子网掩码:255.255.0.0
C类默认子网掩码:255.255.255.0

网段/网络号:IP地址和子网掩码进行与运算得到的(使用二进制方式进行与运算)

举个栗子:

IP地址一个部分的范围为:00000000——11111111      也就是0——2^7+2^6+........+2^0=255

所以说IP地址每个部分最大也就只能到255了

假设有个IPv4地址为:192.168.10.1                          表示为二进制形式那就是11000000.10101000.00001010.00000001

可以观察到这个IPv4地址的第一个部分为192,所以它是C类IP地址,既然是C类地址,那么它的子网掩码就是255.255.255.0,我们可以观察到这个子网掩码前三个部分都是255,也就是每个部分表示成十进制都是8个1,也就是满了,IP地址每个部分其实取不到255,所以IP地址与和子网掩码进行与运算的时候,前面几个部分肯定取决于IP地址,因为0和1相与等于0,也就是说我们要判断0有几个,只有IP地址中的前面几个部分有0出现,所以子网掩码255的部分我们看IP地址相对应的部分就好。

如下↓:

IP地址:192.168.10.1         11000000.10101000.00001010.00000001
子网掩码:255.255.255.0      11111111.11111111.11111111.00000000
网段:    192.168.10.0/24    11000000.10101000.00001010.00000000

等等!为什么网段后面有一个/24呢?其实就看子网掩码有几位,三个部分255,那就是三乘以八等于24,所以如果是B类子网掩码,那网段后面就/16就好。
nmap 192.168.10.0/24   扫描同一个网段中,得出是否存在其他的主机或者服务器——C段扫描(渗透部分)

IP地址分为两个部分:网络位和主机位

A类地址,默认情况下第一个部分是网络位,后三位是主机位
B类地址,默认情况下前两个部分是网络位,后两个部分是主机位
C类地址,默认情况下前三个部分是网络位,最后一个部分是主机位

在一个网段(网络号)中,第一个地址被称为网络地址,最后一个位置被称为广播地址。

举个栗子:有一个网段是192.168.10.0/24    地址范围为:192.168.10.0——192.168.10.255

所以对于这个网段来说

网络地址:192.168.10.0

广播地址:192.168.10.255

在通信的过程中,网络地址和广播地址是不能用于通信的,所以能够给主机或者服务器使用的地址为:192.168.10.1——192.168.10.254

网关:是局域网的边界,是网段中一个特殊的IP地址(所以网关是一个IP地址)  可能是三层交换机/路由器/安全设备的IP地址,服务器和电脑都得需要网关

习惯上来说:网段中最后一个或者最后一个IP地址作为网关     192.168.10.1 -- 192.168.10.254

注意哦!这里是排除了网络地址和广播地址

IP地址分类:

公有地址:花钱去申请,找运营商申请              使用场合:公网       如果直接使用共有地址,就可以直接上网

私有地址:不需要申请,随便用,免费的          使用场合:内网      如果直接使用了私有地址,就不能上网

A类私有地址范围:10.0.0.0 -- 10.255.255.255
B类私有地址范围:172.16.0.0 -- 172.31.255.255
C类私有地址范围:192.168.0.0 -- 192.168.255.255

如果这三个范围都不在呢???那就是公有地址咯。

IP地址来源:

自动获取:必须在网络中部署DHCP服务器          优点:方便,便捷           缺点:不安全

手动配置:管理员手动写在设备的网卡上             优点:安全,好管理       缺点:不方便,麻烦

主类:默认的A、B、C类(网段类型)   (子网掩码默认)
A类:10.0.0.0/8
B类:172.16.0.0/16
C类:192.168.10.0/24 

 子网:在一个大的主类里面,分成多个小的子网

举个栗子:

192.168.10.0/24        这是一个C类主类,只有一个网络号,这个网络号有256个IP地址,即192.168.10.0——192.168.10.255

美国 A类网段    11.0.0.0/8       有2^24IP地址

中国 C类网段     192.168.10.0/24     有2^8IP地址 

公司:5个部门   每个部门有20号员工
只有一个网段:192.168.10.0/24

该怎么分呢?引入我们的VLSM

VLSM -- 中文名字:可变长子网掩码  思想:网络位找主机位借位

对于C类网段来说,前三个部分是网络位,最后一个位置是主机位。

举个例子:一个C类网段 192.168.10.0/24  那么它的子网掩码是:

11111111.11111111.11111111.00000000

如果借三位的话:2^3=8个子网        借二位的话:2^2=4个子网

我们现在有个五个部分,至少要有五个子网,所以我们选择借三位。

网络位找主机位借完三位之后,变成了11111111.11111111.11111111.11100000

每个子网中有几个IP地址:2^5=32个IP地址   每个子网中可用的IP地址有32-2=30个(头尾不能用)

第一个子网:192.168.10.0 -- 192.168.10.31     网络号:192.168.10.0/27   (注意是/27)
第二个子网:192.168.10.31 -- 192.168.10.63    网络号:192.168.10.31/27
第三个子网:192.168.10.64 -- 192.168.10.95    网络号:192.168.10.64/27
.......

总结:有几个子网:看借走了几位  比如借走了3位   2^3=8个子网
           每个子网有几个IP:看剩下几个0   剩下5个0   2^5=32个IP地址

没分之前叫主类,分完之后叫子网。

192.168.200.30/28
11111111.11111111.11111111.11110000
请问借了几位?——借走了4位
借完位后,每个子网中有几个IP地址?——2^4=16个IP地址   可用的IP地址个数  16-2=14个
该IP地址所属的子网,网络地址和广播地址各是多少?

第一个子网:192.168.200.0 -- 192.168.200.15
第二个子网:192.168.200.16 -- 192.168.200.31
网络地址:192.168.200.16/28
广播地址:192.168.200.31/28

ARP协议:地址解析协议

在通信的过程中,需要两种地址,MAC地址和IP地址      缺一不可

在通信过程中,一般已知的是IP地址,如果想得到对方的MAC地址,必须通过ARP协议进行解析。

 观察这个图:

我们的目标是,实现PC1和PC3的通信,首先我们知道PC3的IP地址是什么,也就是192.168.10.3,PC3的IP地址就相当于快递的地址,但是我们不知道PC3的MAC地址,这个时候就要借助ARP,发送ARP的报文。

源地址表示是谁发送的,我们先把源地址进行封装。目标地址就是要发送给谁。

为什么目标MAC地址不是3-3-3-3-3-3呢???

因为我们还不知道目标的MAC地址,所以目标MAC地址是FF-FF-FF-FF-FF-FF,广播帧,所以就是每个PC都发,询问PC3在哪里。如果其他PC接收到了ARP报文,就直接把报文丢了,因为IP地址不对应,所以就没有回复。PC3在接收到ARP报文之后,就会回复PC1。

为什么我们知道目标MAC地址呢?

因为PC1把数据发给PC3的时候,已经带上了自己的MAC地址,所以PC3知道目标MAC地址,也就是PC1的MAC地址。因为目标明确,就是要发给PC1,所以这是个单播帧。

所以:ARP请求包——广播帧      ARP响应包——单播帧

那么问题又来了,PC1已经知道了PC3的IP地址,为什么还要发给所有PC?

原因是交换机只能识别MAC地址,而不能识别IP地址。只有路由器能够识别IP地址,交换机看不懂IP地址。

ARP是一个比较单纯的协议,在局域网攻击中,通常被利用,比较危险。

类似于ARP攻击/中间人攻击/局域网欺骗攻击/断网攻击    这些攻击都是借助ARP协议

在服务器和PC中,有一张表——ARP绑定表

Windows查看方法:arp -a     就可以看到arp的绑定信息。

Linux查看方法:arp -a  或者  arp -n

arp欺骗报文攻击:

 Windows虚拟机中测试与百度之间的通信,-t是持续的意思。ping -t www.baidu.com

ping值有响应,持续通信。说明windows和百度之间可以通信。

这个时候使用kali对Windows进行攻击。

先来查看PC的IP地址是多少。    ipconfig

我们得到IP地址是10.0.0.129,网关是10.0.0.2,这个时候利用kali进行ARP攻击

arp攻击通用格式 arpspoof -i eth0 -t 10.0.0.129 10.0.0.2

 eth0是kali网卡的名字     -t指的是目标        -i指的是网卡   -t后接目标的IP地址和网关   arpspoof相当于arp攻击的一种工具。网卡名字怎么查呢?——ipconfig/all

描述后面接的就是网卡的名字。

攻击完之后 ,我们再来看看PC端

 出现了 Request timed out.请求超时。这个时候如果我们的PC像访问百度的服务器,想连外网,就连不上了,因为kali正在执行arp攻击。这个时候我们停止PC连接,arp—a查看绑定信息。

 我们发现10.0.0.2和10.0.0.165的MAC地址是一样的。之前提到过,MAC地址的特点:具有唯一性。就是因为被欺骗了,才会导致MAC地址一样。

这个时候kali停止攻击,PC再次arp-a 看看

 会发现两个MAC地址不一样了。看如下图解:

  PC想将数据通过网关发送给百度,PC是发送方,kali作为攻击方,开始的时候arp绑定表一切正常,kali实施攻击之后,给PC发送欺骗报文,网关的MAC地址被修改了,被修改成了b-b-b-b-b-b-,也就是被修改成了kali的MAC地址,arp协议是一个单纯的协议,它相信了,更新了arp绑定表,数据还会发给网关嘛?当然不会,其实是把数据丢给kali,并不是发给网关。kali可以把你的数据扔掉,导致PC上不了网。这就是所谓的ARP欺骗攻击。

DNS:域名解析服务  

将域名解析成IP地址
域名:www.baidu.com
访问网站可以通过域名访问,也可以通过IP地址进行访问

实际上跟网站服务器通信,其实是通过IP地址,而不是通过域名。

客户端请求服务端,输入www.baidu.com,想要访问百度,真正来讲它不是把请求发给百度服务器,而是去寻找域名解析服务器,去询问域名解析服务器,www.baidu.com这个域名所对应的IP地址是多少,域名解析服务器回应告诉客户端百度的IP地址是什么。

DNS分为公网的DNS服务器和本地的DNS服务器

公网DNS服务器:运营商、企业、政府.....

本地DNS服务器:Windows -- C:\Windows\System32\drivers\etc  在该目录下的hosts文件

                             Linux  -- /etc/hosts

查看hosts文件

观察到所有的信息都是IP和域名对应。 

cat/etc/hosts      查看/etc/hosts里面的内容    cat是查看的意思

 ping www.baidu.com得到回复,得到IP地址为14.215.177.39(这个时候找的是公网上的DNS服务器)

在本地的DNS服务器上做编辑。

将127.0.0.1与www.baidu.com这个域名做了绑定。 

查看绑定是否成功

 再次去ping www.baidu.com

得到的回复变成了127.0.0.1 

问题来了——

公网DNS服务器       14.215.177.39     www.baidu.com

本地DNS服务器        127.0.01             www.baidu.com

如果公网DNS服务器有这个绑定信息,本地DNS服务器也有这个绑定信息。

请问:优先解析的是本地的DNS服务器还是公网的DNS服务器?

回答:优先解析本地的DNS服务器。        如图ping完之后的结果就知道了。

ICMP:因特网控制报文协议     

主要用来检测网络可达性还有主机连通性的一些问题

它有两个子协议:

ping           ping www.baidu.com           ping 14.215.177.38         判断是否可以通信

tracert          可以用来作为路径跟踪   会把沿途的每条路径进行展示——(项目排错)

tracert www.baidu.com       tracert  20.100.1.1

什么叫路径跟踪呢?

 如果只是简单的ping话,若得到了request timeout超时信息,你无法知道问题出在哪里

tracert可以对沿途得到的每条路径进行展示,方便查找哪里出错。

 最后得到了百度的IP地址——14.215.177.39,相当于tracert会给你展示到14.215.177.39的全过程。

IPv6:

IPv4发展史:由32位的二进制数组成,一共有2^32个IPv4地址(约等于42亿个)表示形式:三点分10进制         192.168.1.1

看着很多,其实不够用啦。所以发展了IPv6.

IPv6是由128位的二进制数组成,所以一共有2^128次方个IPv6地址(约等于3.4*10^38个)

巨大的地址空间,特点:地址取之不尽用之不竭。

表示形式:冒号分16进制,一共分为8个部分,每个部分16位二进制。对大小写字母是不敏感的。

2001:0012:0120:0abc:0000:0000:abc1:0000

240e:97c:0:401::11

IPv6提出了简写规则:每个部分的前导零可以省略,连续的0可以使用::进行代替,一个IPv6地址中,只能有一个::

举个栗子:

就拿上面这个IPv6这个地址来看,2001:0012:0120:0abc:0000:0000:abc1:0000,该怎么简写呢???

化简得到:2001:12:120:abc::abc1:0 最后一个部分为什么不能写成::,因为前面已经有一个双冒号了,一个IPv6地址中,只能由一个双冒号。如果我一定要::写在最后一个部分呢?

也可以,化简得到:2001:12:120:abc:0:0:abc1::   所以化简结果不唯一。

再来举个栗子:

拿上面第二个IPv6地址来看,240e:97c:0:401::11,这是个简写的IPv6地址,该怎么补全它呢?

补全得到:240e:097C:0000:0401:0000:0000:0000:0011

④传输层:

关注的是两个协议:TCP和UDP(大协议,里面又有很多的小协议)

TCP:传输控制协议(涉及比较多)   可靠的协议,面向连接,一般是用于重要、比较大的数据传输

UDP:用户数据报协议       尽力而为,不可靠,无连接,不需要为可靠性付出多余的开销,所以传输速度比较快。一般用于语音、视频流量

 

TCP和UDP都有各自对应的端口,一般都是从1——65535

TCP的可靠性

①TCP三次握手

 主机A发送请求报文SYN,请求与主机B建立联系,主机B回复两个报文,一个是请求报文SYN,还有一个是确认报文ACK。注意到主机A发送请求包的时候,带有一个序列号SEQ=100,这个时候主机B确认ACK=101,在SEQ的基础上+1,表示确认。然后主机B再给A发送请求包的时候,A收到请求包,ACK=301。确认号总是在序列号的基础上+1。

②TCP的流量控制

发送方先发了三个数据,但接收方缓冲区已满,就给发送方发一个停止,让发送方停止传输。然后接收方先处理自己的网段,然后再告诉发送方可以继续传输数据。 

③TCP的确认机制

 窗口大小=1,就一次发一个数据,窗口大小=2,就一次发两个数据。为了提高效率,可以扩大窗口大小,比如让窗口大小=3。

④TCP的窗口机制

如果出现发送方和接收方窗口大小不匹配的情况

 发送方先传三个数据,但接收方处理不过来,丢失了数据段3,发送了ACK3,告诉发送方一次发送两个数据就好,调整传输数据的快慢。

⑤TCP的序列号和确认号(确认机制)

请求包——序列号为1

确认包——确认号为2

⑤应用层

关注的是应用程序:游戏、QQ\微信、迅雷、APP.......

应用层的应用程序对应传输层的协议+传输层协议的端口

TCP:80    HTTP      127.0.0.1:80   代表访问的是http服务   如果改端口了,后面就不能:80而是要改成其他的端口。

假设服务器IP地址为100.100.100.100  在服务器上搭建了一个网站。正常情况下通过100.100.100.100就可以访问到这个网站。但如果修改了端口,把默认的80端口,修改成8090,那就要访问100.100.100.100:8090。

TCP:22    SSH

TCP:21    FTP

TCP:23    Telnet(远程登录协议)

TCP:  443  HTTPS

..........

传输层的协议加上传输层协议对应的端口映射到应用层的应用程序。

安全测试,信息收集,就得收集服务器开放的端口   端口对应的服务
安全攻击    利用服务器开放的端口对服务器做攻击

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值