Script ini bertujuan untuk mengidentifikasi kerentanan Eskalasi Hak Hak Hak Privilege lokal (LPE) yang biasanya disebabkan oleh masalah konfigurasi Windows, atau praktik buruk. Ini juga dapat mengumpulkan informasi yang berguna untuk beberapa tugas eksploitasi dan pasca-eksploitasi.
Setelah mengunduh skrip dan menyalinnya ke mesin Windows target, jalankan menggunakan salah satu perintah di bawah ini.
Catatan
Anda tidak perlu mengkloning seluruh repositori. File PrivescCheck.ps1 adalah skrip PowerShell mandiri yang berisi semua kode yang diperlukan oleh PrivescCheck untuk dijalankan.
Penting
Dalam perintah di bawah ini, yang pertama . (DOT) digunakan untuk "sourcing titik" skrip, sehingga fungsi dan cmdlet dapat digunakan dalam ruang lingkup saat ini (lihat fitur Sourcing Dot PowerShell).
Identifikasi masalah penting dengan cepat, seperti kerentanan eskalasi hak istimewa lokal.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck "Identifikasi masalah penting, tetapi juga kumpulkan informasi tambahan, dan simpan hasilnya untuk melaporkan file yang mudah dibaca.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML "Lakukan pemeriksaan yang diperluas dan audit, dan simpan hasilnya ke laporan yang dapat dibaca manusia, tetapi juga file yang dapat dibaca mesin, yang nantinya dapat diuraikan untuk pembuatan laporan otomatis.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Audit -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML,CSV,XML " Semua cek yang diimplementasikan di PrivesCcheck memiliki jenis . Nilai ini, dan bendera yang ditentukan pada baris perintah, akan menentukan apakah mereka dijalankan, atau tidak.
Cek tipe Base akan selalu dieksekusi, kecuali skrip dijalankan sebagai administrator. Mereka terutama dimaksudkan untuk mengidentifikasi kerentanan eskalasi hak istimewa, atau masalah penting lainnya.
Pemeriksaan tipe Extended hanya dapat dieksekusi jika opsi -Extended ditentukan pada baris perintah. Mereka terutama dimaksudkan untuk memberikan informasi tambahan yang dapat berguna untuk pengembangan eksploitasi, atau pasca eksploitasi.
Pemeriksaan tipe Audit hanya dapat dieksekusi jika opsi -Audit ditentukan pada baris perintah. Mereka terutama dimaksudkan untuk memberikan informasi yang relevan dalam konteks audit konfigurasi.
Pemeriksaan tipe Experimental hanya dapat dieksekusi jika opsi -Experimental ditentukan pada baris perintah. Ini adalah cek tidak stabil yang membutuhkan pekerjaan lebih lanjut. Gunakan dengan hati -hati.
Secara default, kebijakan eksekusi PowerShell diatur untuk Restricted pada klien, dan RemoteSigned pada server, ketika proses powershell.exe baru dimulai. Kebijakan -kebijakan ini memblokir eksekusi skrip (tidak ditandatangani), tetapi mereka dapat ditimpa dalam ruang lingkup saat ini sebagai berikut.
Set-ExecutionPolicy Bypass - Scope Process - Force
. .PrivescCheck.ps1Namun, trik ini tidak berhasil ketika kebijakan eksekusi ditegakkan melalui GPO. Dalam hal ini, setelah memulai sesi PowerShell baru, Anda dapat memuat skrip sebagai berikut.
Get-Content .PrivescCheck.ps1 | Out-String | Invoke-ExpressionCara umum untuk mem -bypass mode bahasa terbatas terdiri dari start PowerShell Versi 2 karena tidak menerapkan perlindungan ini. Oleh karena itu, sebagian besar upaya pengembangan dilakukan untuk mempertahankan kompatibilitas ini.
Catatan
Meskipun PowerShell Versi 2 masih diaktifkan secara default pada versi terbaru Windows, ia tidak dapat berjalan tanpa .NET Framework Versi 2.0, yang memerlukan instalasi manual.
Jika Anda menjalankan skrip ini dalam sesi meterpreter, Anda kemungkinan akan mendapatkan kesalahan "timeout". Metasploit memiliki nilai "batas waktu respons", yang diatur ke 15 detik secara default, tetapi skrip ini membutuhkan lebih banyak waktu untuk berjalan di sebagian besar lingkungan.
meterpreter > load powershell
Loading extension powershell...Success.
meterpreter > powershell_import /local/path/to/PrivescCheck.ps1
[+] File successfully imported. No result was returned.
meterpreter > powershell_execute "Invoke-PrivescCheck"
[-] Error running command powershell_execute: Rex::TimeoutError Operation timed out. Dimungkinkan untuk menetapkan nilai yang berbeda berkat opsi -t dari perintah sessions (dokumentasi). Dalam contoh berikut, batas waktu 2 menit ditetapkan untuk sesi dengan ID 1 .
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"