15 moduri de a ocoli puterile

În mod prestabilit, PowerShell este configurat pentru a împiedica rularea scripturilor pe sisteme bazate pe Windows. Astfel de setări pot face dificilă funcționarea administratorilor, penitenciarului și dezvoltatorului și în acest articol vă voi spune despre 15 moduri de a ocoli politica de execuție fără a utiliza drepturile administratorului local.







În mod prestabilit, PowerShell este configurat pentru a împiedica rularea scripturilor pe sisteme bazate pe Windows. Astfel de setări pot face dificilă funcționarea administratorilor, penitenciarului și dezvoltatorului și în acest articol vă voi spune despre 15 moduri de a ocoli politica de execuție fără a utiliza drepturile administratorului local. Cred că există tehnici care nu vor fi menționate din cauza uitarei mele sau ignoranței elementare, dar sper că lista de mai jos va fi un bun început pentru cei care au nevoie de ea.

Ce este politica de execuție PowerShell?

Politica de executare determină ce tipuri de scripturi pot fi executate (dacă este deloc) pe sistem. În mod prestabilit, valoarea parametrului este setată la "Restricted", care interzice lansarea oricărui script. Cu toate acestea, trebuie să se înțeleagă că configurarea Politicii de Execuție nu a fost niciodată legată de gestionarea securității, ci a servit doar pentru ca administratorii să nu poată dezactiva accidental sistemul. De aceea există multe tehnici de ocolire a acestor setări, inclusiv unele furnizate de Microsoft. În mai multe detalii despre politica de executare și alte setări de securitate în PowerShell, vă recomand să citiți blogul lui Carlos Perez.

De ce este necesar să ocolim Politica de executare?

Se pare că unul dintre cele mai comune răspunsuri la întrebarea indicată în titlu este automatizarea proceselor. Cu toate acestea, există și alte motive pentru care PowerShell a devenit popular printre administratori, penitenți și hackeri. PowerShell:

  • Built-in Window.
  • Pot apela Windows API.
  • Pot rula comenzi fără a scrie pe disc.
  • Poate evita detectarea de către antivirus.
  • Deja marcat ca "de încredere" și se află pe majoritatea listelor albe.
  • Folosit când scrieți multe utilitare de securitate open source.

Cum se afișează setările politicii de execuție

Înainte de a începe să utilizați toate funcțiile PowerShell, trebuie să ocoliți interdicția de a rula scripturi. Setările curente pot fi obținute prin executarea comenzii "Get-ExectionPolicy". Dacă interdicția este setată, atunci când executați comanda va apărea următorul mesaj:

PS C: \> Get-ExecutionPolicy

15 moduri de a ocoli puterile

Figura 1: Rezultatul executării comenzii în sistem unde este setată interdicția de a rula scripturi

Este important de menționat că politica de executare poate fi instalată la diferite niveluri ale sistemului. Pentru a vedea lista nivelurilor, utilizați comanda de mai jos (pentru mai multe informații, consultați pagina TechNet corespunzătoare).

Get-ExecutionPolicy-List | Format-Table -AutoSize

15 moduri de a ocoli puterile

Figura 2: Setările politicii de execuție la diferite niveluri de sistem

Configurarea mediului de testare

În exemplele de mai jos, voi folosi un script numit runme.ps care conține următoarea comandă pentru a imprima mesajul la consola:

Scrie-gazdă "Vocea mea este pașaportul meu, verifică-mă."

Când executați scriptul într-un sistem cu setările standard de politică de execuție, se afișează următoarea eroare:

15 moduri de a ocoli puterile

Figura 3: Eroarea afișată la rularea scriptului de testare într-un mediu în care configurați interdicția de a rula scripturi

Dacă politica dvs. curentă vă permite să rulați scripturi, puteți pune o interdicție (pentru scopuri de testare) folosind comanda Set-ExecutionPolicy Restricted, care este pornit de la consola administratorului PowerShell. Bine, destul de bine. Să mergem direct la metodele de eludare a interdicției, stabilite în politica de executare.

Copiați și inserați scriptul în consola interactivă, după cum se arată mai jos. Cu toate acestea, rețineți că veți fi limitat la privilegiile utilizatorului curent. Metoda este folosită cel mai adesea pentru a rula scripturi simple atunci când aveți acces la o consolă interactivă. În plus, această tehnică nu implică modificarea setărilor și nu necesită scrierea pe disc.

15 moduri de a ocoli puterile

Figura 4: Rularea script-ului prin copierea în consola interactivă

2. Trimiteți conținutul script-ului la fluxul standard de intrare PowerShell

Trimiteți doar conținutul scriptului la fluxul de intrare standard. Tehnica nu implică schimbarea setărilor și nu necesită înregistrarea pe disc.

Echo Write-Host "Vocea mea este pașaportul meu, verifică-mă." | | PowerShell.exe -noprofile -

15 moduri de a ocoli puterile

Figura 5: Afișarea conținutului scriptului în fluxul de intrare standard

3. Citirea unui script dintr-un fișier și redirecționarea conținutului la fluxul standard de intrare PowerShell

Utilizați comanda standard "type" sau PowerShell "Get-Content" pentru a citi conținutul scriptului de pe disc și redirecționa rezultatul la fluxul de intrare standard. Tehnica nu implică modificarea setărilor, dar necesită înregistrarea pe disc. Pentru a evita scrierea pe disc, puteți utiliza o partajare de rețea.

Exemplul 1: Folosind PowerShell-ul comenzii Get-Content

Obțineți conținut. \ Runme.ps1 | PowerShell.exe -noprofile -

15 moduri de a ocoli puterile

Figura 6: Utilizarea comenzii Get-Content

Exemplul 2: Utilizarea comenzii Type

TYPE. \ Runme.ps1 | PowerShell.exe -noprofile -

15 moduri de a ocoli puterile






Figura 7: Utilizarea comenzii Type

4. Descărcarea scriptului din rețea și pornirea cu Invoke Expression

Tehnicile pot fi utilizate pentru a descărca un script de pe Internet și pentru a rula fără scrierea pe disc. De asemenea, nu se vor schimba setările. Am văzut multe moduri de a rula scripturi în acest fel, dar recent am dat peste următorul exemplu:

15 moduri de a ocoli puterile

Figura 8: Descărcarea scriptului de pe Internet și pornirea cu Invoke Expression

5. Folosind parametrul Command

Exemplul 1: Comandă completă

Powershell - comanda "Write-Host" Vocea mea este pașaportul meu, verifică-mă. "

15 moduri de a ocoli puterile

Figura 9: Rularea scriptului cu versiunea completă a parametrului

Exemplul 2: Comandă scurtă

Powershell -c "Scrie-gazdă" Vocea mea este pașaportul meu, verifică-mă. "

Puteți combina comenzile de mai sus în fișiere batch și le puteți pune în autoloading pentru a crește nivelul de privilegii.

6. Folosind parametrul EncodeCommand

Metoda este similară cu cea anterioară, dar aici toate codurile sunt codate în șirul Unicode. Codarea script-ului vă permite să evitați erorile care apar atunci când utilizați parametrul "Command". Tehnica nu implică schimbarea setărilor și nu necesită înregistrarea pe disc. Exemplul de mai jos este luat de la Posh-SecMod. Același utilitar conține o metodă bună pentru reducerea mărimii comenzilor codate.

Exemplul 1: versiunea completă

$ command = "Write-Host" Vocea mea este pașaportul meu, verifică-mă. "
$ bytes = [System.Text.Encoding] :: Unicode.GetBytes (comanda $)
$ encodedCommand = [Convertizor] :: ToBase64String ($ bytes)
powershell.exe -EncodedCommand $ encodedCommand

15 moduri de a ocoli puterile

Figura 10: Versiunea completă a comenzii

Exemplul 2: Parametru abreviat

powershell.exe -Enc
VwByAGkAdABlAC0ASABvAHMAdAAgACcATQB5ACAAdgBvAGkAYwBlACAA
aQBzACAAbQB5ACAAcABhAHMAcwBwAG8AcgB0ACwAIAB2AGUAcgBpAGYAeQAgAG0AZQAuACcA

7. Utilizarea Invoke-Command

Tehnica pe care am găsit-o pe blogul Obscuresec este folosită prin consola interactivă sau în combinație cu parametrul "Command". Caracteristica principală a metodei este că poate fi utilizată pentru a rula comenzi pe sisteme la distanță unde script-urile PowerShell sunt permise să ruleze. Tehnica nu implică modificarea setărilor și nu necesită înregistrarea pe disc.

15 moduri de a ocoli puterile

Figura 11: Utilizarea comenzii Invoke-Command

Echipa de mai jos, creată pe blogul Obscuresec, poate fi utilizată pentru a transfera setările politicii de execuție de la mașina la distanță la cea locală.

invoca-comanda -computername Server01 -scriptblock | set-execuție politică-forță

8. Folosind comanda Invoke-Expression

Ca și în cazul precedent, tehnica este folosită printr-o consolă interactivă sau în combinație cu parametrul "Command". Metoda nu implică modificarea setărilor și nu necesită scrierea pe disc. Următoarele sunt câteva dintre cele mai frecvente moduri de a utiliza comanda Invoke-Expression pentru a ocoli politica de execuție.

Exemplul 1: Versiunea completă a comenzii Get-Content

Obțineți conținut. \ Runme.ps1 | Invocați-Expression

15 moduri de a ocoli puterile

Figura 12: Versiunea completă a comenzii Get-Content

Exemplul 2: O versiune prescurtată a conținutului Get-Content

GC. \ Runme.ps1 | IEX

9. Utilizarea semnalizatorului Bypass

Steagul a fost adăugat de dezvoltatorii Microsoft pentru a ocoli politica de execuție atunci când rulează scripturi din fișiere. Microsoft afirmă că, prin utilizarea acestui steag, "nimic nu este blocat și nu sunt emise avertismente sau mesaje". Tehnica nu implică schimbarea setărilor și nu necesită înregistrarea pe disc.

PowerShell.exe -ExecutionPolicy Bypass -File. \ Runme.ps1

15 moduri de a ocoli puterile

Figura 13: Utilizarea semnalizatorului Bypass

10. Utilizarea steagului fără restricții

Tehnica este similară celei precedente. Cu toate acestea, atunci când se utilizează steagul nerestricționat, Microsoft declară că "toate fișierele de configurare sunt descărcate și toate scripturile sunt pornite. Dacă rulați un script nesemnat descărcat de pe Internet, veți vedea un mesaj care vă cere să confirmați lansarea. " Metoda nu implică modificarea setărilor și nu necesită scrierea pe disc.

PowerShell.exe -ExecutionPolicy UnRestricted -File. \ Runme.ps1

15 moduri de a ocoli puterile

Figura 14: Utilizarea steagului nerestricționat

11. Folosind pavilionul Remote-Signed

Creați un script. Apoi, semnați-l folosind manualul. scris de Carlos Perez. Acum rulați scriptul folosind comanda de mai jos:

PowerShell.exe -ExecutionPolicy la distanță-semnat -File. \ Runme.ps1

12. Preveniți ExecutionPolicy descărcând Manager de autorizare

funcția Disable-ExecutionPolicy $ executioncontext.gettype () getfield ("_context", "nonpublic, instanță") getvalue (
$ getcontent (). getfield ("_ authorizationManager", "nonpublic, instance").
setvalue ($ ctx, (nou-obiect System.Management.Automation.AuthorizationManager "Microsoft.PowerShell")))>

15 moduri de a ocoli puterile

Figura 15: Dezactivarea Managerului de autorizare în sesiunea curentă

13. Instalarea politicii de excuție pentru nivelul procesului

La începutul articolului sa spus că politica de execuție poate fi aplicată la diferite niveluri (inclusiv la nivelul procesului pe care dețineți controlul). Folosind această tehnică, politica de execuție poate fi setată la nerestricționată în timpul sesiunii. În plus, metoda nu implică modificări ale setărilor și nu necesită scrierea pe disc. Am gasit aceasta tehnica pe blogul r007break.

Setare-Executarea poliției Bypass -Scope Proces

15 moduri de a ocoli puterile

Figura 16: Setarea stării nerestricționate pentru nivelul Procesului

14. Setarea stării nerestricționate pentru nivelul curentului curent utilizând comanda

Tehnica este similară cu cea anterioară, dar aici modifică setările mediului de lucru curent prin modificarea cheii din registru. Metoda nu implică modificarea setărilor și nu necesită scrierea pe disc. Tehnica a fost de asemenea găsită în blogul r007break.

Set-Executionpolicy -Scope CurrentUser -ExecutionPolicy UnRestricted

15 moduri de a ocoli puterile

Figura 17: Setarea stării nerestricționate pentru nivelul utilizatorului curent

15. Setarea stării nerestricționate pentru nivelul CurrentUser prin intermediul registrului

În acest exemplu, vă vom arăta cum să setați setări de politică constante pentru utilizatorul curent modificând direct cheia de registry.

15 moduri de a ocoli puterile

Figura 18: Stabilirea stării pentru politica de execuție prin intermediul regiștrilor

  • 15 moduri de a ocoli puterile
  • 15 moduri de a ocoli puterile
  • 15 moduri de a ocoli puterile
  • 15 moduri de a ocoli puterile







Trimiteți-le prietenilor: