ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RouterSploit 实战:使用 ftp_default_creds 模块对 Netsys 路由器 FTP 服务执行默认凭据字典攻击

RouterSploit 实战:使用 ftp_default_creds 模块对 Netsys 路由器 FTP 服务执行默认凭据字典攻击 网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载导读creds/routers/netsys/ftp_default_creds是 RouterSploit 框架中针对Netsys 路由器 FTP 服务的默认凭据字典攻击模块它会依次尝试内置默认口令组合一旦命中即把有效的用户名与密码展示给用户。本文以该模块的官方文档为主线结合其源码实现ftp_default_creds.py、底层通用模块 ftp_default.py 与 ftp_client.py与单元测试test_ftp_default_creds.py完整讲解模块能力、参数含义、交互式操作流程与底层攻击链路帮助你将该模块直接用于内网渗透测试与设备安全审计。模块简介官方文档对模块的定位非常清晰Module performs dictionary attack with default credentials against Netsys Router FTP service. If valid credentials are found, they are displayed to the user.即对 Netsys 路由器的 FTP 服务执行基于默认凭据的字典攻击若发现有效凭据则直接展示给用户。这与 RouterSploit 中其他creds/routers/vendor/*_default_creds系列模块如 ssh_default_creds.py、telnet_default_creds.py设计一致均面向设备出厂默认口令未修改这一最常见的内网弱口令场景。从源码看模块的元信息__info__明确了适用对象名称Netsys Router Default FTP Creds作者Marcin Buryroutersploit 模块作者设备类型Netsys Router模块本体代码极其精简仅 22 行因为其核心逻辑完全继承自通用 FTP 默认凭据模块FTPDefaultfrom routersploit.core.exploit import * from routersploit.modules.creds.generic.ftp_default import Exploit as FTPDefault class Exploit(FTPDefault): __info__ { name: Netsys Router Default FTP Creds, description: Module performs dictionary attack against Netsys Router FTP service. If valid credentials are found, they are displayed to the user., authors: ( Marcin Bury marcin[at]threat9.com, # routersploit module ), devices: ( Netsys Router, ), } target OptIP(, Target IPv4, IPv6 address or file with ip:port (file://)) port OptPort(21, Target FTP port) threads OptInteger(1, Number of threads) defaults OptWordlist(admin:admin, User:Pass or file with default credentials (file://))这种厂商模块只做参数定制、通用模块承载攻击逻辑的分层设计正是 RouterSploit 在 creds 模块体系上的典型模式下文将逐一剖析。快速上手验证步骤Verification Steps按官方文档给出的标准流程五个步骤即可完成一次攻击启动框架./rsf.py加载模块use creds/routers/netsys/ftp_default_creds设置目标set target [TargetIP]执行攻击run若发现有效凭据结果会直接展示给用户对应的完整交互会话如下来自官方文档 Scenariorsf use creds/routers/netsys/ftp_default_creds rsf (Netsys Router Default FTP Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (Netsys 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—— 攻击前先验证目标是否真的开放 FTP对应底层check()方法枚举阶段逐条打印失败的认证尝试Authentication Failed直到命中有效组合Authenticated Succeed收尾阶段打印线程执行耗时并以表格形式汇总输出Target / Port / Service / Username / Password五列结果。需要说明的是官方 Scenario 展示的是理想命中结果若字典遍历完毕后仍无有效凭据模块会输出Credentials not found而不是表格。参数详解可配置选项该模块的选项由自身定义与父类继承两部分构成在交互终端中可通过show options查看。模块自身定义的选项选项类型默认值说明targetOptIP空目标 IPv4 / IPv6 地址或file://开头指向含ip:port列表的文件portOptPort21目标 FTP 服务端口threadsOptInteger1并发执行攻击的线程数defaultsOptWordlistadmin:admin以用户:密码格式表示的凭据或file://指向的凭据文件各选项在源码中的校验逻辑option.pytargetOptIP必须为空、合法 IPv4 或 IPv6否则抛出OptionValidationError。其描述中还提到支持file://前缀——当 target 以file://开头时配合multi装饰器模块会对文件中每行ip:port逐一执行攻击见 exploit.py 中multi的实现文件中每行按host:port解析无端口时回退到original_port。portOptPort强制转整型并校验范围0 value 65535默认 21 对应 FTP 标准端口。threadsOptInteger默认 1即单线程顺序枚举可调大以加速大规模字典。defaultsOptWordlist默认仅admin:admin一对。设置时若以file://开头会校验文件是否存在读取时OptWordlist.__get__若为file://路径则按行读取返回列表否则按逗号拆分。继承自父类的选项通过继承FTPDefault进一步继承FTPClient模块还获得以下选项选项类型默认值说明stop_on_successOptBooltrue命中第一组有效凭据后是否立即停止verbosityOptBooltrue是否逐条显示认证尝试过程sslOptBoolfalse是否以 FTPSFTP over TLS连接其中ssl定义于 ftp_client.py 的FTPClient基类为 true 时使用ftplib.FTP_TLS()否则使用ftplib.FTP()。实战技巧自定义凭据字典默认凭据只有admin:admin一对覆盖范围有限。RouterSploit 的 creds 模块设计上支持两种字典扩展方式内联多组凭据用逗号分隔例如set defaults admin:admin,admin:12345,root:root,admin:passwordOptWordlist.__get__会按逗号拆分为列表。外部字典文件使用file://前缀指向本机文件每行一组用户:密码set defaults file:///home/user/netsys_creds.txt底层FTPDefault.target_function对每组凭据执行data.next().split(:, 1)解析出用户名与密码因此字典文件行内只需一个冒号分隔用户与密码。值得参考的是框架自带的通用默认凭据词表 defaults.txt共 653 行涵盖1111:1111、admin:admin、root:root等常见设备口令组合可作为自建 Netsys 专项字典的基础素材。若将defaults指向该词表模块即升级为一次覆盖数百组常用口令的完整字典攻击。底层原理攻击是如何执行的Netsys 模块本身只有参数声明真正的攻击逻辑全部在父类FTPDefault的 ftp_default.py 中其执行链路为run() - attack() [multi] - check() - run_threads() - target_function() - FTPCli.login()1. 服务探测 check()check()方法先创建 FTP 客户端并调用test_connect()内部为FTPCli.connect()def check(self): ftp_client self.ftp_create() if ftp_client.test_connect(): print_status(Target exposes FTP service, verboseself.verbosity) return True print_status(Target does not expose FTP service, verboseself.verbosity) return False这对应交互输出中的Target exposes FTP service。若目标未开放 FTPattack 直接返回不做无效扫描。2. 多线程枚举 run_threads() target_function()attack()将凭据列表包装为线程安全的LockedIterator内部使用threading.Lock保证多线程下取词不重复再交由run_threads()启动threads个线程执行target_function。线程管理位于 exploit.py每个线程命名为thread-N对应输出中的thread-0 thread is starting...主线程每 1 秒探测一次工作线程存活状态并统计总耗时对应Elapsed time输出支持KeyboardInterrupt时通过threads_running.clear()通知所有线程优雅退出。target_function对每组凭据的处理逻辑ftp_client self.ftp_create() if ftp_client.connect(retries3) is None: print_error(Too many connections problems. Quiting..., verboseself.verbosity) return if ftp_client.login(username, password): if self.stop_on_success: running.clear() self.credentials.append((self.target, self.port, self.target_protocol, username, password))连接失败会重试 3 次仍失败则打印Too many connections problems. Quiting...并终止该线程避免目标 FTP 连接数耗尽时无限卡死登录成功且stop_on_successtrue时清空运行标志其他线程随即停止命中凭据以(target, port, protocol, username, password)五元组追加到self.credentials供最终表格输出。3. FTP 通信层 FTPCli底层 FTP 交互封装在 ftp_client.py 的FTPCli类中基于 Python 标准库ftplib支持普通 FTP 与FTP_TLSFTPS连接超时固定为FTP_TIMEOUT 8.0秒防止目标不可达时长时间挂起connect()内部按retries次数重试每次异常均打印FTP Error while connecting to the serverlogin()成功打印FTP Authentication Successful失败打印FTP Authentication Failed并关闭连接——这正是交互输出中大量[-]/[]日志的来源target_protocol Protocol.FTP协议标识为ftp最终填入结果表格的 Service 列。结果输出与验证攻击结束后若self.credentials非空模块以表格展示结果[] Credentials found! Target Port Service Username Password ------ ---- ------- -------- -------- 192.168.1.1 21 ftp admin admin表格表头(Target, Port, Service, Username, Password)定义于FTPDefault.attack()由框架的print_table统一渲染可在多目标file://批量目标场景下汇总所有命中结果。若全部凭据尝试完毕仍无命中则输出Credentials not found。测试用例模块行为的自动化校验该模块配有单元测试 test_ftp_default_creds.py通过generic_targetfixture框架测试基建见 conftest.py验证def test_check_success(generic_target): exploit Exploit() assert exploit.target assert exploit.port 21 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 False assert exploit.check_default() is None assert exploit.run() is None测试确认了模块的关键默认值port21、threads1、defaults[admin:admin]、stop_on_successTrue、verbosityTrue并验证了对不存在 FTP 服务的目标check()返回False、check_default()返回Nonemute装饰器会抑制该方法的所有标准输出、run()正常返回None而不抛异常。这组断言与官方文档描述的默认行为完全一致可作为理解模块行为边界的权威参照。注意事项与使用前提仅限授权环境字典攻击属主动探测行为请务必在获得授权的测试目标上使用遵守当地法律法规适用对象限定模块元信息声明设备为Netsys Router但其底层逻辑与通用 FTP 默认凭据模块一致对任何开放 FTP 且使用弱口令的设备同样有效——这是厂商定制架构带来的自然扩展性默认字典极简默认仅admin:admin实战中建议按上文方法指向自定义字典文件或框架自带 defaults.txt连接与超时底层连接超时 8 秒、失败重试 3 次大批量目标扫描时可根据实际情况调整线程数threadsFTPS 支持若目标 FTP 服务启用 TLS可设置set ssl true后再执行攻击。小结creds/routers/netsys/ftp_default_creds是 RouterSploit 中厂商薄封装 通用攻击内核设计的典型代表通过 ftp_default_creds.py 定制 Netsys 专属默认凭据复用 ftp_default.py 的服务探测、多线程字典枚举与结果汇总能力底层再由 ftp_client.py 完成 FTP 协议交互。理解这条从参数到协议层的完整调用链后你不仅可以熟练使用该模块也能举一反三地掌握 RouterSploit 整个 creds 模块家族的运作机制。赞分享网络安全嵌入式【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址https://gitcode.com/gh_mirrors/ro/routersploit点击查看免费下载相关推荐RouterSploit 实战指南使用 ftp_default_creds 模块对 Mikrotik 路由器执行 FTP 默认凭据字典攻击RouterSploit 实战指南使用 ftp_default_creds 模块对 Mikrotik 路由器执行 FTP 默认凭据字典攻击 Mikrotik网络安全嵌入式routersploit 实战指南对 Asus 路由器 FTP 服务执行默认凭据字典攻击ftp_default_creds 模块详解routersploit 实战指南对 Asus 路由器 FTP 服务执行默认凭据字典攻击ftp_default_creds 模块详解 本文以 router网络安全嵌入式Routersploit 使用教程Movistar 路由器 FTP 默认凭据字典攻击模块ftp_default_credsRoutersploit 使用教程Movistar 路由器 FTP 默认凭据字典攻击模块ftp_default_creds 导读 本教程围绕 Router网络安全嵌入式创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表