详细介绍:SSH 远程登录(Metasploitable 靶机实战)复习总结
2025-12-10 17:05 tlnshuju 阅读(26) 评论(0) 收藏 举报一、学习背景与环境
1. 核心目标
掌握 SSH 协议远程登录的完整流程,解决老旧 SSH 服务的兼容性问题,熟悉渗透测试靶机的 SSH 登录操作,为后续权限提升、漏洞利用打下基础。
2. 环境信息
| 设备 | 系统 / 服务版本 | 关键信息 |
|---|---|---|
| 本地攻击机 | Kali Linux(最新版) | 自带 OpenSSH 客户端(默认禁用老旧算法) |
| 远程靶机 | Metasploitable(Ubuntu 内核 2.6.24) | SSH 服务版本:OpenSSH 4.7p1(仅支持 ssh-rsa/ssh-dss 算法) |
| 靶机 SSH 配置 | 端口 22 开放,默认账户 msfadmin(密码 msfadmin) | 允许密码登录,支持 SSH 协议 v2 |
二、核心知识点回顾
1. SSH 协议基础
- 定义:SSH(Secure Shell)是加密远程登录协议,替代明文传输的 Telnet,默认使用 22 号端口。
- 加密机制:通过非对称加密(公钥 + 私钥)验证主机身份,对称加密保护会话数据,确保传输安全。
- 版本与算法:现代 SSH 客户端默认使用安全算法(如 ed25519),禁用 ssh-rsa/ssh-dss 等老旧算法(存在安全漏洞);老旧服务(如 OpenSSH 4.7p1)仅支持老旧算法,需手动兼容。
2. 靶机 SSH 服务探测(Nmap 扫描)
(1)扫描目的
确认靶机 22 端口状态、SSH 服务版本及是否为标准服务,为登录做准备。
(2)扫描命令
bash
运行
nmap -sV -p 22 192.168.1.5
-sV:探测服务版本信息。-p 22:指定扫描 SSH 默认端口 22。
(3)扫描结果关键信息
- 端口状态:
open(SSH 服务已启动且端口开放)。 - 服务版本:
OpenSSH 4.7p1 Debian 8ubuntu1(老旧版本,仅支持 ssh-rsa/ssh-dss 算法)。 - 靶机系统:Linux(Metasploitable 靶机)。
3. 登录核心问题与解决(密钥算法不兼容)
(1)问题现象
直接执行 ssh msfadmin@192.168.1.5 报错:
plaintext
Unable to negotiate with 192.168.1.5 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
(2)问题原因
- 本地 Kali 最新版 OpenSSH 客户端默认禁用 ssh-rsa/ssh-dss 等不安全算法。
- 靶机 OpenSSH 4.7p1 仅支持上述老旧算法,导致密钥协商失败。
(3)两种解决方法(重点复习)
方法 1:临时登录(单次有效)
通过命令行参数临时允许老旧算法,适合快速测试:
bash
运行
ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa msfadmin@192.168.1.5
- 参数解释:
-o HostKeyAlgorithms=+ssh-rsa:允许客户端接受靶机的 ssh-rsa 主机密钥(解决 “无匹配主机密钥类型” 问题)。-o PubkeyAcceptedAlgorithms=+ssh-rsa:允许客户端使用 ssh-rsa 算法进行身份验证(兼容老旧服务)。
- 后续步骤:
- 首次连接提示确认主机指纹,输入
yes回车(信任靶机,信息存入~/.ssh/known_hosts)。 - 输入靶机 msfadmin 用户密码(默认
msfadmin),回车登录。
- 首次连接提示确认主机指纹,输入
方法 2:永久配置(长期使用)
在本地 Kali 的 SSH 客户端配置文件中添加规则,无需每次输入参数:
- 编辑配置文件(不存在则自动创建):
bash
运行
nano ~/.ssh/config - 添加靶机专属配置(仅对 192.168.1.5 生效):
ssh-config
Host 192.168.1.5 # 靶机 IP(可自定义名称,如 Host metasploitable) HostName 192.168.1.5 # 靶机实际 IP User msfadmin # 默认登录用户名(后续可简化命令) HostKeyAlgorithms +ssh-rsa # 允许 ssh-rsa 主机密钥 PubkeyAcceptedAlgorithms +ssh-rsa # 允许 ssh-rsa 身份验证算法 - 保存退出:
Ctrl+O→ 回车 →Ctrl+X。 - 简化登录命令:
bash
运行
ssh 192.168.1.5 # 自动加载配置,无需输用户名和算法参数
4. 登录后实战操作(靶机环境)
(1)系统信息探测(了解靶机环境)
bash
运行
# 查看系统版本
cat /etc/issue
uname -a # 查看内核版本(2.6.24-16-server)
# 查看网络配置
ifconfig # 老旧系统默认支持(ip addr 可能不兼容)
# 查看用户列表(过滤可登录用户)
cat /etc/passwd | grep -v nologin
# 查看开放端口与进程(需 root 权限)
netstat -tulnp
(2)权限操作(切换 root 用户)
Metasploitable 靶机默认支持 root 用户切换:
bash
运行
su root # 切换到最高权限用户
# 输入 root 密码(默认 `root` 或 `msfadmin`)
# 成功后提示符变为 root@metasploitable:~#
(3)SSH 服务配置分析(安全审计)
查看靶机 SSH 配置文件,对比现代安全配置:
bash
运行
cat /etc/ssh/sshd_config # 需 root 权限
重点关注参数:
PermitRootLogin yes:允许 root 直接登录(不安全,现代系统建议设为 no)。PasswordAuthentication yes:允许密码登录(可配合密钥登录提升安全性)。Protocol 2:使用 SSH v2 协议(v1 存在漏洞,已禁用)。
(4)SSH 文件传输(scp 命令)
从本地 Kali 与靶机互传文件(需兼容老旧算法):
bash
运行
# 本地 → 靶机(Kali 终端执行)
scp -o HostKeyAlgorithms=+ssh-rsa /本地文件路径 msfadmin@192.168.1.5:/tmp/
# 靶机 → 本地(Kali 终端执行)
scp -o HostKeyAlgorithms=+ssh-rsa msfadmin@192.168.1.5:/tmp/靶机文件 /本地保存路径
5. 退出登录
bash
运行
# 退出当前用户(msfadmin 或 root)
exit
# 若已切换 root,需先 exit 退回 msfadmin,再 exit 退出 SSH 会话
三、常见问题与排查(复习重点)
| 错误提示 | 原因分析 | 解决方法 |
|---|---|---|
no matching host key type found | 本地客户端禁用老旧算法,靶机仅支持 ssh-rsa/ssh-dss | 方法 1:命令加算法参数;方法 2:配置文件永久允许 |
Permission denied (publickey,password) | 密码错误;靶机禁用该用户登录;算法不兼容 | 确认密码(msfadmin/msfadmin);检查算法配置;确认靶机允许密码登录 |
Host key verification failed | 靶机密钥变化(如重装系统),本地缓存冲突 | 删除本地缓存:sed -i '/192.168.1.5/d' ~/.ssh/known_hosts |
Connection refused | 靶机 SSH 服务未启动;端口被防火墙拦截 | 靶机本地执行 sudo systemctl start ssh;开放 22 端口 |
四、安全注意事项与扩展方向
1. 安全提醒
- 本次练习基于 测试靶机,生产环境中需禁用 ssh-rsa/ssh-dss 等老旧算法,升级 OpenSSH 版本。
- 生产环境建议启用 SSH 密钥登录(禁用密码登录),修改默认端口 22,禁止 root 直接登录。
2. 扩展学习方向
- 漏洞利用:Metasploitable 靶机存在大量已知漏洞(如 Samba、FTP 匿名登录),可结合 SSH 登录后的信息,用 Metasploit 工具练习渗透测试。
- SSH 安全加固:对比靶机与现代系统的 SSH 配置,总结加固措施(如密钥登录、端口修改、防火墙规则)。
- 自动化登录:配置 SSH 密钥登录(生成密钥对,上传公钥到靶机
~/.ssh/authorized_keys),实现无密码登录。
五、核心命令速查(复习必备)
| 功能 | 命令 |
|---|---|
| Nmap 扫描 SSH 服务 | nmap -sV -p 22 目标IP |
| 临时 SSH 登录(兼容算法) | ssh -o HostKeyAlgorithms=+ssh-rsa -o PubkeyAcceptedAlgorithms=+ssh-rsa 用户名@目标IP |
| 永久配置 SSH 登录 | 编辑 ~/.ssh/config 并添加靶机配置 |
| 切换 root 用户 | su root |
| 查看 SSH 配置文件 | cat /etc/ssh/sshd_config |
| SCP 传输文件(本地→靶机) | scp -o HostKeyAlgorithms=+ssh-rsa 本地文件 用户名@目标IP:/路径 |
| 退出登录 | exit |
浙公网安备 33010602011771号