黑客技術之Microsoft Windows和Nt實例
Microsoft的安全問題一直是一個很敏感的問題,因為網絡上有太多的使用者了,在我收集的長達79頁的Microsoft技術規范說明中,談到安全問題的僅僅是一段“比以往的版本,在安全技術上有很大的改善”,顯然,Microsoft更關心的是有沒有人偷他的軟件去使用,而不是用戶在使用軟件時是否安全。那么,擺在眼前的就是:Microsoft從來就不是一個安全的平臺,即使是Nt系統,雖然Nt系統經過了NSA的安全等級C2鑒定。但是,請注意以下的補充說明:
1·C2在EPL中是很低的等級。
2·Nt系統的C2只在某些硬件上才能達到,(Compaq Poliant 2000,DECpcAXP/150 Alpha)
3·Nt系統的C2認證是假定在沒有網絡的情況下。
所以,在Microsoft的windows產品中,基本的安全功能就相當的缺乏,所有密碼的功能基本是依賴一個PWL的文件,所以,了解這份文件,你也就了解了windows安全所謂的機制。
在windows中,使用兩個函數來計算密碼:
- WnetCachePassword( )
- WnetGetGachedPassword( )
如果你是一個軟件設計人員,那么你可以使用相同的這兩個函數來獲得使用者的密碼。但是,更簡單的方法是,你可以在windows系統目錄下,直接刪除PWL文件,然后再以你的口令生成一個文件。詳細的說明你可以參考:http://199.44.114.223/rharri/tips.htm或者你可以到http://www.iaehv.nl/users/rvdpeet/unrelate/glide.zip下載這個軟件,然后試試在你的機器上運行。
如何解決上述問題,你可以使用Fortres 101,在http://www.fortres.com/f101.htm,上面說的只是單機的情況,那么,如果你的機器在網絡上呢?這里有我一份在去年3月份的記錄。對在記錄中出現的任何機器,我很抱歉將你們列出來。但是我保證沒有動改你們的硬盤。
1997.3.27 xx:xx:xx
我從internet連線上學校的網絡,當時,我用了一個Scanner來掃描整個的網絡,令人驚奇的是,我從結果窗口中看到了這樣的一些信息:
- Win95client: littlesun
- Win95client: tina&ryu
- .....
- .....
- Win95client: subtle
- .....
- WinNtServer: XXXXXX Domain:XXXXX_XX
- .....
接下來,我只是用網絡鄰居來打開某臺機器,然后,我立刻就發現了一些的共享目錄。其中的某些目錄你可以用"guest"來連上,到了這一步,如果你是一個別有用心的人,你會怎么做?我想象的做法應該是:
1. 到95的系統目錄下,下載所有的PWL文件。 (其中就有Administrator的)
2. 到我本機后,用glide在一秒中內解出所有的密碼。
3. 然后我想,可能有某臺機器是連上Nt系統服務器的系統管理員的工作平臺,這樣的話,他不太可能使用兩個密碼來登錄Nt系統域和他本地的Win95系統,通常在服務器上的Administrator和他在本地的Administrator用戶口令相同。
4. 于是,我可以用這個密碼來登錄發現的那一臺服務器,用administrator.
Ok, 脆弱的工作站連累了Nt系統服務器。這就是結果。出現這樣的安全問題,原因是什么?就是windows采用的SMB協議所帶來的問題。SMB(Server Message Block) ,Microsoft用這個協議來實現系統在網絡中的共享協定。包括:文件,目錄,打印機,通訊口等。這個協議可以加在很多協議上跑,象Tcp/Ip,NetBios,Ipx/spx于是,hacker就可以使用telnetd透過SMB來或取windows,Nt系統的共享目錄,然后就可以:
1. 使用SMB的clinet端送"dir ..\"給服務器,造成"denial-of-service"的攻擊。
2.使用SAMBA連上共享目錄。慢慢觀賞你的硬盤。
解決問題的方法是:不綁定SMB給Tcp/Ip.去http://ftp.microsoft.com/developr/drg/cifs/中找詳細的SMB資料,然后到http://www.microsoft.com/kb/articles/q140/8/18.htm找一個SMB的patch.
這只是Nt系統中普遍存在的問題,實際上,根據我個人的看法,在一個Nt系統中,你起碼應該注意這些問題:
1.Port 80的遠程漏洞。
Telnet到prot 80 ,發送這樣的命令:get ../..
ok ,Web服務器立即當掉。 使用Service pack 1a,2來修復這個問題。
2. Denial-of-Service的攻擊。
到http://ntinternals.com/cpuhog.htm取cpuhog這個軟件,他使你的Nt系統服務器Cpu達到100%忙碌狀態,然后死掉。
3. port 135,1031的問題。
這個OOB的問題相信大家都知道,但是Microsoft對1031口存在的問題卻不太關心。在1997年2月2日的Microsoft報告中就明顯指出這個問題,到現在還沒有有效的解決方法。
4. 對DNS-Denial的攻擊,使用Service Pack 3來修復。
5. 通常hacker會用的由nbtstat來查詢機器名稱,放入lmhosts文件后,對網絡查詢,來得到共享目錄,使用者信息,等待。
談談Nt系統的密碼問題
Nt的密碼采用和95不同的機制來實現。在Nt系統中,使用的安全模型是DAC ( Discretionary Access Control ).你可以從這個網址得到完整的參考:
http://www.v-one.com/newpages/obook.html而DAC的實現有賴于NTFS,所以,請你在安裝Nt系統時,選用NTFS選項。但是,不要以為NTFS能帶給你100%的安全,到這個地址:http://www.hidata.com/guest/nthacks/passworddll.htm,你可以得到一個工具,你自己用用看。這里我想列出一些可能對你管理Nt系統服務器有用的工具,它們可以用來找出你系統的弱點,或者防范網絡hacker的攻擊:
- scanNT: http://www.omna.com/yes/andybaron/pk.htm
- Systems Management Server : http://www.microsoft.com/smsmgmt/revgd/sms00.htm
- Dump ACL: http://www.net-shopper.co.uk/software/nt/dmpacl/index.htm
Microsoft的操作系統安全問題的分析就敘述挖了,實際上,有些問題并不只是在windows或Nt系統中,在Microsoft的dos, winword, access,excel ,front page webserver ,o'reilly website server等產品中,都有不少的安全弱點。
【編輯推薦】