Atomic Red Team项目PsExec远程执行命令问题分析与解决方案
问题背景
在使用Atomic Red Team项目进行安全测试时,测试人员发现T1569.002技术项(使用PsExec在远程主机上执行命令)无法正常工作。该测试原本设计用于模拟攻击者使用PsExec工具在远程系统上执行命令的行为,但在实际执行过程中遇到了技术障碍。
问题现象
当测试人员尝试执行以下命令时:
Invoke-AtomicTest -AtomicTechnique T1569.002 -TestGuids 873106b7-cfed-454b-8680-fa9f6400431c -InputArgs @{"remote_host" = [FQDN]; "user_name" = [USER]; "password" = [PASSWORD]}
系统返回错误信息:
PathToAtomicsFolder = C:\AtomicRedTeam\atomics
Executing test: T1569.002-1 Use PsExec to execute a command on a remote host
The filename, directory name, or volume label syntax is incorrect.
Exit code: 1
Done executing test: T1569.002-1 Use PsExec to execute a command on a remote host
根本原因分析
经过深入分析,发现该问题由多个因素共同导致:
-
执行器配置问题:原测试使用command_prompt作为执行器,但在某些环境下对路径解析存在问题。
-
PsExec参数不完整:新版本PsExec需要额外的交互式会话标志(-i)才能正常工作。
-
权限问题:测试需要在提升权限的PowerShell环境中运行,但原测试缺少相应的前提条件检查。
-
默认值问题:默认的remote_host值(\localhost)在域环境中可能无法正常工作。
解决方案
针对上述问题,我们提出以下改进方案:
-
修改执行器类型: 将执行器从command_prompt改为powershell,以提供更强大的路径解析能力。
-
更新PsExec命令:
& "PathToAtomicsFolder\..\ExternalPayloads\PsExec.exe" -i \\#{remote_host} -u #{user_name} -p #{password} -accepteula "C:\Windows\System32\calc.exe"
关键改进点:
- 添加&符号确保PowerShell正确解析可执行文件路径
- 添加-i参数确保新版本PsExec正常工作
- 使用完整路径引用PsExec.exe
-
权限要求说明: 在测试文档中明确说明需要提升权限的PowerShell环境。
-
默认值调整: 建议修改默认的remote_host值,使其在域环境中也能正常工作。
技术细节
-
PsExec参数解析: 新版本PsExec对参数要求更加严格,-i参数用于指定交互式会话,这在GUI应用程序执行时尤为重要。calc.exe作为图形界面程序,必须使用-i参数才能在远程会话中正确显示。
-
PowerShell与Cmd差异: PowerShell对路径和特殊字符的处理与Cmd有所不同。使用&调用操作符可以确保外部可执行文件被正确识别和执行,特别是在路径包含空格或特殊字符时。
-
域环境考量: 在域环境中,使用简单的localhost引用可能无法正确解析。建议使用完全限定域名(FQDN)或确保网络路径引用格式正确。
实施建议
-
对于测试开发人员: 建议更新Atomic Red Team项目中的相关YAML文件,采用上述改进方案。
-
对于测试执行人员:
- 确保使用提升权限的PowerShell
- 验证PsExec版本并确认参数兼容性
- 在域环境中使用FQDN而非localhost
- 检查防火墙设置,确保PsExec通信不受阻
总结
通过对Atomic Red Team项目中PsExec远程执行测试的深入分析,我们识别了多个影响测试执行的技术问题,并提出了针对性的解决方案。这些问题反映了实际环境中工具版本差异、执行环境配置和权限要求等常见挑战。建议项目维护者采纳这些改进建议,以确保测试在不同环境下都能可靠执行。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C038
Kimi-K2-ThinkingKimi K2 Thinking 是最新、性能最强的开源思维模型。从 Kimi K2 开始,我们将其打造为能够逐步推理并动态调用工具的思维智能体。通过显著提升多步推理深度,并在 200–300 次连续调用中保持稳定的工具使用能力,它在 Humanity's Last Exam (HLE)、BrowseComp 等基准测试中树立了新的技术标杆。同时,K2 Thinking 是原生 INT4 量化模型,具备 256k 上下文窗口,实现了推理延迟和 GPU 内存占用的无损降低。Python00
kylin-wayland-compositorkylin-wayland-compositor或kylin-wlcom(以下简称kywc)是一个基于wlroots编写的wayland合成器。 目前积极开发中,并作为默认显示服务器随openKylin系统发布。 该项目使用开源协议GPL-1.0-or-later,项目中来源于其他开源项目的文件或代码片段遵守原开源协议要求。C00
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
agent-studioopenJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力TSX0118
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00