
华为路由器 SSH 默认凭据检测实战基于 routersploit ssh_default_creds 模块【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploit本篇指南围绕 routersploit 中creds/routers/huawei/ssh_default_creds模块展开讲解如何对华为路由器Huawei Router的 SSH 服务执行默认凭据字典攻击并给出完整的交互式操作流程、输出解读与源码级原理分析。读完本文你将掌握该模块的加载、参数配置、运行与结果验证方法并能结合底层 SSH 客户端与词表机制自定义检测凭据。模块定位与适用场景华为路由器含部分华为光猫/ONU 设备在出厂或弱配置状态下其 SSH 管理服务常使用固定或已知的默认口令。ssh_default_creds模块的目标就是在获得目标 IP 后用一组内置的华为设备常见默认凭据对 SSH 服务逐一尝试登录一旦认证成功即向用户展示有效凭据。该模块属于 creds 凭据检测类模块与同目录下的ftp_default_creds.py、telnet_default_creds.py共同覆盖华为路由器的三大远程管理协议。其模块元数据在源码中定义如下__info__ { name: Huawei Router Default SSH Creds, description: Module performs dictionary attack against Huawei Router SSH service. If valid credentials are found, they are displayed to the user., devices: ( Huawei Router, ), }模块作者为 routersploit 核心维护者 Marcin Bury适用设备标注为 Huawei Router。模块架构继承复用而非重复实现ssh_default_creds并没有从零实现攻击逻辑而是继承自通用 SSH 默认凭据模块from routersploit.core.exploit import * from routersploit.modules.creds.generic.ssh_default import Exploit as SSHDefault class Exploit(SSHDefault): ...通用实现位于 routersploit/modules/creds/generic/ssh_default.py负责多线程调度、连接检测、结果表格输出等全部攻击流程华为模块只需重写target、port、threads、defaults四个选项即可完成差异化定制。这是 routersploit creds 目录下所有厂商模块共用的设计模式可对比 ftp_default_creds.py 与 telnet_default_creds.py。核心参数详解华为 SSH 默认凭据模块的可配置参数全部定义在 ssh_default_creds.py参数类型默认值说明targetOptIP空目标 IPv4/IPv6 地址或file://指向的 ip:port 列表文件portOptPort22目标 SSH 服务端口取值范围 165535threadsOptInteger1并发线程数华为模块覆盖为 1通用模块默认为 8defaultsOptWordlist华为设备凭据列表格式为user:pass的逗号分隔字符串或file://词表文件stop_on_successOptBooltrue找到首个有效凭据后是否停止后续尝试继承自通用模块verbosityOptBooltrue是否逐条打印认证尝试过程继承自通用模块华为设备内置默认凭据模块内置的华为设备凭据列表来自 ssh_default_creds.pydefaults OptWordlist( admin:admin,admin:,Admin:admin,user:user,vodafone:vodafone, user:HuaweiUser,telecomadmin:admintelecom,root:admin,digicel:digicel, User:Pass or file with default credentials (file://) )值得注意的几点telecomadmin:admintelecomtelecomadmin是华为光猫/ONU 设备的超级管理账号运营商装机后常保留默认口令是该列表中最具华为特色的组合vodafone:vodafone对应沃达丰定制版华为路由器的默认凭据admin:空密码组合也被纳入检测范围列表以逗号分隔大小写敏感例如Admin:admin与admin:admin是两个独立条目。完整操作步骤依据模块文档 docs/modules/creds/routers/huawei/ssh_default_creds.md 及 README.md完整流程如下启动交互式框架./rsf.py加载模块use creds/routers/huawei/ssh_default_creds设置目标set target [TargetIP]可选修改端口set port 22执行攻击run若发现有效凭据框架会将其展示在结果表格中典型运行场景rsf use creds/routers/huawei/ssh_default_creds rsf (Huawei Router Default SSH Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (Huawei 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底层执行原理攻击流程调用链模块的run()与attack()定义在通用父类 ssh_default.py 中调用链如下run()初始化空凭据列表并调用attack()attack()首先调用check()探测目标是否开放 SSH 服务通过 SSHCli.test_connect() 实现未开放则直接返回将defaults词表包装为线程安全的LockedIterator按threads参数启动多个工作线程每个线程从迭代器中取出user:pass组合调用ssh_client.login()尝试认证认证成功则记录(target, port, protocol, username, password)到self.credentials若stop_on_success为 true 则终止其余线程全部线程结束后有凭据则打印结果表格否则输出 Credentials not found。SSH 认证细节底层 SSH 客户端基于 paramiko 实现见 routersploit/core/ssh/ssh_client.py连接超时与 banner 超时均为 8 秒SSH_TIMEOUT 8.0look_for_keysFalse与allow_agentFalse禁用本地密钥与 ssh-agent确保只使用字典中的口令认证避免干扰认证失败时逐条打印SSH Authentication Failed - Username: xxx Password: yyy认证成功时打印SSH Authentication Successful并返回 true。连接探测逻辑test_connect()使用随机 12 位密码以root账号尝试连接若返回paramiko.AuthenticationException即端口开放、服务响应且仅认证失败判定目标暴露 SSH 服务其余异常连接拒绝、超时等视为未开放。自定义凭据词表defaults参数支持两种输入形态实现见 option.py 中的 OptWordlist内联字符串逗号分隔的user:pass列表例如set defaults admin:admin,telecomadmin:admintelecom,root:toor词表文件以file://前缀指向本地文件每行一条user:pass例如set defaults file:///tmp/huawei_creds.txt文件内容格式admin:admin telecomadmin:admintelecom root:admin需要注意的是OptWordlist 在文件不存在时会直接抛出校验错误而框架自带的全局词表位于 routersploit/resources/wordlists/defaults.txt共 653 行覆盖多厂商通用凭据通用 SSH 模块默认即引用该文件华为模块则使用厂商专属的精简列表攻击耗时更短。测试与验证仓库为通用 SSH 默认凭据模块提供了测试用例 tests/creds/generic/test_ssh_default.py可据此验证框架行为默认port为 22、threads为 8、stop_on_success为 true、verbosity为 truedefaults属性读取后应为 list 类型OptWordlist 惰性解析的结果对未开放 SSH 的目标check()返回 Falsecheck_default()返回 Nonerun()不抛异常。华为专属模块未单独编写测试文件其行为由通用模块测试与框架的模块加载机制见 tests/test_module_info.py共同保障。使用注意事项该模块属于授权安全测试范畴仅应在你拥有合法权限的设备上执行滥用默认凭据探测可能触犯法律华为不同型号家用路由器、企业 AR 系列、运营商定制光猫默认凭据差异较大内置列表未命中时建议结合设备型号补充词表默认threads1较为保守对大批量目标可适当调大并发如set threads 8但需注意过快重试可能触发目标设备的登录锁定或防火墙封禁target支持file://形式的多目标列表文件每行ip:port配合multi装饰器见 ssh_default.py可实现对网段内多台华为设备的批量检测。小结creds/routers/huawei/ssh_default_creds是 routersploit 中面向华为路由器 SSH 服务的开箱即用凭据检测模块它通过继承通用 SSH 默认凭据攻击框架仅凭 4 行参数定制便获得完整的多线程攻击、连接探测与结果输出能力。掌握该模块的配置与运行方式即可快速评估目标华为设备的 SSH 默认口令风险如需扩展检测面可参考同目录ftp_default_creds.py与telnet_default_creds.py以及 creds 模块目录 中其他厂商的实现模式。【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考