WireShark教程 – 黑客發現之旅(4) - 暴力破解



一、個人觀點


暴力破解,即用暴力窮舉的方式大量嘗試性地猜破密碼。猜破密碼一般有3種方式:

1、排列組合式:首先列出密碼組合的可能性,如數字、大寫字母、小寫字母、特殊字符等;按密碼長度從1位、2位……逐漸猜試。當然這種方法需要高性能的破解算法和CPU/GPU做支持。

2、字典破解:大多攻擊者並沒有高性能的破解算法和CPU/GPU,爲節省時間和提高效率,利用社會工程學或其它方式建立破譯字典,用字典中存在的用戶名、密碼進行猜破。

3、排列組合+字典破解相結合。 理論上,只要擁有性能足夠強的計算機和足夠長的時間,大多密碼均可以破解出來。

暴力破解一般有兩種應用場景:

1、攻擊之前,嘗試破解一下用戶是否存在弱口令或有規律的口令;如果有,那麼對整個攻擊將起到事半功倍的作用。

2、大量攻擊之後,實在找不出用戶網絡系統中的漏洞或薄弱環節,那麼只有上暴力破解,期待得到弱口令或有規律的口令。 所以,用戶特別是管理員設置弱密碼或有規律的密碼是非常危險的,有可能成爲黑客攻擊的“敲門磚”或“最後一根救命稻草”。

暴力破解應用範圍非常廣,可以說只要需要登錄的入口均可以採用暴力破解進行攻擊。應用層面如:網頁、郵件、FTP服務、Telnet服務等,協議層面如:HTTP、HTTPS、POP3、POP3S、IMAP、IMAPS、SMTP、SMTPS、FTP、TELNET、RDP、QQ、MSN等等。本文僅列舉部分常見協議,其它協議情況類似。

二、正常登錄狀態


要從通信數據層面識別暴力破解攻擊,首先我們得清楚各種協議正常登錄的數據格式。下面我們來認識一下POP3/SMTP/IMAP/HTTP/HTTPS/RDP協議認證過程的常見數據格式,根據服務器類型的不同格式略微不同。(說明:本章使用服務器環境爲Exchange2003和WampServer)

1、POP3協議

enter image description here

+OK Microsoft Exchange Server 2003 POP3 .......... 6.5.6944.0 (a-ba21a05129e24.test.org) ........   //服務器準備就緒
CAPA   //用於取得此服務器的功能選項清單
+OK Capability list follows
TOP
USER
PIPELINING
EXPIRE NEVER
UIDL
.
USER [email protected]    //與 POP3 Server 送出帳戶名
+OK
PASS 1qaz@WSX    //與 POP3 Server 送出密碼
+OK User successfully logged on.   //認證成功
STAT
+OK 14 21568
QUIT
+OK Microsoft Exchange Server 2003 POP3 .......... 6.5.6944.0 ..........

2、SMTP協議

enter image description here

220 a-ba21a05129e24.test.org Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at  Thu, 6 Aug 2015 11:10:17 +0800  //服務就緒
EHLO Mr.RightPC //主機名
250-a-ba21a05129e24.test.org Hello [192.1.14.228]
……
250 OK
AUTH LOGIN  //認證開始
334 VXNlcm5hbWU6  // Username:
anVmZW5nMDAxQHRlc3Qub3Jn  //輸入用戶名的base64編碼
334 UGFzc3dvcmQ6  // Password:
MXFhekBXU1g=   //輸入密碼的base64編碼
235 2.7.0 Authentication successful.    //認證成功

3、IMAP協議

enter image description here

* OK Microsoft Exchange Server 2003 IMAP4rev1 .......... 6.5.6944.0 (a-ba21a05129e24.test.org) ........     //IMAP服務就緒
bf8p CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 IDLE LOGIN-REFERRALS MAILBOX-REFERRALS NAMESPACE LITERAL+ UIDPLUS CHILDREN
bf8p OK CAPABILITY completed.
s3yg LOGIN "jufeng002" "1qaz@WSX"        //輸入用戶名:jufeng002,密碼:1qaz@WSX
s3yg OK LOGIN completed.     //認證成功

4、HTTP協議

HTTP協議認證格式較多,這裏僅列一種作爲參考。

enter image description here

