Windows自動化指令碼提權
原文:
ofollow,noindex">http://www.hackingarticles.in/window-privilege-escalation-via-automated-script/大家都知道,當我們入侵了一臺伺服器並拿到了低許可權shell時需要進行提權。
本文就來講解如何提權並判斷哪些低許可權的shell可以提升到高階許可權。
目錄
介紹
提權向量
windows-Exploit-Suggester
Windows Gather Applied Patches
sherlock
JAWS—另一種Windows遍歷指令碼
PowerUp
介紹
提權一般是在攻擊者已經成功入侵受害者的主機後的一個過程,在這個過程中,攻擊者要嘗試收集關於系統的更多關鍵資訊,比如隱藏的密碼和某些配置不當的服務與應用等。所有這些資訊都會幫助攻擊者對受害主機進行後滲透以便拿到高許可權的shell。
提權向量
下面這些資訊是Windows系統中的關鍵資訊:
作業系統版本
已安裝或正在執行的存在漏洞的安裝包
具有完全控制或修改許可權的檔案和資料夾
對映驅動器
引人注意的異常檔案
不帶引號的服務路徑
網路資訊(介面,arp,netstat等)
防火牆狀態和規則
執行程序
AlwaysInstallElevated登錄檔項檢查
儲存的憑證
DLL劫持
計劃任務
在滲透測試過程中,有一些指令碼能夠幫你快速識別Windows系統中的提權向量,本文我們就來一一詳細講解。
Windows-Exploit-suggester
如果你已經獲得了受害主機的低許可權meterpreter會話或者命令會話,那麼你就可以使用這個指令碼。
這個指令碼會告訴你本地可用的exp。這些給出的exp是根據受害主機的作業系統平臺和架構,還有根據本地可用的exp來選擇的。需要注意的是,並不是所有的exp都可以有效利用。需要根據下列條件來選擇exp:會話型別,平臺,架構還有所需的預設選項等。
使用該指令碼非常簡單,輸入下列命令即可:
use post/multi/recon/local_exploit_suggester msf post(local_exploit_suggester) > set lhost 192.168.1.107 msf post(local_exploit_suggester) > set session 1 msf post(local_exploit_suggester) > exploit
從圖片中可以看到,指令碼已經檢測出了哪些exp可以利用並且能夠進行提權。
Windows Gather Applied Patches
這個模組會根據WMI查詢的結果來遍歷Windows系統中安裝的補丁,WMI查詢語句如下:
SELECT HotFixID FROM Win32_QuickFixEngineering
指令碼用法:
use post/windows/gather/enum_patches msf post(enum_patches) > set session 1 msf post(enum_patches) > exploit
如圖所示,該指令碼已經根據補丁顯示了受害主機存在哪些漏洞和對應的能夠提權的exp。
sherlock
這是一個Powershell指令碼,能夠快速找到缺失的軟體補丁並進行本地提權。這個指令碼跟上面的指令碼類似,能夠找到受害主機存在哪些漏洞和對應的可以提權的exp。
使用下面的命令從GitHub上下載指令碼,當你獲取一個受害主機的meterpreter會話時執行指令碼,如下所示:
git clone https://github.com/rasta-mouse/Sherlock.git
由於這個指令碼是在powershell中執行的,所以需要先載入powershell,然後再匯入這個下載的指令碼:
load powershell
powershell_import '/root/Desktop/Sherlock/Sherlock.ps1'
powershell_execute “find-allvulns”
上面的命令會輸出目標靶機存在的漏洞和可以用來提權的exp,如圖:
JAWS—另一個Windows遍歷指令碼
JAWS也是一個powershell指令碼,目的是為了幫助滲透測試員和CTF選手快速識別Windows主機上的提權向量。該指令碼是用powershell2.0編寫的,所以在win7之後的主機上都可以執行。
當前功能
網路資訊收集(介面,arp,netstat)
防火牆狀態和規則
執行的程序
具有完全控制權限的檔案和資料夾
對映驅動器
引人注意的異常檔案
不帶引號的服務路徑
近期使用的文件
系統安裝檔案
AlwaysInstallElevted登錄檔項檢查
儲存的憑證
安裝的應用
潛在的漏洞服務
MuiCache檔案
計劃任務
使用下面的命令下載指令碼:
git clone https://github.com/411Hall/JAWS.git
一旦你獲得了meterpreter會話,上傳這個指令碼然後在命令列中執行:
powershell.exe -ExecutionPolicy Bypass -File .jaws-enum.ps1 -OutputFilename JAWS-Enum.txt
它會將關鍵資訊儲存在JAWS-Enum.txt檔案中。
前面說到過,JAWS-Enum.txt這個檔案儲存著能夠進行提權的向量,現在我們開啟這個檔案來看看結果。
下圖中顯示了所有的使用者名稱和IP配置資訊。
也可以清楚的看到netstat的結果,如圖:
正在執行的程序和服務
所有安裝的程式和補丁
還可以看到具有完全控制和修改許可權的資料夾
當然,執行這個指令碼還能提取到更多的關鍵資訊,大家可以自己摸索一下。
PowerUp
PowerUp是一個powershell工具,能夠協助在Windows系統上進行本地許可權提升。PowerUp的目的是整合所有因為配置錯誤而導致的Windows本地許可權提權向量。
執行Invoke-Allchecks會輸出所有可識別的漏洞。
當前功能
服務遍歷
Get-ServiceUnquoted–返回名字中有空格且未加引號的服務路徑
Get-ModifiableServiceFile—返回當前使用者可以向服務二進位制路徑和配置檔案寫入的服務
Get-ModifiableService—返回當前使用者可以修改的服務
Get-ServiceDetail—返回指定服務的詳細資訊
服務濫用
Invoke-ServiceAbuse—修改存在漏洞的服務,建立本地管理員或執行自定義的命令
Write-ServiceBinary—編寫經過修改的C#服務二進位制檔案來新增本地管理員或執行自定義命令
Install-ServiceBinary—替換服務二進位制檔案來新增本地管理員或執行自定義命令
Restore-ServiceBinary—使用原始可執行檔案恢復已經替換的服務二進位制檔案
DLL劫持
Find-ProcessDLLHijack—發現當前正在執行的程序是否存在DLL劫持
Find-PathDLLHijack—查詢環境變數“%PATH%是否存在DLL劫持”
Write-HijackDll—編寫可劫持的DLL
登錄檔檢查
Get-RegistryAlwaysInstallElevated—檢查是否設定了AlwaysInstallElevated登錄檔項
Get-RegistryAutoLogon—檢查登錄檔中是否有AutoLogon憑證
Get-ModifiableRegistryAutoRun—在HKLM autoruns中檢查任何可修改的二進位制檔案/指令碼或配置檔案
前面提到過,PowerUp是powersploit的一個模組,所以我們需要下載powersploit,使用下面的命令從GitHub上下載:
git clone https://github.com/Shell/">PowerShellMafia/PowerSploit.git
然後切換到Powersploit目錄下,可以看到powerup指令碼
cd PowerSploit ls cd Privesc ls
如圖所示: