漏洞發掘技術,思路解析

2021-09-24 11:58:56 字數 3270 閱讀 1948

1. 從使用者群體分類:

●大眾類軟體的漏洞。如windows的漏洞、ie的漏洞等等。

●專用軟體的漏洞。如oracle漏洞、apache漏洞等等。

2. 從資料角度看分為:

●能讀按理不能讀的資料,包括記憶體中的資料、檔案中的資料、使用者輸入的資料、資料庫中的資料、網路上傳輸的資料等等。

●能把指定的內容寫入指定的地方(這個地方包括檔案、記憶體、資料庫等)

●輸入的資料能被執行(包括按機器碼執行、按shell**執行、按sql**執行等等)

3.從作用範圍角度看分為:

●遠端漏洞,攻擊者可以利用並直接通過網路發起攻擊的漏洞。這類漏洞危害極大,攻擊者能隨心所欲的通過此漏洞操作他人的電腦。並且此類漏洞很容易導致蠕蟲攻擊,在windows。

●本地漏洞,攻擊者必須在本機擁有訪問許可權前提下才能發起攻擊的漏洞。比較典型的是本地許可權提公升漏洞,這類漏洞在unix系統中廣泛存在,能讓普通使用者獲得最高管理員許可權。

4.從觸發條件上看可以分為:

●主動觸發漏洞,攻擊者可以主動利用該漏洞進行攻擊,如直接訪問他人計算機。

●被動觸發漏洞,必須要計算機的操作人員配合才能進行攻擊利用的漏洞。比如攻擊者給管理員發一封郵件,帶了乙個特殊的jpg檔案,如果管理員開啟檔案就會導致看圖軟體的某個漏洞被觸發,從而系統被攻擊,但如果管理員不看這個則不會受攻擊。

5.從操作角度看可分為:

◇寫入內容可被控制,從而可偽造檔案內容,導致許可權提公升或直接修改重要資料(如修改存貸資料),這類漏洞有很多,如歷史上oracle tns log檔案可指定漏洞,可導致任何人可控制執行oracle服務的計算機;

◇內容資訊可被輸出,包含內容被列印到螢幕、記錄到可讀的日誌檔案、產生可被使用者讀的core檔案等等,這類漏洞在歷史上unix系統中的crontab子系統**現過很多次,普通使用者能讀受保護的shadow檔案;

●記憶體覆蓋,主要為記憶體單元可指定,寫入內容可指定,這樣就能執行攻擊者想執行的**(緩衝區溢位、格式串漏洞、ptrace漏洞、歷史上windows2000的硬體除錯暫存器使用者可寫漏洞)或直接修改記憶體中的機密資料。

●邏輯錯誤,這類漏洞廣泛存在,但很少有正規化,所以難以查覺,可細分為:

◇條件競爭漏洞(通常為設計問題,典型的有ptrace漏洞、廣泛存在的檔案操作時序競爭)

◇策略錯誤,通常為設計問題,如歷史上freebsd的smart io漏洞。

◇演算法問題(通常為設計問題或**實現問題),如歷史上微軟的windows 95/98的共享口令可輕易獲取漏洞。

◇設計的不完善,如tcp/ip協議中的3步握手導致了syn flood拒絕服務攻擊。

◇實現中的錯誤(通常為設計沒有問題,但編碼人員出現了邏輯錯誤,如歷史上博彩系統的偽隨機演算法實現問題)

●外部命令執行問題,典型的有外部命令可被控制(通過path變數,輸入中的shell特殊字元等等)和sql注入問題。

6. 從時序上看可分為:

●已發現很久的漏洞:廠商已經發布補丁或修補方法,很多人都已經知道。這類漏洞通常很多人已經進行了修補,巨集觀上看危害比較小。

●0day:還沒有公開的漏洞,在私下交易中的。這類漏洞通常對大眾不會有什麼影響,但會導致攻擊者瞄準的目標受到精確攻擊,危害也是非常之大。

漏洞利用的視角有:

●資料視角:訪問本來不可訪問的資料,包括讀和寫。這一條通常是攻擊者的核心目的,而且可造成非常嚴重的災難(如銀行資料可被人寫)。

●許可權視角:主要為許可權繞過或許可權提公升。通常許可權提公升都是為了獲得期望的資料操作能力。

●可用性視角:獲得對系統某些服務的控制許可權,這可能導致某些重要服務被攻擊者停止而導致拒絕服務攻擊。

●認證繞過:通常利用認證系統的漏洞而不用受權就能進入系統。通常認證繞過都是為許可權提公升或直接的資料訪問服務的。

