拓冰建站拓冰建站
首页 / 资讯中心 / 正文

routersploit 实战:ZTE 路由器 FTP 默认口令字典攻击模块(ftp_default_creds)深度解析

网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载导读本文围绕 routersploit 框架中的creds/routers/zte/ftp_default_creds模块展开系统讲解如何针对 ZTE中兴路由器上开放的 FTP 服务执行默认口令字典攻击从模块加载、目标配置到并发爆破与结果输出给出可直接复制的完整操作流程。同时结合仓库源码与测试用例深入剖析该模块的参数体系、底层 FTP 客户端实现、线程调度机制与验证逻辑帮助读者既会用、又懂其原理并能在实际渗透测试或合规巡检中举一反三。模块定位ZTE 路由器 FTP 服务的默认口令攻击在 routersploit 的模块体系中creds凭证类模块专门负责对目标服务进行默认口令与弱口令探测。ZTE Router Default FTP Creds 即针对ZTE 路由器的 FTP 服务执行字典攻击逐一尝试内置的默认用户名/密码组合一旦发现有效凭证便以表格形式展示给用户。该模块的官方描述见 ftp_default_creds.mdModule performs dictionary attack with default credentials against ZTE Router FTP service. If valid credentials are found, they are displayed to the user.从源码结构看它并非从零实现攻击逻辑而是继承了通用 FTP 默认凭证模块 ftp_default.py 的全部攻击流程仅通过覆写target、port、threads、defaults四个参数来定制 ZTE 专属场景。这种通用引擎 设备定制参数的插件化设计是整个 routersploit creds 类模块的典型模式同目录下的 ssh_default_creds.pySSH 端口 22与 telnet_default_creds.pyTelnet 端口 23采用完全相同的写法。快速上手从加载模块到爆破完成按照官方文档的验证步骤在 routersploit 交互式终端./rsf.py启动中操作如下启动框架./rsf.py加载模块use creds/routers/zte/ftp_default_creds设置目标set target [TargetIP]执行攻击run若发现有效凭证结果会直接展示给用户以下是一段完整的实战会话记录摘自官方文档的 Scenarios 章节rsf use creds/routers/zte/ftp_default_creds rsf (ZTE Router Default FTP Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (ZTE 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整个流程可分为四个阶段服务探测check先尝试连接目标 FTP 端口确认服务存活后才进入攻击阶段字典迭代逐个取出username:password组合执行 FTP 登录并发执行按threads参数指定的线程数并行尝试结果汇总收集所有成功凭证最终以Target / Port / Service / Username / Password表格输出。模块参数详解四个可配置项在交互式终端中可用show options查看全部参数。ZTE 模块共定义了四个核心参数见 ftp_default_creds.py参数类型默认值说明targetOptIP空目标 IPv4、IPv6 地址或file://开头的 ip:port 列表文件portOptPort21目标 FTP 服务端口threadsOptInteger1并发攻击线程数defaultsOptWordlistadmin:admin,ZXDSL:ZXDSL,user:user,on:on,root:Zte521,root:W!n0oO7.用户名:密码组合或用file://指定字典文件各参数的类型校验逻辑定义在 option.py 中OptIP仅接受合法 IPv4/IPv6 地址否则抛出OptionValidationErrorOptPort强制转为整数且必须落在0 port 65535区间OptInteger支持十进制或十六进制如0x10字符串统一转为整数OptWordlist最关键的类型——设置值若以file://开头会校验文件是否存在运行时则逐行读取文件内容作为字典否则按逗号分隔为列表。因此defaults既可以直接写admin:admin,ZXDSL:ZXDSL,...也可以写成file:///path/to/creds.txt引用外部字典文件支持大规模自定义口令集。内置 ZTE 默认口令集模块默认携带了 6 组 ZTE 路由器常见默认凭证admin:admin ZXDSL:ZXDSL user:user on:on root:Zte521 root:W!n0oO7.其中ZXDSL对应 ZTE 早期 DSL 网关产品线的默认管理账号root:Zte521、root:W!n0oO7.则常见于部分 ZTE 光猫/路由器固件。测试用例 test_ftp_default_creds.py 中完整断言了这 6 组默认值可直接作为字典内容的权威参考。相比通用 FTP 模块默认引用的全局词表 defaults.txtZTE 模块选用的是更聚焦、更精准的设备定向口令集。攻击流程源码级剖析该模块的攻击逻辑全部继承自通用模块 ftp_default.py核心流程如下。1. 服务存活探测checkattack()方法首先调用check()见 ftp_default.py通过ftp_client.test_connect()尝试建立 FTP 连接。连接成功则打印Target exposes FTP service并继续攻击失败则打印Target does not expose FTP service并直接返回避免对非 FTP 服务浪费时间。这正是会话记录中[*] Target exposes FTP service一行的来源。2. 字典迭代与线程调度探测通过后模块将defaults列表包装为线程安全的 LockedIterator再交给run_threads()并发消费。LockedIterator使用threading.Lock保证多线程下每个凭证组合只被取出一次不会重复尝试。线程调度由基类Exploit.run_threads()见 exploit.py实现按threads参数创建同名thread-N的线程并启动主线程轮询等待所有子线程结束后打印Elapsed time: X seconds统计耗时。这就是会话中thread-0 thread is starting...与Elapsed time: 0.06... seconds的由来。3. 逐组凭证认证target_function每个工作线程执行target_function()见 ftp_default.py从迭代器中取出username:password用split(:, 1)切分1表示仅分割第一个冒号密码本身可含冒号调用ftp_client.connect(retries3)建立连接最多重试 3 次连续失败则打印Too many connections problems. Quiting...并退出线程调用ftp_client.login(username, password)尝试登录登录成功时若stop_on_success为 True默认则通过running.clear()通知其他线程停止同时把(target, port, protocol, username, password)追加进self.credentials列表迭代耗尽StopIteration即正常退出循环。4. 底层 FTP 客户端实现真正的 FTP 通信由核心客户端 ftp_client.py 完成它基于 Python 标准库ftplib封装connect()调用ftplib.FTP.connect()超时时间固定为FTP_TIMEOUT 8.0秒支持重试次数参数login()调用FTP.login()成功打印FTP Authentication Successful失败打印FTP Authentication Failed并将连接关闭以清理资源test_connect()一次性连接后立即关闭用于存活探测构造函数支持ssl开关为 True 时使用ftplib.FTP_TLS()FTPS默认 False 使用明文ftplib.FTP()模块基类通过Protocol.FTP声明目标协议见 exploit.py这是结果表格中Service列显示ftp的来源。5. 结果输出全部线程结束后若self.credentials非空则打印Credentials found!并以五列表格输出所有有效凭证否则打印Credentials not found。会话中的[] Authenticated Succeed - Username: admin Password: admin即来自FTPCli.login()的成功分支而表格输出由print_table完成。批量目标与自动化场景attack()方法带有multi装饰器见 exploit.py意味着它支持文件驱动的批量目标攻击将target设置为file:///path/to/targets.txt文件每行一个ip:port如192.168.1.1:21、10.0.0.5:2121模块会逐行读取为每个目标执行一次完整攻击流程端口缺失时沿用模块默认的 21。配合defaults的file://引用方式可以轻松实现多目标 × 自定义字典的规模化默认口令巡检。此外check_default()方法带有mute装饰器在非交互调用如自动化脚本中调用模块探测默认凭证时会静默抑制输出仅返回凭证列表或 None便于程序化集成。测试验证与正确性保障仓库为每个 creds 模块都配套了单元测试。ZTE FTP 模块的测试位于 tests/creds/routers/zte/test_ftp_default_creds.py它验证了各参数的默认值与类型约束target 、port 21、threads 1、stop_on_success与verbosity均为 Truedefaults经OptWordlist解析后应精确等于上述 6 组 ZTE 默认凭证列表在 conftest.py 提供的generic_targetTelnet 模拟服务上check()应返回 False目标不暴露 FTP 服务check_default()与run()返回 None验证了攻击流程在无 FTP 服务时的优雅降级。这套默认参数断言 行为降级断言的测试模式保证了模块在框架演进过程中不会悄然改变默认字典或端口行为也为开发者新增设备品牌模块提供了可复制的模板。使用前提与注意事项适用前提该模块针对暴露 FTP 服务默认端口 21的 ZTE 路由器若目标仅开放 Telnet 或 SSH应改用同目录下的 telnet_default_creds.py 或 ssh_default_creds.py。合法授权字典攻击属于主动探测行为仅应在获得目标所有者明确授权的渗透测试、安全审计或内网合规巡检场景中使用。连接稳定性FTPCli的 8 秒连接超时与 3 次重试机制对网络抖动环境有一定容忍度批量扫描时可适当调大threads提升速度但需留意目标设备的并发连接上限。字典可扩展内置 6 组凭证仅覆盖常见默认口令若目标已被运维人员修改过口令可自行扩充defaults逗号分隔或改用外部字典文件file://继续枚举。小结creds/routers/zte/ftp_default_creds是 routersploit通用攻击引擎 设备定制参数设计哲学的典型范例一个不足 20 行的模块定义依托通用的 FTP 客户端封装、线程安全的字典迭代器、multi/mute装饰器与格式化输出框架即可完成针对 ZTE 路由器的完整默认口令探测。理解它的参数体系与调用链也就掌握了 routersploit 全部 creds 类模块的通用方法论——无论是扩展到其他品牌如同目录结构下的各厂商模块还是改造为自动化巡检工具都能事半功倍。赞分享网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载相关推荐RouterSploit 实战指南Samsung 摄像头 FTP 默认口令字典攻击模块creds/cameras/samsung/ftp_default_credsRouterSploit 实战指南Samsung 摄像头 FTP 默认口令字典攻击模块creds/cameras/samsung/ftp_default_c网络安全嵌入式routersploit 实战指南对 Asus 路由器 FTP 服务执行默认凭据字典攻击ftp_default_creds 模块详解routersploit 实战指南对 Asus 路由器 FTP 服务执行默认凭据字典攻击ftp_default_creds 模块详解 本文以 router网络安全嵌入式RouterSploit 实战Billion 路由器 FTP 默认口令爆破模块ftp_default_creds使用与源码解析RouterSploit 实战Billion 路由器 FTP 默认口令爆破模块ftp_default_creds使用与源码解析 导读 本文围绕 Route网络安全嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门