Escalada de privilegios en XP/2000

Cuando nos encontramos con un administrador de sistemas muy cuidadoso, que lleva a cabo las actualizaciones periódicas del sistema, debemos recurrir a otro tipo de técnicas para poder escalar privilegios en el sistema. Lo que vamos a hacer nosotros es aprovecharnos de un fallo de una aplicación llamada at, que nos permite la planificación de tareas.

Vamos a aprovecharnos de que cuando se lanza una aplicación con at está hereda permisos de sistema (system). Con esto conseguiremos pasar de un usuario Administrador a un usuario tipo system con el que adquiriremos todos los privilegios del sistema.

El comando at.

Si recurrimos a la ayuda de Windows obtenemos la siguiente información:

D:\>help at

El comando AT programa la ejecución de comandos y programas en un equipo a una hora y fecha especificadas. El servicio de programación debe estar en ejecución para utilizar el comando AT.

AT [\\equipo] [ [id] [/DELETE] | /DELETE [/YES]] AT [\\equipo] hora [/INTERACTIVE][ /EVERY:fecha[,…] | /NEXT:fecha[,…]] «comando»

  • \\equipo. Especifica un equipo remoto. Si se omite este parámetro, los comandos se programan en el equipo local.

  • Id. Es un número de identificación asignado al comando programado.

  • /delete. Cancela un comando programado. Si se omite id, se cancelarán todos los comandos programados en el equipo.

  • /yes. Se usa con el comando de cancelación de todos los trabajos cuando no se desea ninguna confirmación.

  • /interactive. Permite a la tarea interactuar con el escritorio del usuario cuya sesión coincide con el momento de ejecución de la tarea.

  • /every:fecha[,…] Ejecuta el comando cada día de la semana o mes especificado. Si se omite la fecha, se asume que es el día actual del mes.

  • /next:fecha[,…] Ejecuta el comando especificado la próxima vez que aparezca ese día (por ejemplo, el próximo jueves). Si se omite la fecha, se asume que es el día actual del mes.

  • «comando» Es el comando de Windows NT o programa por lotes que se va a ejecutar.

Ejemplos prácticos.

Si queremos copiar la carpeta situada en la raiz de la partición C llamada carpeta_ejemplo a otra partición D en otra carpeta llamada copia_carpeta_ejemp todos los días laborables a las 10:00:

AT 10:00 /every: M, T, W, Th, F cmd /c copy /Q c:\carpeta_ejemplo\*.*d:\copia_carpeta_ejem

(podemos observar que los días de la semana va en Inglés: M-Monday, T-Tuesday, F-Friday etc…)

Si trabajamos con programas o utilidades que tengan ejecutables separados, podremos trabajar directamente con dicho ejecutable pero para ello dicho ejecutable deber estar situado en un directorio accesibe en la ruta de comandos, la variable de entorno %PATH%

Si queremos programar la ejecución de un programa o aplicación (ejemplo.bat) a las 07:00 la primera semana del mes:

AT 07:00 /every:1, 2, 3, 4, 5, 6, 7 ejemplo.bat

También podemos ejecutar tareas en la fecha actual en que nos encontremos, teniendo que especificar una hora de inicio y no una fecha de inicio. Si queremos programar la ejecución de un programa o aplicación (ejemplo.bat) en el día actual a las 10:00:

AT 10:00 ejemplo.bat

También podemos ejecutar las tareas en un día diferente al actual Si queremos programar la ejecución de un archivo o aplicación (ejemplo.bat) el Viernes a las 09:00:

AT 09:00 /next :F ejemplo.bat

Normalmente las tareas programadas se ejecutan en segundo plano, de forma que el usuario no es consciente de que esa tarea se está realizando. Podemos configurar dicha tarea para que se situe en Primer Plano y el usuario vea como se lleva a cabo (denominado MODO INTERACTIVO)

Si queremos programar la ejecución de un archivo o aplicación (ejemplo.bat) en primer plano a las 14:00 todos los Lunes y Viernes:

AT 14:00 /interactive /every: L, F ejemplo.bat

Para cancelar todas las tareas programadas:

AT / delete