Referer: http://192.1.14.199:8080/login.html     //登錄地址
uname=jufeng001&upass=1qaz%40WSXHTTP/1.1 200 OK
…
<script>alert('OK')</script>
//輸入用戶名jufeng001,密碼1qaz%40WSX,Web服務器返回HTTP/1.1 200和彈出對話框“OK”表示認證成功。

5、HTTPS協議

HTTPS協議爲加密協議,從數據很難判斷認證是否成功,只能根據數據頭部結合社會工程學才能判斷。如認證後有無查看網頁、郵件的步驟,如有,就會產生加密數據。

enter image description here

從數據中可看出HTTPS頭部有認證協商的過程,認證後有大量加密數據,基本可判斷認證成功。SSL認證過程見下圖:

enter image description here

6、RDP協議

RDP爲Windows遠程控制協議,採用TCP3389端口。本版本採用的加密算法爲:128-bit RC4;紅線內爲登陸認證過程,後爲登陸成功的操作數據。

enter image description here

三、識別暴力破解


從暴力破解的原理可知,攻擊中會產生大量猜試錯誤的口令。一般攻擊者在爆破前會通過其他途徑蒐集或猜測用戶的一些用戶名,相關的字典和爆破算法,以提高效率。

1、POP3爆破

enter image description here

從圖中可發現,攻擊者不斷輸入用戶名jufeng001,不同的密碼進行嘗試,服務器也大量報錯:-ERR Logon failure: unknown user name or bad password。Follow TCPStream可以看得更清楚。

enter image description here

提取所有信息,就可以知道攻擊者猜破了哪些用戶名、哪些口令。

2、SMTP爆破

SMTP協議往往是用戶郵件安全管理的一個缺口,所以多被黑客利用。

enter image description here

從圖中可發現,攻擊者不斷輸入用戶名jufeng001,不同的密碼進行嘗試,服務器也大量報錯:535 5.7.3 Authentication unsuccessful。Follow TCPStream:

enter image description here

3、IMAP爆破

從下面兩張圖可以看出,IMAP爆破會不斷重複LOGIN "用戶名" "密碼",以及登錄失敗的報錯:NO Logon failure: unknown user name or bad password

enter image description here

enter image description here

4.HTTP爆破

由於大量Web服務器的存在,針對HTTP的爆破行爲也可以說是最多的,研究爆破方法和繞過機制的人也比較多。這裏僅用最簡單的Web實驗環境做介紹。

首先打開數據可以看到,短時間內出現大量登錄頁面的請求包。

enter image description here

提取Follow TCPStream可以看見輸入用戶名、密碼情況,服務器返回值不再是登錄成功的“OK”,而是登錄錯誤的“…………”。

enter image description here

以上的“…………”並不是返回無內容,這是由於Wireshark無法識別該中文的編碼的原因,我們可以點擊Hex Dump看一下十六進制編碼的內容。

enter image description here

將提取Follow TCPStream的信息另存爲1.html,用瀏覽器打開。

enter image description here

5.HTTPS爆破

HTTPS包括其它SSL協議的爆破從通信層面監控有一定的難度,因爲認證過程加密了,無法知道攻擊者使用的用戶名、密碼以及是否認證成功。但從爆破的原理可知,爆破會出現大量的登錄過程,且基本沒有認證成功,更不會有登錄成功的操作過程。

如圖:爆破過程中,不斷出現認證過程:“Client Hello”、“Server Hello”等,並未出現登錄成功後操作的大量加密數據。

enter image description here

點擊Info可發現,在不到2秒的時間就出現16次認證,基本可以判斷爲暴力破解。

enter image description here

6.RDP爆破

RDP爆破在黑客攻擊中應用非常多,一旦破解出登錄密碼,基本可以控制這臺機器。由於RDP協議數據也加密了,對於爆破的識別也有一定的困難,下面介紹另外一種方法快速識別,這種方法同樣適用其它協議的爆破。

首先我們統計一下正常登錄RDP協議的TCP端口等信息,可以看出正常登錄的話,在一定時間內是一組“源端口和目的端口”。

enter image description here

再來看一下爆破RDP協議的TCP端口等信息,可以看出短時間內出現大量不同的“源端口和目的端口”,且包數和字節長度基本相同。這就表明出現大量動作基本相同的“短通信”,再結合數據格式就可以確定爲暴力破解行爲。

