arp协议
netsh -c "i i" add neighbors 网卡名称 “ip地址” “mac 配置静态绑定
地址解析协议:将一个IP地址解析为MAC地址(源主机发送ARP广播报文去请求目的主机的MAC地址,目的主机收到清求报文后,进行单播响应自己的MAC地址)
二层交换网络中,相互通信使用的是物理地址交互
ARP协议报文: 封装在数据链路层的上层
硬件类型: 网络接口 (网卡) 的类型
协议类型:需要解析的IP地址的类型
硬件地址长度
协议地址长度
opcode: 操作码 (表示报文是请求 (1) 还是响应报文 (2) )
发送方的MAC地址
发送方的IP地址
接收方的MAC地址: 在ARP广播请求报文中,此地址一般为填充地址
接收方的IP地址
容易造成ARP攻击和欺骗
攻击: 发送虚假的MAC响应报文,使得目标主机无法访问网络
欺骗:发送真实的MAC响应报文,解感目标主机访问网络的流量,达到中间人攻击效果需要开启IP转发功能
研判攻击行为:研判攻击行为:主机无法上网,收到大量ARP响应报文,ARP缓存表中是否有一个IP对应了多个MAC,直接向自己的路由器发送ARP报文,根据响应的MAC地址和缓存表中MAC地址进行比对
研判欺行为:直接向自己的路由发送ARP报文,根据响应的MAC地址和缓存表中MAC地址进行比对,使用路由跟踪,查看第一跳路由器是不是自己网关
防御:在主机和路由器上进行ARP(IP-MAC)绑定,在安全设备上开启发送免费的ARP报文(只能减少攻击面)
icmp
lnternet控制报文协议:在主机和路由器之间传递控制报文信息(控制报文:告诉主机网络是否可达,端口是否可达,网络通不通)主机访问不同网络时,需要将数据交给路由器去进行转发,路由器如果可以转发,直接转发,如果不能转发,会回复给主机对应的控制报文信息,当网络出现抖动时,也会产生某一些控制报文消息
报文类型
类型0: 回显应答,标准的ICMP应答报文
类型3: 目标不可达
网络不可达0
主机不可达1
协议不可达2
端口不可达3
类型5:重定向:当路由器收到一个目的为非优化路由(主机去往某个目的地,有更优的路径)时,会响应给主机一个重定向报文,告诉主机改变自己的路由
类型8: 回显请求,标准的ICMP请求报文
ping命令,就是使用的ICMP的类型8
重定向攻击。向目标主机发送重定向报文,使得目标主机改变自己的路由,可以实现中间人攻击,可以使得目标主机无法访问
网络伪造网络不可达报文,主要是去欺骗目标主机无法访问网络,但是目标主机访问网络不受影响,在ping命令上有所体现(当去ping其他主机时,会回显伪造的不可达报文)
防御:直接去主机禁用对应的lcmp报文类型
TCP协议
传输控制协议。提供的可靠的传输,点对点(单播)的传输,在传输数据之前,首先需要去建立连接,数据传输完成后,需要释放连接。TCP建立连接的三次挥手
源主机发送SYN报文去请求建立连接,会生成一个随机序号 (seg)
目标主机收到SYN报文后,会进行确认 (发送ACK报文),在上一个报文基础上增加1,形成确认序号(ack序号),并发送SYN
报文,生成一个新的序号 (seq)。源主机收到目标主机的SYN报文后,进行最后确认,回应ACK报文,在上一个SYN的seq序号上增加1。TCP释放连接的四次挥手
源主机发送FIN+ACK报文
目标主机收到后响应ACK报文,ACK控制位为1
目标主机再次发送FIN+ACK报文,FIN控制位为1,ACK控制位为1
源主机做最后确认,发送ACK报文
TCP报文字段
TCP的控制位:
URG: 标识数据是否紧急
ACK: 确认控制位,标识确认序号是否有效
PSH: 标识数据是否直接提交给上层 直接用tcp发送数据时
RST: 重置连接,网络抖动会产生
SYN: 同步控制位,一般是请求连接时产生
FIN: 释放连接控制位
会消耗目标主机的硬件资源 (当目标主机收到第二次TCP建立连接机制问题,容易产生半连接状态(源主机没有进行第三次握手),握手后会从内存中划分一部分资源保持,
等待源主机进行第三次握手)。
TCP连接保持时间或者SYN cookie来避免半连接(Windows操作系统在注册表中去设定,Linux操作系统在内核参数中去设定)
4、UDP协议
用户数据报协议,可以直接进行传输数据,不需要建立连接,数据传输完成后也不需要释放连接在一些可靠性要求不高的场景,会更加的效率
UDP报文字段
目的端口
校验
UDP长度
5、DHCP
动态主机配置协议: 为主机提供TCP/IP参数 (IP地址、子网掩码、默认网关、DNS服务器地址)
DHCP交互过程
客户机发送discover报文 (广播) : 客户机去寻找网络中的DHCP服务器
服务器回应offer报文(广播) : 数据链路层是单播,在网络层是广播(现在主机还没有IP地址)
客户机发送requet报文(广播):可能有多个服务发送offer报文,告其他服务客户机已经选择了对应的服务器
服务器响应ack报文 (广播) :
当租约时间到达50%时,客户机再次发送request报文(单播):客户机有dhcp服务器,也有IP地址,客户机会直接去请求自己的DHCP服务器I
服务器响应ack报文 (单播)
DHCP基于传输层UDP的67/68端口
客户机使用的是68
服务器使用的是67
DHCP其他报文
release: 客户机手动释放TCP/IP参数时,Windows操作系统中使用命令 (ipconfig /release)。NAK: 服务器收到客户机的单播request报文后,无法为客户机提供请求的IP地址,从而进行拒绝
inform:
decline:
默认情况下,DHCP只能为本网段提供TCP/IP参数,如果要为不同网段提供,需要在三层设备上配置中继
,从而三层设备就变成了DHGP的中继代理(客户机发请求,中继向dhcp服务器发请求,dhcp服务器向中继响应,中继向客户机响应)
DHGP欺骗:DHCP dos攻击:伪造虚假的MAC地址去向DHCP服务器发请求,从而将DHP服务器的地址池占满,发送的是discover报文
在二层设备上配置DHCP监听 (snooping)
在二层设备上配置端口安全 在网络中伪造一台DHCP服务器,为客户机提供TCP/IP参数
dns
DNS协议
域名系统:为客户机提供域名解析0
域名空间
根域、顶级域、二级域
完整的域名是由主机头和二级域组成(ww.woniuxy.com)www是主机头,woniuxy.com是二级域名,一个二级域名可以有多个
机头
DNS查询过程
客户机发送DNS请求
DNS服务器响应服务上没有记录,可以根据根提示去寻找根服务器,根域服务器返回顶级域服务器信息,服务器请求顶级域服务器,顶级域服务器响应二级域服务器信息,服务器请求二级域服务器,二级域服务器响应域名的IP,服务器再响应主机域名的IP地址服务器上有记录,直接响应主机域名的IP地址
递归查询: 服务器可以直接给客户机响。
迭代查询: 服务器去一级一级请求根域、顶级域、二级域服务器的过程
查询方式
正向和反向
查询内容
A
SOA
NS
PTR
CNAME
SRV
DNS基于传输层TCP和UDP的53端口
TCP的53:主DNS和辅助DNS同步数据时。 UDP的53: 客户机向服务器发送DNS解析请求。
DNS毒化
针对关键性的域名,在主机的hosts文件中进行添加
7、FTP
文件传输协议: 客户机请求服务器上的文件,基于传输层TCP的20和21号端口
分为两个阶段:建立TCP连接 (客户机请求服务器的21号端口) ,进行文件传输(主动和被动)主动模式:服务器主动向客户机进行数据传输的连接
客户机首先向服务器的21号端口发起TCP连接请求建立
客户机向服务器发送port指令,告诉服务器使用主动模式
服务器使用20号端口主动向客户机发起数据出传输的连接请求
被动模式:服务器打开一个高(比较大的)端口,被动等待客户机进行数据传输的连接o 客户机首先向服务器的21号端口发起TCP连接请求建立
客户机向服务器发送pasv指令,告诉服务器使用被动模式
服务器会打开一个高端口
客户机向服务器的高端口进行数据传输的连接请求
HTTP协议
超文本传输协议:客户机使用浏览器访问服务器上的资源,服务器上的资源采用的超文本方式标识,
架B/S,基于TCP的80端口
apache、lIS、nginx: 80
tomcat: 8080
请求头
URL: 统一资源定位符 (协议://、主机名:端口、文档路径 (URI))
URI: 统一资源标识符
请求方法:GET(请求服务上的资源) 、POST (服务传输实体数据(用户名、码等等) )、PUT (上传文件) 、HEAD0(请求服务器的http首部)
accept; 接受的媒体类型0
accept-encoding: 接受的编码格式
accept-language: 接受的语言
connection: 一般是持久性连接
cookie: 缓存
host: 请求的主机名
user-agent: 客户端的标识 (客户端的操作系统版本、浏览器版本)
响应头
server: 服务器版本信息
content-type: 传输的内容类型
响应状态码: 200成功、3xx重定向(重定向URL) 、xx客户机错误(客户机请求的内容错误)、5xx(服务器误)
9、HTTPS协议
http+ssl/TLs: 提供的安全的http传输 (http服务器要启用https必须有证书)
首先客户机向服务器的443端口建立TCP连接
客户机向服务器进行TLS的交互
进行加密数据传输
TLS
常用版本1.2,做高版本1.3
算法
非对称算法:协商对称李钥(DH、RSA、elgama、SM2),加对称,分为私钥和公(公开钥)
对称算法: 用于加密数据(DES、3DES、AES、SM3) ,只有一个密,公 (公共密钥)。认证算法: 用于对数据进行摘要计算(MD5、hash (SHA1) ) ,没有钥证书:客户机用户验证服务器的身份,证书一般由权威机构(CA)颁发,客户机浏览器会去验证服务器的证书是否为权威机构颁发是否有效,如果非权威机构颁发,会在浏览器进行提醒用户
颁发者信息
有效期
使用者信息
使用者的公钥 (公开密钥)
。TLS交互
客户机发送client hello (携带自己所支持的加密套件 (一系列算法))o 服务器发送server hello (选择客户机上的某一个加密套件)
服务器发送自己的证书
服务器开始进行密钥交互
服务器告诉客户机握手报文结束
客户机完成密钥交互过程
客户机告诉服务器改变密码规范
客户机加密握手报文
服务器告诉客户机改变密码规范
服务器加密握手报文
10、SMTP/POP3/IMAP4
邮件交互协议: 客户机去和服务器进行邮件传输
客户机发送邮件: SMTP、TCP/25
客户机从服务器下载邮件: POP3、TCP/110
客户机在线查看服务器上的邮件: IMAP4、TCP/143
发送邮件的过程。 A用户对B用户发送邮件的过程A用户将邮件使用SMTP协议发送到邮箱服务器上
B用户使用POP3或IMAP4去读取邮箱服务上的邮件11、SMB、telnet、SSH
SMB: Windows中文件共享,使用的TCP/139/445
telnet: 远程管理协议,采用明文传输,TCP/23,在内网环境中网络管理员去管理路由交换设备的,由于明文所有被淘汰·
ssh:弥补telnet的缺陷,TCP/22,加密的远程管理协议,广泛应用于对Linux服务的远程管理,网络设备的远程管理,会去协商对称密钥使用对称密钥对传输的数据进行加密,但是和TLS的交互过程不一样