如何利用wireshark破解網站密碼


在有進行破解意願的想法誕生之前,博主得先來給各位潑一盆涼水,本文介紹的方法破解http的輕而易舉,而對於https的就算了。因為Wireshark 沒有session key ,不能解密SSL數據流。沒有那東東有什么影響呢?嗯,這么說吧,https是以安全為目標的HTTP通道,簡單講,就是HTTP的安全版。而怎么個安全法呢?原來https在HTTP下加入SSL層,so,https的安全基礎是SSL。這篇文章可以去破解那些以http開頭的網站,比如糗事百科啦,你學校的教務系統啊,一些公司的內部網站啊,其實也挺多的。想更多知道http和https的請自行百度。

當我們輸入賬號、密碼登錄一個網站時,網站如果允許你使用HTTP(明文)進行身份驗證,此時捕獲通信流量非常簡單,然后就可以對捕獲到的流量進行分析以獲取登錄賬號和密碼。這種方法不僅適用於局域網,甚至還適用於互聯網。這就意味着,攻擊者將可以破解任何使用HTTP協議進行身份驗證的網站密碼。

其實很簡單,會幾個語句,ping下目標網站ip,過濾出局域網內的關於那個網站的包,然后把POST截下,從那一堆玩意中,就能找到了。但注意破解只限於局域網內,就是說在你的主機連接的網絡同一個網絡下,而且得要有主機成功登陸你所想破解的那個網站。

在局域網內要做到這一點很容易,這不禁使你驚訝HTTP是有多么的不安全。你可以在宿舍網絡、工作網絡,甚至是校園網絡嘗試這種破解方法,不過校園網絡需要允許廣播流量功能,並且要求你的局域網網卡可以設置為混雜模式。

我們在一個簡單的網站上實驗這種方法,本實驗我是在同一個電腦上進行的。實踐的時候,你可以在虛擬機和物理機之間進行。

注意,一些路由器並不支持廣播流量功能,所以在這種路由器上可能會失敗。

Step 1:運行WireShark並捕獲流量

在Kali Linux中可以按以下步驟運行WireShark:

Application >  Kali Linux > Top 10Security Tools > Wireshark

在WireShark中依次點擊 Capture > Interface 選項,然后選中適用的網卡接口,在我的例子中,我使用了一個USB無線網卡,所以我選擇了 wlan0。


 

如果一切順利,那么接下來你可以按下開始按鈕,然后Wireshark將開始捕獲流量。如果你錯過了這一步,那么你通過回到 Capture > Interface > Start開始捕獲流量。

 

Step 2:過濾POST數據流量

此時,Wireshark開始監聽並捕獲所有的網絡流量。然后我打開瀏覽器並用我的用戶名和密碼登錄一個網站,當認證過程結束並成功登錄之后,返回並停止Wireshark的流量捕獲。

通常情況下,將會捕獲很多流量數據,然而我們只對POST數據感興趣。為什么是POST數據呢?

因為當你輸入用戶名和密碼並點擊登錄按鈕時,將會產生一個POST方法將你輸入的數據發送到遠程服務器上。

為了過濾並濾出POST數據,可以在Filter輸入框中輸入以下指令:

http.request.method== "POST"

下圖中顯示了一個POST事件。

 

Step 3:分析POST數據以獲取用戶名和密碼

接下來,點擊POST事件那一行,然后右擊選擇“Follow TCPSteam”。

 

 

此時,將會打開一個新窗口,窗口中包含類似下面的內容:

?
1
2
3
4
5
6
7
8
9
10
11
12
HTTP/1.1302Found
Date: Mon, 10Nov201423:52:21GMT
Server: Apache/2.2.15(CentOS)
X-Powered-By: PHP/5.3.3
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Set-Cookie: non=non; expires=Thu, 07-Nov-202423:52:21GMT; path=/
Set-Cookie: password=e4b7c855be6e3d4307b8d6ba4cd4ab91; expires=Thu, 07-Nov-202423:52:21GMT; path=/
Set-Cookie: scifuser=sampleuser; expires=Thu, 07-Nov-202423:52:21GMT; path=/
Location: loggedin.php
Content-Length:0
Connection: close
Content-Type: text/html; charset=UTF-8

即在這個例子中:

1、用戶名:sampleuser

2、密碼:e4b7c855be6e3d4307b8d6ba4cd4ab91

由上面的密碼值可以猜想,“e4b7c855be6e3d4307b8d6ba4cd4ab91”肯定不是真實的密碼值,而應該是一個哈希值。

需要注意的是,一些不注重安全的網站並未對用戶發送的密碼值求哈希值,而是直接將密碼明文發送給服務器。對於這種網站,到這一步就能夠得到用戶名和密碼信息了。而在我分析的例子中,我們還需要更進一步,即識別該哈希值對應的密碼值。

Step 4:確定哈希類型

在這一步中,我將使用hash-identifier工具來確定上面的密碼哈希值到底是什么類型的哈希。打開終端,然后輸入“hash-identifier”並將上面的哈希值粘貼到終端,回車之后hash-identifier將會給出可能的匹配值。

因為有一件事可以確定,即上面的哈希值不是域緩存憑證(Domain Cached Credential),所以它肯定是MD5哈希值。

然后,就可以使用hashcat或者cudahashcat破解該MD5哈希值, 點擊這里 了解更多。

【hashcat可以看這里: http://hashcat.net/hashcat/】

Step 5:破解MD5哈希密碼

可以使用hashcat或者類似的工具很容易地破解這個密碼。

?
1
2
3
4
5
6
7
root@kali:~# hashcat -m 0-a0/root/wireshark-hash.lf /root/rockyou.txt
(or)
root@kali:~# cudahashcat -m 0-a0/root/wireshark-hash.lf /root/rockyou.txt
(or)
root@kali:~# cudahashcat32 -m 0-a0/root/wireshark-hash.lf /root/rockyou.txt
(or)
root@kali:~# cudahashcat64 -m 0-a0/root/wireshark-hash.lf /root/rockyou.txt

因為我測試的密碼存在於我的密碼字典中,所以hashcat可以很容易就能破解出。

結論

其實,不可能確保每個網站都使用SSL來保證密碼的安全,因為對於每一個URL來說,使用SSL服務都需要花錢。然而,網站所有者(任何人都可以注冊的公共網站)至少應該在登錄環節進行哈希值求解操作,這樣至少在攻擊者破解網站密碼的時候能夠多設置一道屏障。

 


免責聲明!

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



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