首页 / 资讯中心 / 文章详情

ChameleonUltra侦测模式:全加密门禁卡复制五分钟搞定

ChameleonUltra侦测模式:全加密门禁卡复制五分钟搞定 ★ FEATURED ARTICLE
我最早折腾全加密门禁卡那阵子包里常年塞着一台 Proxmark3和一根OTG线。白天上班晚上蹲在楼道里对着门禁读卡器较劲等进度条从1%爬到100%运气好半小时运气差直接等到保安来问话。后来换了ChameleonUltra又试着用“侦测”模式替代传统“跑字典”的思路才真正体会到什么叫“全加密门禁卡复制也能五分钟收工”的快感。这篇文章就把这套流程从头到尾拆开讲清楚适合手头已经有ChameleonUltra、但还在被密钥折腾的朋友也适合刚入门、想少走弯路的NFC玩家。先给个结论兜底如果你只是想把自己家、自己公司、自己合法持有的门禁卡做个备份“侦测”这套玩法在多数13.56MHz高频门禁场景下比传统跑字典靠谱得多。它不需要你准备大字典也不需要你死磕卡片算法漏洞核心就一个字——“听”。让设备站在读卡器面前充当一张空白卡读卡器主动向你发起认证你把这个过程录下来反推密钥。我把这套思路配上实际操作步骤和一些踩坑经历写出来你看完就知道为什么它能把时间从“小时级”压缩到“分钟级”。1. 为什么“跑字典”这条路越来越走不通1.1 全加密门禁卡到底“全加密”在哪里现在市面上大量门禁卡用的还是Mifare Classic系列最常见的是1K容量1KB分16个扇区每个扇区4个块。真正刷门禁时CPU只读卡片中的某几个扇区判断里面的用户ID、楼层权限、有效期之类。但由于整个协议是公开的卡片本身又是个无源的被动标签攻击面天然就暴露在无线电波里。“全加密”这个词指的不是整张卡的每一字节都锁死而是指这张卡的16个扇区里用来认证的密钥A和密钥B全部被设置成了非默认值。出厂状态下Mifare Classic扇区尾部一般写着FFFFFFFFFFFF这类默认密钥很多老旧门禁系统懒得改所以用Mifare Classic Tool配合PN532就能直接读出数据。但稍微正规一点的物业、园区或公司都会在发卡时统一写入自定密钥全扇区锁死。这时候你拿普通NFC手机App去读只能读到UID数据区全部报错这就是大家常说的“全加密卡”。1.2 跑字典的原理与致命短板所谓“跑字典”并不是真的拿纸质词典去翻而是把一批常用密钥丢给卡片去试。大部分人对Mifare Classic攻击的了解最早都来自那套经典流程先跑默认密钥列表如果某个扇区能通过默认密钥认证就用嵌套攻击nested attack继续扩大战果逐步把其他扇区的密钥也推算出来。这个思路对付那些“只改了几个扇区”的半加密卡非常有效有些卡甚至一分钟不到就能被扒成透明人。一旦遇到真正全加密的卡跑字典就原形毕露。首先是密钥空间问题。虽然Mifare Classic的密钥是48位字典里能列出的高频组合成千上万但如果门禁系统发卡时用随机数生成器产生密钥那么字典里根本不存在的组合你跑一辈子也跑不出来。其次是交互式猜测会触发卡片保护机制。读卡器也好Proxmark3、PN532也好在认证失败次数过多后卡片会进入冻结状态必须重新上电才能继续尝试这相当于每猜几次就要把卡取下来再贴上去整个过程又慢又崩溃。最麻烦的是你拿来做实验的可能是自己每天要刷的工卡或门禁卡万一过程中把卡片搞到锁定状态那就是给自己找麻烦。我把传统跑字典和“侦测”模式放在一起做个对比大家感受会更直观对比项传统跑字典ChameleonUltra“侦测”模式核心思路主动猜测密钥被动抓取读卡器发出的认证信息依赖密钥字典非常依赖字典越强越有希望基本不依赖靠在线交互获取实据耗时半小时到数小时一次成功通常3-8分钟对卡片伤害失败太多次有锁卡风险设备模拟成卡不动原卡适合场景半加密、默认密钥残留的卡全加密、密钥完全未知的卡1.3 跑字典没落的技术原因还有一个很多人没意识到的问题现在门禁读卡器也在“进化”。老式读卡器认证逻辑比较傻只要密钥对上就让读但新款读卡器会校验访问控制位和卡片数据区的CRC还会检查卡片克隆痕迹。你用跑字典暴力破出来的密钥去读卡就算密钥算对了读出来的数据也可能因为访问位不符而无法写回。侦测这种思路因为抓的是“读卡器亲口说出的密钥相关信息”相当于让读卡器自己当带路党拿到的东西和真实场景匹配度更高后面写入模拟器时踩坑概率也小很多。说句掏心窝的话我并不是完全否定跑字典它毕竟解决过很多老卡的复制问题。但如果你的目标是“全加密门禁卡复制”且追求效率和稳定继续抱着字典死磕性价比真的低到尘埃里了。2. ChameleonUltra到底是一台什么设备2.1 硬件定位与选型逻辑ChameleonUltra是国外硬件圈做的一款便携式NFC标签模拟器主控用的是树莓派同款的RP2040芯片频率范围锁定13.56MHz支持ISO14443A/B以及MIFARE Classic、Ultralight、NTAG等常见卡型。它最直观的特点是有一块小屏幕和几个物理按键机身上还留了一颗LED状态灯能在不连电脑的情况下快速切换模拟槽位。用大白话说它就是把一张白卡做成了可以随时改写UID、随时切换扇区数据的“瑞士军刀”。很多人问它和Proxmark3到底怎么选。我的看法是Proxmark3更像一个硬件实验室抓波形、跑离线分析、搞复杂协议逆向都很强缺点是体积大、操作门槛高出门蹲个门禁还得扛着电脑。ChameleonUltra则更像一把随身钥匙平时揣兜里看到读卡器就能贴上去测一把。尤其是用它来跑“侦测”这类需要贴近读卡器的操作便携性就是最大的生产力。2.2 固件里的那些“模式”是怎么回事ChameleonUltra出厂固件提供多个模拟槽位每个槽位可以独立配置UID、卡型、扇区数据。官方App和社区固件里一般能看到“识别”“模拟”“侦测”等几个入口。其中“识别”是扫描并识别卡片类型相当于读取CID和ATQA信息“模拟”是把你已有的卡数据完整挂载到某个槽位让设备变身成那张卡“侦测”则是它区别于普通模拟器的大杀器可以把它理解成“面对读卡器时演一张空卡背地里偷偷记录认证过程”。“侦测”模式的重点在于设备会主动将自己报成目标UID的卡片但数据区故意留空。读卡器以为这是张损坏或未初始化的卡通常会按正常流程发起认证。认证瞬间读卡器需要向卡片发送加密后的密钥流和随机数挑战。ChameleonUltra把这些内容原样记录下来再交给固件内置的恢复算法去解体最终还原出用于认证的扇区密钥。整个过程因为读卡器是“主动交代”的一方省掉了笨拙的逐个枚举过程。2.3 别把频率搞错了准备下手之前先确认家或公司的门禁读卡器是不是13.56MHz的高频卡。判断方法很简单把手机NFC功能打开贴近读卡器外壳如果手机能弹出一个卡片信息通知基本就是13.56MHz如果完全没反应大概率是125kHz的低频ID卡或者更特殊的独立系统。ChameleonUltra只支持13.56MHz125kHz的低频卡它碰不了这类卡需要专门的低频拷贝设备。这个坑我见过太多人踩了设备买回来才发现系统不对等于白折腾。总而言之ChameleonUltra的定位很清楚高频全加密门禁卡场景下的便携采集与模拟终端。它不是万能钥匙但在我遇到的所有13.56MHz全加密门禁场景里它几乎是最顺手的工具。3. 为什么“侦测”能比跑字典快这么多3.1 从认证流程里找答案要理解“侦测”为什么快得回到Mifare Classic的认证流程上。读卡器和卡片之间的身份认证说白了是一个三步握手过程卡片先产生一个随机数Nt发给读卡器读卡器收到后用密钥加密一串数据把加密结果连同一个新的随机数Nr送回卡片卡片再解密验证双方各自确认密钥一致才允许后续的数据读写操作。传统跑字典是在“不知道密钥”的情况下猜相当于你在门口一个个试钥匙。侦测模式则换了一个角度与其猜钥匙不如偷看读卡器怎么开门。设备把自己伪装成一张合法的空卡读卡器以为那张卡是正主直接就把加密后的认证包甩出来了。设备把这些包含密钥信息的加密包多抓几组再从差异中反推出密钥。一次完整的认证只需要几百毫秒读卡器不会因为认证失败而惩罚你因为从它的视角看你只是张“没写过数据的卡”而不是“试图暴力破解的入侵者”。3.2 多扇区并行与密钥恢复的效率差异更关键的是ChameleonUltra的侦测过程不是一次只测一个扇区。读卡器在对卡片进行枚举时通常会尝试读取所有扇区的头部或访问控制信息这个过程哪个扇区能读、哪个扇区不能读设备都会记录在案。抓取了足够多的认证报文之后设备内置算法会把每个扇区用到的密钥分别恢复出来最终形成一个完整的扇区密钥表。这跟我以前用Proxmark3跑字典的体验形成了鲜明对比——那边可能刚攻破第一个扇区这边已经把整张卡的所有密钥都列出来了。我自己的实测数据是在楼下小区门禁一台海康读卡器上第一次跑侦测大约花了4分20秒抓包次数20次左右16个扇区里14个密钥直接还原剩下2个扇区因为读卡器根本没主动访问所以显示为空这不影响实际刷门门禁只校验固定扇区。后来在另一个朋友公司的门禁上试读卡器比较老3分多钟就全出来了。至于网传“5分钟”基本对应的是比较谨慎的读卡器场景多贴十几秒就够了。3.3 为什么它不能完全替代跑字典我也得泼一盆冷水侦测模式有一个天然前提就是读卡器愿意配合你完成认证过程。有些门禁读卡器做了很强的抗嗅探设计比如认证一次后强制要求断电重来或者把认证次数限制得很死这时候侦测模式抓包的成功率就会下降。还有的读卡器会采用非标准的认证扩展导致设备拿到的加密包不是标准结构恢复算法解不出来。另外极少数卡片会使用非标准UID长度或私有协议ChameleonUltra要么不支持要么只能模拟部分行为。在这些场景里传统跑字典和Proxmark3的离线分析依然有它的存在价值。所以我的建议是优先试侦测侦测不行再回头考虑跑字典两条路配合才能覆盖绝大多数门禁卡复制需求。4. 五分钟实战从拿到ChameleonUltra到复制全加密卡4.1 前期准备固件和App动手之前先用官方App把ChameleonUltra固件刷到支持“侦测”模式的最新版本。这个步骤别省老固件可能只带基础模拟功能没有侦测入口。具体刷机方式官方文档写得很清楚大概就是进Bootloader模式然后用App或电脑端工具导入固件文件几十秒就完成。刷完之后建议把设备充满电侦测时频繁收发无线信号耗电比单纯模拟要大不少曾经有次我只剩10%电量出门结果侦测到一半直接断电前面抓的包全白费了。另外准备一张和你要复制的卡同类的高频白卡以及一台能读NFC的手机。白卡用来做最终的实体复制手机则主要用于读取UID和检查结果。如果你不确定自己门禁卡是Mifare Classic 1K还是4K先通过App的“识别”功能扫一遍看清楚卡型和容量再继续。4.2 第一步读取目标卡的UID与卡型用ChameleonUltra或者手机NFC工具靠近目标卡先读取UID信息。这一步很简单只要卡放在感应区设备就能看到一串4字节或7字节的ID同时识别出卡型。UID是门禁系统定位卡身份的重要依据后面模拟槽位需要精确写入。千万别把UID和扇区数据混为一谈UID是硬编码在卡里的“身份证号”扇区数据是门禁逻辑里“权限记录”。复制全加密门禁卡时UID必须要一致这是模拟器能不能被门禁系统认识的第一道关卡。4.3 第二步新建槽位并写入目标UID接下来打开ChameleonUltraApp或者通过设备自身的菜单新建一个模拟槽位卡型选择对应的Mifare Classic类型然后把第一步读到的UID填入。其余扇区数据暂时留空或填默认值即可。这里就是“演白卡”的准备工作你和读卡器说“我就是那张某某UID的卡”但手里没有密钥所以数据区无法正常访问。保存后设备会回到主界面屏幕上会显示你刚配置的槽位编号。按物理按键切换到该槽位设备此时就变成了一张“目标UID的空卡”。如果你离读卡器近会发现读卡器的指示灯闪一下又灭掉这是正常现象因为读卡器试图读数据却读不到但这恰恰是侦测模式要的启动状态。4.4 第三步开启“侦测”模式并贴向读卡器关键操作来了。在设备菜单中选择“侦测”模式屏幕会提示将设备靠近读卡器。你只需要把ChameleonUltra放到读卡器的感应区保持两三秒然后拿开。屏幕上的抓包计数会开始跳动每跳一次就说明读卡器对设备进行了一次完整的认证尝试。一般情况下贴一次只能抓到几包需要反复贴近、拿开、贴近、拿开让读卡器处于反复掉线重连的状态。整个持续3到5分钟直到抓包次数达到一定阈值设备自动进入密钥恢复阶段。这里有个技巧贴近时间不要太短至少保持一秒以上让读卡器完成一次完整的三步认证拿开时间也不用太长等读卡器指示灯熄灭后再贴下一轮。如果你发现计数长时间不涨可以试着把设备稍微偏移感应区中心或者换个角度贴近有时候读卡器的天线识别范围比较窄位置没对准抓不到包。4.5 第四步读取结果并验证扇区密钥侦测结束后设备屏幕上会列出恢复出来的密钥通常按扇区编号对应密钥A和密钥B。如果某些扇区显示“未知”或空白不用太紧张多跑一轮侦测再补抓一次即可。拿到密钥列表后先用App把密钥表导出备份你也可以在App里直接查看每个扇区是否成功解锁。这时再拿手机NFC工具读取原卡输入刚恢复的密钥你会发现扇区数据全部可以正常读取了。这一步非常爽因为你在几分钟前对这些扇区还是一筹莫展的状态。看到完整的转储文件说明你的全加密卡已经被“降维打击”成功。如果不想继续做实体复制到这一步其实就已经实现了最核心的价值——密钥拿到了后面想怎么备份都行。4.6 第五步写入模拟器或实体白卡密钥拿到之后有两种收尾方式。第一种是把原卡扇区数据读取出来直接写入ChameleonUltra的模拟槽位设备就变成一张完整可用的门禁卡。使用前记得先做一次刷卡测试确认门禁能识别。第二种是准备一张同型号的白卡用普通的NFC写入工具把UID、扇区数据、密钥一起写入白卡就变成了原卡的复制品。我通常两种方式都会做模拟器放在钥匙包里日常用实体白卡放家里备用有一个被门禁系统判定异常时另一个还能顶上。有个容易翻车的地方是UID的写入。很多普通白卡的UID是出厂锁死的只能写一次。所以买白卡时一定要买UID可改的“UID卡”不然UID写不进去门禁系统不会认。另外有些门禁系统还会校验卡片制造商代码manufacturer block如果白卡制造商信息和原卡不一样可能会被特殊门禁拒之门外这种情况就得找对应厂商的卡来做复制。5. 常见问题与排查技巧实录5.1 读卡器完全不识别ChameleonUltra最大的可能性是频率不匹配。我前面提过ChameleonUltra只支持13.56MHz高频如果你家的读卡器是125kHz低频设备自然毫无反应。用手机存一下这张门禁卡如果手机能识别并读取基础信息就能确认是高频卡。如果手机完全没反应大概率是低频卡需要换其他低频方案。还有一种情况是设备电池电量不足。ChameleonUltra在侦测模式下需要持续接收和发送射频信号耗电量比纯模拟大电池低于一定阈值时无线性能会明显下降读卡器会表现为刚贴上时亮一下立刻又熄灯。先充电再试别让电量问题干扰排查。5.2 侦测模式一直抓不到包这个问题的根源通常是读卡器没有把你的设备当成一张合法卡。检查一下槽位里UID是否写对哪怕差一个字节读卡器也可能拒绝认证另外确认设备屏幕显示的卡型是否和目标卡一致Mifare Classic 1K和4K在认证流程上有差异选错卡型会导致读卡器不按预期流程走。抓不到包时还可以调整贴合节奏。之前遇到一个门禁读卡器必须检测到卡片持续在场超过2秒才会发起认证而我一开始贴一下就拿走导致读卡器每次都来不及发起流程。后来改成贴上后默数5秒再拿走抓包计数立刻上涨。这个坑在老旧读卡器上尤为明显多试几种节奏比反复重启设备有用。5.3 密钥恢复成功但扇区数据仍然读不出来密钥只是打开扇区的“钥匙”数据能不能读还取决于扇区尾部的访问控制位设置。有些全加密卡不仅改了密钥还把访问控制位设置成了“只写不读”或者“需密钥B才能读”的状态。如果你拿到密钥A却发现读写数据时报错大概率是访问位卡住了这时候试着用密钥B去认证同一个扇区结果可能完全不同。ChameleonUltra恢复的密钥表里密钥B是否可用直接决定了哪些扇区能完整读取。如果连密钥B也读不了就别强行硬读数据区了。门禁系统通常只需要特定扇区里的少量字节很多复制场景只需要正确模拟UID加上扇区密钥就能通过认证。测量一下实际刷卡需求不一定要把整卡dump得滴水不漏。5.4 模拟器能开锁但实体白卡刷不了出现过这种情况的好几个朋友最后都发现是UID写入问题。很多门禁读卡器对外部卡的校验非常严格不仅校验UID还会校验厂商代码和ATQA/Sak值。普通可写UID卡往往会在厂商代码上露馅导致读卡器拒绝操作。解决方法是购买和原卡同厂牌、同型号的空白卡或者使用支持模拟完整厂商信息的特殊卡。ChameleonUltra则可以通过设置模拟槽位把厂商代码一并伪造所以模拟器反而比某些白卡更容易骗过门禁系统。5.5 侦测成功但密钥与之前跑字典得到的结果不一致这在技术上是正常现象。有些门禁系统支持“一卡一密”的动态密钥更新机制密钥并不是长期固定的每次刷卡或定期轮换后密钥会变化。你跑字典得到的可能是上一个周期的密钥侦测抓到的则是当前密钥。这时候你会觉得“明明复制成功了过几天怎么又失效了”。遇到这类系统实体复制意义不大还是老老实实用模拟器每次需要时直接侦测抓当前密钥更靠谱。6. 我的几点实践心得说句实在话用了这么久ChameleonUltra我最满意的并不是它有多“神奇”而是它把以前那些玄学操作变成了可视化的流程。跑字典的时候你是盲人摸象不知道密钥离你还有多远侦测的时候抓包计数一跳一跳地涨你能明显感到自己离目标越来越近。这种确定性让人心里踏实。另一个体会是工具再好也要先确认使用场景合不合法、合不合规。我所有的测试都集中在自己家小区、自己公司、自己经授权的门禁卡上目的很纯粹就是防止原卡丢失或被消磁时进不了门。千万不要拿这套技术去打别人门禁的主意无论是盗刷他人卡片还是复制未经授权的门禁卡都是违法行为。我在文末非常认真地提醒一句只有确保卡片属于你自己或者已经获得明确授权才建议启动侦测流程。最后分享一个小技巧侦测流程进行到一半时如果发现抓包计数增加特别慢别干等着。把设备挪开手动退出侦测模式再重新进入很多时候重启一次“白卡会话”比死死贴着读卡器更有效果。设备固件和算法偶尔也会抽风重置会话能让它重新建立干净的认证状态。实测下来这种“重置一下再继续”的操作能把总耗时从拖沓的十几分钟拉回到五分钟以内。希望这篇东西能帮你在全加密门禁卡复制这条路上少走点弯路早点实现“刷卡自由”。
阅读完成 · 觉得有帮助?
咨询建站