Para cancelar una tarea programada específica, sin necesidad de indicarle la hora o fecha de ejecución (ejemplo.bat)

AT / delete ejemplo.bat

Escalando privilegios.

Entramos en el sistema operativo como administradores. Y nos dirigimos a panel de control > usuarios.

 

 

espriv1.jpg

Nos aparecerá la pantalla anterior. Como podemos observar tenemos deshabilitado la opción de cambiar la contraseña, Esto es lo que vamos a tratar de cambiar..

Podemos comprobar el usuario que somos, desde la línea de comandos, con el comando «Set».Obtendremos algo parecido a esto:

espriv2.jpg

 

Si nos fijamos bien en USERNAME aparece el nombre de administrador. Vamos a ver como cambiamos a system utilizando at.

Para ello vamos a seguir los siguientes pasos:

– Abrimos una línea de comandos.

– Entramos en el panel de control de tareas y finalizamos la tarea «explorer».

 

Una vez finalizada la tarea volvemos a la línea de comandos que habiamos abierto con anterioridad y planificamos una tarea de la siguiente forma:

at 13:30 /interactive “explorer.exe”

 

Con esta sentencia se ejecutará otra vez el Explorer y nos daremos cuenta de que algo ha cambiado. Si volvemos a mirar desde la línea de comandos el usuario habra cambia- do a system. (En Windows XP, bastará con mirar en el boton inicio para ver como el usuario ha cambiado).

Ahora ya tenemos todo el control sobre el sistema y podremos hacer más o menos lo que queramos. Por ejemplo volvemos a mirar en el panel de control> usuarios y encontramos que es posible cambiar las contraseñas del administrador sin conocer la antigua.

 

Podemos encontrar un video demostrativo en la siguiente dirección de Internet:


http://www.projectstreamer.com/users/r0t0r00t3r/xp_priv_esc-1/xp_priv_esc.html

12 opiniones en “Escalada de privilegios en XP/2000”

  1. hola no pude hacerlo porque cuandop entro al panel de control — usuario me pide que ingrese la clave y me da que no tengo suficientes privilegios

  2. Sigo todos los pasos y llego a Usuario como SYSTEM pero al intentar instalar un programa (el NOD32, en la etapa start services) me sigue dando que me faltan privilegios.

  3. Con relacion a la escalada de privilegios, ¿hay alguna forma de evitar que un usuario de un equipo que no tiene privilegios de administrador, escale hasta ese perfil? Gracias

  4. dejenme aplaudirles!!! si eres Administrador, en el ejemplo de que te sirvio escalar privilegios ???

    Por que no nos asombras, haciendolo desde la cuenta de Invitado ???? uhmmm sera que no se puede… me supongo en esencia cuando entras al sistema como Invitado o una cuenta sin privilegios te arroja el error «Acceso Denegado» ¿Es mi Windows? o disculpame, he probado los comandos RunAs.exe, at.exe y no hay modo.

    Como decia azul solo creandote una cuentesilla como administrador. Tu copiaste, y hasta lo ampliaste pero no verificaste si funcionaba la verdadera escalada de privilegios.

    No Copy Paste… un saludo.

  5. Vamos por partes, cierto es que subes de privilegios, pasas de una cuenta de administrador a la de system dandote control sobre todos los procesos del sistema. En esta página lo explican un poco:

    http://www.cristalab.com/tips/61028/adquirir-privilegios-system-en-windows-xp.html

    Si no busca más información sobre el usuario System de Windows.

    Luego lo de copy paste no es cierto ya que este post está escrito hace 2 años y simplemente es una traducción del video que aparece en el enlace del final.

    Cuando se probo esto, en el 2006 funcionaba perfectamente, hoy en día no te lo puedo asegurar.

    Un saludo

  6. Hola es posible programar con el comando at una tarea que se ejecute por mes, es decir el dia xx de cada mes realize esa tarea ejemplo el dia..como seria con un ejemplo…Muchas gracias
    saludos

  7. bn la iform.. me gustaria k explique un poco mas de otras prioridades… no se tema a gusto… ahora se pos me puedo meter por ahi 😛

Replica a liñares Cancelar la respuesta