使用WebSocket WSC2进行命令和控制

这一切都始于我与其他一些BHIS测试人员进行的对话。当时,我正在测试使用WebSockets的Web应用程序。该应用程序让我头疼,我正在发泄我的沮丧。渗透测试员,红队和坏人总是在寻找新的方法来防御。因此,谈话转向讨论如何将这些斗争用于进攻能力并不奇怪。有人提到使用WebSockets的命令和控制(C2)通道会非常酷。在我们开始讨论为什么会非常酷之前,我们应该仔细研究一下WebSocket协议。

 

WebSocket并不是那么新鲜。该协议最初出现在2000年代中后期的HTML5中。它吸引了开发人员,开始使用浏览器,规范(RFC 6455)于2011年完成.WebSocket协议通过TCP促进服务器和客户端之间的全双工通信通道。这允许客户端和服务器之间的真正异步通信。这与HTTP协议的请求/响应性质有很大的不同。在WebSocket之前,实现“异步”通信的最常用方法是使用AJAX。除了AJAX仍然依赖于客户端轮询服务器,所以它实际上只是半双工。WebSockets允许服务器随意向客户端发送消息,反之亦然。

跟踪异步通信的流程比跟踪传统HTTP请求和响应的流程要困难一些。此外,使用WebSockets发送的数据格式几乎完全由应用程序开发人员指定。正如我所发现的,这些因素可以使使用WebSockets的测试应用程序更具挑战性。这也意味着需要检查网络流量的防御者需要做更多的工作!因此,我们的想法是,我们可以使用WebSockets来建立一个可能没有经过详细审查的命令和控制通道。

幸运的是,@ Arno0x0x在此基础上领先于我们并编写了一个名为WSC2的工具,该工具可在GitHub上获得,网址为  https://github.com/Arno0x/WSC2。还有一篇很棒的博客文章介绍了这个工具:https:  //arno0x0x.wordpress.com/2017/11/10/using-websockets-and-ie-edge-for-c2-communications/

让我们来看看WSC2!一旦将其克隆到攻击服务器,该工具几乎可以立即使用。C2服务器的IP地址等详细信息在名为config.py的配置文件中进行管理。我确实对此文件进行了一些修改,例如配置回调以指向我的命令和控制服务器并设置新密码。

一旦启动,我发现WSC2的控制器组件直观,类似于我过去使用过的其他C2应用程序。WSC2带有几个有效的负载,但我决定使用PowerShell单行stager在我的Windows 10受害计算机上启动代理。由于回调配置已在单独的文件中处理,因此生成有效负载与启动WSC2控制器并键入“genStager psoneliner”一样快。剩下要做的就是在受害者机器上运行PowerShell单线程。我立刻得到了代理回调的奖励!以下屏幕截图显示了从控制器角度看整个过程。     

它允许您上传和下载受害计算机上的文件,以及放入shell并在远程主机上执行命令。  

关于WSC2代理的一个有趣的事情是它使用COM对象通过Internet Explorer / Edge与C2服务器通信。@ Arno0x0x把它扔进EDR逃避,我觉得很酷。出于演示目的,我在受害者计算机上运行了Process Monitor(Windows的Sysinternals Suite的一部分),以监视代理运行时参与网络通信的进程。果然,我的所有代理流量都显示为IEXPLORE.EXE。 

我将Internet Explorer配置为通过受害方的Burp Suite代理流量。这让我可以看到从HTTP到WebSocket的连接升级。

我们还可以使用Burp Suite查看向代理发出命令时生成的WebSocket流量。

使用WebSockets进行命令和控制是渗透测试人员,红队和防御者都应该考虑的事情。WSC2在您的环境中建立WebSocket命令和控制通道,以便快速,轻松地测试您的监控和防御解决方案。

 

原文:https://www.blackhillsinfosec.com/command-and-control-with-websockets-wsc2/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值