Windows訪問139端口時自動用當前用戶、密碼連接,造成洩露用戶密碼,雖然其密碼是加密的,但一樣可以用來攻擊。
下面是SMB的密碼認證方式。
WINDOWS的139口的訪問過程,箭頭表示數據方向:
1.客戶端<--------------------建立TCP連接----------------->服務端
2.客戶端-------客戶端類型、支持的服務方式列表等---------->服務端
3.客戶端<---------服務器認證方式、加密用的key等-----------服務端
認證方式就是用戶級認證還是共享級認證和密碼加密不,key是服務器隨機生成的8個字節,WIN2000已經支持16個字節的 key。
4.客戶端--------------用戶名、加密後密碼----------------->服務端
WIN9X、WINNT、WIN2000這有個漏洞,不經過提示等就把當前用戶名,密碼加密後發過去了,導致密碼洩漏。這兒加密是DES的變形,lockedpass=chgdes(key,pass)。這兒的pass是作為DES變形的KEY,key是作為DES變形的待加密數據。
5.客戶端<---------------認證成功否-----------------------服務端
WINDOWS客戶端第4步有漏洞,顯然服務端可以得到username和lockedpass=chgdes(key,pass), 其中key可以自由指定,因為這是服務方提供的,usname、pass是客戶端當前訪問者用戶名和密碼。這兒的加密變換不可逆,但已經可以用暴力法破解了,也已經有了這樣的程序。其實我們有時並不一定要得到密碼明文的,只要能提供連接需要的就可以了。我們來看得到lockedpass有什麼用,我們反過去訪問看看,telnet、ftp等連接要密碼明文我們得到的lockedpass不能提供,那麼我們考慮用同樣加密算法傳密碼密文的服務呢?比如就是NETBIOS共享服務。前面是服務端得到東西,那現在就是站在客戶端了,再看前面那過程,顯然其實我們並不需要提供pass,是不是只需要提供username和lockedpass2=chgdes(key2,pass)就可以了?其中key2是現在的服務端提供的。看看我們有 usname和lockedpass=chgdes(key,pass)其中key我們可以自己指定,大家一看顯然只要key=key2那麼就需要的我們都有了是不是?所以我們要使得key=key2.
好我們再仔細看看連接過程,別人連接兩步1、2:
1.客戶端<--------------------建立TCP連接----------------->服務端
2.客戶端-------客戶端類型、支持的服務方式列表等---------->服務端
下面就該
3.客戶端<---------服務器認證方式、加密用的key等-----------服務端
這我們需要提供key,這兒我們不能隨便提供key,需要提供key2,那麼我們就要得到key2,顯然需要連接NETBIOS服務回去。顯然這而需要連接回去的11,22,33共3步(為了區分連接回去的步子用重號表示)才能得到key2,顯然這2步和3步不需要有先後順序。所以我們可以得到連接指定IP的NETBIOS服務然後等這用戶來訪問,這可能有時間超時等處理,或者等到任意IP連接NETBIOS服務後馬上連回去,反正怎麼處理方便、滿足需要就怎麼處理。
下面顯然就是設置 key=key2返回3,那就等4得到lockedpass了,第5步嘛就你自由處理了,要不返回密碼錯誤,後面就是44、55……
總的來就是1,2,11,22,33,3,4,5,44,55……顯然你就是以那機器訪問你的用戶的身份去訪問他的NETBIOS服務了,能干什麼那就看那用戶的權限了。
注意有興趣的可以把SAMB包的客戶端程序修改加上一點服務的前幾步就可以了。顯然這主要利用的還是WINDOWS洩露當前用戶名、加密密碼漏洞。還有這需要別人來訪問你的機器,這好辦,郵件或者主頁等裡面來個
IMGsrc”="file://ip/filename" ...
就可以了。我實驗了去掉機器139口服務(要不有139口要影響後面端口重定向),用端口重定向程序把來向139口定向回去,找另一個WINNT機器用
file://ip/訪問那重定向139口的機器,結果是沒有密碼提示就看到WINNT機器本身了。其實這時重定向端口程序那台機器已經用WINNT機器的當前用戶訪問WINNT了,只是由於沒有客戶端的處理界面不能操作。
閱讀關於 黑客 網絡入侵 黑客入侵 黑客技術 的全部文章