初始口令与匿名访问
Sonatype Nexus Repository 首次启动会生成随机初始管理员口令,写入数据目录下的 admin.password 文件;登录完成改密流程后该文件才会被移除。由此有两个判断点:文件仍然存在,通常意味着初始凭据流程没走完;匿名访问默认开启,若仓库被暴露在外,内部构件与依赖缓存可被未授权读取。管理端默认端口 8081。
基本信息
| 产品 | Sonatype Nexus Repository 3.x |
|---|---|
| 管理端端口 | 8081 |
| 初始口令 | 首次启动写入 admin.password |
| 匿名访问 | 默认开启,可按需关闭 |
| 主要风险 | 初始凭据未更换、仓库内容外可读 |
典型使用场景
- 上线接手核查:确认 admin.password 是否已被移除,判断是否已完成改密
- 暴露面核查:8081 是否只对运维网段可达,是否被反向代理到公网
- 权限评审:核对用户与角色清单,清理离职与测试账号
- 匿名策略决策:对外提供的公共仓库可保留匿名只读,内部仓库应关闭
- 迁移与交接:交接时确认管理员凭据已变更并记录保管方式
初始口令状态核查
初始口令状态核查
ls -l /opt/nexus/sonatype-work/nexus3/admin.password 2>/dev/null
# 文件仍存在通常意味着初始口令流程未完成(改密后该文件会被移除)
curl -sI http://127.0.0.1:8081/ | head -n 5 # 确认管理端可达范围
# 匿名可读性验证(本方资产):curl -s http://127.0.0.1:8081/service/rest/v1/repositories检查项与判据
| 检查项 | 正常表现 | 异常表现 |
|---|---|---|
| admin.password | 已完成改密,文件不存在 | 文件长期存在,仍用初始凭据 |
| 匿名访问 | 内部仓库已关闭匿名 | 未登录即可列出仓库与构件 |
| 管理端口来源 | 仅运维网段可达 | 公网或全内网可达 |
| 账号清单 | 仅在职人员与系统账号 | 存在离职人员与测试账号 |
构件仓库里常包含内部包与依赖缓存,匿名可读会让内网软件资产对外透明:从构件名与版本就能推断技术栈,甚至直接下载到内部私有包。
通过反向代理暴露 8081 时,收敛动作要同时覆盖代理层与组件自身:只在代理加了来源限制,内网直连端口的人仍然可以绕过。