| name | lateral-move-ssh |
| description | 使用已授权且已匹配的 SSH 私钥,对明确指定的内网 Linux 目标执行单跳登录和最小分诊,验证能否获得对任务有价值的新立足点。当红队人员已有目标、用户名、私钥路径并明确要求横向验证时使用;不得用于密码喷洒、用户名猜测或自动多跳。 |
SSH 单跳横向验证
用一次受控认证回答:凭据是否有效、远端权限是什么、新立足点是否比当前主机更接近演练目标。
行动目标
- 验证一条明确的“源立足点—凭据—目标”路径。
- 成功后在同一 SSH 会话中完成最小主机分诊。
- 判断新主机的权限收益、网络收益、凭据收益和任务价值。
- 达到目标或没有新增价值时停止,不自动继续下一跳。
必要输入
- 用户授权的目标主机和端口。
- 明确用户名,不猜测常见账号。
- 可直接引用的私钥路径或既有 SSH 配置。
- 已知或待核验的主机密钥指纹。
- 本次只读远端命令和成功标准。
缺少凭据时交接 hunt-credentials;缺少目标时请求用户提供,不自动扫描网段。
授权与 ROE
- 风险等级:high;访问模式:active-login。
- 每次确认只覆盖一个目标和一组凭据。
- 不通过命令行参数传递明文密码,不喷洒、不轮换账号或凭据。
- 不跳过主机密钥校验,不进入交互 Shell。
- 不修改远端文件、authorized_keys、任务、服务或日志。
- 不在新主机自动继续横向;每一跳都要重新选择路径并确认。
- 摘要记录凭据来源和指纹,不记录密码或私钥正文。
OPSEC 与失败预算
- 主机指纹采集最多一次,登录认证最多一次。
Permission denied 后立即停止,不用其他用户名或密钥补试。
- 超时或拒绝后不自动扫描替代端口。
- 成功后所有分诊在一次连接中完成,减少认证和会话日志。
- 预先说明目标
auth.log/secure、lastlog/wtmp 和网络监控可见性。
目标优先级
只有满足必要输入的候选才可执行。优先选择:
- 与用户指定业务目标直接相关的主机。
- 已有 SSH config/known_hosts 关联且凭据映射明确的主机。
- 预计带来新网段、运维权限、关键服务或更高权限的主机。
- 成功率更高、失败锁定风险更低、噪声更可控的路径。
不要仅因 22 端口开放就尝试登录。
工作流
- 读取摘要,确认源立足点、目标价值、凭据来源和授权边界。
- 创建计划:路径核验、用户确认、单次登录、价值评估与交接。
- 只读检查 SSH 客户端、私钥路径、权限、公钥指纹和 known_hosts。
- 主机密钥未知时低频采集一次指纹,并与登录动作一起请求确认。
- 调用
request_user_input,列明源/目标、端口、用户名、凭据来源、主机指纹、远端命令、认证次数、日志影响和停止条件;随后停止本轮。
- 用户确认后执行批准的单次登录和一次性分诊。
- 评估新立足点价值,用一次摘要追加保存结果并完成计划。
确认前核验
command -v ssh; ls -l <keyfile>; ssh-keygen -lf <keyfile>.pub 2>/dev/null
ssh-keygen -F <target> 2>/dev/null
只有私钥时,可用 ssh-keygen -y -f <keyfile> 派生公钥并计算指纹;不要输出或保存私钥正文。
主机密钥未知时:
ssh-keyscan -T 5 -p <port> <target> 2>/dev/null | ssh-keygen -lf -
指纹在确认前后发生变化时停止,报告潜在中间人风险。
单次登录与分诊
ssh -o BatchMode=yes -o StrictHostKeyChecking=yes -o ConnectTimeout=5 \
-p <port> -i <keyfile> <user>@<target> \
"echo SSH_OK; whoami; id; hostname; uname -a; cat /etc/os-release 2>/dev/null; ip addr 2>/dev/null || ifconfig 2>/dev/null; ip route 2>/dev/null || netstat -rn 2>/dev/null; ss -tln 2>/dev/null || netstat -tln 2>/dev/null; sudo -n -l 2>/dev/null; ps -eo pid,user,comm --no-header 2>/dev/null | head -60"
如果需要临时 known_hosts 文件,创建、使用和清理都必须包含在确认范围内,且严格绑定采集到的指纹。
新立足点价值评估
- 权限收益:root、sudo NOPASSWD、特殊组或仅普通用户。
- 网络收益:新接口、路由、DNS、代理或当前源主机不可见网段。
- 目标收益:是否托管指定业务、数据库、运维或控制服务。
- 凭据收益:是否存在值得后续定向猎取的配置或账号线索;不读取正文。
- 继续成本:下一步的认证、写入、日志和检测风险。
成功与停止条件
成功:收到 SSH_OK 和远端身份,且完成价值评估;即使新主机价值低,也视为路径验证完成。
立即停止并报告:
- 凭据拒绝、网络超时、端口拒绝或主机密钥异常。
- 目标或远端身份超出授权范围。
- 登录成功但无新增权限、网络或任务价值。
- 下一步需要写入、提权利用或继续横向。
摘要与交接
## SSH 横向路径更新
- 源立足点 → 目标:...
- 用户名、凭据来源和指纹:...
- 主机指纹与认证结果:...
- 远端身份和权限:...
- 权限/网络/目标/凭据收益:...
- 已产生痕迹:SSH 认证与登录记录
- 建议:继续分诊 / 提权评估 / 凭据猎取 / 停止扩散
新立足点信息不足时交接 recon-basic-info;普通 Linux 用户且提权能推进任务时交接 escalate-linux-privilege;出现明确凭据入口时,经用户决定交接 hunt-credentials。