enter image description here

7.多用戶同時爆破

爲提供命中率,攻擊者往往會蒐集大量的用戶名作爲字典同時開展爆破,希望達到“東方不亮西方亮”的效果。這種爆破方法同樣很好識別,它的通信原理爲:同一個攻擊IP同時登錄大量不同的用戶名、嘗試不同的口令、大量的登錄失敗的報錯。

下圖爲同時對jufeng001、jufeng002、jufeng003、jufeng004等用戶開展爆破的截圖。

enter image description here

enter image description here

8、如何識別爆破成功

當然,發現爆破攻擊行爲僅僅是工作的一部分,更重要的是要清楚攻擊者到底爆破是否成功,如果成功了會對我們造成什麼影響。下面就基於Wireshark來介紹如何發現爆破成功。

(1)首先我們要清楚攻擊者爆破的協議,以及該協議登錄成功服務器返回值。如下圖,爲POP3的爆破,從前面的介紹我們知道如果登錄成功服務器返回:“+OK User successfully logged on”。

enter image description here

2)在數據中搜索“+OK User successfully logged on”。

enter image description here

(3)通過搜索發現確實存在服務器返回的成功登錄信息。

enter image description here

(4)Follow TCPStream發現攻擊者在嘗試了大量錯誤口令後,終於爆破成功:用戶名jufeng001,密碼1qaz@WSX。

enter image description here

四、總結

1、無論是用戶還是管理員,我們都要重視弱口令或有規律的口令這個安全問題,不要讓安全防範輸於細節。

2、驗證碼機制防範暴力破解僅適用於HTTP/HTTPS協議,無法防範其它協議。

3、理解了暴力破解的通信原理,從通信層面進行監控和阻止就可以實現。

4、重要管理系統的登錄權限受到爆破攻擊行爲較多,登錄權限最好綁定管理員常用的IP地址或增加認證機制,不給黑客爆破的機會。

申明:文中提到的攻擊方式僅爲曝光、打擊惡意網絡攻擊行爲,切勿模仿,否則後果自負。

一、個人觀點


暴力破解,即用暴力窮舉的方式大量嘗試性地猜破密碼。猜破密碼一般有3種方式:

1、排列組合式:首先列出密碼組合的可能性,如數字、大寫字母、小寫字母、特殊字符等;按密碼長度從1位、2位……逐漸猜試。當然這種方法需要高性能的破解算法和CPU/GPU做支持。

2、字典破解:大多攻擊者並沒有高性能的破解算法和CPU/GPU,爲節省時間和提高效率,利用社會工程學或其它方式建立破譯字典,用字典中存在的用戶名、密碼進行猜破。

3、排列組合+字典破解相結合。 理論上,只要擁有性能足夠強的計算機和足夠長的時間,大多密碼均可以破解出來。

暴力破解一般有兩種應用場景:

1、攻擊之前,嘗試破解一下用戶是否存在弱口令或有規律的口令;如果有,那麼對整個攻擊將起到事半功倍的作用。

2、大量攻擊之後,實在找不出用戶網絡系統中的漏洞或薄弱環節,那麼只有上暴力破解,期待得到弱口令或有規律的口令。 所以,用戶特別是管理員設置弱密碼或有規律的密碼是非常危險的,有可能成爲黑客攻擊的“敲門磚”或“最後一根救命稻草”。

暴力破解應用範圍非常廣,可以說只要需要登錄的入口均可以採用暴力破解進行攻擊。應用層面如:網頁、郵件、FTP服務、Telnet服務等,協議層面如:HTTP、HTTPS、POP3、POP3S、IMAP、IMAPS、SMTP、SMTPS、FTP、TELNET、RDP、QQ、MSN等等。本文僅列舉部分常見協議,其它協議情況類似。

二、正常登錄狀態


要從通信數據層面識別暴力破解攻擊,首先我們得清楚各種協議正常登錄的數據格式。下面我們來認識一下POP3/SMTP/IMAP/HTTP/HTTPS/RDP協議認證過程的常見數據格式,根據服務器類型的不同格式略微不同。(說明:本章使用服務器環境爲Exchange2003和WampServer)

1、POP3協議

enter image description here

