[教學]WIN2K Server安全入門<二> -2



贊助商連結


tsungchi
2001-05-05, 07:30 AM
5、 注冊表校驗
一般來說,木馬或者後門都會利用注冊表來再次運行自己,所以,校驗注冊表來發現入侵
也是常用的手法之一。一般來說,如果一個入侵者只懂得使用流行的木馬,那麼由於普通木馬
只能寫入特定的幾個鍵值(比如Run、Runonce等等),查找起來是相對容易的,但是對於可
以自己編寫/改寫木馬的人來說,注冊表的任何地方都可以藏身,靠手工查找就沒有可能了。
(注冊表藏身千變萬化,例如需要特別提出來的FakeGina技術,這種利用WINNT外嵌登錄
DLL(Ginadll)來獲得用戶密碼的方法最近比較流行,一旦中招,登錄用戶的密碼就會被記錄
無遺,具體的預防方法我這奡N不介紹了。)應對的方法是監控注冊表的任何改動,這樣改寫
注冊表的木馬就沒有辦法遁形了。監控注冊表的軟件非常多,很多追查木馬的軟件都帶有這樣
的弁遄A一個監控軟件加上定期對注冊表進行備份,萬一注冊表被非授權修改,系統管理員也
能在最短的時間內恢復。

6、埠監控
雖然說不使用埠的木馬已經出現,但是大部分的後門和木馬還是使用TCP連接的,監控
埠的狀況對於由於種種原因不能封鎖埠的主機來說就是非常重要的了,我們這堣ˊ籵洏
NDIS網卡高級編程的IDS系統,對於系統管理員來說,瞭解自己服務器上開放的埠甚至比
對進程的監控更加重要,常常使用netstat查看服務器的埠狀況是一個良好的習慣,但是並
不能24小時這樣做,而且NT的安全日誌有一個壞習慣,喜歡記錄機器名而不是IP(不知道
比爾誘l怎麼想的),如果你既沒有防火牆又沒有入侵檢測軟件,倒是可以用腳本來進行IP
日誌記錄的,看著這個命令︰
netstat -n -p tcp 10>>Netstat.log,這個命令每10秒鐘自動查看一次TCP的連接狀況,基於這個命令我們做一個Netlog.bat文件:
time /t>>Netstat.log
Netstat -n -p tcp 10>>Netstat.log

  這個腳本將會自動記錄時間和TCP連接狀態,需要注意的是︰如果網站訪問量比較大,這樣的操作是需要消耗一定的CPU時間的,而且日誌文件將越來越大,所以請慎之又慎。(要是做個腳本就完美無缺,誰去買防火牆?:)

  一旦發現異常的埠,可以使用特殊的程式來關聯埠、可執行文件和進程(如inzider就有這樣的弁遄A它可以發現服務器監聽的埠並找出與該埠關聯的文件,inzider可以從http://www.nttoolbox.com下載到),這樣無論是使用TCP還是UDP的木馬都無處藏身。

7、終端服務的日誌監控

  單獨將終端服務(Terminal Service)的日誌監控分列出來是有原因的,微軟Win2000服務器版中自帶的終端服務Terminal Service是一個基於遠程桌面協議(RDP)的工具,它的速度非常快,也很穩定,可以成為一個很好的遠程管理軟件,但是因為這個軟件弁鈺j大而且只受到密碼的保護,所以也非常的危險,一旦入侵者擁有了管理員密碼,就能夠象本機一樣操作遠程服務器(不需要高深的NT命令行技巧,不需要編寫特殊的腳本和程式,只要會用鼠標就能進行一切系統管理操作,實在是太方便、也實在是太可怕了)。雖然很多人都在使用終端服務來進行遠程管理,但是,並不是人人都知道如何對終端服務進行審核,大多數的終端服務器上並沒有打開終端登錄的日誌,其實打開日誌審核是很容易的,在管理工具中打開遠程式控制制服務配置(Terminal Service Configration),點擊"連接",右擊你想配置的RDP服務(比如 RDP-TCP(Microsoft RDP 5.0),選中書簽"權限",點擊左下角的"高級",看見上面那個"審核"了麼?我們來加入一個Everyone組,這代表所有的用戶,然後審核他的"連接"、"斷開"、"注銷"的成巧M"登錄"的成巧M失敗就足夠了,審核太多了反而不好,這個審核是記錄在安全日誌中的,可以從"管理工具"->"日誌查看器"中查看。現在什麼人什麼時候登錄我都一清二楚了,可是美中不足的是︰這個破爛玩藝居然不記錄客戶端的IP(只能查看在線用戶的IP),而是華而不實的記錄什麼機器名,倒!要是別人起個PIG的機器名你只好受他的嘲弄了,不知道微軟是怎麼想的,看來還是不能完全依賴微軟呀,我們自己來吧?寫個程式,一切搞定,你會C麼?不會?VB呢?也不會?Delphi?……什麼?你什麼編程語言都不會?我倒,畢竟系統管理員不是程式員呀,別急別急,我給你想辦法,我們來建立一個bat文件,叫做TSLog.bat,這個文件用來記錄登錄者的IP,內容如下︰

time /t >>TSLog.log
netstat -n -p tcp | find ":3389">>TSLog.log
start Explorer
我來解釋一下這個文件的含義︰

第一行是記錄用戶登錄的時間,time /t的意思是直接返回系統時間(如果不加/t,系統會等待你輸入新的時間),然後我們用追加符號">>"把這個時間記入TSLog.log作為日誌的時間欄位;

第二行是記錄用戶的IP地址,netstat是用來顯示當前網絡連接狀況的命令,-n表示顯示IP和埠而不是功能變數名稱、協議,-ptcp是只顯示tcp協議,然後我們用管道符號"|"把這個命令的結果輸出給find命令,從輸出結果中查找包含":3389"的行(這就是我們要的客戶的IP所在的行,如果你更改了終端服務的埠,這個數值也要作相應的更改),最後我們同樣把這個結果重定向到日誌文件TSLog.log中去,於是在SLog.log文件中,記錄格式如下︰

22:40
TCP  192.168.12.28:3389  192.168.10.123:4903   ESTABLISHED
22:54
TCP  192.168.12.28:3389   192.168.12.29:1039   ESTABLISHED

也就是說只要這個TSLog.bat文件一運行,所有連在3389埠上的IP都會被記錄,那麼如何讓這個批處理文件自動運行呢?我們知道,終端服務允釦畯怓陞峇嶆菮w義起始的程式,在終端服務配置中,我們覆誑峇嶊熊n錄腳本設置並指定TSLog.bat為用戶登錄時需要打開的腳本,這樣每個用戶登錄後都必須執行這個腳本,因為默認的腳本(相當於shell環境)是Explorer(資源管理器),所以我在TSLog.bat的最後一行加上了啟動Explorer的命令startExplorer,如果不加這一行命令,用戶是沒有辦法進入桌面的!當然,如果你只需要給用戶特定的Shell︰

例如cmd.exe或者word.exe你也可以把start Explorer替換成任意的shell。這個腳本也可以有其他的寫法,作為系統管理員,你完全可以自由發揮你的想象力、自由利用自己的資源,例如寫一個腳本把每個登錄用戶的IP發送到自己的信箱對於重要的服務器也是一個很好的方法。正常情況下一般的用戶沒有查看終端服務設置的權限,所以他不會知道你對登錄進行了IP審核,只要把TSLog.bat文件和TSLog.log文件放在比較隱蔽的目錄奡N足夠了,不過需要注意的是這只是一個簡單的終端服務日誌策略,並沒有太多的安全保障措施和權限機制,如果服務器有更高的安全要求,那還是需要通過編程或購買入侵監測軟件來完成的。


8、陷阱技術

  早期的陷阱技術只是一個偽裝的端口服務用來監測掃描,隨著矛和盾的不斷升級,現在的陷阱服務或者陷阱主機已經越來越完善,越來越象真正的服務,不僅能截獲半開式掃描,還能偽裝服務的回應並記錄入侵者的行為,從而幫助判斷入侵者的身份。

  我本人對於陷阱技術並不是非常感興趣,一來從技術人員角度來說,低調行事更符合安全的原則;二來陷阱主機反而成為入侵者跳板的情況並不僅僅出現在小說中,在現實生活中也屢見不鮮,如果架設了陷阱反而被用來入侵,那真是偷雞不成了。

  記得CoolFire說過一句話,可以用來作為對陷阱技術介紹的一個結束︰在不瞭解情況時,不要隨便進入別人的系統,因為你永遠不能事先知道系統管理員是真的白癡或者偽裝成白癡的天才......

  入侵監測的初步介紹就到這堙A在實際運用中,系統管理員對基礎知識掌握的情況直接關系到他的安全敏感度,只有身經百戰而又知識豐富、仔細小心的系統管理員才能從一點點的蛛絲馬跡中發現入侵者的影子,未雨綢繆,扼殺入侵的行動

贊助商連結


tsungchi
2001-05-05, 07:31 AM
想一想~還是加馬賽克好了