7.Cobaltstrike上线(stager、stagerless、Bind+令牌伪造)


一、Cobaltstrike上线方法——stager

 

1、stager的特点:

目标机器执行后,会向teamserver发起一个GET请求,从而用post下载真正的shell code。因此stager的体积一般比较小

 

2、EXE形式的stager:

 

这个是之前我们用的最多的

 

 

 

 

 

3、Server EXE形式的stager:

 

生成方式:

 

 

 

 

 

 

生成文件后放到目标机器上执行,发现什么变化都没有。这是因为Server EXE是以服务的形式启动的,因此,首先我们需要一个绕过UAC的管理员权限创建一个服务,然后启动该服务来执行。

执行命令:

sc create "serever name" binpath="SERVER PATH"              //创建一个服务

sc start "server name"                                                             //启用一个服务

 

此时回到teamserver就可以看到多了一条session了

 

我们也可以将上传的文件隐藏,否则太显眼了

attrib +h server.exe    //添加文件隐藏

attrib -h server.exe    //取消文件隐藏

 

4、dll文件形式的stager:

 

dll文件生成方式:

 

 

 

 

 

 

dll文件的启动需要用export导出函数。因此在Cobalt Strike和MSF都要用Start来启动,注意Start首字母大写。

 

 

 

这里我们用rundll32.exe启动上传的dll文件,别忘了在后面加上Start。此时teamserver就多出一条session了

 

 

 

5、powershell形式的stager:

 

Powershell是在win7之后才有的

启动方式:

 

 

 

这里的url可以随便设置,但建议设置的复杂一些,否则容易被安全厂商的设备发现

 

 

 

接着我们就可以把里面这一串复制出来,只要我们在目标机器上运行此代码,即可上线成功。

 

 

 

6、bitsadmin形式的stager:

 

bitsadmin是Windows自带的下载命令,使用方式与上面的poweshell相似

 

 

 

 

然后得到一串代码,在目标机器上运行结束即可成功上线

 

7、python形式的stager:

 

与poweshell、bitsadmin的上线形式相似,这里不再赘述,只要目标机器上有python环境即可

 

 

 

8. regsvr32形式的stager

查了下资料,regsvr32有点怪,因为当能使用regsvr32命令时一般已经拥有了这台计算机的shell,此时如果没有杀软直接执行powershell上线cs的命令,如果有就做个免杀直接上传木马执行就好了。反正这东西我也没成功过

 

 

二、Cobaltstrike上线方法——stagerless

 

 

1、stagerless的特点:

生成的文件是完全体,目标机器在执行文件后,无需向teamserver发起一个GET请求下载真正的shell code。因此stagerless无需下载,但它的体积一般比较大,且更有可能被杀软发现,在不易出网的环境中可能有用。

 

2、powershell形式的stagerless:

①首先创建一个powershell文件,然后把文件扔上目标机器

 

 

 

 

②接着我们就开始在目标机器上运行powershell文件

 

 运行命令:

powershell -f powershell_less.ps1                                  //执行powershell_less文件

powershell -ncp -exec bypass -f powershell_less.ps1   //遇到阻止策略时的执行方法

 

 

这里我们就遇到阻止的策略了,bypass绕过一下

 

 

 

 

 

 

回到teamserver这边看看,成了。

 

 

 

此外,这个powershell文件还可以转EXE格式。

 

3、其他形式的stagerless:

  

其他形式的与stager相似,这里就不再赘述了

 

 

三、Cobaltstrike上线方法——Bind+令牌伪造

 

 

1、tcp_bind的使用场景:

 

如果我们从web服务器用ms17-010或者找到了登陆凭证成功进入内网机器,可以执行一些命令或者上传一些EXE等payload,但我们发现这台内网机开了防火墙,虽然可以我们关闭防火墙或者更改防火墙规则,但这样一来就很容易被管理员发现,因此tcp_bind就派上用场了

 

 

 

2、使用tcp_bind的操作:

Port(C2) 选项为 TCP Beacon 将等待连接的端口

 

 

 

监听建立完成后,从这里弄一个攻击包:

 

 

 

 然后把生成的文件发送到目标机器上执行,执行后这个机器会自动监听刚刚我们配置的端口,这里就是4444

 

 

  

然后回到teamserver,打开web服务器的beacon,用connect命令连接目标机器,就能得到一个session了。当我们利用完工作结束之后,记得用unlink命令断开连接(用法与connect相同),以免被管理员发现

 

connect <目标IP>      //tcp_bind建立连接

unlink <目标IP>         //tcp_bind断开连接

 

 

 

 

 

 

3、使用smb_bind的操作:

实现条件:开放445端口或者关闭防火墙

先建立一个监听器

 

 

 

然后利用这个监听器生成一个文件上传至目标机器:

 

 

 

 

 

由于是smb,所以不能直接用link命令,我们需要知道目标机器的账号密码,或者有目标机器的令牌。如果我们获取到了对方的账号密码,可以用make_token来伪造令牌,然后再用link命令连接即可

 

make_token <目标机器账号> <目标机器密码>           //伪造令牌

link <目标IP> <在创建监听器时填写的pipname>        //smb_bind连接

 

 

 

 

 

 

此外,如果我们想清除令牌,可以用rev2self

 

 

 

  


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM