渗透测试 | 关于“绕”云服务器防火墙策略的小tip
字数 1281 2025-08-10 08:28:18
绕过云服务器防火墙策略的渗透测试技巧
背景与问题概述
在渗透测试过程中,当获得云服务器权限后,经常需要开启特定端口来搭建服务。但主流云服务商(如阿里云、腾讯云)默认会启用防火墙,仅开放少数端口(如80、22、3389)。这种端口限制通常只能通过云控制台修改,无法仅凭shell权限调整。
实战案例解析
初始访问
- 通过弱口令进入shell集成管理系统后台
- 后台提供直接可用的shell功能模块
- 确认目标为阿里云服务器
遇到的限制
- 网页提供的shell不稳定
- 尝试外带shell失败(可能由于防护策略)
- 创建root权限用户后SSH连接失败
问题诊断
- 发现SSH服务运行在非常规端口22022
- 连接22022端口后,密码认证阶段失败
- 检查系统日志(
/var/log/secure)发现:- PAM认证阻止uid≥1000的用户远程登录
- 创建的test用户uid为0(root),被阻止
解决方案
-
修改PAM配置文件:
/etc/pam.d/system-auth/etc/pam.d/sshd/etc/pam.d/login
-
在
/etc/pam.d/system-auth中找到相关限制配置并注释掉 -
重启SSH服务使更改生效
关键知识点总结
1. 云防火墙特性
- 云厂商默认启用防火墙
- 仅开放基本服务端口
- 配置通常只能通过控制台修改
2. SSH服务隐藏技巧
- 使用非常规端口(如22022)增加隐蔽性
- 需要扫描或检查
netstat输出才能发现
3. PAM认证限制
- Linux PAM(可插拔认证模块)可限制远程登录
- 常见限制包括:
- 禁止特定uid范围的用户登录
- 限制root直接登录
- 其他认证策略
4. 用户创建技巧
- 创建root权限用户命令示例:
useradd -u 0 -g 0 -p [加密密码] -o [用户名]-u 0:设置uid为0(root)-g 0:设置gid为0(root组)-o:允许重复uid(覆盖唯一性检查)-p:设置加密后的密码(非明文)
5. 日志检查
- SSH相关日志位于
/var/log/secure - 使用
tail -f实时监控日志:tail -f /var/log/secure
防御建议
针对管理员
- 定期审计PAM配置
- 监控
/etc/passwd和/etc/shadow变更 - 限制非常规端口的使用
- 实施多因素认证
- 定期检查系统日志
针对渗透测试人员
- 发现非常规端口时尝试连接
- 创建用户前检查PAM策略
- 优先考虑使用现有用户而非创建新用户
- 考虑使用SSH隧道等替代方案绕过限制
扩展思考
-
其他可能的认证限制位置:
/etc/ssh/sshd_config中的AllowUsers/DenyUsers/etc/security/access.conf
-
替代方案:
- 使用Websockify等工具通过Web端口转发
- 利用已有服务(如Web)建立反向连接
- 使用DNS/ICMP等协议建立隐蔽通道
-
云环境特殊考虑:
- 安全组规则可能叠加系统防火墙
- 元数据服务可能提供临时凭证
- 云厂商可能有额外的安全监控机制
通过理解这些技术和限制,渗透测试人员可以更有效地在云环境中操作,同时管理员也能更好地保护系统安全。