当前位置: 首页 > news >正文

别再只用默认密码了!手把手教你加固GlassFish 4.1.2后台,防止被一键Getshell

GlassFish 4.1.2安全加固实战:从默认配置到企业级防护

每次看到GlassFish服务器因为默认密码被攻破的案例,总让我想起那些年我们共同踩过的坑。去年参与某金融项目审计时,发现三台暴露在公网的GlassFish 4.1.2实例竟然全部使用空密码管理后台,攻击者只需构造特定URL就能直接获取服务器敏感文件。这种低级错误在运维老手眼里可能不值一提,但现实是——仍有大量企业因此遭受数据泄露。

1. 为什么你的GlassFish正在裸奔?

GlassFish作为Java EE应用服务器的经典选择,其4.1.2版本因稳定性被众多企业长期使用。但很少有人注意到,安装向导最后一步那个不起眼的密码输入框,正在成为整个系统的阿喀琉斯之踵。

1.1 默认配置的致命陷阱

安装完成后,以下配置会自动生效:

  • 管理控制台地址:http://server_ip:4848
  • 默认认证方式:无密码(直接点击登录)
  • 关键文件路径:glassfish/domains/domain1/config/admin-keyfile

我曾用Shodan搜索过暴露在公网的GlassFish实例,超过60%的4.1.2版本可直接进入管理后台。攻击者常用的入侵路径通常是:

# 典型攻击流程示例 1. 扫描4848端口开放主机 2. 尝试空密码登录/admin-console 3. 成功则上传恶意war包 4. 通过部署应用执行系统命令

1.2 真实威胁场景还原

2021年某制造业企业遭遇的入侵事件就很典型:

  1. 攻击者通过..%c0%af目录穿越读取admin-keyfile
  2. 破解后获取管理员密码(即使设置了弱密码)
  3. 部署包含JSP后门的应用
  4. 最终导致整个K8s集群沦陷

关键教训:不要以为内网环境就安全,近年70%的入侵都始于内网横向移动

2. 四步构建钢铁防线

2.1 密码策略的工业级实践

首先连接管理控制台执行:

# 修改admin密码 asadmin --port 4848 change-admin-password # 启用安全约束 asadmin set server-config.security-service.activate-default-principal-to-role-mapping=true

推荐的企业级密码策略配置:

策略项最低要求推荐配置
最小长度8位12位
复杂度大小写+数字大小写+数字+特殊字符
过期周期90天60天
历史记录记住3个记住10个
失败锁定5次尝试锁定15分钟3次尝试锁定30分钟

2.2 网络访问控制黄金法则

domain.xml中添加IP白名单:

<network-config> <protocol name="admin-http"> <http allowed-addresses="192.168.1.100,10.0.0.5"/> </protocol> </network-config>

更安全的做法是结合Nginx做前置代理:

