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

8 comentarios para “Escalada de privilegios en XP/2000”

  1. liñares Dice:

    esee profe, wapo el blog si señor… y interesante truco tu sige plubicando cosas ke estare encantado de aprender cosas nuevas

  2. juancho-ush Dice:

    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

  3. ALFREDO Dice:

    Interesante descripscion voy a probarlo..!!!
    nesecito ejecutar un BAT… ojala pueda cambiarle la fecha

  4. Afarmicrosystems Dice:

    Muy buen tip. Me gustaria saber como puedo escalar privilegios en un equipo remoto

    Gracias

  5. Marcelo Dice:

    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.

  6. thesmartgenius Dice:

    lo mejor que pueden hacerse al obtener la ventana del cmd es crearse su propia cuenta de admin, y desde ahi hacer todo lo que quieran…

    aqui les pongo una herramienta…

    http://thesmartgenius.wordpress.com/2008/05/05/escalador-de-privilegios-windows-xp-sp2/

    Saludos.

  7. azul Dice:

    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

  8. Escalador de Privilegios - Windows XP SP2 « Dice:

    [...] Escalar privilegios con el comando AT [...]

Escribe un comentario