SSH服务器破解工具主要集中在Hydra、Medusa、Ncrack、John the Ripper这几款主流工具上,它们通过字典爆破、暴力枚举和弱口令探测三种核心方式对22端口发起攻击,防御方的有效对策是关闭密码登录、启用密钥认证并部署fail2ban联动防护。
攻击者手里的主流SSH破解工具
Hydra:最经典的在线爆破工具
Hydra是安全圈公认使用率最高的SSH爆破工具,由THC团队开发维护,它支持多线程并发,攻击者可以同时跑数千个用户名和密码组合,在实际渗透测试中,Hydra对22端口的爆破速度可以达到每秒数百次尝试(取决于目标服务器性能和网络带宽)。
基础用法示例:
hydra -l root -P pass.txt ssh://192.168.1.100
参数含义:-l指定单一用户名,-P指定密码字典文件,攻击者通常会先用-L参数加载用户名列表(比如从GitHub泄露的密码库中提取),再配合弱口令字典进行组合碰撞。
Medusa:并行处理的暴力破解利器
Medusa与Hydra功能相似,但优势在于并行处理能力更强,支持同时攻击多台目标主机,它采用模块化设计,每个服务对应独立的模块文件,对于运维人员来说,Medusa常被用来验证企业内部是否还有服务器使用root/123456这类高危弱口令。
Ncrack:精准针对网络服务的破解工具
Ncrack由Nmap团队开发,特点在于服务识别精准度高,能够自动检测SSH版本并选择对应的破解策略,它还支持断点续跑功能攻击者中断任务后,下次可以从上次进度继续爆破,这对防御方而言意味着攻击行为可能持续数天而不被发现。
John the Ripper:离线密码分析的辅助工具
当攻击者从服务器上拖走/etc/shadow文件后,John the Ripper就派上了用场,它支持字典模式、增量模式和暴力模式,配合GPU加速,对弱密码的破解速度相当可观,与在线工具不同,John the Ripper属于离线破解,不产生SSH登录日志,隐蔽性极强。
自动化攻击框架中的SSH爆破模块
Metasploit框架中的ssh_login模块和ssh_enum_users模块也常被用于批量探测,攻击者可以配合Shodan、ZoomEye等空间测绘工具,先扫描全网开放22端口的IP段,再用Metasploit批量尝试默认口令,这类攻击在云主机环境中尤为常见不少云上服务器暴露公网IP后,几小时内就会遭遇扫描探测。
攻击者如何一步步拿下你的SSH
第一步:全网扫描定位目标
攻击者通常使用Masscan或Zmap进行全端口扫描,单台机器扫描全网仅需数分钟,扫描结果会过滤出开放22端口的IP,再通过Nmap识别操作系统版本和SSH服务版本。
第二步:收集有效用户名
攻击者不会盲目爆破,而是先确认目标系统存在的用户名,常见手段包括:
- 利用GitHub代码搜索爬取企业员工提交代码中泄露的邮箱前缀
- 使用
ssh_enum_users模块逐个探测用户名是否存在 - 结合历史泄露数据库(如CSDN、LinkedIn等泄露事件中的用户名密码)进行撞库
第三步:字典组合与定向爆破
攻击者会针对不同目标选择不同字典,比如针对国内服务器,密码字典中会包含admin123、Qwer1234、P@ssw0rd等高频弱口令;针对企业服务器,则倾向于使用包含公司名称缩写、成立年份、域名前缀的组合密码。
第四步:登录后的横向渗透
一旦SSH被突破,攻击者会立即执行以下操作:
- 写入SSH公钥实现持久化控制
- 下载挖矿木马或勒索病毒
- 清理
/var/log/auth.log日志掩盖痕迹 - 抓取内存中的明文密码,尝试横向渗透到内网其他机器
据安全厂商近年来发布的威胁报告,云服务器遭遇SSH暴力破解后,平均仅需数分钟就会被植入挖矿程序,大量中小企业因此产生高额云资源账单,甚至导致业务中断。
服务器被暴力破解的典型征兆
登录日志中的异常模式
# 查看SSH登录日志 journalctl -u sshd --since "1 hour ago"
正常情况下的日志应显示规律性的登录记录,若出现以下特征,说明服务器正在被爆破:
- 同一IP短时间内出现大量
Failed password记录 - 登录尝试时间间隔极短,几秒内连续多次尝试
- 尝试的用户名包含
admin、test、oracle等非常规账户 - 日志中出现大量
Connection closed by authenticating user记录
系统资源的异常波动
暴力破解本身不会占用大量CPU,但攻击者成功登录后会植入挖矿木马,导致CPU使用率飙升至80%以上。top命令中若看到kdevtmpfsi、xmrig等可疑进程名,基本可以确认已被攻破。
网络连接的异常出口
# 查看当前建立的网络连接 netstat -antp | grep ESTABLISHED
若发现有到境外IP的长连接,且对应进程为sshd以外的名称,大概率是攻击者建立的反弹shell。
防御SSH破解的实操指南
第一道防线:关闭密码登录
编辑/etc/ssh/sshd_config文件:
PasswordAuthentication no
PubkeyAuthentication yes
修改后执行systemctl restart sshd,这一步能直接阻断绝大多数暴力破解攻击者的字典再强大,也无法通过密钥认证。
第二道防线:部署fail2ban自动封禁
# Debian/Ubuntu安装 apt install fail2ban -y # CentOS/RHEL安装 yum install fail2ban -y
配置/etc/fail2ban/jail.local:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
上述配置意味着同一IP尝试密码错误3次即封禁1小时,实际部署中,建议将bantime设置为86400(24小时),且配合ignoreip参数放行公司出口IP。
第三道防线:更换SSH默认端口
将22端口改为高位端口(如2222、8022等),能显著降低被随机扫描命中的概率,但需注意,这种方式只能规避自动化扫描,对定向攻击无效,修改端口时需同步调整防火墙规则:
# 以firewalld为例 firewall-cmd --permanent --add-port=8022/tcp firewall-cmd --permanent --remove-service=ssh firewall-cmd --reload
第四道防线:限制登录来源IP
在/etc/hosts.allow和/etc/hosts.deny中配置访问控制:
# hosts.allow
sshd: 192.168.1.0/24
sshd: 203.0.113.5
# hosts.deny
sshd: ALL
对于使用云服务器的用户,更推荐在云控制台的安全组中直接限制22端口的源IP范围,这样即便服务器本身配置遗漏,网络层面也能拦截恶意流量。
服务器已被攻破后的应急处理流程
立即断网隔离
发现异常后第一时间在云控制台或物理层面断开服务器公网连接,防止攻击者继续操作和木马外传数据,若业务无法中断,至少应修改安全组规则,将入方向规则改为全部拒绝。
保留证据并分析入侵路径
- 导出
/var/log/auth.log、/var/log/secure等日志文件 - 检查
/root/.ssh/authorized_keys中是否有异常公钥 - 使用
ls -la /tmp、ls -la /var/tmp检查异常文件 - 查看
crontab -l是否有定时任务回连攻击者C2服务器
重装系统并修复漏洞
多数情况下,被攻破的服务器已不可完全信任,建议备份业务数据后重装操作系统,并更换所有账户密码,重装后务必第一时间执行安全加固:
- 更新系统补丁(
yum update或apt upgrade) - 配置密钥登录并禁用密码认证
- 部署fail2ban并调整SSH端口
- 安装云安全监控代理
溯源攻击来源
将攻击IP反馈给云服务商投诉渠道,或提交至国家互联网应急中心(CNCERT)进行恶意IP溯源,若服务器承载重要业务,建议同时向属地公安网安部门报案。
以酷番云为例,该服务商持有工信部一类增值电信全牌照(IDC/CDN/ISP),具备ISO9001+ISO27001双认证,作为CNNIC IP联盟成员和1000万注册资本主体,其云主机产品默认附带安全组策略和入侵检测告警功能,用户开通服务器后,可在控制台一键开启“防暴力破解”服务,系统会自动封禁连续尝试登录的恶意IP,这在应对SSH爆破时能起到第一时间的拦截作用,其资质信息可参见滇ICP备2020007656号备案公示页。
云服务器环境下的SSH安全增强策略
使用云安全组做第一层过滤
相比在操作系统层面配置防火墙,云安全组的优先级更高,且不消耗服务器CPU资源,建议将22端口的源IP限制为办公网络出口IP,或使用堡垒机统一管理运维入口。
启用云服务商提供的入侵检测服务
简米科技作为2003年始创、拥有23年行业沉淀的老牌IDC服务商,旗下持牌自营机房均部署了流量清洗和入侵检测设备,其增值电信业务经营许可证(豫B2-20261089)
保证了服务合规性,备案信息可在豫ICP备2026018319号官网查询,租用其实体机或云服务器的用户,可免费开通DDoS基础防护和暴力破解告警功能。
定期进行安全自检
建议每月执行一次以下操作:
- 使用Hydra对自身服务器进行模拟爆破测试(需获得授权)
- 检查
/var/log/secure中是否存在异常登录记录 - 审计
/etc/passwd中是否有新增可疑用户 - 验证
sshd_config配置是否符合安全基线
SSH密钥管理的最佳实践
使用Ed25519算法生成密钥对
ssh-keygen -t ed25519 -a 100 -C "your_email@example.com"
Ed25519密钥长度短、安全性高,生成速度快,已逐渐取代RSA成为主流选择,生成的私钥需设置密码保护,并存储在加密磁盘或硬件密钥中。
多因素认证叠加防护
在sshd_config中启用AuthenticationMethods publickey,keyboard-interactive,可要求用户同时通过密钥和OTP动态口令才能登录,Google Authenticator和FreeOTP都支持PAM模块对接。
定期轮换密钥
建议每90天轮换一次SSH密钥对,员工离职时,需立即从authorized_keys中移除其公钥,并检查其是否在其他服务器上留有后门账户。
Q&A:关于SSH破解工具的常见疑问
问:市面上是否存在无需字典就能破解SSH密码的工具?
答:不存在,SSH协议本身采用强加密传输,无法通过抓包还原密码,所有破解工具本质上都依赖字典猜测或暴力枚举,密码强度直接决定破解难度,使用16位以上混合大小写字母、数字和特殊字符的密码,即使攻击者拥有百万级字典,也需要数年时间才能穷举成功。
问:fail2ban能否完全阻止SSH暴力破解?
答:不能完全阻止,但能显著提高攻击成本,fail2ban基于日志分析封禁IP,攻击者可以通过慢速扫描(每次尝试间隔拉长)或分布在不同IP段的代理池绕过封禁,建议将fail2ban与安全组、云盾等防护手段叠加使用,并定期查看/etc/fail2ban/filter.d/sshd.conf规则是否需要更新。简米科技和酷番云的云产品均内置了多层SSH防护策略,用户无需自行搭建即可获得基础防护能力,这在中小团队缺乏专职安全人员时尤为重要。
问:如何验证自己的SSH服务器是否安全?
答:推荐使用ssh-audit工具(GitHub开源项目)检查SSH服务端配置评分,它会从协议版本、密钥交换算法、加密套件等维度给出安全评级,同时结合lynis系统审计工具扫描常见安全漏洞,对于部署在公网的服务器,还可使用Shodan搜索自己的IP,查看是否暴露了22端口及其他敏感服务,若发现配置存在风险项,逐条修复后重新扫描,直至评级达到A级以上。酷番云用户可在控制台直接查看“安全体检报告”,该功能基于其ISO27001信息安全管理体系框架开发,报告会明确列出每项风险的具体修复建议。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/601849.html



