前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用 WSHController/WSHRemote 对象的横向移动(IWSHController 和 IWSHRemote 接口)

使用 WSHController/WSHRemote 对象的横向移动(IWSHController 和 IWSHRemote 接口)

作者头像
Khan安全团队
发布2022-01-19 16:41:21
5780
发布2022-01-19 16:41:21
举报
文章被收录于专栏:Khan安全团队Khan安全团队

重新发现旧技巧很有趣,尤其是在学习非常理想的关于所有可能的逃避技巧和隐身技术的知识的情况下,红队和蓝队都应该知道这些技巧。尤其是允许横向移动的技巧。

我在阅读各种 Windows 界面时遇到了它,这两个引起了我的注意:

  • IWSH控制器
  • IWSH远程

(或 WSHController 和 WSHRemote,因为它们到处都被提及),并立即意识到这是另一种不太知名的横向移动技术。

在几次不成功的尝试之后,我成功了,并向你展示了一个快速而肮脏的食谱,这样你就可以尝试在你的实验室中复制它。

这是操作中的技巧(左侧 - 目标系统,右侧 - 攻击者):

您可以重复使用粘贴在 Microsoft站点上的代码,并根据您的需要对其进行调整(也就是编辑远程计算机的名称和脚本的文件名):

代码语言:javascript
复制
strRemoteComputer = "RASServer01"
strWorkerScript = "MapNetworkDrive.vbs"
设置 objWshController = WScript.CreateObject("WshController")
设置 objRemoteScript = _
objWshController.CreateScript(strWorkerScript,strRemoteComputer)
objRemoteScript.Execute

不做 objRemoteScript.Status = 2
   Wscript.Sleep(100)
   Wscript.Echo "远程脚本尚未完成。"
环形

当你第一次尝试时,你会失败。

为什么?

很多原因。事实证明,此功能需要一些准备才能使用。

在四处寻找并阅读其他人为使其发挥作用所做的工作之后,我将这些想法放在一起:

  • 使用管理员帐户执行接下来描述的两个操作(如果 wscript 无法写入注册表项,它不会返回错误!)
  • 在服务器和客户端上运行以下命令(有些网站建议只使用客户端,但您也需要在服务器上注册它!)
    • wscript -regserver
  • 确保客户端(目标机器)启用了以下注册表设置:
    • HKLM\SOFTWARE\Microsoft\Windows 脚本主机\ Settings\Remote=1 (Reg_SZ)

而已。现在脚本应该可以工作了。

如果您担心运行“wscript -regserver”会将此技巧置于 catch 22 部门(我们需要先远程运行一个进程来运行我们的脚本),请不要担心。“wscript -regserver”添加了一堆注册表键和值——它们也可以使用远程注册表功能添加,这根本不需要远程运行进程!

这是这些键的高级列表——如果你想要详细的值,你可以从你的测试实验室盒子上的 regshot 会话中获取它们:

  • HKLM\SOFTWARE\Classes\CLSID\{6F201542-B482-11D2-A250-00104BD35090}
  • HKLM\SOFTWARE\类\接口\{6F201541-B482-11D2-A250-00104BD35090}
  • HKLM\SOFTWARE\类\接口\{83EA33C0-CD14-11D2-A252-00104BD35090}
  • HKLM\SOFTWARE\类\接口\{8A9EA2C0-D348-11D2-A253-00104BD35090}
  • HKLM\SOFTWARE\Classes\TypeLib\{6F201540-B482-11D2-A250-00104BD35090}
  • HKLM\SOFTWARE\Classes\WSHRemote

从取证的角度来看,您需要注意这些工件:

  • 上述注册表工件(远程值 + 类条目)
  • 在用户临时目录中创建的文件 - 如果在 localhost 上启动
    • %TEMP%\wsh*.tmp
    • %TEMP%\wsh*.tmp.vbs
  • 在目标系统的 Windows 临时目录中创建的文件(如果在远程主机上启动)
    • C:\Windows\Temp\wsh*.tmp
    • C:\Windows\Temp\wsh*.tmp.vbs
  • 存在通过 svchost.exe 生成的进程 wscript.exe:
    • C:\WINDOWS\system32\wscript.exe -嵌入

在事件日志方面,我看到的唯一活动是安全日志中记录的一些事件:

  • 4672:分配给新登录的特殊权限。
  • 4624: 一个帐户已成功登录。
  • 4634:帐户已注销。

因此,在短时间内看到这个三连音可能是使用这种技术进行横向运动的一个很好的指标。

还有一点。由于您可以在 localhost 上使用此技巧,因此它可用于破坏进程树(如 EDR 解决方案所见),并可能逃避一些沙盒分析(进程不直接由分析的样本或其子进程产生)有时会被忽略,除非沙盒知道规避技巧并监视其使用)。

使用 WSHController/WSHRemote 对象(IWSHController 和 IWSHRemote 接口)进行横向移动

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档