在前幾篇的博客中:我介紹了OpenVAS和Nessus這兩個強大的自動化漏洞掃描器
但是,在計算機領域中有種叫做0day漏洞:沒有公開只掌握在某些人手中
那么,這些0day漏洞是如何被發現的呢?
接下來就介紹下這一類漏洞中最典型的一種:緩沖區溢出
通過緩沖區溢出,甚至可以控制目標機器
什么是緩沖區:內存中一個片段
使用程序,就會調用參數和變量,程序會提交數據給計算機,先放入內存,
再交由CPU運算處理,然后可能會寫入計算機硬盤進行保存。
程序不像是圖片文字不變的,它會根據用戶的操作而有不同的反應
計算機所有漏洞基本原理:程序提交給計算機一段代碼和一些數據,而我們使用一些手段
使計算機把代碼當成數據,把數據當成代碼,然后錯誤執行,這樣就會導致一些內存注入漏洞
進而,可以破壞程序,甚至是提權
接下來用一個shell腳本來分析基本的漏洞:
#!/bin/bash echo $1
這個腳本很簡單
功能:執行的時候輸出你輸入的參數
比如我輸入一個666(第一行是給腳本執行權限)

這樣的話腳本執行沒問題,但是,我如果后邊輸入的不是666,而是一段系統指令,結果會怎樣呢?

發現並沒有執行異常,是不是說明這個腳本就沒有漏洞呢?
不是,加個分號,結果就不一樣了
(其實,用|或&或其他一些字符,都可以導致執行異常)

看到這里並沒有輸出;ls,而是執行了ls命令
接下來,就可以用nc命令連接服務器,控制服務器等等
那么我們如何去發現緩沖區漏洞呢?
通常發現漏洞的方式:
1.源碼審計:需要有源碼
2.逆向工程:另外一個領域
3.模糊測試:重點關注
這里要注意模糊測試:
向程序堆棧發送半隨機的數據,根據內存變換判斷溢出
這里就要用到數據生成器,測試工具
可以使用別人寫好的數據生成工具,當然如果可以自己寫,功能會更有針對性
接下來看看具體的緩沖區溢出案例:
Windows系統的緩沖區溢出:
這里會使用一個有緩沖區溢出漏洞的程序SLMail5.5
還有一個需要用到的工具:ImmunityDebug1.85
一個小工具:mona-master.zip
我把他們上傳到了百度網盤:
鏈接:https://pan.baidu.com/s/1H4QqRnG2d9_lBTM1czxJ7A
提取碼:9t6c
測試來看,不建議使用本機,開一個win2003虛擬機即可
高版本WINDOWS也不建議,漏洞一般都被微軟處理了
安裝郵件服務器
注意記住IP,等會測試這個IP

后邊這一項注意:由於只是本地虛擬機之間測試,選擇如下

后邊隨便設置一個域名:

這樣一步一步安裝好之后重啟電腦,查看端口,如果開放了這幾個端口,那么就安裝成功!

為確保安裝完成,再次檢查service:

發現這幾個和郵件相關的服務都啟動了,注意為了測試把windows機器的防火牆關了
接下來安裝調試工具:ImmunityDebugger
這個不必多說,下一步點擊傻瓜式安裝即可
安裝好之后,打開安裝目錄,把剛才我提供的MONA.PY放到PYCOMMONDS文件夾中

准備工作到此完成
開啟Kali機器准備測試:
連接目標機器25端口:

繼續測試發現110端口也是開啟狀態:

到這里准備工作就做完了
接下來我們使用Kali機器對郵件服務器發送命令來模糊測試緩沖區溢出
