命令和控制"/>
使用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: //arno0x0x.wordpress/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命令和控制通道,以便快速,轻松地测试您的监控和防御解决方案。
原文:/
更多推荐
使用WebSocket WSC2进行命令和控制
发布评论