WebShell流量特征检测_哥斯拉篇

打印 上一主题 下一主题

主题 926|帖子 926|积分 2778

80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文重要是对这四款经典的webshell管理工具举行流量分析和检测。什么是一句话木马?

1、定义顾名思义就是执行恶意指令的木马,通过技能手段上传到指定服务器并可以正常访问,将我们需要服务器执行的命令上传并执行2、特点短小干练,功能强大,潜伏性非常好3、举例php一句话木马用php语言编写的,运行在php环境中的php文件,例:4、原理以最为常见的php一句话木马为例,""为php固定规范写法,"@"在php中含义为后面假如执行错误不会报错,"eval()"函数表示括号里的语句全做代码执行,"$_POST['pass']"表示从页面中以post方式获取变量pass的值四、哥斯拉(Godzilla v3.0)


①全部类型的shell能绕过市面大部分的静态查杀

②流量加密能绕过过市面绝大部分的流量Waf

③Godzilla自带的插件是冰蝎、蚁剑不能比拟的

1、重要功能

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

(1)MSF联动

(2)绕过OpenBasedir

(3)ZIP压缩 ZIP解压

(4)代码执行

(5)绕过 DisableFunctions

(6)Mimikatz

(7)读取服务器 FileZilla Navicat Sqlyog Winscp XMangager 的配置信息以及暗码

(8)虚拟终端 可以用netcat连接

(9)Windows权限提升 (2012-2019烂土豆)

(10)读取服务器 谷歌 IE 火狐 欣赏器保存的账号暗码

(11)Windows权限提升烂土豆的C#版本 甜土豆

(12)支持 哥斯拉 冰蝎 菜刀 ReGeorg 的内存shell 并且支持卸载

(13)屏幕截图

(14)Servlet管理 Servlet卸载

(15)内存加载Jar 将Jar加载到 SystemClassLoader

2、基础配置


起首从利用最多的PHP_XOR_BASE64类型的加密shell提及,所用的shell重要配置如下:

①URL:http://172.16.159.129/godzilla_shell.php

②暗码:pass

③密钥:key

④有效载荷:PhpDynamicPayload

⑤加密器:PHP_XOR_BASE64

⑥哥斯拉的Shell配置包括基本配置和哀求配置,其中基本配置重要设置shell地址、暗码、密钥、加密器等信息


这里要留意暗码和密钥的差别:

①暗码:和蚁剑、菜刀一样,暗码就是POST哀求中的参数名称,本例中哥斯拉提交的每个哀求都是pass=xxxxxxxx这种形式

②密钥:用于对哀求数据举行加密,不过加密过程中并非直接利用密钥明文,而是计算密钥的md5值,然后取其16位用于加密过程

③哥斯拉shell的哀求配置重要用于自定义HTTP哀求头,以及在最终的哀求数据左右再追加一些扰乱数据,进一步降低流量的特征

3、PHP_XOR_BASE64加密器

哥斯拉内置了3种Payload以及6种加密器,6种支持脚本后缀,20个内置插件,以下重要以PHP_XOR_BASE64为例举行分析。

(1)加密原理

XOR运算

在逻辑运算之中,除了 ANDOR,另有一种 XOR运算,中文称为"异或运算"。它的定义是:两个值相同时,返回false,否则返回true。也就是说,XOR可以用来判断两个值是否差别。

JavaScript语言的二进制运算,有一个专门的 XOR 运算符,写作^。

上面代码中,假如两个二进制位相同,就返回0,表示false;否则返回1,表示true。XOR加密

XOR运算有一个很奇妙的特点:假如对一个值连续做两次 XOR,会返回这个值自己。

①上面代码中,原始信息是message,密钥是key,第一次 XOR会得到加密文本cipherText。对方拿到以后,再用key做一次XOR 运算,就会还原得到message。②假如每次的key都是随机的,那么产生的CipherText具有所有可能的值,而且是均匀分布,无法从CipherText看出message的任何特征。它具有最大的"信息熵",这被称为XOR 的"完美保密性"(perfect secrecy)。③XOR 的这个特点,使得它可以被用于信息的加密。(2)客户端加密模块分析


哥斯拉的源码是通过反编译Godzilla.jar得到的,作者并未做代码混淆。

从代码中可以分析出,发送的payload内容先经过XOR加密后,再将密文举行base64编码,末了举行URL编码。

XOR加密的密钥来自用户提供的密钥经过MD5的32位摘要后,取前16位的值。(3)Shell服务器端代码分析

PHP_XOR_BASE64类型的加密shell的服务器端代码如下,其中定义了encode函数,用于加密或解密哀求数据。由于是通过按位异或实现的加密,所以encode函数即可用于加密,同时也可用于解密。


整个shell的基本执行流程是:服务器接收到哥斯拉发送的第一个哀求后,由于此时尚未建立session,所以将POST哀求数据解密后(得到的内容为shell操作中所需要用到的相干php函数定义代码)存入session中,后续哥斯拉只会提交相干操作对应的函数名称(如获取目录中的文件列表对应的函数为getFile)和相干参数,这样哥斯拉的相干操作就不需要发送大量的哀求数据。

(4)数据包分析

这里从Shell Setting对话框中的测试连接操作开始分析,在Shell Setting对话框中,一共会产生3个POST数据包,POST哀求报文中参数名都是pass(即shell的连接暗码),参数值都是加密数据。①第一个Request哀求数据包



简单分析了一下payload的内容,包含run、bypass_open_basedir、formatParameter、evalFunc等二十多个功能函数,具备代码执行、文件操作、数据库操作等诸多功能。

②第一个Response响应数据包


该哀求不含有任何Cookie信息,服务器响应报文不含任何数据,但是会设置PHPSESSID,后续哀求都会自动带上该Cookie。③第二个Request哀求数据包


第二个哀求报文发送很少数据(实际内容为测试连接命令test),返回少量数据(即ok)


④第二个Response响应数据包


服务器响应数据解密过程并不复杂,先调用findStr函数删除服务器响应数据左右附加的混淆字符串(对于PHP_XOR_BASE64加密方式来说,前后各附加了16位的混淆字符),然后将得到的数据举行base64解码,末了再和shell连接密钥md5值的前16位按位异或,即完成响应数据的解密。


⑤第三个Request哀求数据包


运行哥斯拉命令执行代码中的getBasicsInfo函数得到的系统基本信息。


⑥第三个Response响应数据包



4、PHP_EVAL_XOR_BASE64加密器


哥斯拉差别的加密器发送哀求的过程都是一样的,差别之处在于加密/解密的实现方式差别。PHP_EVAL_XOR_BASE64加密shell的特点如下:Ø哀求数据加密得到的密文形式:pass=evalContent&key=XXXXXXXX,其中pass是shell暗码,key是shell密钥Ø每个哀求中的pass=evalContent都是相同的,evalContent是将shells/cryptions/phpXor/template/base64.bin文件内容经过编码得到的(先删除第1行的

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

汕尾海湾

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表