当前位置: 首页 > news >正文

DHS及HTTPS工作过程

Ubuntu虚拟机上遇见的问题:
proxychains curl http://www.goole.com 访问不了

root@zym-VMware-Virtual-Platform:/usr/local/vulhub-master/cacti/CVE-2022-46169# vim docker-compose.yml
主要用来记录和定义多个容器服务的配置和关系

在这里插入图片描述

image:vulhub/cacti:1.2.22 ————镜像地址
ports:-"8080:80" ————映射端口,将容器的这个端口映射到Ubuntu的这个端口上
depends_on:-db ————依赖db,说明安装了数据库

命令 docker ps -a 用于列出你系统上的所有 Docker 容器,包括运行中的和已停止的容器

root@zym-VMware-Virtual-Platform:/usr/local/vulhub-master/cacti/CVE-2022-46169# docker rm -f $(docker ps -aq)  ----清理容器
root@zym-VMware-Virtual-Platform:/usr/local/vulhub-master/cacti/CVE-2022-46169# docker images ----显示所有镜像
REPOSITORY     TAG       IMAGE ID       CREATED       SIZE
vulhub/shiro   1.0.0     d5dc19e5a241   2 years ago   331MB
vulhub/shiro   1.5.1     392023941693   4 years ago   289MBroot@zym-VMware-Virtual-Platform:/usr/local/vulhub-master/cacti/CVE-2022-46169# docker rmi $(docker images | awk '{print $3}')
docker images 会列出所有的镜像
awk '{print $3}' 会提取每个镜像的 IMAGE ID(第三列)
docker rmi $(...) 会将这些 IMAGE ID 传给 docker rmi 命令,从而删除对应的镜像docker-compose up -d ----拉取镜像

在这里插入图片描述

进入某个容器:
t@zym-VMware-Virtual-Platform:/usr/local/vulhub-master/cacti/CVE-2022-46169# docker exec -it 44fef5802a1c /bin/bash  
docker exec -it 容器id
如何验证:cd /ll ----查看是否有.dockerenv这个文件
退出:exit		

在这里插入图片描述

进入docker容器之后如果行进行一些操作,因为docker是最小化安装,很多软件是没有的,这时就有三种选择:1.update安装;2.将文件拷贝到自己电脑当中,修改完成之后再拷贝回去。3.VS code直接修改。推荐第三种方法,最简便。

拷贝文件:
docker cp 容器id:文件路径 本机地址

DNS解析

两种解析方法:
nslookup www.baidu.com
dig www.baidu.comwindows下只能用nslookup

在这里插入图片描述

过程:

1.首先查看本地DNS缓存表。如果这个域名对应的IP地址,这个解析过程就结束。

2.如果缓存表中没有的话,就去查看host文件(最适合劫持,Linux通常在/etc/hosts,而在 windows 中可以通过配置 C:\Windows\System32\drivers\etc\hosts 文件来设置)。如果host文件能找到的话就直接解析。

这两步是在本地电脑上完成的。

3.在host文件中找不到时,就要用到我们网络配置中的 “DNS 服务器地址” 了。操作系统会把这个域名发送给本地DNS服务器,如果可以命中,则解析结束。

4.如果本地DNS服务器没有命中,则会向根DNS服务器发送解析请求。

5.根DNS服务器会向本地DNS服务器发送一个顶级DNS服务器地址,如.com、.cn、.org等,全球只有13台左右。

6.根服务器向顶级DNS服务器发送解析请求。

7.接受请求的顶级 DNS 服务器查找并返回此域名对应的 Name Server 域名服务器的地址。

8.本地DNS服务器再向NameServer服务器发送解析请求,NameServer服务器返回正确的解析结果给本地服务器。

9.本地DNS服务器在收到正确的解析结果后,会缓存这个域名和IP的对应关系,缓存时间由TTL控制。

10.本地DNS服务器把解析的结果返回给本地电脑,本地电脑根据 TTL 值缓存在本地系统缓存中。

11.本地电脑得到IP之后想要访问网站(比如说百度),还需要与百度的服务器建立三次握手,三次握手成功以后才能请求访问百度这个网站,百度服务器收到以后才会把这个请求下发回来,这个时候才能访问百度网站。

客户端到本地DNS服务器是属于递归查询,而DNS服务器之间使用的交互查询就是迭代查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

主机在与百度服务器成功建立三次握手之后,客户端向服务器发送一个HTTP request的一个请求。

HTTPS

http由于是明文传输,存在三个风险:

  • 窃听风险
  • 篡改风险
  • 冒充风险

完整性、安全性、保密性

HTTPS在HTTP和TCP层之间加入了TLS协议,用来解决上述风险。

在这里插入图片描述
在这里插入图片描述

私钥加密公钥解密:签名(防篡改)

公钥加密私钥解密:加密

过程:
1.客户端和服务端进行三次握手,成功以后进行TLS握手。

2.客户端发送ClientHello报文,其中包含TLS版本号、客户端随机数C、密码套件(RSA)。服务端在收到后会回复一个ServerHello报文,其中包含TLS版本号、服务端随机数S、密码套件。然后再发送CA证书Cercificate以及ServerKeyExchange报文。

客户端证书验证流程:客户端在收到服务端的证书后,其中的包含了未被处理的原始信息和被Hash算法处理过又被CA私钥加密的信息。客户端用CA公钥解密后得到HASH值(H1),又将原始信息通过Hash算法计算得到H2,将H1和H2比较,一样则认为证书可靠,验证完成。

3.此时客户端会生成一个预加密密钥pre-master,再用服务端公钥D加密pre-master传送给服务端。

4.服务端用自己的私钥解密得到pre-master

5.双方利用客户端随机数C+服务端随机数S+pre-master得到会话密钥M。

6.之后双方改用密钥M进行加密通信与数据传输。

抓包:

在这里插入图片描述

http://www.dtcms.com/a/277916.html

相关文章:

  • 【Claude Code】 AI 编程指南
  • sql初学见解
  • 多线程死锁
  • 飞算Java AI开发助手:引领智能编程新风尚
  • Llama系列:Llama1, Llama2,Llama3内容概述
  • 【读书笔记】《C++ Software Design》第九章:The Decorator Design Pattern
  • HTML 基本骨架
  • [GWCTF 2019]我有一个数据库
  • SOMEIP协议与测试
  • LeetCode 2401.最长优雅子数组
  • C++数组指针与函数指针
  • 为什么要有延时回调?
  • 2024-2025-2 山东大学《软件工程与实践》期末(回忆版)
  • p4 大小写检查
  • C++高级编程,类模版成员函数类外实现
  • windows10如何安装vue开发环境
  • JAVA-springboot 整合Activemq
  • ECU(电子控制单元)是什么?
  • C++中顶层const与底层const
  • JSX 语法
  • 【前端知识】移动端APP原生应用与H5交互底层逻辑
  • Dubbo跨越分布式事务的最终一致性陷阱
  • 有效感受野(ERF)可视化工具
  • hash表的模拟--开放定址法
  • 如何将本地代码同步到远程Github仓库
  • 【Docker基础】Dockerfile指令速览:环境与元数据指令详解
  • OSPF与BGP的联动特性
  • Utils系列之内存池(MultiSizePool)
  • 【MLLM】多模态理解GLM-4.1V-Thinking模型
  • OpenVela 日志系统:从配置到落地的实操手册