Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BDJMarcelo en 20 Octubre 2018, 04:18 am



Título: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: BDJMarcelo en 20 Octubre 2018, 04:18 am
Hola a todos.. ;-)

La verdad, no soy un experto en programación, pero, día a día aprendo más.

En la web encontré el siguiente código que asegura brindar a un (bat) los derechos de administrador en Windows 10 sin tantos bloqueos.

En este caso estoy intentando borrar una carpeta que está ubicada en los (PROGRAMASFILES) pero no me permite el acceso en Windows 10.

Agradezco amigos me puedan colaborar con su valiosa ayuda.



Código:
@echo off

REM .bat con permisos de administrador
:-------------------------------------
REM  --> Analizando los permisos
    IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)

REM --> Si hay error es que no hay permisos de administrador.
if '%errorlevel%' NEQ '0' (
    echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:-------------------------------------- 

REM   
ECHO.
if %PROCESSOR_ARCHITECTURE%==x86 (goto Uni32bit) else if %PROCESSOR_ARCHITECTURE%==AMD64 (goto Uni64bit)

:Uni32bit
CD %PROGRAMFILES%
TASKKILL /F /IM "JAHER\JAHER.exe"
RD /S /Q "JAHER"
DEL /F /Q %0
Exit

:Uni64bit
net user administrador /active:yes
CD %PROGRAMFILES(X86)%
RD /S /Q "JAHER"
DEL /F /Q %0
Exit
EXIT


Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: **Aincrad** en 20 Octubre 2018, 18:16 pm
El problema era q no mataba el proceso, Bueno aqui esta
(Funcionando correctamente en Win7 32bits y 64 bits) ,  Me avisas si te sirvió.

Código
  1. @echo off
  2.  
  3. REM .bat con permisos de administrador
  4. :-------------------------------------
  5. REM  --> Analizando los permisos
  6.    IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
  7. >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
  8. ) ELSE (
  9. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
  10. )
  11.  
  12. REM --> Si hay error es que no hay permisos de administrador.
  13. if '%errorlevel%' NEQ '0' (
  14.    echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ...
  15.    goto UACPrompt
  16. ) else ( goto gotAdmin )
  17.  
  18. :UACPrompt
  19.    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  20.    set params = %*:"=""
  21.    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
  22.  
  23.    "%temp%\getadmin.vbs"
  24.    del "%temp%\getadmin.vbs"
  25.    exit /B
  26.  
  27. :gotAdmin
  28.    pushd "%CD%"
  29.    CD /D "%~dp0"
  30. :--------------------------------------  
  31.  
  32. REM  
  33. ECHO.
  34. if %PROCESSOR_ARCHITECTURE%==x86 (goto Uni32bit) else if %PROCESSOR_ARCHITECTURE%==AMD64 (goto Uni64bit)
  35.  
  36. :Uni32bit
  37. goto Condicional
  38.  
  39. :Uni64bit
  40. net user administrador /active:yes
  41. goto Condicional
  42.  
  43.  
  44. :Condicional
  45. tasklist | find /i "JAHER.exe" && (
  46. TASKKILL /IM "JAHER.exe" /F
  47. echo Proceso Encontrado y Terminado, Procedemos a eliminar la carpeta . . .
  48. goto delete
  49. ) || (
  50. echo Proceso no Abierto Procedemos a eliminar la carpeta . . .
  51. )
  52. goto delete
  53.  
  54. :delete
  55. cls
  56. color a
  57. cd "%PROGRAMFILES%"
  58. set Folder=JAHER
  59.  
  60. if exist %folder% (
  61. RD /S /Q %Folder%
  62. echo La Carpeta %folder% Fue Eliminada.
  63. pause
  64. DEL /F /Q %0
  65. ) else (
  66. echo La Carpeta no existe.
  67. pause
  68. DEL /F /Q %0
  69. )
  70.  
  71. exit


Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: BDJMarcelo en 22 Octubre 2018, 00:57 am
Hola amigo (  **Aincrad** )   ;-)

Muchas gracias por tu ayuda, la verdad si me funciono en parte el cambio.

Se lemina el archivo (JAHER.exe), de forma correcta, pero no se borra la carpeta..

Al final de ejecutar el archivo me aparaece la opción:

 
Código:
echo La Carpeta no existe.
pause

Pero bueno, para que no me consulte para precionar una tecla para continuar, elimine ( pause ).

Lo que si me gustaría saber es si el primer codigo hasta la opción ( REM ) funciona para brindar derechos de administrador a codigos bat que tengo..?

Gracias por la ayuda de antemano...  ;D

Código:
@echo off
 
REM .bat con permisos de administrador
:-------------------------------------
REM  --> Analizando los permisos
    IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
 
REM --> Si hay error es que no hay permisos de administrador.
if '%errorlevel%' NEQ '0' (
    echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ...
    goto UACPrompt
) else ( goto gotAdmin )
 
:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
 
    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B
 
:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:-------------------------------------- 
 
REM   

AQUI EL CODIGO BAT....?

EXIT


Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: EdePC en 22 Octubre 2018, 04:02 am
Saludos,

- En los nuevos Windows suele ser más sencillo utilizar:

Código
  1. @echo off
  2. fsutil dirty query %systemdrive%  >nul 2>&1 || (
  3. powershell start-process %0 -verb runas
  4. )
  5. echo Tengo permisos de Administrador a partir de ahora


Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: BDJMarcelo en 23 Octubre 2018, 03:21 am
Hola amigo (  EdePC ) ....

Muchas gracias por tu ayuda, lamentablemente en el código anterior se crea el scrip (getadmin.vbs), pero al no encontrarlo presenta un error.

Luego en el cambio que realizo el amigo ( **Aincrad** ), igualmente presenta error.

Se activa la cuenta de administrador.

Código:
net user administrador /active:yes

Y al iniciar la PC molesta ver la cuenta activa.

Voy a probar tu aporte amigo y te comento.