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远程执行测试的深入分析,我们识别了多个影响测试执行的技术问题,并提出了针对性的解决方案。这些问题反映了实际环境中工具版本差异、执行环境配置和权限要求等常见挑战。建议项目维护者采纳这些改进建议,以确保测试在不同环境下都能可靠执行。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0203- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00