【內網滲透】— 權限提升分析及防御(6)


前言

在Windwos中,權限大概分為四種,分別是Users、Administrator、System、TrustedInstaller。在這四種權限中,我們經常接收到的是前三種,下面我們對這幾種權限進行分析:

  • Users:普通用戶權限,是系統中最安全的權限(因為分配給該組的默認權限不允許成員修改操作系統的設置或用戶資料)。
  • Administrator:管理員權限,可以利用Windows的機制將自己提升為System權限,以便操作SAM文件等。
  • System:系統權限,可以對SAM等敏感文件進行讀取,往往需要將Administrator權限提升到System權限才可以對散列值進行Dump操作。
  • TrustedInstaller:Windows中的最高權限,對系統文件,即使擁有System權限也無法修改,只有擁有TrustedInstaller權限才可以修改系統文件。

低級別權限將使得滲透測試受到很多限制,因此,在滲透測試中,熟悉提權操作對滲透測試工作有很大的幫助,提升權限的方式分為以下兩類:

  • 縱向提權:低權限角色獲得高權限角色的權限。例如,一個Webshell權限通過提權,擁有了管理員權限,這種權限就是縱向提權,也稱為權限升級。
  • 橫向提權:獲得同級別角色的權限。例如,在系統A中獲得了系統B的權限,就稱為橫向提權。

常見的權限提升方法有系統內核溢出漏洞提權、數據庫提權、錯誤的系統配置提權、組策略首選項提權、Web中間件漏洞提權、DLL劫持提權、濫用高權限令牌提權、第三方軟件/服務提權等,下文我們將對一些常見的提權方法及防范進行分析。

系統內核溢出漏洞提權分析及防范

系統內核溢出漏洞提權分析

系統內核溢出漏洞提權是一種通用的提權方法,攻擊者可以使用該方法繞過系統的所有安全限制。攻擊者利用該漏洞的關鍵是目標系統沒有及時安裝補丁——即使微軟已經針對某個漏洞發布了補丁,但如果系統沒有立即安裝補丁,就會讓攻擊者有機可乘。然而,這種提權方法也存在一定的局限性——如果目標系統的更新工作較為迅速和完善,那么攻擊者想要通過這種方法提權,就必須找到該系統存在的0day漏洞。

知識點

"WMIC"是"Windows Management Instrumentation Command-line"的縮寫,WMIC是Windows平台上最有用的命令行工具,使用WMIC,不僅可以管理本地計算機,還可以管理同一域內的計算機(需要一定的權限),而且在被管理的計算機上不必事先安全WMIC。

WMIC在信息收集和后滲透測試階段是非常實用的,可以調取和查看目標機器的進程、服務、用戶、用戶組、網絡連接、硬盤信息、網絡共享資源、已安裝的補丁、啟動項、已安裝的軟件、操作系統的相關信息和時區等。

系統內核溢出漏洞提權防范

在關於此提權方式的分析中已經提到過了,防范的最好方法就是按時打官方發布的最新補丁O(∩_∩)O

Windows操作系統配置錯誤利用分析及防范

在Windows操作系統中,攻擊者通常會對系統內核溢出漏洞來提權,但是如果無法通過系統內核溢出漏洞提取所在服務器權限的情況,就會利用系統中的配置錯誤來提權,Windows操作系統中常見的配置錯誤包括管理員憑據配置錯誤、服務配置錯誤、故意削弱的安全措施、用戶權限過高等...

系統權限配置錯誤

Windows系統服務文件在操作系統啟動時加載和執行,並在后台調用可執行文件。因此,如果一個低權限的用戶對此類服務調用的可執行文件擁有寫權限,就可以將該文件替換成任意可執行文件,並隨着系統服務的啟動獲得系統權限。Windows服務是以System權限運行對的,因此,其文件夾、文件和注冊表鍵值都是受強訪問控制機制保護的。但是,在某些情況下,操作系統中仍然存在一些沒有得到有效保護的服務。

系統服務權限配置錯誤(可寫目錄漏洞)有如下兩種可能:

  • 服務未運行:攻擊者會使用任意服務替換原來的服務,然后重啟服務。
  • 服務正在運行且無法終止:這種情況符合絕大多數的漏洞利用場景,攻擊者通常會利用DLL劫持技術並嘗試重啟服務來提權。

注冊表鍵AlwaysInstallElevated

注冊表鍵AlwaysInstallElevated是一個策略設置項。Windows允許低權限用戶以System權限運行安裝文件。如果啟用此策略設置項,那么任何權限對的用戶都能以NT AUTHORITY/SYSTEM權限來安裝惡意的MSI(Microsoft Windows Installer)文件。

PathAlwaysInstallElevated漏洞產生的原因

該漏洞產生的原因是用戶開啟了Windows Installer特權安裝功能。

Windows Installer知識點介紹

