首先,在了解各个协议之前,将下图熟记,这样才能在学习种零散的协议后,形成体系。
1.DHCP协议 (动态主机配置协议)(主机获得ip地址的方式)
应用层协议 客户/服务器模式 广播 基于UDP
步骤1 discover 主机广播 DHCP发现报文(主机找dhcp服务器)
步骤2 offer dhcp广播dhcp提供报文(dhcp跟主机说有地址,同时所有dhcp都给主机发送地址)
步骤3 request 主机选择其中一个ip地址,并广播给dhcp服务器,告诉其所选用的地址
步骤4 ack dhcp服务器告诉主机说你用吧
2.桥接和nat的区别
桥接模式,将虚拟机也视作一个主机,和真实的主机同处于一个局域网下(物理网卡所在的网络上),此时主机和虚拟机在网络上的地位是一样的。
NAT模式,虚拟机使用主机的ip地址,在经过转换后,通过真实主机来进行网络访问。
3.SSH 安全壳协议
应用层协议 基于tcp 默认端口22
telnet ->ssh
一般在网络传输中使用的是明文传输,容易出现问题,因此使用ssh协议进行加密传输。
原理:
公钥私钥(非对称加密算法):使用公钥加密的密文,只有使用私钥才可以解析,同样使用私钥加密的密文也只用使用公钥才可以解析。
在ssh协议中,A(登录方)会生成密钥对(公钥和私钥),在第一次登录时,登陆方会将公钥发送给服务器,储存在服务器中的authorized_keys文件夹。在收到登录方的登录请求后,服务器会使用登陆方发送的密钥加密一个随机的字符,发送给登录方,登录方使用自己的私钥对该密文进行解密,将解密的结果交给服务器,服务器比对解密出来的字符是否正确。
- 渗透测试基本流程 千峰网络
- DNS
php
超文本预处理器,开源脚本语言,脚本在服务器运行,将结果以文本的形式返回浏览器(实现网页功能?)
UDP协议(不可靠交付)
无连接的,减少开销和发送数据的延迟,传输层协议?,适合传输少量数据,无拥塞控制,适合实时应用(IM及时通讯,视频会议)。udp首部8b,tcp20b
udp可以使用伪首部进行校验
ICMP 协议
再次查看协议栈,ICMP协议在网络层和传输层之间。是用于差错报告和网络探寻的协议。
1 回送请求和回答报文
主机或路由器进行询问 ping baidu.com
2 时间超过差错报文
用于traceroute 用于网络探寻
TCP协议
传输层协议 面向连接 可靠有序 两个端点
序号: 序号字段就是报文第一个数据字节的序号(1)
确认号:接收方收到1,2,3后,想收到4号字节,
数据偏移:用二进制表示,比如如果数据偏移部分是1111,则说明tcp首部长度是60(15x4),也说明选项部分和填充部分的总长度是40B
URG紧急位:urg=1,数据不用再缓存里面等待,直接发送
ACK确认位:ACK=1说明数据是有效的
PSH位:psh位=1时,数据不用在接收方缓存中等待,直接交付给上一层。
窗口:发送方目前的接受窗口,(允许接收方发送的数据量)
TCP连接三个阶段(三次握手)
客户-服务器模式 发送连接请求的时客户,接受的是服务器
HTTP协议
注意:建立tcp连接以后,客户机就可以发送http请求,因此不需要建立连接
持久连接:在建立tcp连接以后,不再断开
非持久连接:建立tcp连接,发送html请求报文,收到http信息,断开连接
close:非持久连接
端口号:
当服务器和客户机进行通信时,双方发送的数据报都是针对系统上的程序的(包括浏览器),因此为了指定数据包到底是给哪个程序的,端口这种指定程序的方式就出现了,程序与端口是一对多的关系,即一个程序可以对应多个端口。当一个数据被发送给系统时,系统会分配这个数据去所对应的端口(数据中包含端口信息),监听这个端口的程序就可以获得这个数据。
当用户和网站进行通信时,如果使用的http协议,那么端口号就是80,如果使用的时https协议端口号是443。
当网站返回信息给用户时,使用的端口时浏览器在系统上随机监听的一个端口。
ARP协议
主机上网需要经过路由器,当一台主机要访问另一台机器时,需要先知道另外一台主机的mac地址
1 主机和主机之间通信过程
当主机1向主机2发送文件
1 在应用层 pdf
2 在传输层 进行分段1,2,3
3 在网络层对每个分段进行封装,加上源地址和目的地址,IP数据报
4 在数据链路层对数据添加mac地址,源地址,目的地址,尾部
5 在物理层形成信号
2 在主机内存在arp高速缓存,存储ip地址和mac地址之间的映射(局域网内部的mac地址)
当缓存内不存在目的的mac地址时且在一个网段内,需要广播arp请求协议,
当要访问的主机不在一个网段之内时,主机需要先找到负责本网段和外网段通信的路由器,然后有路由器找到和他相连的路由器,最后知道要通信的主机。
当使用arp协议经过五个路由器时,一共使用了6次arp协议
HTTPS协议
ssl前时代协议,不用
tsl协议,现在用的加密协议
以tls1.2为例子
渗透测试的基本流程
0.授权
1 信息收集(钟馗之眼,撒旦,谷歌,nmap)
2 漏洞扫描(awvs burpsuite)
2.1 容器漏洞IIS,apache
2.2 网站漏洞
3 漏洞利用(跨站脚本,sql注入,文件包含,密码暴力破解,中间人)
4 提权
5 安全报告