ARTICLE DETAIL

资讯详情

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

RAR加密压缩包密码恢复:用Passware已知部分密码实现精准爆破

RAR加密压缩包密码恢复:用Passware已知部分密码实现精准爆破 做密码恢复这行时间长了我发现一个很有意思的现象大多数人遇到加密压缩包打不开第一反应是打开工具往默认暴力破解一扔然后就是漫长的等待。明明自己脑子里的线索比工具的多——这个密码是某年某个项目里面可能有团队名、有年份、还有个特殊符号却一点都没用上。Passware Kit Forensic是我做司法取证和数据恢复时最常打开的工具之一。2019.4.1这个版本虽然现在看不算新但它的“已知部分密码”和掩码攻击逻辑非常成熟配合GPU加速能把原本“跑一年都未必出结果”的暴力破解压缩到几分钟甚至几秒。这篇文章我就用一个真实的RAR加密案例把精准爆破的完整流程拆开讲。内容偏实战建议手边放个工具边看边操作看完你就能明白为什么说“别再傻傻全盘暴力破解了”。1. 全盘暴力破解为何是下下策1.1 全盘暴力破解的算力黑洞先算一笔账。RAR文件用AES加密检验候选密码并不是简单比对一次哈希而是要完整运行密钥派生函数生成解密密钥再用这个密钥去试探解压文件头。RAR3和RAR5的密钥派生逻辑还不一样RAR5走的是PBKDF2-HMAC-SHA256迭代次数很高每次候选密码的校验成本非常贵。在很多普通显卡上每秒能验证的密码数量也就是几千这个量级。假设一个8位密码只用小写字母组合数是26的8次方约2088亿。按每秒4000次校验来算光是跑完这个小写字母空间就需要超过16年。如果密码是小写大写数字常见符号那就是95的8次方约6.6×10^15时间直接变成天文数字。很多人在全盘暴力里等不到结果不是工具不行是从一开始策略就选错了。更麻烦的是暴力破解的搜索空间按指数增长。密码长度每增加一位工作量可能翻几十倍。所以“莽”从来不是恢复密码的正确姿势用已知信息把空间砍掉几个数量级才是真正靠谱的做法。1.2 精准爆破把记忆碎片变成约束条件精准爆破的核心思路是把已经知道的信息全部变成工具的攻击约束。什么叫“约束”比如你确定密码是8到10位、开头是一个大写字母、中间包含某段年份、结尾是感叹号那工具就不会去碰那些明显不符合条件的组合只在一个小得多的空间里搜索。我经常用“丢钥匙”来打比方全盘暴力等于在全城范围内找一把钥匙而精准爆破等于先确定“我从地铁站出来之后拐了两个弯中间还买过一杯咖啡”那搜索范围一下就缩小到一条街道了。密码里的每一个记忆碎片都是地图上的一条线索关键是你愿不愿意把这些线索交给工具。Passware Kit Forensic 2019.4.1的Partially Known Passwords模式就是专门干这个的。你可以把一个或多个确定的字符串片段填进去告诉工具“密码里肯定包含这些内容”同时设置长度范围、字符集、首尾字符等。工具的底层会在这些条件下自动组合出候选密码再逐一校验。相比什么都不说让工具瞎猜速度提升往往是几个数量级。1.3 两种思路的对比一览对比维度全盘暴力破解精准爆破搜索空间极大随长度和字符集指数膨胀基于已知线索大幅收缩对记忆碎片的利用基本不利用充分使用已知片段、位置、字符集典型耗时以年甚至世纪计从几秒到几小时不等适合场景对密码毫无线索记得部分字符、片段、长度或规则硬件要求越高越好跑长任务容易中途放弃普通GPU即可发挥明显作用这个对比不是说要彻底放弃全盘暴力。在毫无线索的情况下暴力破解确实是最后的手段。可问题是绝大多数人并不是毫无线索只是没有把这些线索转化为有效的攻击参数这才是我写这篇文章的初衷。2. 认识Passware Kit Forensic的工具底牌2.1 工具定位密码恢复而非“破解工具”先明确一点Passware Kit Forensic是面向数字取证、司法鉴定、企业审计的商用密码恢复工具不是用来搞破坏的。它支持恢复BitLocker、FileVault、TrueCrypt等磁盘加密也支持Office文档、PDF、RAR/ZIP压缩包等文件加密。我实际工作中最常做的是用户忘了自己加密压缩包的密码、离职员工走后留下打不开的加密文件以及配合司法鉴定做授权范围内的检材分析。工具本身没有善恶关键看用在哪。凡是未经授权的尝试都不在我讨论范围内。下面所有操作请确保你拥有目标文件的合法访问授权或者你就是要恢复自己忘记密码的文件。2.2 精准爆破相关的核心机制Passware Kit Forensic 2019.4.1能做好精准爆破主要靠几个底层设计多攻击模式Brute-force、Dictionary、Mask、Partially Known Passwords、Key Search等。字典和掩码可以组合已知片段可以叠加长度与字符集约束。硬件加速支持NVIDIA/AMD显卡通过CUDA或OpenCL跑密钥派生算法。在RAR这类慢哈希场景里一张中端显卡也能带来几十倍到上百倍的加速。格式识别与适配加载文件时会自动识别加密类型和RAR版本RAR3和RAR5走不同的密钥派生路径不需要手工改算法。会话保存与断点续传跑大型任务时可以保存进度关机重启后接着跑这个在长任务里非常救命。灵活的模式编辑器允许把已知字符片段放在固定位置、任意位置或者通过掩码通配符描述不确定的部分。其中对精准爆破最关键的是Partially Known Passwords和Mask的组合。Partially Known模式适合你知道密码里包含某些连续片段的情况Mask模式适合你知道某些位置是特定字符类型的情况。两个配合起来基本能把线索榨干。2.3 RAR为什么是“慢哈希”重灾区RAR加密的校验成本很高这也是为什么RAR密码恢复那么磨人。RAR3时代用的是相对老派的密钥派生方式RAR5则升级为AES-256加PBKDF2-HMAC-SHA256。每一次候选密码尝试都需要把整个密钥派生流程重新走一遍再做解压试探。相比MD5那种可以每秒跑几亿次的快哈希RAR的校验速度天然低好几个数量级。但换个角度看正因为单次校验这么贵精准爆破的价值才更大。如果密码恢复像MD5那样快全盘暴力一把梭还勉强能接受可在RAR这种场景下一个原本需要跑几年的大空间缩减成几分钟的小空间节省的可不是一点半点。很多人没意识到Passware针对RAR5的GPU加速虽然一直在改进但真正能让任务“跑完”的往往还是靠用户提供的线索。3. RAR案例实战已知部分密码的精准爆破3.1 案例背景只记得一半的密码某个做设计的朋友项目结束之后把最终交付文件打成了一个加密RAR包里面是一堆源文件和参考资料。因为那段时间用得频繁他设了一个自以为很熟的密码结果假期过了三周回来死活想不起来完整密码了。他记得的信息是密码开头是一个大写P中间肯定有一串“2019”结尾是一个感叹号总体长度差不多8到12位可能有小写字母和数字。他试了十几个自己常用的密码组合全部失败。如果走全盘暴力有大小写字母、数字、符号长度还要搜8到12位搜索空间大约在10^16以上基本等于不可行。但这些线索已经足够做精准爆破了。3.2 第一步加载加密RAR确认加密类型打开Passware Kit Forensic主界面左侧是恢复模式选择最常用的是Recover File Passwords。把加密的RAR文件直接拖进窗口工具会解析文件头显示加密方式。在这个例子里识别结果是RAR 5.0标准加密加密算法为AES-256。这一步看起来简单实际很重要。因为RAR3和RAR5的密钥派生算法不同如果文件版本判断错误后面所有候选密码都没有意义。Passware会自动识别但建议右键查看文件详情确认版本信息。有些人会在老电脑上装了旧版WinRAR把文件压成RAR3格式Passware会显示RAR 3.x加AES-128走对应的算法路径。要是识别和你预想的不一致先停下来搞清楚再说。3.3 第二步把“记得的部分”变成攻击参数加载完成后进入Attack Options。这里我选择Partially Known Passwords也就是已知部分密码攻击。在界面上可以添加多个已知字符串片段并设置它们在密码中的关系。根据朋友的信息我做了这样的配置已知首字符P大写已知结尾字符!感叹号密码必须包含“2019”密码长度范围8到12字符集小写字母加数字因为他说可能有小写字母和数字大写只记得开头一个在Passware界面里首字符和尾字符可以直接放在Password pattern或固定的已知字符位中间的已知片段2019加到包含字符串列表里。如果你不确定片段具体在第几位可以勾选Anywhere in password如果确定片段在某个范围比如“中间四位”就可以用掩码把位置写死。这里要注意片段要原样输入包括大小写。如果是字母片段大小写会影响匹配如果你只记得数字那无所谓。但如果你记得的片段里可能有大小写字母最好把两种可能性都考虑进去或者多跑一次。3.4 第三步设置长度、字符集与GPU加速攻击模式配置完后还要设置字符集和加速参数。这一步很多人会忽略结果工具还是在很大的空间里搜。字符集设置里我通常会把“绝对不可能出现在密码里的字符”去掉。这个案例中他说“可能有小写字母和数字”那就取消勾选大写字母取消符号。这样一来未知位的候选字符就从90多个降到了30多个搜索空间缩小了一大截。GPU加速选项在Settings或Preferences里勾选CUDA或OpenCL再选择可用的显卡。如果你机器上有多个GPU可以一起跑。Passware会把候选密码生成和密钥派生计算分配到GPU上CPU主要做调度。跑的时候注意看右下角的Speed也就是每秒尝试次数。同一台机器上GPU和CPU的差距可能接近两个数量级尤其是RAR5这种慢哈希GPU并行计算的优势非常明显。另外如果显卡显存比较小有些任务可能开不了最高档没关系Passware会自动调整分块大小不会直接报错退出。3.5 第四步运行与结果验证配置完成后点Recover。界面会进入攻击状态左边是候选密码生成进度右边是校验速度。这个案例里因为首尾字符固定、必须包含2019、长度限制在8到12同时字符集只有小写加数字搜索空间很小。我记得当时大概跑了不到四分钟Passware就弹出了确认框密码是 Pdesign2019! 。把密码填回WinRAR解压验证通过文件全部正常释放。这里特别提醒一句Passware弹出的结果会做二次校验不是随便猜一个就报给你但稳妥起见最好自己再手动解压确认一次避免个别极端情况下报错。3.6 备选片段顺序不确定时怎么办有些时候用户记得的不只是一个连续片段而是好几个片段但对顺序没把握。比如他知道密码里有“abc”有“99”还有个“!”但不确定谁前谁后。这种情形的搜索空间会比固定片段大一些但依然远小于全盘暴力。在Passware里你可以把多个片段同时加进去让工具自动生成包含这些片段的所有候选密码顺序会由工具内部处理。如果工具版本支持位置灵活设置那就更简单。还可以用Combinator组合攻击的思路把几个片段分别写进一个很小的字典文件然后让工具跑字典组合。三个片段排列组合只有6种再加上未知位置的填充计算量完全可控。关键还是那句话尽量把所有确定的信息交给工具不要因为“可能不是这个顺序”就把整条线索扔掉。4. 常见问题与排查技巧实录4.1 高频问题速查表我把实际操作中高频遇到的问题整理成了表格按重要程度排现象可能原因排查思路与解决办法GPU没有参与计算速度极低驱动未安装或未启用加速检查NVIDIA/AMD驱动确认Passware里已勾选CUDA/OpenCL重启软件必要时换驱动版本RAR版本识别错误工具库老旧或文件特殊确认实际RAR版本更新Passware库用自带识别功能重新解析文件头已知片段匹配不到片段大小写、隐含字符不对核对片段是否真的连续存在尝试拆短片段或者把大小写选项放开长度不确定导致空间爆炸长度范围设太宽先试最可能的长度段比如8到10跑完再扩展用多个任务并行OpenCL初始化失败显卡驱动或系统环境问题更新驱动关闭占用显存的程序减少同时调用的GPU数量中断后进度丢失没开保存会话启动前勾选Save session定期手工保存会话文件通常是.pwk格式表格看起来简单但每一条背后都是我踩过的坑。比如GPU不参与计算很多时候不是Passware的问题而是显卡驱动被Windows自动更新换掉了导致OpenCL接口失效。遇到这种事先放下工具去把驱动装好再说。4.2 提高命中率的独家经验最后分享几条真正实践出来、不是说明书上写着的经验。第一先做减法再做加法。很多人在配置时把字符集全勾上结果空间还是大。先冷静下来回忆密码大概由哪几类字符组成比如是不是只有小写和数字有没有可能有下划线。每去掉一类不需要的字符搜索空间都可能变成数量级下降。第二已知片段不要贪长。片段越短组合越多匹配起来越慢。如果你印象中“2019ok”是一串连续字符就用整个串如果你只是分别记得“2019”和“ok”但又不敢肯定它们挨着那就作为两个独立片段交给工具。宁可让工具做排列也不要因为一个“可能”的假设把正确密码排除掉。第三大小写和特殊符号是最容易翻车的地方。如果你记得密码里有字母但不确定大小写建议把“大小写敏感”选项调整成允许大小写变化或直接把两类字符都加入字符集。如果你记得有个特殊符号但不确定是哪个与其猜不如把常见的几十个符号放进去再配合“必须在密码中出现至少一个符号”的约束。第四多张GPU不一定起效内存管理影响稳定性。跑大型任务时把其他占内存和显存的软件全部关掉尤其是浏览器。我遇到过几次任务跑到一半直接卡死最后发现是显存被占满。第五合法合规永远放前面。Passware这类工具用途很广但它适合用在“你确实有权访问”的文件上。给别人做恢复也一定要拿到明确的授权。这不是套话是干这行最基本的底线。最后分享一点个人体会这些年做取证和恢复工作我发现真正稀罕的不是工具而是把线索转化为攻击参数的思维能力。一次精准爆破往往就是一次对记忆碎片的整理过程。下次再遇到忘了密码的RAR别急着让它从头暴力破解先坐下来把脑子里还残留的片段写出来哪怕只有一个字母也能帮工具把搜索空间缩小一大截。就算最终结果不理想你也多了一条可以继续逼近的路径而不是干等一个遥遥无期的进度条。
返回列表