+OK Microsoft Exchange Server 2003 POP3 .......... 6.5.6944.0 (a-ba21a05129e24.test.org) ........   //服務器準備就緒
CAPA   //用於取得此服務器的功能選項清單
+OK Capability list follows
TOP
USER
PIPELINING
EXPIRE NEVER
UIDL
.
USER [email protected]    //與 POP3 Server 送出帳戶名
+OK
PASS 1qaz@WSX    //與 POP3 Server 送出密碼
+OK User successfully logged on.   //認證成功
STAT
+OK 14 21568
QUIT
+OK Microsoft Exchange Server 2003 POP3 .......... 6.5.6944.0 ..........

2、SMTP協議

enter image description here

220 a-ba21a05129e24.test.org Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at  Thu, 6 Aug 2015 11:10:17 +0800  //服務就緒
EHLO Mr.RightPC //主機名
250-a-ba21a05129e24.test.org Hello [192.1.14.228]
……
250 OK
AUTH LOGIN  //認證開始
334 VXNlcm5hbWU6  // Username:
anVmZW5nMDAxQHRlc3Qub3Jn  //輸入用戶名的base64編碼
334 UGFzc3dvcmQ6  // Password:
MXFhekBXU1g=   //輸入密碼的base64編碼
235 2.7.0 Authentication successful.    //認證成功

3、IMAP協議

enter image description here

* OK Microsoft Exchange Server 2003 IMAP4rev1 .......... 6.5.6944.0 (a-ba21a05129e24.test.org) ........     //IMAP服務就緒
bf8p CAPABILITY
* CAPABILITY IMAP4 IMAP4rev1 IDLE LOGIN-REFERRALS MAILBOX-REFERRALS NAMESPACE LITERAL+ UIDPLUS CHILDREN
bf8p OK CAPABILITY completed.
s3yg LOGIN "jufeng002" "1qaz@WSX"        //輸入用戶名:jufeng002,密碼:1qaz@WSX
s3yg OK LOGIN completed.     //認證成功

4、HTTP協議

HTTP協議認證格式較多,這裏僅列一種作爲參考。

enter image description here

Referer: http://192.1.14.199:8080/login.html     //登錄地址
uname=jufeng001&upass=1qaz%40WSXHTTP/1.1 200 OK
…
<script>alert('OK')</script>
//輸入用戶名jufeng001,密碼1qaz%40WSX,Web服務器返回HTTP/1.1 200和彈出對話框“OK”表示認證成功。

5、HTTPS協議

HTTPS協議爲加密協議,從數據很難判斷認證是否成功,只能根據數據頭部結合社會工程學才能判斷。如認證後有無查看網頁、郵件的步驟,如有,就會產生加密數據。

enter image description here

從數據中可看出HTTPS頭部有認證協商的過程,認證後有大量加密數據,基本可判斷認證成功。SSL認證過程見下圖:

enter image description here

6、RDP協議

RDP爲Windows遠程控制協議,採用TCP3389端口。本版本採用的加密算法爲:128-bit RC4;紅線內爲登陸認證過程,後爲登陸成功的操作數據。

enter image description here

三、識別暴力破解


從暴力破解的原理可知,攻擊中會產生大量猜試錯誤的口令。一般攻擊者在爆破前會通過其他途徑蒐集或猜測用戶的一些用戶名,相關的字典和爆破算法,以提高效率。

1、POP3爆破

enter image description here

從圖中可發現,攻擊者不斷輸入用戶名jufeng001,不同的密碼進行嘗試,服務器也大量報錯:-ERR Logon failure: unknown user name or bad password。Follow TCPStream可以看得更清楚。

enter image description here

提取所有信息,就可以知道攻擊者猜破了哪些用戶名、哪些口令。

2、SMTP爆破

SMTP協議往往是用戶郵件安全管理的一個缺口,所以多被黑客利用。

enter image description here

從圖中可發現,攻擊者不斷輸入用戶名jufeng001,不同的密碼進行嘗試,服務器也大量報錯:535 5.7.3 Authentication unsuccessful。Follow TCPStream:

enter image description here

3、IMAP爆破

從下面兩張圖可以看出,IMAP爆破會不斷重複LOGIN "用戶名" "密碼",以及登錄失敗的報錯:NO Logon failure: unknown user name or bad password