●**執行角度:主要是讓程式將輸入的內容作為**來執行,從而獲得遠端系統的訪問許可權或本地系統的更高許可權。這個角度是sql注入、記憶體指標遊戲類漏洞(緩衝區溢位、格式串、整形溢位等等)等的主要驅動。這個角度通常為繞過系統認證、許可權提公升、資料讀取作準備的。

●fuzz測試(黑盒測試),通過構造可能導致程式出現問題的方式構造輸入資料進行自動測試。

●原始碼審計(白盒測試),現在有了一系列的工具都能協助發現程式中的安全bug,最簡單的就是你手上最新版本的c語言編譯器。

●ida反彙編審計(灰盒測試),這和上面的原始碼審計非常類似,唯一不同的是很多時候你能獲得軟體,但你無法拿到原始碼來審計,但ida是乙個非常強大的反彙編平台,能讓你基於彙編碼(其實也是原始碼的等價物)進行安全審計。

●動態跟蹤分析,就是記錄程式在不同條件下執行的全部和安全問題相關的操作(如檔案操作),然後分析這些操作序列是否存在問題,這是競爭條件類漏洞發現的主要途徑之一,其他的汙點傳播跟蹤也屬於這類。

●補丁比較,廠商的軟體出了問題通常都會在補丁中解決,通過對比補丁前後檔案的原始碼(或反彙編碼)就能了解到漏洞的具體細節。

以上手段中無論是用哪種都涉及到乙個關鍵點:需要通過人工分析來找到全面的流程覆蓋路徑。分析手法多種多樣,有分析設計文件、分析原始碼、分析反彙編**、動態除錯程式等。

1 可遠端獲取os、應用程式版本資訊。

2 開放了不必要或危險得服務,可遠端獲取系統敏感資訊。

3 可遠端進行受限的檔案、資料讀取。

4 可遠端進行重要或不受限檔案、資料讀取。

5 可遠端進行受限檔案、資料修改。

6 可遠端進行受限重要檔案、資料修改。

7 可遠端進行不受限得重要檔案、資料修改,或對普通服務進行拒絕服務攻擊。

8 可遠端以普通使用者身份執行命令或進行系統、網路級的拒絕服務攻擊。

9 可遠端以管理使用者身份執行命令(受限、不太容易利用)。

10 可遠端以管理使用者身份執行命令(不受限、容易利用)。

本地漏洞幾乎都是導致**執行,歸入上面的10分制可以為:

遠端主動觸發**執行(如ie的漏洞).

遠端被動觸發**執行(如word漏洞/看圖軟體漏洞).

乙個攻擊者的目的是修改oracle資料庫中的帳單表的資料。

其可能的攻擊步驟為:

●1.接入運維部的網路,獲得乙個運維部的ip位址從而能通過防火牆訪問被保護的unix伺服器。

●2.利用apache服務的某遠端緩衝區溢位漏洞直接獲得乙個nobody許可權的shell訪問。

●3.利用作業系統某suid程式的漏洞將自己的許可權提公升到root許可權。

●4.用oracle的sysdba登陸進入資料庫(本地登陸不需要密碼)。

●5.修改目標表的資料。

以上5個過程分析下來為:

●第1步:認證繞過

●第2步:遠端漏洞、**執行(機器碼)、認證繞過

●第3步:許可權提公升、認證繞過

●第4步:認證繞過

●第5步:資料寫入

php新的漏洞利用技術 phar 解析

概要來自secarma的安全研究員sam thomas發現了一種新的漏洞利用方式,可以在不使用php函式unserialize 的前提下,引起嚴重的php物件注入漏洞。這個新的攻擊方式被他公開在了美國的blackhat會議演講上,演講主題為 不為人所知的php反序列化漏洞 它可以使攻擊者將相關漏洞的...

漏洞復現 Nginx解析漏洞

該漏洞與nginx php版本無關,屬於使用者配置不當造成的解析漏洞。漏洞的本質實際上就是由於fcgi和web server對script路徑級引數的理解不同出現的問題,這是典型的因為跨系統語境不同導致對同乙個請求的不同解釋導致的漏洞。vulhub下環境搭建 2.瀏覽器訪問指定url http 19...

解析漏洞總結

iis 6.0 解析利用方法有兩種 1.目錄解析 檔案解析 第一種,在 下建立資料夾的名字為 asp asa 的資料夾,其目錄內的任何副檔名的檔案都被 iis當作 asp檔案來解析並執行。例如建立目錄 wooyun.asp 那麼 wooyun.asp 1.jpg 將被當作 asp檔案來執行。假設黑闊...