首页
/ Atomic Red Team项目PsExec远程执行命令问题分析与解决方案

Atomic Red Team项目PsExec远程执行命令问题分析与解决方案

2025-05-22 14:56:00作者:胡唯隽

问题背景

在使用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

根本原因分析

经过深入分析,发现该问题由多个因素共同导致:

  1. 执行器配置问题:原测试使用command_prompt作为执行器,但在某些环境下对路径解析存在问题。

  2. PsExec参数不完整:新版本PsExec需要额外的交互式会话标志(-i)才能正常工作。

  3. 权限问题:测试需要在提升权限的PowerShell环境中运行,但原测试缺少相应的前提条件检查。

  4. 默认值问题:默认的remote_host值(\localhost)在域环境中可能无法正常工作。

解决方案

针对上述问题,我们提出以下改进方案:

  1. 修改执行器类型: 将执行器从command_prompt改为powershell,以提供更强大的路径解析能力。

  2. 更新PsExec命令

& "PathToAtomicsFolder\..\ExternalPayloads\PsExec.exe" -i \\#{remote_host} -u #{user_name} -p #{password} -accepteula "C:\Windows\System32\calc.exe"

关键改进点:

  • 添加&符号确保PowerShell正确解析可执行文件路径
  • 添加-i参数确保新版本PsExec正常工作
  • 使用完整路径引用PsExec.exe
  1. 权限要求说明: 在测试文档中明确说明需要提升权限的PowerShell环境。

  2. 默认值调整: 建议修改默认的remote_host值,使其在域环境中也能正常工作。

技术细节

  1. PsExec参数解析: 新版本PsExec对参数要求更加严格,-i参数用于指定交互式会话,这在GUI应用程序执行时尤为重要。calc.exe作为图形界面程序,必须使用-i参数才能在远程会话中正确显示。

  2. PowerShell与Cmd差异: PowerShell对路径和特殊字符的处理与Cmd有所不同。使用&调用操作符可以确保外部可执行文件被正确识别和执行,特别是在路径包含空格或特殊字符时。

  3. 域环境考量: 在域环境中,使用简单的localhost引用可能无法正确解析。建议使用完全限定域名(FQDN)或确保网络路径引用格式正确。

实施建议

  1. 对于测试开发人员: 建议更新Atomic Red Team项目中的相关YAML文件,采用上述改进方案。

  2. 对于测试执行人员:

  • 确保使用提升权限的PowerShell
  • 验证PsExec版本并确认参数兼容性
  • 在域环境中使用FQDN而非localhost
  • 检查防火墙设置,确保PsExec通信不受阻

总结

通过对Atomic Red Team项目中PsExec远程执行测试的深入分析,我们识别了多个影响测试执行的技术问题,并提出了针对性的解决方案。这些问题反映了实际环境中工具版本差异、执行环境配置和权限要求等常见挑战。建议项目维护者采纳这些改进建议,以确保测试在不同环境下都能可靠执行。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
861
511
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
259
300
kernelkernel
deepin linux kernel
C
22
5
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
596
57
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
398
371
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
332
1.08 K