命令控制之Windows COM

admin 2023年4月13日10:24:48评论37 views字数 2662阅读8分52秒阅读模式

文章前言

红队之间的合作越来越受欢迎,系统管理员也越来越了解工具和技术,因此避免检测是一项艰巨的任务,另一方面,红队一直在寻找使用合法流量或Windows标准功能来隐藏其活动的命令和控制工具,本机Windows脚本宿主引擎可用作另一种命令和控制方法,在2017年拉斯维加斯Bsides展出,并发布了一个工具来协助此活动。

Koadic简介

Koadic Framework由Sean Dillon 和Zach Harding开发,基于JavaScript和VBScript,因为它使用的是Windows脚本宿主(WSH),因此它可以在从Windows 2000到Windows 10的多个Windows环境中使用,也可以在没有PowerShell的旧系统或者运行旧版本的ASP.NET中使用,因此与基于PowerShell的其他工具相比,它可以使用作为更可靠的解决方案,Koadic速度快,噪音小,并且能够在内存中提供有效载荷。

Koadic安装

安装Koadic只需在终端上运行以下命令即可:

git clone https://github.com/zerosum0x0/koadic.gitcd koadicpip3 install -r requirements.txt./koadic

命令控制之Windows COM

命令控制之Windows COM

Koadic使用

帮助说明

使用help命令可以列出Koadic中当前可用的主要命令及其功能:

命令控制之Windows COM

模块查询

"stager/js/mshta"是首次执行Koadic工具时的默认配置模块,我们可以通过"info"命令来查看并进行配置:

命令控制之Windows COM

同时我们可以通过输入"use",然后双击Tab键查看所有的可用模块:

命令控制之Windows COM

STAGER

多年以来,Windows一直在不断加强其自身的防御能力,因此,Windows Defender可以直接检测和阻止大多数的stagers,出于这个原因,我们将使用默认配置的mshta stager,因为它被检测和阻止的概率是最低的,甚至它可以在某些最新版本的Windows 10上运行,我们首先输入"info"来查看我们应该为stager提供的参数信息:

命令控制之Windows COM

可以看到"REQ"项为'yes'的已经全部完成了默认配置,所以我们直接"run"即可:

命令控制之Windows COM

之后复制日志底部生成的命令并在目标计算机上运行:

命令控制之Windows COM

一个zombie机器被创建,目标机器现在已连接到了mshta stager server:

命令控制之Windows COM

你可以运行以下命令进行确认:

zombies

命令控制之Windows COM

该命令将显示所有的zombie机器,我们可以看到这里只显示了个"Zombie 0",这是因为它是迄今为止我们唯一创建的一个zombie~

端口扫描

我们可以通过Koadic来对目标主机上的信息进行收集,下面以最常见的端口扫描为例:

use implant/scan/tcpinfoset RHOSTS 192.168.188.135run

命令控制之Windows COM

免杀操作

下一步是杀死windows defender和所有其他正在运行的防病毒软件,以确保我们可以在目标计算机上执行任何我们想要执行的命令,你只需简单的运行以下命令即可:

use implant/manage/killavinfoset zombie 0

命令控制之Windows COM

权限提升 

提权是一个非常重要的阶段,一旦成功我们就可以以管理员身份完全的访问计算机,并且还将获取更改计算机关键设置的权限,为此,我们可以尝试使用Koadic上的模块来绕过UAC(用户帐户控制),成功率取决于目标机器的Windows版本,因为有些可能已经被修补,这里我们使用implant/elevate/bypassuac_compdefaults作为尝试,命令如下:

use implant/elevate/bypassuac_compdefaultsinfolistenersset payload 0run

命令控制之Windows COM

从上面我们可以看到有了新的Zombie,也就是说成功提权了,为了进一步确认我们可以通过执行以下命令来查看当前的Zombie:

zombie

命令控制之Windows COM

可以看到一个新的zombie已被创建ID为1*,星号表示zombie正在以提升后的权限运行,之后键入以下命令并运行来查看zombie的详细信息,以验证其权限状态:

zombies 1

命令控制之Windows COM

现在,我们可以使用"implant/manage/exec_cmd"在CMD上运行任何Windows命令,让我们尝试使用以下命令:

use implant/manage/exec_cmdinfoset zombie 1run

命令控制之Windows COM

之后执行命令做简易测试看看:

命令控制之Windows COM

哈希获取

收集目标任何有价值的信息,应该是最激动和不可或缺的一个阶段,下面我将使用"implant/gather/hashdump_sam"模块,来获取目标计算机上的哈希值,命令如下:

use implant/gather/hashdump_saminfoset getsyshive truerun

命令控制之Windows COM

权限维持

在目标机器上保持持久性同样重要,这样我们就可以长期监控目标机器,并进一步的获取有价值的信息,在这里我们可以使用”implant/persist/registry”模块来实现,运行以下命令:

use implant/persist/registryinfolistenersset payload 0set zombie 1run

命令控制之Windows COM

恶意文件被成功创建:

命令控制之Windows COM

在这里我们可以将"CLEANUP"参数设置为“true”以删除注册表项,从而隐藏我们的轨迹,对于刚刚我们获取哈希值的操作,可以运行"for /F “tokens=*” %1 in (‘wevtutil.exe el’) DO wevtutil.exe cl “%1″”命令,使用“implant/manage/exec_cmd”模块来清除所有事件日志,具体的命令如下:

use implant/manage/exec_cmdinfoset zombie 1set CMD for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"run

命令控制之Windows COM

简易社工

我们可以尝试通过密码框从普通用户窃取密码,然而,这将破坏红队参与过程中隐身的目的

命令控制之Windows COM

之后模拟用户在窗口输入信息:

命令控制之Windows COM

成功获取到用户的信息

命令控制之Windows COM

不过这看着确实有点傻,因为傻到这种程度的人估计也是稀有"产品"~

其他操作

当然Koadic还有很多很多强大的地方,例如文件上传、注册表权限维持、获取域控的hashdump、BypassUAC、枚举域信息、枚举域内打印机信息等等,这里就不再逐一介绍了~

命令控制之Windows COM

命令控制之Windows COM

命令控制之Windows COM

相关链接

https://github.com/zerosum0x0/koadic

原文始发于微信公众号(七芒星实验室):命令控制之Windows COM

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月13日10:24:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   命令控制之Windows COMhttps://cn-sec.com/archives/1670177.html

发表评论

匿名网友 填写信息