一、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