enter image description here

enter image description here

4.HTTP爆破

由於大量Web服務器的存在,針對HTTP的爆破行爲也可以說是最多的,研究爆破方法和繞過機制的人也比較多。這裏僅用最簡單的Web實驗環境做介紹。

首先打開數據可以看到,短時間內出現大量登錄頁面的請求包。

enter image description here

提取Follow TCPStream可以看見輸入用戶名、密碼情況,服務器返回值不再是登錄成功的“OK”,而是登錄錯誤的“…………”。

enter image description here

以上的“…………”並不是返回無內容,這是由於Wireshark無法識別該中文的編碼的原因,我們可以點擊Hex Dump看一下十六進制編碼的內容。

enter image description here

將提取Follow TCPStream的信息另存爲1.html,用瀏覽器打開。

enter image description here

5.HTTPS爆破

HTTPS包括其它SSL協議的爆破從通信層面監控有一定的難度,因爲認證過程加密了,無法知道攻擊者使用的用戶名、密碼以及是否認證成功。但從爆破的原理可知,爆破會出現大量的登錄過程,且基本沒有認證成功,更不會有登錄成功的操作過程。

如圖:爆破過程中,不斷出現認證過程:“Client Hello”、“Server Hello”等,並未出現登錄成功後操作的大量加密數據。

enter image description here

點擊Info可發現,在不到2秒的時間就出現16次認證,基本可以判斷爲暴力破解。

enter image description here

6.RDP爆破

RDP爆破在黑客攻擊中應用非常多,一旦破解出登錄密碼,基本可以控制這臺機器。由於RDP協議數據也加密了,對於爆破的識別也有一定的困難,下面介紹另外一種方法快速識別,這種方法同樣適用其它協議的爆破。

首先我們統計一下正常登錄RDP協議的TCP端口等信息,可以看出正常登錄的話,在一定時間內是一組“源端口和目的端口”。

enter image description here

再來看一下爆破RDP協議的TCP端口等信息,可以看出短時間內出現大量不同的“源端口和目的端口”,且包數和字節長度基本相同。這就表明出現大量動作基本相同的“短通信”,再結合數據格式就可以確定爲暴力破解行爲。

enter image description here

7.多用戶同時爆破

爲提供命中率,攻擊者往往會蒐集大量的用戶名作爲字典同時開展爆破,希望達到“東方不亮西方亮”的效果。這種爆破方法同樣很好識別,它的通信原理爲:同一個攻擊IP同時登錄大量不同的用戶名、嘗試不同的口令、大量的登錄失敗的報錯。

下圖爲同時對jufeng001、jufeng002、jufeng003、jufeng004等用戶開展爆破的截圖。

enter image description here

enter image description here

8、如何識別爆破成功

當然,發現爆破攻擊行爲僅僅是工作的一部分,更重要的是要清楚攻擊者到底爆破是否成功,如果成功了會對我們造成什麼影響。下面就基於Wireshark來介紹如何發現爆破成功。

(1)首先我們要清楚攻擊者爆破的協議,以及該協議登錄成功服務器返回值。如下圖,爲POP3的爆破,從前面的介紹我們知道如果登錄成功服務器返回:“+OK User successfully logged on”。

enter image description here

2)在數據中搜索“+OK User successfully logged on”。

enter image description here

(3)通過搜索發現確實存在服務器返回的成功登錄信息。

enter image description here

(4)Follow TCPStream發現攻擊者在嘗試了大量錯誤口令後,終於爆破成功:用戶名jufeng001,密碼1qaz@WSX。

enter image description here

四、總結

1、無論是用戶還是管理員,我們都要重視弱口令或有規律的口令這個安全問題,不要讓安全防範輸於細節。

2、驗證碼機制防範暴力破解僅適用於HTTP/HTTPS協議,無法防範其它協議。

3、理解了暴力破解的通信原理,從通信層面進行監控和阻止就可以實現。

4、重要管理系統的登錄權限受到爆破攻擊行爲較多,登錄權限最好綁定管理員常用的IP地址或增加認證機制,不給黑客爆破的機會。

申明:文中提到的攻擊方式僅爲曝光、打擊惡意網絡攻擊行爲,切勿模仿,否則後果自負。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章