1、 溢出漏洞就像杯子里裝水,水多了杯子裝不進去,就會把里面的水溢出來.而相對計算機來說計算機有個地方叫緩存區,程序的緩存區長度是被事先設定好的,如果用戶輸入的數據超過了這個緩存區的長度,那么這個程序就會溢出了.緩存區溢出漏洞主要是由于許多軟件沒有對緩存區檢查而造成的.
2、 實戰操作
假設我們這里拿到了一個webshell,目標是一個asp的網站
首先我們來看一下,能不能執行命令,執行whoami,是一個普通用戶
看起來是一個普通用戶,我們添加賬號密碼,卻是不行,意思就是權限不夠,不能進行一個添加賬號的操作,那么我們接下來的操作就是要把cmd的權限升為具備管理員權限的一個狀態,或者是比管理員權限更高的一個system權限上去
一般來說,我們在內網,會先看這個遠程溢出或者遠程代碼執行,然后到這個服務器密碼的查找,但是我們可以先嘗試本地溢出,因為前面兩個的概率會比較小一點,那些漏洞影響范圍特別大,管理員一般都會對這個漏洞進行一方面的修補,后面的提權洞因為這些影響范圍不那么大,那管理員就會忽略掉。我,們systeminfo看一下相關的信息
看到后面,它這里確定是一臺32位的系統,所以我們傳exp的時候,就要小心了,就不能傳64位的了,要傳32位的了。
我們這里搜索一下它這臺機器打的一個補丁,相關的提示如下,這個補丁是一個franm的一個更新,看到這,就可以確定這臺機器沒有打什么補丁的了。
沒打什么補丁的話,其實不管打沒打補丁,我們提權使用exp的話,從最新的依次往舊的全部試一遍,看一下能不能成功, 為什么要確定補丁號?就是說被提權環境它的這個環境設置千變萬化各種情況它都有,包括我們今天要學習的這個溢出利用到了漏洞有些是不太穩定的,所以我們這次就從最新的8120開始到舊的去嘗試。在github.com上面找到相關的漏洞exp,,成功率也是比較高的,下載好exp上傳到webshell
我上傳了一個cmd和8120的exp
.
Cd進入到我們上傳exp的那個目錄,然后看當前的文件確認一下
它這里的結果是以system方式去執行
我們添加用戶,還是拒絕訪問,權限不夠,說明這個exp沒有提權成功。
既然上面的那個不行,我們來試一下0213這個,github上面有編譯好的,我們下載上傳到webshell
執行這個exp獲取到了system權限
添加一個賬號也成功,到這里算是一個提權成功的一個效果
最后總結,我們在提權的過程中是有點繁瑣,但是耐心去發現問題和嘗試各種手段,也離成功不遠了。