首页 > 代码库 > 无线Wifi密码破解(WPA)

无线Wifi密码破解(WPA)

    PIN破解是近年来流行起来的wifi密码破解最有效的方式了。那什么是PIN?有什么用?
    这里要先说一个概念,WPS, WPS(Wifi Protected Setup)是一种免输密码和SSID的建议无线配置协议,它的好处是能够让支持WPS的设备,在第一次连接某个设备时,能够通过不用手工输入SSID和密码的方式,自动建立连接。
    因为方便,所以危险。如果我们知道一个路由的SSID和PIN,那么我们就可以光明正大的进到这个wifi网络中,即时我们不知道wifi的密码也没关系。而一旦我们知道PIN,那WPA2加密方式也形同虚设,我们可以通过上文说的Reaver软件来获取密码。
    PIN码的格式很简单, 八位十进制数,最后一位(第8位)为校验位(可根据前7位算出),验证时先检测前4位,如果一致则反馈一个信息,所以只需1万次就可完全扫描一遍前4位,前4位确定下来的话,只需再试1000次(接下来的3位),校验位可通过前7为算出,就可暴力验证出pin码。所以即时你不知道校验位怎么计算,那你最多尝试10000+1000+10次=11010次就可以获得PIN,从而获得wifi密码,是不是简单很多?
    先放图,这里为了方便演示,我以自己的路由为例。假设已经获得了PIN(14099281),这是我Tplink的PIN码。从路由界面获取。




(1)和上文一样,先扫描出可用的无线网络,不过这次就不用抓包了。因为你是直接PIN路由的,也不需要有设备在线。点击Reaver。
 

 

(2) 在命令栏添加 -p14099281,意思是从14099281开始PIN,这样的话,一下子就可以获得PIN码,正常情况下不知道的话,不用填,直接点击OK,然后等待密码出来就可以了。



   

   因为这里测试PIN已知,所以不到10秒钟,密码就出现了。 


  

 

 

另外还会保存一份在BT5 Root/tmp下



     

    这种方法获取wifi密码不言而喻是很高效的,理论上也是必破。 

    以上我是事先获知PIN进行演示,所以很快,但是正常情况下不知道PIN是多少,这时候怎么办?这里有一些诀窍。
    由于PIN是随机生成的一个8位10进制数。所以这是由各路由厂商生成的。腾达(Tenda)部分路由(C83A35,00B00C)是由MAC的前6位16进制数直接转化为7位10进制数外加一个检验码生成,算法弱爆了。所以可以直接通过Dec2Hex计算出来。  而像DLink对PIN错会有延迟,这样会导致PIN速度很慢,间接起到防PIN的作用,还有很多其他的,针对不同的路由可以去网上找相关资料。而有一些TPLink是直接带有防PIN功能的。当然这都是需要时间的,所以要有耐心。
    有一些所谓PIN优化的建议不要相信,PIN没有所谓优不优化,万一漏PIN了又要换个姿势,再来一次。 

    对于一些隐藏SSID的,可以通过BT5桌面上的FeedingBattle奶瓶来获取。      
    接下来说一下wifi被蹭的危害。
    当然善类只是蹭一下网络使用,省钱共享网络而已。顶多开下载导致网络稍卡而已。
    但是,如果带有恶意的话,在入侵你的wifi后就可以对你发动arp攻击。举个例子

    我蹭了郭四娘的wifi,刚好四娘和韩寒在聊天。
    通过对四娘的电脑发送虚假的arp信息,我把自己的主机伪装成网关。这个过程是合理的,且无法被发现。因为802.11协议在下三层LAN中默认是互相信任的,因为只有在互相信任的前提下,你们才会在同一个局域网内。但是这个时候我是偷偷进入的,四娘和网关都不知道。
    四娘说:韩寒我恨你。
    作为伪装的网关,我先接到这条信息,然后我进行篡改:“韩寒我爱你”。接着发送给真正的网关,由网关发送给韩寒。
    韩寒回:惊恐 
    然后我对网关发送虚假的arp信息,把自己伪装成四娘。就会接收到这个表情。再进行篡改:“害羞 ”。然后发送给真正的四娘。
    最后他们两个在一起了。
    这个例子很烂,但是说明了局域网被蹭的危害,当然黑客做的不只是这些。上面这个流程在实现上不难。只是做几个原始套接字的包,自己封装好TCP/IP的协议头进行发送就可以了。然后再对数据进行获取篡改就OK。其实这也是360的主动防御原理,自己主动给网关发送arp信息,防止被欺骗。