资讯动态

routersploit Cisco 路由器 SSH 默认口令探测模块实战:ssh_default_creds 使用与源码解析

发布时间:2026/9/23 1:55:23 来源:尧图企业网站定制
网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载导读creds/routers/cisco/ssh_default_creds是 routersploit嵌入式设备渗透测试框架中针对Cisco 路由器 SSH 服务的默认口令字典攻击模块。本文以该模块文档为主线完整讲解其在交互式命令行中的加载、配置与运行流程并结合模块源码、SSH 客户端底层实现与单元测试剖析参数含义、攻击执行链路和结果判定机制。读完本文你将能独立使用该模块对 Cisco 路由器开展默认凭据安全检测并理解框架中 SSH 凭据模块的统一设计范式。模块概览功能与定位该模块属于 routersploit 的creds凭据类模块族核心功能是对 Cisco 路由器开放的 SSH 服务执行默认凭据字典攻击一旦找到有效的用户名/密码组合会立即在终端中展示给使用者。其元信息定义在 模块源码 中模块名称Cisco Router Default SSH Creds模块描述针对 Cisco Router SSH 服务的字典攻击发现有效凭据后展示给用户作者Marcin Burythreat9适用设备Cisco Router从代码继承关系看该模块直接继承自通用的 ssh_default 模块因此它本质上是通用 SSH 默认凭据攻击引擎 Cisco 专用参数预设的组合——这也是整个creds/routers/*目录下所有厂商模块如 FTP、Telnet 变体共用的设计模式。快速上手三步完成 Cisco SSH 默认凭据检测按照 模块文档 的验证步骤使用流程如下启动框架./rsf.py加载模块use creds/routers/cisco/ssh_default_creds设置目标set target [TargetIP]执行攻击run若发现有效凭据结果将以表格形式展示完整的交互式会话示例如下来自模块文档rsf use creds/routers/cisco/ssh_default_creds rsf (Cisco Router Default SSH Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (Cisco Router Default SSH Creds) run [*] Running module... [*] Target exposes SSH service [*] Starting default credentials attack against SSH service [*] thread-0 thread is starting... [-] SSH Authentication Failed - Username: admin Password: 12345 [-] SSH Authentication Failed - Username: admin Password: 123456 [-] SSH Authentication Failed - Username: Admin Password: 12345 [-] SSH Authentication Failed - Username: Admin Password: 123456 [] SSH Authentication Successful - Username: admin Password: admin [*] thread-0 thread is terminated. [*] Elapsed time: 2.3932292461395264 seconds [] Credentials found! Target Port Service Username Password ------ ---- ------- -------- -------- 192.168.1.1 22 ssh admin admin从输出可观察到模块的完整行为链先探测目标是否开放 SSH 服务 → 逐个尝试字典中的凭据 → 命中后停止并汇总成表。登录成功后会输出[] SSH Authentication Successful最终结果表中包含目标 IP、端口、服务类型、用户名和密码五个字段。参数详解五个可配置项及其默认值模块暴露的选项定义在 模块源码由基类 ssh_default 补充完整参数类型默认值说明targetOptIP空目标 IPv4 / IPv6 地址或file://前缀的 ip:port 列表文件portOptPort22目标 SSH 服务端口threadsOptInteger1并发线程数注意Cisco 模块覆盖了基类的默认值 8defaultsOptWordlistadmin:admin用户名:密码 组合或file://前缀的凭据字典文件stop_on_successOptBooltrue命中第一组有效凭据后是否停止继承自基类verbosityOptBooltrue是否逐条打印认证尝试过程继承自基类各参数类型的行为由 option.py 中的对应选项类约束OptIP通过正则严格校验 IPv4 / IPv6 格式非法地址直接报错Invalid address. Provided address is not valid IPv4 or IPv6 address.见 option.py。OptPort强制转换为整数并校验0 port 65535见 option.py。OptWordlist这是最灵活的选项——支持逗号分隔的内联列表如admin:admin,cisco:cisco也支持file://前缀指向的外部字典文件其__get__方法会在取值时自动把文件逐行读入并去除首尾空白见 option.py。OptInteger支持十进制或十六进制int(value, 16)字符串到整数的转换。OptBool仅接受true/false两个取值。这里有一个容易被忽略的细节Cisco 模块将defaults预设为admin:admin、threads预设为 1而通用基类默认加载的是 defaults.txt 全量字典共 653 行并使用 8 线程。原因是 Cisco 的 SSH 登录尝试属于慢速密码认证单凭据单线程更稳妥、更不易触发目标设备的锁定或 IDS 告警。若需要更全面的覆盖可在运行时覆盖defaults为框架内置全量字典set defaults file:///routersploit/resources/wordlists/defaults.txt按实际仓库绝对路径调整该字典中即包含admin:cisco、cisco:cisco、Cisco:Cisco等典型 Cisco 组合。攻击执行链路从 run 到认证成功的源码级剖析1. 服务探测checkrun()首先调用attack()其第一步是check()见 ssh_default.py创建一个 SSH 客户端并调用test_connect()尝试连接。底层实现在 ssh_client.py使用固定用户名root 12 位随机密码发起连接random_text(12)若抛出paramiko.AuthenticationException说明目标确实存在 SSH 服务只是拒绝该凭据判定探测成功若抛出其他异常连接超时、拒绝等判定目标未开放 SSH模块直接返回不做后续攻击。这是整套框架creds模块先探测、后攻击安全模式的标准实现——不会对非 SSH 目标发起无意义的爆破。2. 多线程字典攻击attack服务探测通过后模块输出Starting default credentials attack against SSH service随后进入核心攻击循环见 ssh_default.py用LockedIterator(self.defaults)包装凭据列表保证多线程安全迭代run_threads(self.threads, self.target_function, data)按threads数量启动工作线程示例输出中的thread-0即来源于此每个工作线程在target_function中循环取出一条username:password按首个冒号切分split(:, 1)调用ssh_client.login(username, password)尝试认证认证成功且stop_on_success为 true 时调用running.clear()通知所有线程停止命中的凭据追加到self.credentials列表全部线程结束后若credentials非空则打印成功提示并以表格输出表头为 Target、Port、Service、Username、Password否则输出Credentials not found。3. 单次认证的底层实现login每次认证最终落到 SSHCli.login底层使用paramiko连接参数包括timeoutSSH_TIMEOUT8.0 秒与banner_timeoutSSH_TIMEOUT显式关闭look_for_keys与allow_agent确保只使用字典提供的用户名密码不做本机密钥或 SSH Agent 干扰捕获paramiko.AuthenticationException时输出[-] SSH Authentication Failed - Username: ... Password: ...对应文档示例中的失败日志认证成功则输出[] SSH Authentication Successful - ...并返回 True。值得注意verbosity参数贯穿整个调用链——login中的print_error/print_success均受其控制若将verbosity设为false攻击过程将静默执行只输出最终结果表。与其他 Cisco 凭据模块的横向对比在creds/routers/cisco目录下除了本文的 SSH 模块还并列存在两个同族模块共用同一套继承通用引擎 覆盖参数的设计ftp_default_creds.py针对 FTP 服务默认端口 21同样预设admin:admin、单线程telnet_default_creds.py针对 Telnet 服务默认端口 23参数结构完全一致。三个模块唯一差异在于继承的基类ssh_default/ftp_default/telnet_default及默认端口攻击流程、参数体系与输出格式保持统一。这也解释了为什么 docs 目录下三个文档的 Verification Steps 几乎逐字相同——它们共享同一套使用契约。单元测试与验证仓库为每个凭据模块都配套了 pytest 测试见 test_ssh_default_creds.py断言模块默认参数target 、port 22、threads 1、defaults [admin:admin]、stop_on_success is True、verbosity is True针对测试桩目标执行check()断言返回False测试环境未真实部署 SSH 服务时探测失败属预期行为check_default()返回Nonerun()返回None。这些测试既锁定了模块参数契约也验证了无有效凭据时优雅退出、不抛异常的容错路径可用于在 CI 中回归验证模块行为。使用建议与安全提示授权前提该模块仅用于对已获授权的目标设备进行安全评估。对未授权设备发起凭据爆破可能违反当地法律法规请务必在隔离的实验环境或明确授权的渗透测试项目中操作。线程数控制Cisco 设备 SSH 登录通常较慢且多次失败可能触发账户锁定或日志告警。建议保持默认单线程或在确认目标抗性后再调大threads。字典扩展框架内置的 defaults.txt 收录了 653 条常见默认凭据含大量 Cisco 惯用组合可作为file://字典的起点也可结合目标型号历史默认口令自建字典覆盖更广。结果解读命中后输出的表格即最终审计证据建议同时记录Elapsed time与日志级别输出作为评估报告的凭据发现时间线参考。总结creds/routers/cisco/ssh_default_creds是 routersploit 凭据检测模块族中极具代表性的一员通过继承通用 SSH 攻击引擎并预设 Cisco 专用参数仅需use → set target → run三步即可完成对 Cisco 路由器 SSH 服务的默认凭据检测。理解其探测-爆破-汇总三段式执行链与参数体系后你可以举一反三熟练使用框架内所有厂商的 FTP / SSH / Telnet 默认凭据模块并可根据实际场景灵活定制字典与并发策略。赞分享网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载相关推荐routersploit Belkin 路由器 SSH 默认口令爆破模块实战指南ssh_default_credsroutersploit Belkin 路由器 SSH 默认口令爆破模块实战指南ssh_default_creds 导读 本文围绕 routersploit网络安全嵌入式RouterSploit 实战Movistar 路由器 SSH 默认口令爆破模块ssh_default_creds深度解析RouterSploit 实战Movistar 路由器 SSH 默认口令爆破模块ssh_default_creds深度解析 导读 本文以 RouterSp网络安全嵌入式D-Link 路由器 SSH 默认凭据检测routersploit ssh_default_creds 模块实战与源码解析D Link 路由器 SSH 默认凭据检测routersploit ssh_default_creds 模块实战与源码解析 本篇技术指南以 routerspl网络安全嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价