安全牛-溢出漏洞


0day漏洞


程序漏洞從哪裏來
罪惡的根源:變量
數據與代碼邊界不清
最簡漏洞原理—— shell腳本漏洞

原理
正常狀況下,用戶向計算機發送一個指令/數據,計算機會把這段代碼,做爲一個數據進行處理
若是程序自己設計的不嚴,用戶向計算機輸入的數據/代碼,經過某種方法/規則欺騙計算機,讓它本來是輸入數據部分的內容,看成代碼在計算機中執行,結果致使內存注入的漏洞
不管數據,仍是代碼,都是由於程序沒有嚴格限定和區分數據與代碼的邊界在哪裏,從而致使本來輸入數據的地方,可是輸入一段代碼,這段代碼又被計算機所執行,執行以後就會形成對程序的各類各樣的破壞,好比程序的奔潰,控制計算機

案例
#!/bin/bash
echo $1
這個腳本能夠輸入數字/字母,可是當輸入系統命令呢,會不會執行
當輸入123,輸出爲123;
當輸入abc,輸出爲abc;
當輸入pwd,輸出爲pwd;
當輸入;pwd,輸出爲 當前目錄;
當輸入nc進行偵聽端口,其餘人就能夠進行鏈接;
當輸入id,
當輸入ls,
出現此種狀況,就是因爲沒有對輸入的數據部分,到底輸入的是命令仍是數據,沒有進行區分/判斷,因此致使了問題的出現。    
當輸入|pwd,輸出爲 當前目錄;
當輸入&&pwd,輸出爲 當前目錄;
當輸入&pwd,輸出爲 當前目錄;
計算機漏洞產生的根本根源,用戶向程序輸入的數值,程序自己沒有作過濾,沒有作檢查,沒有作消毒,就直接接收了,接收以後就交給計算機,放到內存裏,讓cpu執行

緩衝區溢出
當緩衝區邊界限制不嚴格時,因爲變量傳入畸形數據或程序運行錯誤,致使緩衝區被「撐暴」,從而覆蓋了相鄰內存區域的數據;
成功修改內存數據,可形成進程劫持,執行惡意代碼,獲取服務器控制權等後果

緩存區:屬於內存中的一個片斷,向程序輸入一些須要程序執行的參數和變量,經過參數和變量傳遞給程序,程序把參數和變量的數據部分提交給計算機,先放到內存中(緩存區屬於內存的一個片斷),而後內存交給cpu運算處理,結果返回給客戶端或寫入到計算機硬盤中保存

本質:程序是動態的,能夠接收用戶輸入的數據,根據用戶輸入的數據,產生不一樣的反饋和結果


緩衝區溢出:若是應用程序沒有參數作限制,會致使命令被執行;若是程序沒有對緩存區邊界大小作限制,會形成用戶提交的數據溢出,當用戶提交大量的數據,大量的數據會蔓延到默認緩衝區大小以外的空間裏,就會致使數據佔用其餘進程或者其餘數據所該有的緩衝區內存裏面的數據內容,從而致使程序奔潰/進程被劫持/執行惡意代碼/獲取服務器控制權等


如何發現漏洞
源碼審計
逆向工程
模糊測試變量
  向程序堆棧半隨機的數據,根據內存變化判斷溢出
  數據生成器:生成隨機、半隨機數據
  測試工具:識別溢出漏洞


源碼審計:接觸到源代碼,在代碼裏檢測相應的安全漏洞,程序是否是使用不安全的函數,用戶數據是否過濾,輸出是否編碼,發現其中的安全漏洞
逆向工程:若是源代碼已經通過封裝編譯打包以後,可能看不到原始代碼的樣子,這時就使用逆向工程,進行反彙編進行逆向工程的分析
模糊測試變量:在拿不到程序的源代碼,可是能夠拿到程序的安裝包,本身構建一個運行環境,把安裝包在運行環境中部署,向程序發送生成隨機、半隨機數據插入到程序中,利用調試工具動態的監測,程序運行過程當中輸入不一樣數值的反饋(根據調式工具檢測程序運行過程當中,對輸入的隨機/半隨機的數據是如何進行響應/反饋)
模糊測試工具:半隨機數值+數據生成器+動態調試工具



WINDOWS 緩衝區溢出
1.FUZZER
SLMail 5.5.0 Mail Server
ImmunityDebugger_1_85_setup.exe
mona.py
http://pan.baidu.com/s/1o6kT6gM

準備工具
軟件:SLMail 5.5.0 Mail Server
調試工具:ImmunityDebugger_1_85_setup.exe  能夠調用python腳本
輔助工具:mona.py
環境:window xp

環境搭建
安裝SLMail 5.5.0 Mail Server
安裝ImmunityDebugger_1_85_setup.exe

思路
向程序發任何字符組合,在服務端使用Debugger調式程序,查看不一樣數據被提交到內存裏執行的過程,會不會發生緩衝區溢出


2.SLMail 5.5.0 Mail Server
  POP3 PASS 命令存在緩衝區溢出漏洞
 無需身份驗證明現遠程代碼執行
  DEP:阻止代碼從數據頁被執行(結合cto特性以及經過操做系統軟件的實現,來防止代碼指令從內存數據頁被執行,以後出現不少繞過)
  ASLR:隨機內存地址加載執行程序和DLL,每次重啓地址變化(動態地址分配)

不建議使用win7/win8的緣由
SLMail 不兼容win7/win8
win7/win8全面支持DEP/ASLR(屬於安全防禦機制)



3.POP3
Nc 110端口
瞭解未知協議
Wireshark
RFC
01.py

python

相關文章
相關標籤/搜索