从一次真实的渗透测试说起:我是如何利用默认口令“横扫”客户内网的(含防御复盘)
那是一个再普通不过的周三下午,客户发来的渗透测试授权书还带着打印机的余温。这家制造业企业的IT负责人反复强调:“我们刚做完等保测评,防火墙规则都是最新版。”但经验告诉我,最坚固的堡垒往往从内部被攻破——而默认凭证,就是那把被遗忘在门锁上的钥匙。
1. 信息收集:从蛛丝马迹到攻击面测绘
客户提供的测试范围只有两个公网IP,但Shodan扫描显示其NAT背后藏着更多故事。通过特征端口比对和HTTP头指纹识别,不到20分钟就绘制出完整的暴露面清单:
| 系统类型 | 版本标识 | 开放端口 | 可疑路径 |
|---|---|---|---|
| Grafana | 9.2.1企业版 | 3000 | /login |
| 泛微OA | e-office v10.0 | 8080 | /webroot/decision |
| ShowDoc | 2.8.3 | 4999 | /install/index.php |
| 视频监控系统 | 大华DSS v5.0 | 37777 | /doc/page/login.asp |
提示:现代资产测绘工具如FOFA已经能自动关联设备型号与常见漏洞,但手动验证仍是必要步骤
这些系统看似毫无关联,但三个细节引起了我的注意:
- 所有服务均使用默认欢迎页面
- 登录表单未启用验证码机制
- HTTP响应头中均未出现WAF标识
2. 突破口选择:当默认凭证成为通杀密钥
从风险收益比角度考虑,我首先测试了Grafana的管理接口。在9.x版本中,以下组合值得优先尝试:
# 常用凭证测试脚本片段 for cred in ('admin:admin','grafana:grafana','supervisor:supervisor'); do curl -s -o /dev/null -w "%{http_code}" http://$target:3000/login -d "user=${cred%:*}&password=${cred#*:}" done令人惊讶的是,admin/admin组合直接返回了302跳转。登录后通过"Data Sources"界面,顺利获取到MySQL数据库的连接信息——这里存储着泛微OA的所有用户凭证哈希。
横向渗透关键路径:
- Grafana → 数据库凭据 → OA系统用户表
- OA后台 → VPN配置页面 → 内网拓扑图
- 拓扑图标注的监控系统 → 大华默认口令 → 视频存档服务器
3. 权限维持:在安全设备眼皮下的持久化
通过监控系统的RTSP服务漏洞上传Webshell后,发现客户部署了某知名EDR产品。但安全设备的管理界面本身存在弱口令问题:
设备品牌:山石网科 默认组合:hillstone/hillstone 实际生效:未修改默认密码利用这个漏洞,我们直接添加了防火墙放行规则,将恶意流量伪装成合法的Zoom视频会议流量。更讽刺的是,在EDR的日志管理界面发现了如下配置:
<!-- 审计日志过滤规则 --> <rule action="exclude"> <condition field="username" value="admin"/> </rule>4. 防御复盘:从攻击链到防护矩阵
这次渗透暴露的典型问题值得所有企业引以为戒。以下是按攻击阶段对应的防御建议:
| 攻击阶段 | 防御措施 | 实施难度 |
|---|---|---|
| 信息收集 | 修改所有系统默认banner | ★★☆☆☆ |
| 初始访问 | 强制修改出厂凭证,启用多因素认证 | ★★★☆☆ |
| 横向移动 | 网络分段隔离,数据库连接使用最小权限账户 | ★★★★☆ |
| 权限维持 | 安全设备自身强化,日志全量审计 | ★★★☆☆ |
具体到技术层面,建议管理员立即执行以下操作:
- 凭证扫描自检:
# 使用hydra进行弱口令自查 hydra -L users.txt -P top100_passwords.txt <IP> <service> -V -t 4 - 服务加固清单:
- 禁用所有调试接口(如ShowDoc的/install目录)
- 为管理接口添加IP白名单限制
- 将默认管理路径改为随机字符串
那次测试结束后,客户CTO看着我们提交的完整域控截图沉默了很久。他最后的问题让我印象深刻:“这些默认密码就写在设备的说明书里,为什么我们没人注意?”或许这就是安全最残酷的真相——最危险的漏洞,往往就明晃晃地摆在每个人眼前。