
關於PersistenceSniper
PersistenceSniper是一款功能強大的PowerShell模塊,該工具專為藍隊研究人員、安全應急事件響應人員和系統管理員設計,旨在幫助大家尋找Windows系統中的持久化植入程序。該工具目前正在積極開發中,可能隨時會更新,請確保在使用該工具前已升級到了最新版本。
支持檢測的持久化技術Image File Execution OptionsNatural Language Development Platform 6 DLL Override PathWindows Error Reporting DebuggerWindows Error Reporting ReflectDebuggerWindows Terminal startOnUserLoginAppCertDlls DLL InjectionGroup Policy Extensions DLLsUser Init Mpr Logon ScriptAutodialDLL Winsock InjectionServerLevelPluginDll DNS Server DLL HijackingLSA Authentication Packages DLLLSA Security Packages DLLWinlogon Notify Packages DLLTerminal Services InitialProgramAccessibility Tools Backdoor工具下載
廣大研究人員可以使用下列命令將該項目源碼克隆至本地:git clone https://github.com/last-byte/PersistenceSniper.git工具使用
PersistenceSniper的使用非常簡單,以管理員權限運行PowerShell,然後運行下列命令:PSC:\>gitclonehttps://github.com/last-byte/PersistenceSniperPSC:\>Import-Module.\PersistenceSniper\PersistenceSniper\PersistenceSniper.psd1PS C:\> Find-AllPersistence
如果你想保持PersistenceSniper為PowerShell Galley中的最新版本,以管理員權限運行PowerShell,然後運行下列命令即可:PSC:\>Install-ModulePersistenceSniperPSC:\>Import-ModulePersistenceSniperPS C:\> Find-AllPersistence
如果你需要了解工具的所有參數和解釋,可以在導入模塊之後運行下列命令:Get-Help -Name Find-AllPersistence -Full如果你想檢測單個持久化技術,可以使用Find-AllPersistence的PersistenceMethod參數。比如說,你想通過Run和RunOnce註冊表鍵來檢測持久化植入程序,可以運行下列命令:PS C:\> Find-AllPersistence -PersistenceMethod RunAndRunOnce
PersistenceSniper的Find-AllPersistence會返回一個包含了PSCustomObject對象的數組,其中包含下列屬性:
$PersistenceObject=[PSCustomObject]@{'ComputerName'=$ComputerName'Technique'=$Technique'Classification'=$Classification'Path'=$Path'Value'=$Value'AccessGained'=$AccessGained'Note'=$Note'Reference'=$Reference'Signature'=Find-CertificateInfo(Get-ExecutableFromCommandLine$Value)'IsBuiltinBinary'=Get-IfBuiltinBinary(Get-ExecutableFromCommandLine$Value)'IsLolbin'=Get-IfLolBin(Get-ExecutableFromCommandLine$Value)}
此時我們就可以對輸出進行格式化和過濾了。如果你想查看允許攻擊者獲取NT AUTHORITY\SYSTEM權限的持久化技術,可以運行下列命令:
PS C:\> Find-AllPersistence | Where-Object "Access Gained" -EQ "System"
當然了,由於PersistenceSniper是一款基於PowerShell的工具,我們還可以將其輸出發送給Out-GridView來通過GUI界面進行交互:
處理假陽性
PersistenceSniper在搜索持久化技術的時候,可能會出現誤報的情況,因為很多合法軟件也會使用其中的部分技術。為此,我們可以通過創建一個包含已知誤報的CSV文件來解決這個問題。這裡我們可以使用Find-AllPersistence,配合其他參數,我們可以直接將查找到的輸出保存到一個CSV文件中(或作為輸入以對結果分類):PS C:\> Find-AllPersistence -DiffCSV false_positives.csv
許可證協議
本項目的開發與發布遵循CC0-1.0開源許可證協議。項目地址
https://github.com/last-byte/PersistenceSniper參考資料:https://www.powershellgallery.com/packages/PersistenceSniper/1.0https://docs.microsoft.com/en-us/sysinternals/downloads/autorunshttps://www.hexacorn.com/blog/2017/01/28/beyond-good-ol-run-key-all-parts/https://lolbas-project.github.io/https://twitter.com/dottor_morte