Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Simple-Sweet32 — 基于生日悖论的简化版密码攻击:Sweet32 (CVE-2016-2183) | Kitploit
工具/GitHubGitHub/zakyhermawan/simple-sweet32
漏洞分析漏洞利用密码学渗透测试学习与教育
GitHubzakyhermawan/simple-sweet32

Simple-Sweet32

基于生日悖论的简化版密码攻击:Sweet32 (CVE-2016-2183)

查看仓库
8个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Sweet32

这是 Sweet32 攻击(CVE-2016-2183)的演示:https://sweet32.info/

该攻击是生日攻击的一个实例,利用 CBC 模式下具有小分组大小(64 位)的加密算法,例如 3DES 和 Blowfish。 攻击需要生成大量已知明文的加密分组。 生成后,可以识别出相同的加密分组,并用于识别未知分组的明文值。

此实现使用 3DES(三重 DES) 作为其加密算法, 其分组大小为 64 位(8 字节)——与使现实世界中的 3DES 易受 Sweet32 攻击的相同分组大小。

攻击公式(兽性攻击)

当两个密文分组碰撞(c_i = c_j)时,我们可以使用以下方法恢复未知明文:

root@kitploit:~
p_i = p_j ⊕ c_{i-1} ⊕ c_{j-1}

其中:

  • p_i 是未知明文(例如,秘密 Cookie)
  • p_j 是已知明文(例如,HTTP 头部)
  • c_{i-1} 和 c_{j-1} 是前一个密文分组

这是因为在 CBC 模式下,碰撞意味着分组密码的输入相等,从而无需知道加密密钥即可通过 XOR 恢复。

快速演示

运行带有保证碰撞的演示:

root@kitploit:~
# 步骤1:生成带有秘密 Cookie 的加密数据包
python generate_rigged_packets.py rigged_demo.bin

# 步骤2:执行攻击以恢复 Cookie
python sweet32.py --block-size 8 rigged_demo.bin

攻击将显示 SECRET COOKIE 值,然后仅使用密文恢复它!

脚本

generate_rigged_packets.py

创建一个具有保证碰撞的数据包以用于演示。 Cookie 值被精心构造,使其与一个已知明文分组发生碰撞。

sweet32.py

执行 Sweet32 生日攻击以恢复 Cookie。

关于 Sweet32

Sweet32 攻击利用生日悖论。对于 64 位分组密码:

  • 在约 2^32 个分组(约 32GB 数据)之后,碰撞变得可能
  • 当两个密文分组碰撞时,对它们进行 XOR 可以揭示明文的 XOR
  • 如果其中一个明文已知,则可以恢复另一个明文

这使得 3DES(以及其他 64 位分组密码)在长期存在的 HTTPS 会话中容易受到攻击。

统计数据

对于实际的针对 3DES(64 位分组)的 Sweet32 攻击:

分组大小分组大小数据包数量所需数据块计数
8 字节64 位~785GB~785GB~2^32 块

实际攻击需要约 785GB 的相同密钥下加密的数据,这就是为什么它主要影响长期存在的 HTTPS 连接。

下载工具