頻道欄目
首頁 > 資訊 > 系統安全 > 正文

網絡滲透——淺談溢出

12-02-16        來源:[db:作者]  
收藏   我要投稿
溢出之路,跟來我來吧,tianlu教你學溢出。
溢出的定義:溢出顧名思義,滿則溢。如同一杯水,當它滿出后就有水流出來。而對于計算機,當執行的程序過多數據過長,就會導致數據“流出”到其他運行的合法程序或者我們的系統緩沖區,并加以執行。也正因如此,緩沖區溢出容易受到攻擊并且危害巨大,這也成為了現在一個較為主流的攻擊方式。大家抓J的什么批量135溢出啊,445等等這里不做過多介紹我相信你比我還清楚。其原理也與此大同小異,下面我們就看一個關于溢出的簡單小示例:
這里我們允許DOS(命令提示符),輸入c:\???這里可以會看到提示無法找到文件,很正常你文件也沒有叫???的吧,好啦,閑話少說我們繼續。緊接著,我們將?的長度擴展,并鍵入返回。這里我們又會看到提示,文件名過長,如果我們緊接著將?的長度擴展的很長很長呢?我們就會看到DOS程序出錯的提示,也就是大家會看到的“發送錯誤報告請求”“不發送”,這里tianlu我就不做截圖了。由此可見


下面我們講一個具體的例子,就是大家熟知的135端口溢出漏洞。RPC協議是win系統的使用協議,提供了系統的正常的進程交互通信,允許在遠程主機上運行任意程序。系統的大多功能服務都必須依靠他來正常運行,可見其漏洞會造成的危害。http://baike.baidu.com/view/32726.htm,下面我們就來看一下RPC服務的操作步驟,
在控制面板中,打開管理工具,并雙擊服務,打開服務窗口。在列表中找到RPC(全稱Remote Procedure Call )打開,在常規選項卡中可以查看該協議的啟動類型,選擇依存關系可以在對話框中查看一些服務的依存關系。
可以看到受其影響的系統組件很多,其中也包括了DCOM借口服務,這個接口服務用來客戶端機器發送給服務器的DCOM對象激活請求,黑客可以利用此漏洞以本地系統權限執行任意的指令,包括建立系統管理員權限的賬戶等等。

 
如果我們相對DCOM接口進行配置具體操作如下,
打開組件服務(可在運行中輸入Dcomcnfg),單擊組件服務前的“+”展開至DCOM子菜單項目為止,這樣就可以查看各個配置了。這里大家有的系統會看是否記錄,我們可以任意選擇(這里tianlu是有理由的,因為大多的系統特指win系統默認開啟135端口,會給計算機造成不小的損失但大家不必擔心我們繼續,我一會會給大家講解)之后選擇任意的配置對象右擊,從彈出的菜單中選擇屬相,之后會看到XXXXX class屬性對話框,這里XXXXX是大家任意選擇的配置對象。我選擇的如圖,這里大家不要做過多的設置有的默認設置了,主要看標示一欄,如圖所示我的默認啟動用戶了,說明我的135端口打開了(其實這著實是一句廢話,因為win系統大多都是默認打開的)我們可以在DOS下輸入netstat -an來檢測,我的135是果斷打開了的




由于DCOM可以遠程操作其他計算機的相應DCOM服務,這個也就是用于調用其他PC所具有的函數RPC,利用這個漏洞黑客們可以用特殊形式請求到遠程計算機的135端口,輕則造成DDOS重則造成利用管理員權限執行任何指令。
關于RPC服務遠程溢出漏洞攻擊的例子這里我就不舉出了,我相信你比我還熟練,你的什么雪落系列抓J等等(tianlu也玩過,早期135抓J很瘋狂的,本人不做抓J的交流)?梢钥闯鯮PC這一漏洞就會給我們的計算機造成不小的損失,那我們應該怎么做呢?
從杯滿則溢的道理中我相信你已經知道了如何防范了,下面就由我來給大家一一說出,
1編寫正確的代碼,這個方法屬于根本上的防止了緩沖區溢出攻擊,特別是像類似C語言此類復雜易出錯的編寫程序。盡管人們懂得如何安全正確的編寫程序組,但漏洞卻扔層出不窮,于是人們開發一些用于查錯的工具,防止出現代碼的錯誤編寫,最簡單的方法就是用grep來搜索代碼中容易產生漏洞的庫調用。
2.非執行的緩沖區
前面我們提到計算機的數據流出會占據其他合法程序的運行,以及系統緩沖區并加以執行,這就變得至關重要。因為他會自動執行,變得棘手了起來。如果我們不執行呢,事實上類似早期unix和linux系統都是此類原理,但如今他們在數據段中動態放入可執行的代碼,保持程序的兼容性不可能是的所有程序的數據段不可執行。但對于這一問題win和linux都發布了相關的補丁,其中linux將可執行的代碼必須放入堆棧中,但這方法不能杜絕所有溢出攻擊。非執行的堆棧保護可以有效對付把代碼植入自動變量的緩沖區溢出攻擊,而對于其他形式的攻擊則沒有用。其他的攻擊可以采用把代碼植入堆或者靜態數據段中來進行保護。
3數組邊界檢查
這不做過多介紹用到Compaq C編譯器,植入代碼引起緩沖區溢出是一個方面,擾亂程序的執行流程是另一個方面。不像非執行緩沖區保護,數組邊界檢查完全沒有了緩沖區溢出的產生和攻擊。這樣,只要數組不能被溢出,溢出攻擊也就無從談起。為了實現數組邊界檢查,則所有的對數組的讀寫操作都應當被檢查以確保對數組的操作在正確的范圍內。最直接的方法是檢查所有的數組操作,但是通?梢詠碛靡恍﹥灮募夹g來減少檢查的次數。
4.程序指針完整性檢查
與邊界檢查不同,防止程序指針被改變的不同,程序指針完整性檢查在程序指針引用之間就檢測它的改變,即便一個黑客公公改變程序指針,由于系統事先檢測到了指針的改變,這個指針將不會被使用。
其實對于普通用戶大家只要做到關端口,下殺軟,打補丁,少運行程序即可。
這么這次的淺談溢出就到這里,一味的機械操作是不用有進步的,從原理上掌握溢出才是王道。。

本文作者tianlu
相關TAG標簽
上一篇:臺積電:絕大多數7nm客戶都會轉向6nm_IT新聞_博客園
下一篇:最后一頁
相關文章
圖文推薦

關于我們 | 聯系我們 | 廣告服務 | 投資合作 | 版權申明 | 在線幫助 | 網站地圖 | 作品發布 | Vip技術培訓 | 舉報中心

版權所有: 紅黑聯盟--致力于做實用的IT技術學習網站

美女MM131爽爽爽毛片