主页 > 网络知识 > 冰蝎,从入门到魔改(2)

冰蝎,从入门到魔改(2)

 

冰蝎,从入门到魔改

 

既然这样我们直接用Eclipse安装WindowsBuilder,来直接创建SWT项目。

安装WindowsBuilder

在Eclipse的Marketplace里搜索WindowsBuilder,点击Install即可安装。

 

冰蝎,从入门到魔改

 

之后我们直接创建基于SWT项目,即可避免因swt包缺失导致的报错问题。

 

冰蝎,从入门到魔改

 

我们将反编译之后的源码和JAR包导入项目,在通过搜索源码和修复报错(会有一大波报错等待你修复,可以多种反编译工具对比结果来修改)等方式尝试将源码跑起来。

 

冰蝎,从入门到魔改

 

最终我们终于成功跑起来了反编译之后的代码。

 

冰蝎,从入门到魔改

 

可以看到项目结构比较简单清晰,主要逻辑都在net包下,Main.java为程序入口。这里简单介绍下各个模块代码的作用:

 

冰蝎,从入门到魔改

 

出于对原作者的瑞思拜,不会放出任何项目文件。

 

冰蝎,从入门到魔改

 

0x06 特征擦除

经过对网上多篇对”冰蝎”特征的资料参考,总结出几条特征并将其特征给予修改擦除。以PHP版本为例,其他语言版本异曲同工。

1.密钥交换时的URL参数

首当其冲的就是密钥交换时的参数,用GET请求方式,默认webshell的密码为pass,并且参数值为3位随机数字。

 

冰蝎,从入门到魔改

 

从webshell上看,参数值的随机数字并没有任何实际作用:

 

冰蝎,从入门到魔改

 

客户端代码上看也只是随机数:

 

冰蝎,从入门到魔改

 

我们来看下一般对此情况的检测规则:

 

.(php|jsp|asp|aspx)?(w){1,10}=d{2,3} HTTP/1.1

 

该规则可以匹配1-10位密码的webshell,并且参数值为2-3位的数字。

修改思路:

增加随机数量的随机参数和随机值(随机值不为全数字),并且密码参数不能固定为第一个。

修改后的效果:

 

冰蝎,从入门到魔改

 

2.header中的Content-Type

默认在header中的Content-type字段,在一般情况下的GET形式访问是没有该字段的,只有POST形式的访问才会有。但”冰蝎”不论是GET形式还是POST形式的访问均包含此字段。此处露出了较大破绽,而且该字段的大小写有点问题,所以基于这个规则基本可以秒杀。

 

冰蝎,从入门到魔改

 

我们来看下这块相关的的代码:

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!