ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SSH Exploiter 深度解析:利用 SSH 凭据传播的实战指南

SSH Exploiter 深度解析:利用 SSH 凭据传播的实战指南 网络安全应用安全【免费下载链接】monkeyInfection Monkey - An open-source adversary emulation platform项目地址https://gitcode.com/gh_mirrors/mo/monkey点击查看免费下载SSH 是 Linux 环境中远程管理最常用的协议也是攻击者在网络中横向移动的高价值目标。Infection Monkey 的 SSH Exploiter 正是针对这一入口设计的传播工具它利用 Agent 已掌握的凭据密码或 SSH 私钥对目标主机的 SSH 服务发起登录尝试成功后将自身复制到目标主机并继续传播。阅读本文后你将掌握 SSH Exploiter 的完整配置方法、工作原理、凭据利用链路以及它与其他组件如 SSH Credentials Collector 和 SSH Fingerprinter的协同方式。支持的操作系统SSH Exploiter 的攻击能力受限于操作系统对 SSH 客户端的支持情况。下表总结了它在不同平台上的表现操作系统发起攻击端Agent 运行处目标主机Linux✅ 支持✅ 支持Windows✅ 支持❌ 不支持从上表可以看出Linux 主机既可以作为攻击发起方也可以作为目标而 Windows 主机虽然能发起攻击Agent 在 Windows 上运行时可以利用内置的 SSH 客户端但不能作为 SSH Exploiter 的目标——即 SSH Exploiter 不会尝试通过 SSH 攻击 Windows 主机。这符合 SSH 协议的实际部署场景绝大多数 SSH 服务运行在 Linux/Unix 系统上。配置说明SSH Exploiter 的配置非常简单只有一个可选参数。文档中提到该配置说明由插件自身的config-schema.json自动生成并经人工修订而来这保证了文档与插件实际配置逻辑的一致性。配置属性总览属性类型必填可空connect_timeoutnumber可选不可为 nullconnect_timeout建立 SSH 连接的最大等待时间秒。connect_timeout可选类型number不可为 nullconnect_timeout 约束最大值该值必须小于或等于100最小值不包含该值必须大于0connect_timeout 默认值默认值为15即默认情况下Agent 会在 15 秒内等待 SSH 连接建立如果超时则放弃该目标。该参数需要在(0, 100]区间内取值既不能为 0 或负数也不能超过 100 秒。合理设置该值可以在网络延迟较高的环境中提高攻击成功率同时避免在无响应的主机上浪费时间。与其他组件的协同完整的 SSH 攻击链路SSH Exploiter 并非孤立运行。在 Infection Monkey 中它与其他两个 SSH 相关组件配合构成完整的攻击链路SSH Credentials Collector参考文档在攻陷 Linux 主机后收集该主机上所有用户的$HOME/.ssh目录中未加密的 SSH 密钥对。SSH Fingerprinter源码通过端口扫描结果中的 SSH 横幅识别目标主机及其操作系统。SSH Exploiter利用收集到的凭据密码或 SSH 密钥对目标 SSH 服务发起登录尝试成功后将 Agent 复制到目标主机。这一链路在 monkey_zoo 黑盒测试 中得到了完整验证SSHCollector 从机器 A10.2.3.14窃取密钥然后 B10.2.4.15利用该密钥攻击 C10.2.5.16。测试配置还体现了实际攻防场景中的典型配置将最大传播深度设为 3set_maximum_depth保持隧道开启时间设为 20 秒set_keep_tunnel_open_time启用 SSH Exploiter 与 SSH Credentials CollectorTCP 扫描端口设为22配置传播凭据用户名m0nk3y、密码u26gbVQe和5BuYHeVl。SSH Exploiter 的目标发现SSH Fingerprinter 原理在 Exploiter 发起攻击之前Agent 需要先确认目标主机上存在 SSH 服务。这一工作由 SSHFingerprinter 完成其核心逻辑位于 monkey/infection_monkey/network_scanning/ssh_fingerprinter.py。服务识别Fingerprinter 使用正则表达式SSH-\d\.\d-OpenSSH不区分大小写匹配端口扫描得到的服务横幅banner。一旦某个开放端口的横幅匹配成功该端口就被标记为SSH服务SSH_REGEX rSSH-\d\.\d-OpenSSH这一机制可从单元测试 test_ssh_fingerprinter.py 中得到验证。测试中横幅为SSH-2.0-OpenSSH_8.2p1的端口 22 和 2222 均被识别为 SSH 服务而横幅为空的端口 123、443、8080 则不会被识别。操作系统识别除了识别服务Fingerprinter 还会从横幅中提取操作系统信息。它维护了一份已知 Linux 发行版名单LINUX_DIST_SSH [ubuntu, debian]若横幅中包含这些关键词则提取横幅末尾的版本字符串作为 OS 版本并将 OS 类型判定为 Linuxfor dist in LINUX_DIST_SSH: if banner.lower().find(dist) ! -1: os_version banner.split( ).pop().strip() os OperatingSystem.LINUX测试用例test_ssh_os验证了这一行为横幅SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2会被识别为 Linux 系统OS 版本为Ubuntu-4ubuntu0.2。测试用例test_os_info_not_overwritten还验证了当多个端口都匹配横幅时OS 信息不会被后续扫描结果覆盖。事件发布与监控识别完成后Fingerprinter 会发布一个FingerprintingEvent携带目标 IP、时间戳、OS 信息和发现的 SSH 服务列表并打上ssh-fingerprinter、ACTIVE_SCANNING_T1595主动扫描和GATHER_VICTIM_HOST_INFORMATION_T1592收集受害者主机信息等标签与 MITRE ATTCK 技术编号对应。这使得用户在 Island 的感染地图上可以看到 SSH 服务的识别结果。实战如何启用并配置 SSH Exploiter在实际使用中你可以通过 Infection Monkey Island 的 Web 界面或配置文件来启用 SSH Exploiter。在配置界面启用进入 Island 的配置页面找到传播Propagation部分在 Exploiters 列表中启用SSHExploiter按需设置connect_timeout默认 15 秒取值范围(0, 100]确保在凭据配置中提供了可用的身份与密钥见下文否则 Exploiter 无凭据可试。配置传播凭据凭据配置是 SSH Exploiter 能否成功的关键。Infection Monkey 支持配置多种凭据类型包括密码、LM hash、NTLM hash 以及SSH 私钥详见凭据配置文档。从 credentials_reuse_ssh_key.py 可以看到典型的凭据结构——Credentials对象由身份identity和密钥secret组成身份可以是用户名如m0nk3y密钥可以是密码如u26gbVQe也可以是 SSH 私钥。在凭据表格中同一行的身份与密钥组合会最先尝试若失败则所有可能的跨行组合都会被尝试。在测试环境中验证如果你想在自己的环境中验证 SSH Exploiter 的效果可以参考 monkey_zoo 黑盒测试的配置思路准备至少两台 Linux 机器分别作为攻击发起端和目标在攻击发起端的$HOME/.ssh放置未加密的密钥对在 Island 配置中启用 SSH Credentials Collector自动窃取密钥与 SSH Exploiter将目标 IP 加入扫描范围TCP 扫描端口设为 22运行 Agent观察感染地图上的传播路径。整个验证过程由 ExploitationTest 类驱动它会导入测试配置、运行 Agent、轮询分析结果直到超时最后清理所有 Agent 并重置 Island。小结SSH Exploiter 是 Infection Monkey 在 Linux 网络环境中实现横向移动的核心组件之一其配置极其精简——唯一参数connect_timeout控制连接建立的最长等待时间默认 15 秒取值范围(0, 100]。它支持 Linux 与 Windows 作为攻击发起端但目标仅限 Linux 主机。理解 SSH Exploiter 需要将其放在完整的攻击链路中看待SSH Credentials Collector 窃取密钥 → SSH Fingerprinter 发现 SSH 服务并识别目标 OS → SSH Exploiter 利用凭据实现传播。三者协同使得 Infection Monkey 能够真实模拟攻击者利用 SSH 弱凭据或泄露私钥进行横向移动的攻击路径帮助安全团队验证网络防御的有效性。赞分享网络安全应用安全【免费下载链接】monkeyInfection Monkey - An open-source adversary emulation platform项目地址https://gitcode.com/gh_mirrors/mo/monkey点击查看免费下载相关推荐RouterSploit 实战使用 Netcore Router Default SSH Creds 模块进行 SSH 默认凭据攻击RouterSploit 实战使用 Netcore Router Default SSH Creds 模块进行 SSH 默认凭据攻击 导读 本文围绕 Rout网络安全嵌入式routersploit 实战Grandstream 摄像头 SSH 默认凭据检测模块creds/cameras/grandstream/ssh_default_creds深度解析routersploit 实战Grandstream 摄像头 SSH 默认凭据检测模块creds/cameras/grandstream/ssh_defau网络安全嵌入式Routersploit Thomson 路由器 SSH 默认凭据攻击模块实战指南Routersploit Thomson 路由器 SSH 默认凭据攻击模块实战指南 导读 本文围绕 routersploit 项目中的 creds/router网络安全嵌入式上一篇从WWW到Better Streaming AssetsUnity Android资源加载的终极优化指南下一篇OpenMPT完全指南从入门到精通的音乐制作神器创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表