浅析NTFS 文件系统数据流安全问题
從一個古老的漏洞談起
人們應(yīng)該還記得1998年中期發(fā)現(xiàn)的IIS低版本那臭名昭著的$DATA漏洞,若你對www.hackart.org站點的sheepxxy.asp文件的源代碼感興趣
只需要在瀏覽器中輸入
http://www.hackart.org/sheepxxy.asp::$DATA
源代碼就出來了![NETSCAPE將提示下載文件,IE則在窗口中直接打開源代碼]
不少人對這個漏洞應(yīng)該都記憶尤新,不過這個漏洞究竟是如何得來?似乎不是很多人都會去考慮。其實“$DATA”這個漏洞出現(xiàn)的原因是IIS解
析文件名的BUG-沒有很好地規(guī)范文件名。
當IIS服務(wù)器接受到用戶請求的時候,首先檢驗文件后綴,然后決定如何處理此請求,比如
http://www.hackart.org/sheepxxy.asp
請求后綴是.asp,于是服務(wù)器認為你是要瀏覽ASP文件[ACTIVE SERVER PAGE] ,于是服務(wù)器把請求遞交給asp.dll處理,如果是IIS不能識別的
后綴,請求將交給WINDOWS處理[由靜態(tài)文件處理程序處理],比如
http://www.hackart.org/sheepxxy.txt
且服務(wù)器上未安裝script map的特殊后綴處理程序,則sheepxxy.txt這個文本文件的內(nèi)容將直接發(fā)送給用戶。
不過$DATA是怎么回事?它可不是正常WINDOWS文件的后綴名啊,因此,要說明$DATA的來歷,必須引入“流”的概念。
NTFS文件系統(tǒng)是與微軟的WINDOWS NT操作系統(tǒng)“搭配銷售”的,但在設(shè)計是考慮到要兼容其他文件系統(tǒng),于是增加了一些新特性
蘋果公司基于磁盤的文件上支持二類數(shù)據(jù)集,或派生[fork],這些派生被稱為數(shù)據(jù)和資源派生,為支持這些文件,NTFS文件系統(tǒng)被設(shè)計為支持
包含在一個文件中的多個數(shù)據(jù)流。這是一種不需要重新構(gòu)造文件就能給一個文件添加額外屬性或信息的機制,它應(yīng)兼容性而被創(chuàng)造出來,卻成
為了NTFS這一本為安全設(shè)計的文件系統(tǒng)的安全隱患!
NTFS上的文件本身的內(nèi)容包含在沒有名字的“流”中,具有內(nèi)部數(shù)據(jù)類型 : $DATA ,也就是包含了所有內(nèi)容的的主數(shù)據(jù)流。
于是當IIS服務(wù)器接受到形如
http://www.hackart.org/sheepxxy.asp::$DATA
這樣的請求時,并不能正確解析其后綴,于是請求被遞交給WINDOWS,而WINDOWS的文件系統(tǒng)若是NTFS的話,則它將認為該用戶是請求瀏覽
sheepxxy.asp 這個文件的主數(shù)據(jù)流,便將 sheepxxy.asp 的內(nèi)容而不是經(jīng)過asp.dll處理過的結(jié)果返還給用戶,致使發(fā)生源代碼泄露。
利用這個漏洞的兩個前提:[1] sheepxxy.asp 保存在 NTFS文件系統(tǒng)下,FAT系統(tǒng)可是沒有數(shù)據(jù)流這么一說的哦~
[2] sheepxxy.asp 被ACL[一種訪問控制方法,操作系統(tǒng)借助ACL來判斷一個帳戶具有對一個資源何種程度上的權(quán)限]
設(shè)為全局可讀 也就是every one 組的讀權(quán)限開放。
當然,這個漏洞已經(jīng)被微軟及時地修補了,打過補丁的NT4+IIS4已經(jīng)沒有了此漏洞,其后的WIN2000和WINDOWS.NET自然不會再犯同樣的錯誤
不過關(guān)于NTFS文件系統(tǒng)的“流”的安全問題還沒有結(jié)束,下面的文字將涉及如何利用這一特性在你入侵過的機器上隱藏文件從而保持權(quán)限。
現(xiàn)在我們的硬盤[當然,它是NTFS格式 ^_^]有這么兩個文件 hackart.txt 和 sheepxxy.exe ,其中 sheepxxy.exe 是我們需要隱藏的文件
hackart.txt 當然就是無辜的前端文件了,我們該如何進行我們的接續(xù)文件流的行動呢?簡單的辦法是使用NTRK這一管理員工具包[更多的時候
它是黑客工具包哦~] 中的POSIX 工具 cp
命令格式如下:
cp sheepxxy.exe hackart.txt:sheepxxy.exe
這樣 sheepxxy.exe 就隱藏在 hackart.txt 的 sheepxxy.exe 數(shù)據(jù)流中了,試想此前端文件hackart.txt 與合并前并無什么大的改變[當然修
改時間和文件大小改變,可是有誰能在硬盤上成千上萬的文件中統(tǒng)計這些細支末節(jié)的數(shù)據(jù)?]
把數(shù)據(jù)流分離開的逆向操作命令如下:
cp hackart.txt:sheepxxy.exe sheepxxy.exe
雖然CMD中不能直接執(zhí)行接續(xù)后的文件流 ,也就是不能直接執(zhí)行 hackart.txt:sheepxxy.exe
但是并不需要逆操作來分離出我們的隱藏文件,運用start 命令就可以直接執(zhí)行已隱藏的文件,格式如下:
start hackart.txt:sheepxxy.exe
這種方法可是相當隱蔽的哦,總比傻乎乎地把 nc.exe 這類文件放在管理員眼皮下強了不少~~:)
而且這種方式可是無論什么文件都可以操作哦,只要是合法WIN文件
NTFS是微軟專為NT系統(tǒng)設(shè)計的安全文件系統(tǒng),可是就是數(shù)據(jù)流這種向后兼容的性質(zhì)出賣了它的安全和穩(wěn)定,安全畢竟是一個整體,絲毫馬虎不得!
轉(zhuǎn)載于:https://www.cnblogs.com/MaxWoods/archive/2006/05/09/395300.html
總結(jié)
以上是生活随笔為你收集整理的浅析NTFS 文件系统数据流安全问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【原创】StreamInsight查询系
- 下一篇: java信息管理系统总结_java实现科