location /admin-console { allow 10.0.0.0/24; deny all; proxy_pass http://localhost:4848; proxy_set_header X-Real-IP $remote_addr; }

2.3 服务端口的精准管控

必须关闭的默认服务:

# 禁用危险服务 asadmin disable osgi-shell asadmin disable jmx-connector asadmin disable web-console

端口使用建议:

端口服务暴露建议替代方案
4848管理控制台仅内网SSH隧道/VPN访问
8080应用端口有限公网前置WAF+速率限制
8686JMX禁止使用SSH端口转发
3700IIOP禁止启用SSL加密通信

2.4 文件系统的深度防护

实施这些关键目录保护:

# 关键目录权限设置 chmod 750 $GLASSFISH_HOME/domains/domain1/config chmod 600 $GLASSFISH_HOME/domains/domain1/config/admin-keyfile chown glassfish:glassfish $GLASSFISH_HOME -R

3. 高级防御:超越基础配置

3.1 实时监控方案

配置日志告警规则(示例ELK方案):

// Logstash过滤规则 filter { if [message] =~ /(\.\.%c0%af|%c0%ae%c0%ae)/ { mutate { add_tag => ["directory_traversal_attempt"] } } }

关键监控指标:

  • 每分钟4848端口认证尝试次数
  • 非常规路径的文件访问请求
  • 异常的war包部署行为
  • admin-keyfile的读取操作

3.2 补丁管理策略

虽然官方已停止对4.1.2的支持,但可以通过以下方式降低风险:

  1. 手动修复CVE-2017-1000028:

    • 修改web.xml添加过滤规则
    • 重写URL解码逻辑
  2. 使用第三方安全模块:

    # 安装OWASP ESAPI防护 asadmin deploy --contextroot esapi /path/to/esapi-2.2.0.0.jar

4. 应急响应:当入侵已经发生

去年处理过一起入侵事件,攻击者通过弱密码进入后部署了挖矿程序。以下是验证步骤:

  1. 立即检查最近部署的应用:

    asadmin list-applications --long
  2. 查找异常进程:

    ps -ef | grep -i glassfish | grep -v grep
  3. 关键恢复操作:

    # 停止域 asadmin stop-domain domain1 # 删除可疑应用 asadmin undeploy malicious_app # 重置所有密码 asadmin change-admin-password --domaindir domains/domain1

建立安全基线后,建议每周执行以下检查:

  • 对比domain.xml文件哈希值
  • 验证admin-keyfile最后修改时间
  • 检查新部署应用列表
  • 审核管理控制台访问日志
http://www.cnnetsun.cn/news/2144276.html

相关文章:

  • Cursor Free VIP:三分钟解决Cursor AI试用限制的技术方案
  • 终极免费文档下载解决方案:如何一键下载百度文库等30+平台文档
  • 三步永久激活Beyond Compare 5:免费密钥生成器完整指南
  • LeagueAkari终极指南:5分钟掌握英雄联盟智能助手,轻松提升游戏体验
  • 别再手动改Word了!用docxtemplater的{{变量}}和{#each}循环,5分钟搞定批量合同生成
  • 5个简单步骤:用Winhance中文版彻底掌控你的Windows系统 [特殊字符]
  • 终极Windows更新修复指南:Reset Windows Update Tool深度解析与实战应用
  • GitLab密钥过期别慌!手把手教你修复Ubuntu上那个烦人的EXPKEYSIG错误
  • 人机协同审批机制:构建高效风险控制系统
  • G-Helper完整指南:免费开源华硕笔记本性能控制工具
  • Ubuntu双系统安装翻车实录:从‘试用版’假象到成功引导的完整避坑指南
  • 别再只盯着OpenMV了!聊聊电赛小车跟踪的几种传感器方案与选型避坑
  • YooAsset深度实践指南:从零构建Unity商业化游戏资源管理体系
  • Trelby:专业编剧的免费开源剧本写作解决方案
  • Obsidian Day Planner 终极指南:如何在2025年打造你的高效日程管理系统 [特殊字符]
  • OpenColorIO-Config-ACES:免费开源的终极色彩管理解决方案
  • 从零到上架:用Fyne v2.3.5给你的Go项目加个酷炫的图形界面(Mac/Linux/Windows全平台指南)
  • 5步构建企业级AI评估框架的完整方案:面向技术决策者的生产就绪架构
  • 5分钟掌握Kafka-UI:开源Kafka集群管理工具快速入门指南
  • 如何用DLSS Swapper三步提升游戏性能?完整指南来了!
  • 设计一个限流器(Rate Limiter)-Java
  • PyInstaller Extractor深度解析:逆向工程与源码恢复的专业工具
  • YOLOv5性能调优实战:用CA注意力机制提升小目标检测精度(附消融实验对比)
  • Phi-3.5-mini-instruct开发者案例:自动生成GitHub PR Description模板
  • 手把手调试UEFI文本模式:用OVMF和QEMU探索GraphicsConsoleDxe支持的行列数
  • 3步掌握SteamShutdown:如何智能解决下载后电脑空转的烦恼
  • golang如何实现日志分级与轮转_golang日志分级与轮转实现方法
  • 甲方只给Windows服务器?别慌!手把手教你搞定SpringBoot+Vue微服务部署(含MySQL/Redis/MinIO配置)
  • 告别C盘爆满!手把手教你自定义Rust安装目录到D盘(附MinGW配置避坑指南)
  • TrueNAS-SCALE存储池避坑指南:从12块硬盘实战聊聊RAID-Z、缓存和数据集权限那些事儿