ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

RouterSploit Zyxel 路由器 FTP 默认凭据爆破模块:creds/routers/zyxel/ftp_default_creds 实战指南

RouterSploit Zyxel 路由器 FTP 默认凭据爆破模块:creds/routers/zyxel/ftp_default_creds 实战指南 RouterSploit Zyxel 路由器 FTP 默认凭据爆破模块creds/routers/zyxel/ftp_default_creds 实战指南【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploitRouterSploit 是一款面向嵌入式设备的漏洞利用框架其creds模块体系专门用于对设备默认凭据进行字典攻击。本文聚焦 docs/modules/creds/routers/zyxel/ftp_default_creds.md 所描述的creds/routers/zyxel/ftp_default_creds模块讲解它如何针对 Zyxel 路由器的 FTP 服务执行默认凭据字典攻击并结合仓库源码剖析其内部实现、参数含义与运行流程。读完本文你将掌握该模块的完整调用方式、可调参数、默认凭据清单以及它背后的攻击执行原理能够直接用于合法的安全评估场景。模块功能概述该模块执行针对Zyxel Router FTP 服务的默认凭据字典攻击dictionary attack。它会依次使用内置的用户名:密码组合尝试登录目标 FTP 服务一旦发现有效凭据立即在终端中向用户展示方便后续进一步验证或利用。在 模块源码 中可以看到它的元信息定义模块名称Zyxel Router Default FTP Creds描述对 Zyxel Router FTP 服务执行字典攻击找到有效凭据后展示给用户作者Marcin BuryRouterSploit 模块贡献者适用设备Zyxel Router值得注意的是这个模块本身只是一个薄壳它继承了通用 FTP 默认凭据模块 ftp_default.py 的全部攻击逻辑只通过覆写参数来指定 Zyxel 设备的默认凭据清单。这种厂商特定模块继承通用攻击器的设计贯穿整个creds/routers目录例如同目录下的ssh_default_creds.py与telnet_default_creds.py也是同样的模式。模块参数详解该模块暴露了 4 个可由用户在交互式 Shell 中设置的核心参数源码见 ftp_default_creds.py参数类型默认值说明targetOptIP空目标 IPv4 / IPv6 地址或包含ip:port的文件file://前缀portOptPort21目标 FTP 端口threadsOptInteger1并发线程数defaultsOptWordlistadmin:admin,admin:1234,admin:user,admin:Zyxel*2012*默认凭据列表用户名:密码或指向凭据文件file://前缀各参数的类型校验逻辑定义在 option.pyOptIP仅接受合法 IPv4 / IPv6 地址其余值会抛出OptionValidationErrorOptPort必须能转换为整数且取值范围为0 port 65535默认端口 21 即 FTP 标准端口OptInteger支持十进制与十六进制如0x10两种写法OptWordlist__get__时若值以file://开头会读取指定文件、按行去除首尾空白生成凭据列表否则将字符串按逗号,切分为列表。也就是说你可以把凭据清单放到一个文件里用set defaults file:///path/to/creds.txt指定每行一个用户名:密码。内置默认凭据清单模块内置的 Zyxel 默认凭据为 4 组admin:admin admin:1234 admin:user admin:Zyxel*2012*这 4 组凭据在 单元测试 中被精确断言与模块源码完全一致。同时测试还断言了stop_on_success默认值为True、verbosity默认值为True——这两个继承自通用模块的隐藏参数控制着命中即停和显示每次尝试结果的行为。快速上手验证步骤按照官方文档的验证步骤在 RouterSploit 交互式环境中执行如下操作启动框架./rsf.py加载模块use creds/routers/zyxel/ftp_default_creds设置目标set target [TargetIP]运行攻击run若发现有效凭据结果将直接展示在屏幕上入口脚本 rsf.py 会启动交互式解释器加载模块后Shell 提示符会变为rsf (Zyxel Router Default FTP Creds) 表明当前已激活该模块之后便可用set命令配置参数、用run命令发起攻击。运行场景演示官方文档给出了完整的运行场景输出略有节选整理rsf use creds/routers/zyxel/ftp_default_creds rsf (Zyxel Router Default FTP Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (Zyxel Router Default FTP Creds) run [*] Running module... [*] Target exposes FTP service [*] Starting attack against FTP service [*] thread-0 thread is starting... [-] Authentication Failed - Username: admin Password: 12345 [-] Authentication Failed - Username: admin Password: 123456 [-] Authentication Failed - Username: Admin Password: 12345 [-] Authentication Failed - Username: Admin Password: 123456 [] Authenticated Succeed - Username: admin Password: admin [*] thread-0 thread is terminated. [*] Elapsed time: 0.06290411949157715 seconds [] Credentials found! Target Port Service Username Password ------ ---- ------- -------- -------- 192.168.1.1 21 ftp admin admin解读这份输出[*] Target exposes FTP service模块先对目标做连通性探测确认 21 端口是可达的 FTP 服务后才开始攻击[-] Authentication Failed每次登录失败都会打印verbosityTrue时便于观察攻击进度[] Authenticated Succeed - Username: admin Password: admin命中有效凭据最终以表格形式汇总输出Target / Port / Service / Username / Password即文档中描述的有效凭据展示给用户。源码级原理剖析虽然模块对外表现为Zyxel 专用其攻击流程实际由继承的 ftp_default.py 完整实现。核心流程如下1. 服务探测checkattack()首先调用check()通过 FTPClient.ftp_create() 创建 FTP 客户端调用test_connect()尝试 TCP 连接。连接成功则打印Target exposes FTP service并继续失败则中止攻击。此外check_default()方法带mute装饰器是面向框架内部联动设计的版本可供其他模块在探测阶段复用凭据校验结果。2. 并发字典攻击attack target_function凭据列表被包装为LockedIterator保证多线程环境下每个(用户名, 密码)组合只被消费一次run_threads(self.threads, self.target_function, data)按threads参数创建指定数量的工作线程每个线程在target_function中循环取出一条凭据按:切分一次split(:, 1)密码中若含冒号不会受影响然后调用ftp_client.login(username, password)尝试登录命中有效凭据后若stop_on_success为True则调用running.clear()通知其他线程立即停止避免无效爆破。3. FTP 传输层封装底层 FTP 通信封装在 ftp_client.py 中基于 Python 标准库ftplib连接超时固定为 8 秒FTP_TIMEOUT 8.0connect(retries3)支持最多 3 次重试若连接问题过多会打印Too many connections problems. Quiting...并退出线程ssl参数OptBool默认False为True时改用ftplib.FTP_TLS()建立加密连接login()成功打印FTP Authentication Successful失败打印FTP Authentication Failed并关闭连接以释放资源。4. 多目标批量支持attack()带有multi装饰器结合target参数支持file://文件批量指定目标每行ip:port从而可对一批 Zyxel 路由器同时进行默认凭据检查。测试用例佐证仓库提供了配套单元测试 test_ftp_default_creds.py验证内容包括模块默认参数值target为空、port21、threads1、4 组默认凭据、stop_on_successTrue、verbosityTrue对模拟的 FTP 服务目标执行check()应返回False、check_default()返回None、run()返回None模拟服务无有效默认凭据时的行为。这组测试证明该模块可直接通过测试框架验证其发现无效凭据时不误报的边界行为。延伸Zyxel 设备的其他默认凭据模块RouterSploit 针对 Zyxel 路由器提供了同一套默认凭据攻击组合位于 routersploit/modules/creds/routers/zyxel/ftp_default_credsFTP 服务端口 21本文主题ssh_default_credsSSH 服务端口 22telnet_default_credsTelnet 服务端口 23三者共享同一份 Zyxel 默认凭据清单admin:admin、admin:1234、admin:user、admin:Zyxel*2012*只是攻击的服务协议不同——例如 telnet_default_creds.py 中port默认值为 23。实际评估时可针对目标设备开启的服务逐一测试也可参考 docs/modules/creds/routers/zyxel 目录下的对应文档。使用注意事项本模块仅适用于已获得授权的安全评估场景对未授权目标执行凭据爆破可能违反法律法规模块默认verbosityTrue会打印每次登录尝试在凭据列表较大或线程数较多时输出会非常密集可通过set verbosity false关闭若目标 FTP 服务开启 TLS 隐式/显式加密可通过set ssl true启用threads可根据目标服务负载适当调大以加速默认 1 线程较为保守若需扩展凭据库优先使用set defaults file:///path/to/creds.txt方式每行一个用户名:密码避免超长命令行。通过本文你已经掌握creds/routers/zyxel/ftp_default_creds模块从参数配置、运行流程到底层 FTP 客户端封装的完整技术细节可以直接在 RouterSploit 中复现官方文档的验证场景并据此扩展到 SSH、Telnet 等其他服务协议的默认凭据检查。【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表