当前位置:网站首页 > 网络安全培训 > 正文

win xp,2003环境上线cobaltstrike

freebuffreebuf 2022-03-17 334 0

本文来源:

问题分析

在 I-IVV 的需求场景中,经常会遇到一些比较古老的环境,例如 windows xp、win server 2003系统,为了让整体流程更流畅丝滑,对这类场景也需要找到合理的解决方法,且解决方案应尽量贴合现存使用习惯。

兼容问题的根本点在于,shellcode的兼容性+shellcodeloader的兼容性。

1、shellcode

2、loader

其中最重要的是解决shellcode的问题。

解决思路

1、自写stage模式的shellcode

需要学习shellcode的开发环境搭建+开发方法等

参考代码如下:                 https://github.com/AgeloVito/CobaltstrikeSource/blob/master/ShellcodeToC_wininet/Shellcode_wininet.cpp @mai1zhi2

优点:shellcode自定义程度高,免杀效果好。

缺点:开发成本较高,且只能适用stage模式

如若开发stageless模式的shellcode还需重写beacon.dll的功能,技术、时间成本就高太多了。

2、复用低版本的shellcode

经过测试,CobaltStrike3.1.x 系列中httpListener的shellcode兼容性最高,

其 stage,stageless模式的shellcode都能很好的兼容windows xp、win server 2003系统。

优点:获取成本低,且能复用到高版本的CobaltStrike中,不用换c2工具。

缺点:shellcode免杀属性不太好(可以针对shellcode进行混淆等处理,这里不展开)。

02

具体实现

综合各种考量,我们最终选定的低版本cs为 May 4, 2019 - Cobalt Strike 3.14

按照以下步骤将其复用至高版本 Cobalt Strike 中

01

配置malleable-c2 profile一致

需要在profile配置中保持一致的几个点

stage

http-stager.uri_x86

http-stager.uri_x64

stageless

http-get.uri

http-post.uri

其他的profile配置项参考各版本对应支持的配置就好,相同的配置选项尽量保持一致即可。

低版本

高版本

02

配置host头

如果使用了域前置,我们需要在低版本的profile中配置host头

stage

http-stager.client

stageless

http-get.client

http-post.client

http-config.header

高版本的cs中,http-config.header 不需要在profile中写为定值,在gui中配置Listener的时候设置就好,且gui中配置的Host Header也会覆盖掉profile的该项值。

03

复用低版本shellcode

当我们部署好高版本的c2以后,只要我们遇到windows xp 、win server 2003 这类系统,这时候我们就可以在本地临时起一个低版本cs,通过设置其监听器地址与部署好的高版本监听器相同,生成基于http的x86 shellcode,再使用自写兼容windows xp 、win server 2003 系统的loader,从而达到全版本兼容的可执行程序,我们将便可将其权限上到CobaltStrike4.4上。

我们的CobaltStrike4.4 HttpListener配置如下:

CobaltStrike3.14 HttpListener配置如下

然后根据使用需求生成 stage或者stageless形式的shellcode即可。

03

效果展示

如下图,完美兼容,权限上到了cs4.4上。

转载请注明来自网盾网络安全培训,本文标题:《win xp,2003环境上线cobaltstrike》

标签:win环境windows

关于我

欢迎关注微信公众号

关于我们

网络安全培训,黑客培训,渗透培训,ctf,攻防

标签列表