Windows Installer 是Windows操作系統的組件之一,專門用來管理和配置軟件服務。Windows Installer除了是一個安裝程序,還用於管理軟件的安裝、管理軟件的安裝、管理軟件的添加和刪除、監視文件的還原、通過回滾進行災難恢復等。

Windows Installer分為客戶端安裝服務(Msiexec.exe)和MSI文件兩部分,它們是一起工作的。Windows Installer 通過 Msiexec.exe安裝 MSI文件包含的程序。MSI文件是 Windows Installer的數據包。它實際上是一個數據庫,包含安裝和卸載軟件時需要使用的大量指令和數據。Msiexec.exe用於安裝MSI文件,一般運行Microsoft Update安裝更新或者安裝一些軟件的時候使用,占用內存較多。簡單的說,雙擊MSI文件就會運行Msiexec.exe。

防范PathAlwaysInstallElevated漏洞的方法

禁用注冊表鍵AlwaysInstallElevated。

可信任服務路徑漏洞

可信任服務路徑漏洞分析

可信任服務路徑(包含空格且沒有引號的路徑)漏洞利用了Windows 文件路徑解析的特性,並涉及服務路徑的文件/文件夾權限(存在缺陷的服務程序利用了屬於可執行文件的文件/文件夾的權限)。如果一個服務調用的可執行性文件沒有正確的處理所引用的完整路徑名,這個漏洞就會被攻擊者利用上傳任意可執行文件,也就是說,如果一個服務的可執行文件的路徑沒有被雙引號引起來且包含空格,那么這個服務是有漏洞的。

該漏洞存在如下兩種可能性:

  • 如果路徑與服務有關,就創建任意一個服務或者編譯Service模板
  • 如果路徑與可執行文件有關,就任意創建一個可執行文件

可信任服務路徑漏洞防范

可信任服務路徑漏洞是由開發者沒有將文件路徑用引號引起來導致的。將文件路徑用引號引起來,就不會出現這種問題了。

自動安裝配置文件

網絡管理員在內網中給多台機器配置同一個環境時,通常不會逐台配置,而會會用腳本批量部署的方法。這一過程中,會使用安裝配置文件。這些文件包含所有的安裝配置信息,其中的一些還可能包括本地管理員的賬號和密碼等消息。在進行滲透測試中,可以找到此類相關的文件進行分析。

計划任務

可以使用命令 :schtasks /query /fo LIST /v ,查看計算機的計划任務,如果攻擊者對以高權限運行的任務所在的目錄具有寫權限,就可以使用惡意程序性覆蓋原來的程序,這樣,在計划任務下次執行時,就會以高權限來運行惡意程序。

組策略首選項提權分析及防范

組策略首選項提權簡介

SYSVOL是活動目錄里面的一個用於存儲域公共文件服務器副本的共享文件夾,在域中的所有域控制器之間進行復制。SYSVOL文件夾是安裝活動目錄時自動創建的,主要用來存放登錄腳本、組策略數據及其他域控制器需要的域信息等。SYSVOL在所有經過身份驗證的域用戶或者域信任用戶具有讀權限的活動目錄的域范圍內共享。

在一般的域環境中,所有機器都是腳本化批量部署的,數據量通常很大。為了方便地對所有的機器進行操作,網絡管理員往往會使用域策略進行統一的配置和管理。大多數組織在創建域環境后,會要求加入域的計算機使用域用戶密碼進行登錄驗證。為了保證本地管理員密碼的安全性,這些組織的網絡管理員往往會修改本地管理員密碼。

盡管如此,安全問題依舊存在。通過組策略統一修改的密碼,雖然強度有所提高,但是所有機器的本地管理員密碼都是相同的。攻擊者獲得了一台機器的本地管理員密碼,就相當於獲得了整個域中的所有機器的本地管理員密碼。

針對組策略首選項提權的防御措施

在用於管理組策略的計算機上安裝KB2962486補丁,防止新的憑據被放置在組策略首選項中。

此外,需要對訪問權限進行設置,具體建議如下:

  • 設置共享文件夾SYSVOL的訪問權限
  • 將包含組策略密碼的xml文件從SYSVOL目錄中刪除
  • 不要把密碼放在所有域用戶都有權訪問的文件中
  • 如果需要更改域中機器的本地管理員密碼,建議使用LAPS

繞過UAC提權分析及防范

UAC簡介

UAC(User Account Control,用戶賬戶控制)是微軟為提高系統安全性在Windows Vista中引入的技術。UAC要求用戶在執行可能影響計算機運行的操作或者在進行可能影響其他用戶的設置之前,擁有相應的權限或者管理員密碼。UAC在操作系統啟動前對用戶身份進行驗證,以避免惡意軟件和間諜軟件在未經許可的情況下在計算機上進行安裝操作或者對計算機設置進行修改。

