如何利用wireshark破解網站密碼

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

當咱們輸入帳號、密碼登陸一個網站時,網站若是容許你使用HTTP(明文)進行身份驗證,此時捕獲通訊流量很是簡單,而後就能夠對捕獲到的流量進行分析以獲取登陸帳號和密碼。這種方法不只適用於局域網,甚至還適用於互聯網。這就意味着,攻擊者將能夠破解任何使用HTTP協議進行身份驗證的網站密碼。html

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

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

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

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

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的流量捕獲。session

一般狀況下,將會捕獲不少流量數據,然而咱們只對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

即在這個例子中:

一、用戶名:sampleuser

二、密碼: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服務都須要花錢。然而,網站全部者(任何人均可以註冊的公共網站)至少應該在登陸環節進行哈希值求解操做,這樣至少在攻擊者破解網站密碼的時候可以多設置一道屏障。

相關文章
相關標籤/搜索