去年夏天我在一个老小区装宽带,码破师傅把光猫和路由器塞进弱电箱就走了。码破晚上邻居敲门说 wifi 连不上,码破我进去一看,码破路由器背面贴着一串 PIN 码,码破八位数字,码破印得清清楚楚。码破这玩意儿就是码破 WPS 功能用的,按下按钮或者输入这串码,码破不用密码就能连上。码破
问题在于,码破很多路由器出厂时这串码是码破固定的,而且算法有规律。码破2011 年有个叫 Stefan Viehböck 的码破研究员发现,把 PIN 码拆成前后两半分别验证,码破暴力破解的次数从一亿次直接降到一万多次。后来更狠,有人逆向了芯片厂商的算法,只要知道路由器 MAC 地址,几秒钟就能算出 PIN 码。这漏洞叫 Pixie Dust 攻击,专打 Realtek 和 Ralink 的芯片。
我拿自己那台 TP-Link 试过。用 wash 命令扫周边开启 WPS 的网络,再跑 reaver,不到两分钟 PIN 码就出来了。路由器管理后台的密码也跟着被改掉。整个过程不需要抓握手包,不需要跑字典,纯粹是利用协议设计缺陷。那台路由器是 2015 年买的,固件从没更新过。
有的品牌在后续固件里加了锁定机制,连续输错几次就锁五分钟。但老设备没人管。运营商送的光猫更麻烦,超级管理员密码通常是动态的,可 WPS PIN 码还是默认那串。我在一个出租屋集中的小区做过统计,三十七个可见网络里,有九个开着 WPS,其中六个能算出 PIN 码。房东图省事,租客走了也不改密码,反正 PIN 码没变过。
破解工具本身不复杂。Kali Linux 里自带 reaver 和 bully,一张支持监听模式的网卡就行。成本不到一百块。真正麻烦的是法律边界。未经授权访问他人网络,在刑法里属于非法侵入计算机信息系统。去年有个案子,有人用这方法蹭网被运营商告了,最后赔了钱还留了案底。
进路由器后台,找 WPS 选项,直接关掉。如果找不到,刷第三方固件比如 OpenWrt,那里面根本没这功能。运营商送的光猫,打客服电话要超级密码,进去把 WPS 禁用。别信什么“隐藏 SSID 就安全”,那只是让网络不出现在列表里,抓包照样能看见。
我自己的做法更干脆。弱电箱里那台路由器只当交换机用,wifi 交给另一台刷了 OpenWrt 的旧设备,WPS 功能在编译固件时就删了。邻居后来问我怎么弄,我说你把 PIN 码那行用记号笔涂掉,进后台关掉 WPS,比什么都强。他照做了,再没出过问题。
这漏洞存在十几年了,新出的一些路由器还在用默认 PIN 码。厂商觉得普通用户不会去碰后台,运营商觉得能上网就行。可那串八位数字就贴在机器背面,谁都能看见。安全这件事,有时候就是一层窗户纸,捅破了才发现后面什么都没有。