实战遇到的 Apache Karaf Web Console 后台 RCE
字数 1496 2025-09-23 19:27:38
Apache Karaf Web Console 后台 RCE 漏洞分析与利用
1. 漏洞概述
Apache Karaf是基于OSGi的运行时容器,用于部署和管理捆绑包。该漏洞存在于Karaf Web Console后台,攻击者可通过默认凭证进入后台,进而实现远程代码执行。
2. 环境搭建
2.1 环境下载
- 官方下载地址:https://karaf.apache.org/download.html
- 具体版本:https://archive.apache.org/dist/karaf/4.0.4/apache-karaf-4.0.4.zip
2.2 配置修改
编辑{KARAF_HOME}/etc/org.ops4j.pax.url.mvn.cfg文件,在org.ops4j.pax.url.mvn.repositories中添加国内镜像源:
org.ops4j.pax.url.mvn.repositories=\
https://maven.aliyun.com/repository/public@id=alibaba,\
https://repo1.maven.org/maven2@id=central
2.3 启动与安装
- 运行
bin/karaf.bat启动Karaf - 添加Karaf官方仓库并安装必要功能:
feature:repo-add mvn:org.apache.karaf.features/standard/4.0.4/xml/features
feature:install http
feature:install webconsole
2.4 访问控制台
- WebConsole默认端口:8181
- 访问地址:http://x.x.x.x:8181/system/console/
- 默认凭证:karaf/karaf
3. 漏洞利用方法
3.1 OSGi Bundle Install RCE
在后台存在"Upload/Install Bundles"功能,可安装自定义bundle实现RCE。
利用原理
- 通过
org.apache.karaf.bundle.command.Install安装恶意bundle - 当start参数为true时,会触发BundleActivator的start()方法
恶意bundle构造
参考项目:https://github.com/moghaddam/developmentor
- 使用Maven构建恶意jar包
- 通过后台上传并安装
- 成功触发RCE
3.2 Jetty内存马注入
环境识别
通过报错/Header头识别Jetty版本:9.2.14.v20151106
注入方法
- 使用Unsafe加载内存马
- 生成蚁剑连接载荷
- 连接时需要添加认证头:
Authorization: Basic a2FyYWY6a2FyYWY=
注意事项
- 冰蝎和哥斯拉可能报错(环境相关问题)
- 实战中内存马注入可能失败
- 回显需要不断stop->start操作,使用不便
3.3 OSGi API注册Servlet
实现原理
参考官方代码:https://github.com/apache/karaf/blob/karaf-4.0.x/http/src/main/java/org/apache/karaf/http/core/internal/osgi/Activator.java
通过注册自定义ServletService实现内存马功能
代码实现
// Servlet注册服务
public class ServletService {
public void registerServlet() {
// 实现Servlet注册逻辑
// 包含内存马功能
}
}
// HelloServlet实现内存马逻辑
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
// 内存马实现代码
}
}
利用效果
- 注册成功后新增Servlet端点
- 可通过该Servlet实现持久化访问
4. 实战限制与防护
4.1 利用限制
- Webshell工具可能无法连接
- 命令执行可能受限(如只能执行dir)
- 最新版本已注释掉默认账号密码
4.2 防护措施
- 删除WebConsole的默认账号密码注释
- 更新到最新版本Karaf
- 加强访问控制策略
5. 总结
该漏洞利用Apache Karaf Web Console的默认凭证和OSGi特性,通过多种方式实现RCE:
- 恶意bundle安装
- Jetty内存马注入
- OSGi API Servlet注册
虽然存在一些实战限制,但该漏洞仍具有较高的危害性。建议用户及时更新和加强安全配置。
注:本文仅用于安全研究和教育目的,请勿用于非法活动。