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

routersploit 中 Netsys 路由器 SSH 默认凭据检测模块实战指南(ssh_default_creds)

routersploit 中 Netsys 路由器 SSH 默认凭据检测模块实战指南ssh_default_creds【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploit导读本文围绕 routersploit 开源框架中的creds/routers/netsys/ssh_default_creds模块展开该模块用于对 Netsys 品牌路由器上开放的 SSH 服务执行默认凭据字典攻击Default Credentials Dictionary Attack并在命中有效账号密码后以表格形式展示给用户。读完本文你将掌握该模块的完整调用流程、全部可配置选项的含义与取值范围以及它背后基于 paramiko 的实现原理与测试验证方法可直接在授权评估环境中复现本文全部示例。模块是什么对 Netsys 路由器 SSH 服务的默认凭据检测在嵌入式设备尤其是家用/小型企业路由器中厂商出厂时往往内置一组固定不变的默认账号密码而大量用户疏于修改导致设备长期暴露在弱凭据风险之下。routersploit 的creds模块族专门针对这类场景逐一按厂商、按服务SSH / Telnet / FTP / Web 管理界面进行默认凭据批量验证。本模块即属于该体系它把目标锁定为Netsys 路由器针对其SSH 服务默认端口 22执行字典攻击一旦认证成功立即将(目标、端口、服务、用户名、密码)输出给使用者。其模块描述位于 ssh_default_creds.md与同目录下的 ftp_default_creds.py、telnet_default_creds.py 共同构成对 Netsys 设备的多协议默认凭据检测矩阵。快速上手验证步骤原文档给出了标准的交互式使用流程完整继承如下启动框架./rsf.py加载模块use creds/routers/netsys/ssh_default_creds设置目标set target [TargetIP]执行攻击run若找到有效凭据结果会直接展示给用户实战场景输出解读以下是原文档提供的真实运行场景此处保留原始输出便于对照学习rsf use creds/routers/netsys/ssh_default_creds rsf (Netsys Router Default SSH Creds) set target 192.168.1.1 [] target 192.168.1.1 rsf (Netsys 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对输出的几个关键节点逐行说明[*] Target exposes SSH service连接探测阶段通过——目标 22 端口确实开放 SSH 服务攻击才会继续若探测失败则直接终止并提示Target does not expose SSH。[-] SSH Authentication Failed ...当前用户名:密码组合认证失败verbosity开启时逐条显示。[] SSH Authentication Successful ...命中有效凭据admin/admin。末尾的表格是最终汇总由框架的print_table渲染包含 Target、Port、Service、Username、Password 五列便于批量结果快速浏览。模块选项详解每个参数的作用与取值范围根据 ssh_default_creds.py 的源码该模块共暴露 4 个可配置选项加上从父类继承的 2 个控制选项汇总如下选项默认值类型说明target必填OptIP目标 IPv4 / IPv6 地址也支持file://形式读取包含ip:port列表的批量目标文件port22OptPort目标 SSH 服务端口取值范围 165535threads1OptInteger并发线程数默认单线程逐个尝试defaultsadmin:adminOptWordlistUser:Pass凭据串或file://指向的字典文件stop_on_successtrueOptBool命中第一组有效凭据后是否立即停止后续尝试继承自父类verbositytrueOptBool是否逐条显示认证成功/失败日志继承自父类关于选项类型的具体校验规则可参考 option.pyOptIP会通过正则严格校验地址是否为合法 IPv4 或 IPv6见is_ipv4/is_ipv6实现非法地址直接抛出OptionValidationErrorOptPort强制转换为整数且必须满足0 value 65535OptWordlist是一个值得注意的类型当值以file://开头时会在读取时打开对应文件、逐行去空白后作为凭据列表返回否则按逗号分隔多个User:Pass组合。若file://指向的文件不存在会在设置选项时即报错File ... does not exist.。这一设计使得该模块既能用内置单条默认凭据也能无缝接入自建大字典OptBool只接受true/false两个字符串值。源码级原理模块如何一步步完成攻击继承链从厂商专用模块到通用引擎Netsys 模块本身代码非常精简其Exploit类直接继承自通用模块 ssh_default.py 中的Exploitclass Exploit(SSHDefault): __info__ { name: Netsys Router Default SSH Creds, description: Module performs dictionary attack against Netsys Router SSH service. If valid credentials are found, they are displayed to the user., authors: (Marcin Bury marcin[at]threat9.com,), devices: (Netsys Router,), } target OptIP(, Target IPv4, IPv6 address or file with ip:port (file://)) port OptPort(22, Target SSH port) threads OptInteger(1, Number of threads) defaults OptWordlist(admin:admin, User:Pass or file with default credentials (file://))这种厂商模块 通用引擎 定制参数的架构在整个 creds 模块族中高度一致攻击逻辑多线程、探测、结果渲染全部沉淀在通用层厂商层只需声明设备类型、默认凭据与默认端口从而把新增厂商模块的成本降到最低。攻击主流程run → attack → check → target_function通用父类 ssh_default.py 完整实现了执行链路run()初始化空凭据列表self.credentials []随后调用attack()attack()先执行check()探测目标 SSH 服务是否可达通过后打印Starting default credentials attack against SSH service用LockedIterator(self.defaults)包装凭据迭代器再通过self.run_threads(self.threads, self.target_function, data)按线程数并发消费凭据target_function()每个线程循环从共享迭代器中取一条username:password按首个冒号切分调用ssh_client.login(username, password)尝试认证成功后若stop_on_success为真则清除运行标志让所有线程停止并把结果追加到credentials列表全部线程结束后若credentials非空打印Credentials found!并以表格输出否则打印Credentials not found。底层 SSH 交互基于 paramiko 的连接与认证实际的 SSH 握手由 ssh_client.py 中的SSHCli类完成它封装了 paramikotest_connect()用固定用户名root加 12 位随机密码尝试连接random_text(12)生成若收到paramiko.AuthenticationException则说明 SSH 服务在响应认证流程判定服务存在返回True这正是[*] Target exposes SSH service的来源login()携带候选username/password调用paramiko.SSHClient.connect()超时与 banner 超时均设为 8 秒SSH_TIMEOUT 8.0并显式关闭look_for_keys与allow_agent避免本机 SSH 密钥或 agent 干扰纯口令认证认证异常打印SSH Authentication Failed成功则打印SSH Authentication Successful并返回True连接建立后该类还提供了execute()、get_file()、send_file()、interactive()等方法说明一旦拿到凭据可进一步用于命令执行或文件传输本文模块只做凭据验证不做后续利用。测试验证如何确认模块行为符合预期仓库在 tests/creds/routers/netsys/test_ssh_default_creds.py 中为该模块提供了自动化测试其断言精确锁定了模块的默认配置def test_check_success(generic_target): exploit Exploit() assert exploit.target assert exploit.port 22 assert exploit.threads 1 assert exploit.defaults [admin:admin] assert exploit.stop_on_success is True assert exploit.verbosity is True这段测试同时印证了三件事默认端口为 22、默认凭据仅为admin:admin、默认线程数为 1。测试还通过generic_targetfixture 传入一个不存在的目标验证check()返回False、check_default()返回None、run()安全退出确保模块对不可达目标不会崩溃。进阶用法扩大检测面与批量执行使用自建字典替代单条默认凭据defaults选项支持file://协议指向外部字典文件每行一个User:Passrsf (Netsys Router Default SSH Creds) set defaults file:///path/to/netsys_creds.txt文件内形如admin:admin admin:12345 admin:123456 Admin:admin root:root框架在读取时逐行strip()后作为凭据队列实现见OptWordlist的__get__。提升并发速度对大批量凭据可将threads调大以并行尝试rsf (Netsys Router Default SSH Creds) set threads 8注意过高的并发可能触发目标设备的连接限制或 WAF/IDS 告警需根据授权范围与目标承受能力权衡。批量扫描多个目标target同样支持file://指向的批量目标文件每行ip:port格式配合multi装饰器可一次检测多个 Netsys 设备适合内网资产盘点场景。相关批量逻辑在 autopwn.py 与通用multi装饰器中有更完整的体现。使用边界与注意事项该模块仅验证凭据有效性本身不具备漏洞利用或命令执行能力如需在取得凭据后进一步交互可参考SSHCli提供的interactive()/execute()等能力ssh_client.py。字典攻击属于主动探测行为只应在获得明确授权的环境中使用。默认凭据检测可能被目标设备的登录失败锁定策略触发务必控制threads与重试节奏。模块针对的厂商凭据知识来源于 wordlists/defaults.txt 等内置词表体系Netsys 专用默认值在模块源码中直接声明为admin:admin测试用例亦对此进行了固化test_ssh_default_creds.py读者可据此判断该模块的实际覆盖范围。总结creds/routers/netsys/ssh_default_creds是 routersploit 默认凭据检测体系中一个小而完整的范例一条admin:admin的默认凭据、一个基于 paramiko 的 SSH 探测/认证引擎、一组线程安全的字典消费机制外加完备的单元测试。通过本文的选项解析与源码走读你可以将同样的模式推广到其他厂商模块也能直接照葫芦画瓢为自定义设备编写专属的默认凭据检测模块。【免费下载链接】routersploitExploitation Framework for Embedded Devices项目地址: https://gitcode.com/gh_mirrors/ro/routersploit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

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

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