Windows 系統提權方式匯總

在滲透測試中,提升自己的權限是經常遇到的問題,往往在滲透中最容易獲取的權限就是一個webshell,如果網站是架設在Windows系統上的,這時就可能遇到這樣的問題,還有一種情況是在做橫向滲透的時候,收集到一些可以遠程連接桌面的帳號,這是也需要,在實際的滲透中有很多的地方會需要這個操作,這個系列就主要介紹各種提權的方式。
提權基礎
在提權之前首先要做的是對系統的操作系統信息做一些信息收集,關于信息收集的介紹請看之前的文章《Windows環境下的信息收集》,這里簡單提一下這幾條命令:
systeminfo | findstr OS #獲取系統版本信息
hostname #獲取主機名稱
whomai /priv #顯示當前用戶的安全特權
quser or query user #獲取在線用戶
netstat -ano | findstr 3389 #獲取rdp連接來源IP
dir c:\programdata\ #分析安裝殺軟
wmic qfe get Caption,Description,HotFixID,InstalledOn #列出已安裝的補丁
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber #獲取遠程端口
tasklist /svc | find "TermService" + netstat -ano #獲取遠程端口
溢出提權
溢出提權是在提權過程中最通用的,但是其利用的關鍵點在于目標系統安全補丁打的不夠及時,才會讓攻擊者有機可乘,這里大概列一下比較新的溢出exp。

WINDOWS錯誤系統配置
有時候由于運營者的錯誤配置可能給我們提權提供便利,提高我們的提權成功率,下面就對這個方面的提權方法做一個簡單的介紹。
可信任服務路徑
“Trusted Service Paths”漏洞是由系統中的“CreateProcess”函數引起的,利用了windows文件路徑解析的特性,并涉及了服務路徑的文件/文件夾權限,存在缺陷的服務程序利用了屬于可執行文件的文件/文件夾權限。如果權限合適,我們可以上傳惡意可執行文件。簡單講就是查找系統服務文件中存在非引用路徑。如果一個服務調用可執行文件,沒有正確處理引用的全路徑名,就可以利用這個漏洞。metasploit集成了trusted_service_path(http://www.zeroscience.mk/codes/msfsession.txt)漏洞利用模塊。
產生原因
windows服務通常都是以System權限運行的,所以系統在解析服務的二進制文件對應的文件路徑中的空格的時候也會以系統權限進行解析。如果我們能利用這一特性,就有機會進行權限提升。例如,有如下的文件路徑:
C:\Program Files\Some Folder\Service.exe
對于上面文件路徑中的每一個空格,windows都會嘗試尋找并執行名字與空格前的名字相匹配的程序。操作系統會對文件路徑中空格的所有可能進行嘗試,直到找到一個匹配的程序。以上面的例子為例,windows會依次嘗試確定和執行下面的程序:
C:\Program.exeC:\Program Files\Some.exeC:\Program Files\Some Folder\Service.exe
所以如果我們能夠上傳一個適當命名的惡意可執行程序在受影響的目錄,服務一旦重啟,我們的惡意程序就會以system權限運行(大多數情況下)。
利用步驟
1.檢測目標主機是否存在該漏洞
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows" |findstr/i /v """
如果存在以下結果則表示存在:
FABS - Helping agent for MAGIX media database Fabs C:\Program Files (x86)\Common Files\MAGIX Services\Database\bin\FABS.exe /DisableUI Auto