Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Drakaris en 9 Mayo 2022, 20:25 pm



Título: Se puede editar las directivas de grupo de un cliente Windows 10 Pro desde powershell?
Publicado por: Drakaris en 9 Mayo 2022, 20:25 pm
Buenos dias necesitaria editar directivas de grupo en powerhsell esto se puede hacer? He visto que existe los cmdlets GPO pero estos son para Windows Server. Hay algo parecido para el gpedit.msc?

O si se puede editar a traves del regedit....también seria una posibilidad....

O si hay una posibilidad de editar "Configuración de usuario > Plantillas administrativas > Sistema > No ejecutar aplicaciones de Windows especificas" en powerhsell.

Muchas Gracias


Título: Re: Se puede editar las directivas de grupo de un cliente Windows 10 Pro desde powershell?
Publicado por: el-brujo en 10 Mayo 2022, 13:33 pm
Con PowerShell se puede hacer de todo, seguro.


¿Exactamente que necesitas? ¿Bloquear aplicaciones de Windows?

https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/microsoft-recommended-block-rules


Título: Re: Se puede editar las directivas de grupo de un cliente Windows 10 Pro desde powershell?
Publicado por: Drakaris en 14 Mayo 2022, 12:37 pm
Buenas. Al final lo pude solucionar. Muchas gracias por la respuesta #el-brujo-
Como no encontre la solución para editar las directivas de grupo a traves del powershell. Lo hice editando el regedit.
He decidido hacer un script powerhsell que ter permite bloquear la aplicacion pasandole por parametro le nombre del ejecutable o nombres (separados por comas). Este script edita el editor de registros y deshabilitando el ejecutable gracias a DisallowRun.

script denyPrograms.ps1
Código
  1. #
  2. # This script deny the programs specified
  3. #
  4.  
  5. Param(
  6.    [String] $Programs
  7. )
  8.  
  9. if(!$Programs){
  10.    Write-Host '[!]' -ForegroundColor Red -NoNewline;
  11.    Write-Host ' The script needs one argument.';
  12.    Write-Host '    denyPrograms.ps1 -Programs "<exe1>,<exe2>,<exe3>[,...]" ';
  13.    exit;
  14. }
  15.  
  16. function prepareForDeny($path){
  17.    Get-Item -Path "$path" 2> $nul;
  18.    try{
  19.        New-Item -Path "$path\SOFTWARE\Microsoft\Windows\CurrentVersion" -Name "Policies";
  20.    }catch{
  21.        $null;
  22.    }
  23.    try{
  24.        New-Item -Path "$path\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies" -Name "explorer";
  25.    }catch{
  26.        $null;
  27.    }
  28.    try{
  29.        New-ItemProperty -Path "$path\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\explorer" -PropertyType DWord -Value 1 -Name "DisallowRun";
  30.    }catch{
  31.        $null;
  32.    }
  33.    try{
  34.        New-Item -Path "$path\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\explorer" -Name "DisallowRun";
  35.    }catch{
  36.        $null;
  37.    }
  38. }
  39.  
  40. function denyPrograms($path){
  41.    if($Programs -eq "null"){
  42.        Clear-Item -Path "$path\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\explorer\DisallowRun";
  43.        continue;
  44.    }
  45.    Clear-Item -Path "$path\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\explorer\DisallowRun";
  46.    foreach($program in $Global:listPrograms){
  47.        New-ItemProperty -Path "$path\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\explorer\DisallowRun" -PropertyType String -Name $program -Value $program;
  48.    }
  49. }
  50.  
  51. function currentUsers(){
  52.    $Global:currentUsers = Get-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21*" | ForEach-Object {$_.Name.Split("\")[$_.Name.Split("\").Length-1]};
  53.    foreach($ssid in $Global:currentUsers){
  54.        $root = "HKU:\$ssid";
  55.        if(Get-Item -Path "$root" 2> $nul){
  56.            prepareForDeny $root;
  57.            $Global:listPrograms=$Programs -split ",";
  58.            denyPrograms $root;
  59.        }
  60.    }
  61. }
  62. function init(){
  63.    New-PSDrive HKU Registry HKEY_USERS > $null;
  64.    currentUsers;
  65. }
  66.  
  67. init;
  68.  
ejemplo de uso:
Citar
denyPrograms.ps1 -Programs "chrome.exe,msedge.exe"
o en segundo plano ejecutando un comando cmd:
Citar
powershell.exe & '/path/denyPrograms.ps1' -Programs "chrome.exe,msedge.exe"
Descripción: Bloquea el navegador Google Chrome y Microsoft Edge

Fuentes
https://es.wikihow.com/bloquear-una-aplicaci%C3%B3n-o-archivo-.exe-para-que-no-pueda-ejecutarse-en-Windows
https://www.pdq.com/blog/modifying-the-registry-users-powershell/

Espero que les sirva, y muchas gracias.