在Windows Vista及更高的版本的操作系統中,微軟設置了安全控制策略,分為高、中、低三個等級。高等級的進程有管理員權限;中等級的進程有普通用戶權限;低等級的進程,權限是有限的,以保證系統在收到安全威脅時造成的損害最小。

UAC有如下四種設置要求:

  • 始終通知:這是最嚴格的要求,每當有程序使用高級別的權限時都會提示本地用戶。
  • 僅在程序試圖更改我的計算機時通知我:這是UAC的默設置。當本地的Windows程序要使用高級別的權限時,不會通知用戶。但是,當第三方程序要使用高級別權限時,會提示本地用戶。
  • 僅在程序試圖更改我的計算機時通知我(不降低桌面亮度):與上一條設置的要求相同,但是在提示時用戶不簡單桌面的亮度。
  • 從不提示:當用戶為系統管理員時,所有程序都會以最高權限運行。

繞過針對UAC提權的防御措施

在企業環境中,防止繞過UAC的最好辦法是不讓內網機器的使用者擁有本地管理員權限,從而降低系統遭受攻擊的可能性。

在家庭網絡環境中,建議使用非管理員權限進行日常辦公與娛樂活動。使用本地管理員權限登錄的用戶,要將UAC設置為"始終通知"或者刪除該用戶的本地管理員權限。

此外,可以使用微軟的EMET或者MalwareBytes來更好地防范0day漏洞。

令牌竊取分析與防范

令牌竊取提權簡介

令牌(TOKEN)是指系統中的臨時秘鑰,相當於用戶和密碼,用於決定是否允許那個錢請求及判斷當前請求是屬於那個用戶的。獲得了令牌,就可以在不提供密碼或其他憑證的情況下訪問網絡和系統資源,這些令牌將持續存在域於系統中(除非系統重新啟動)。

令牌最大的特點是隨機性和不可預測性。一般的攻擊者或軟件都無法將令牌猜測出來。訪問令牌(Access Token)代表訪問控制操作主題的系統對象。密保令牌(Security Token)也叫作認證令牌或者硬件令牌,是一種用於實現計算機身份校驗的物理設備。會話令牌(Session Token)是交會話中唯一的身份標識符。

偽造令牌攻擊的核心是Kerberos協議。Kerberos協議是一種網絡認證協議,其設計的目的是通過密鑰系統為客戶機/服務器應用程序提供強大的認證服務。

客戶端登錄服務器后,攻擊者就能通過入侵服務器來竊取客戶端的令牌。

令牌竊取提權的防御措施

針對令牌竊取提權的防御措施如下:

  • 及時安裝微軟推送的補丁
  • 對於來路不明的或者危險的軟件,既不要在系統中使用,也不要在虛擬機中使用
  • 對令牌的時效性進行限制,以防止散列值被破解后泄露有效的令牌信息
  • 對於令牌,應采取加密存儲及多長驗證保護
  • 使用加密鏈路SSL/TLS傳輸令牌,以防止被中間人竊聽

無憑證條件下的權限獲取分析及防范

LLMNR和NetBIOS欺騙攻擊的基本概念

LLMNR

本地鏈路多播名稱解析(LLMNR)是一種域名系統數據包格式。當局域網中的DNS服務器不可用時,DNS客戶端會使用LLMNR解析本地網段中機器的名稱,直到DNS服務器恢復為止。從Windows Vista 版本開始支持LLMNR,LLMNR支持IPv6.。

NetBIOS

NetBIOS是一種網絡協議,一般用在由十幾台計算機組成的局域網中(根據NetBIOS協議廣播獲得計算機名稱,並將其解析為相應的IP地址)。在Windows NT以后版本的所有操作系統中均可使用NetBIOS。NetBIOS不支持IPv6。

Net-NTLM Hash

NTLM Hash是指Windows 操作系統的Secutiry Account Manager 中保存的用戶密碼的散列值。NTLM Hash通常保存在Windows的SAM文件或者NTDS.DIT數據庫中,用於對訪問資源的用戶進行身份驗證。

Net-NTLM Hash是指在網絡環境中經過NTML認證的散列值。使用Responder抓取的通常就是Net-NTLM Hash。

LLMNR和NetBIOS欺騙攻擊分析

假設目標網絡的DNS服務器發生故障而無法提供服務時,會退回LLMNR和NBT-NS進行計算機名稱解析。

Responder是監聽LLMNR和NBT-NS協議的工具之一,能抓取網絡中所有的LLMNR和NBT-NS請求並進行響應,獲取最初的賬戶憑證。

在滲透測試中,使用Responder並啟動回應請求功能,Responder會自動回應客戶端的請求並聲明自己就是被輸入了錯誤計算機名的那台機器,然后嘗試建立SMB連接。客戶端會發送自己的Net-NTLM Hash進行身份驗證,此時將得到目標機器的Net-NTLM Hash。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM