Como protegerse de Apagado Remoto (shutdown) y conocer el origen del apagado

Introducción

El tema del apagado remoto en las universidades se ha convertido en un real fastidio. No se que motive esto,  sí facilidad de administración vs seguridad, o en el peor de los casos desconocimiento. Lo que sí es claro es que es una pésima práctica y quienes se están viendo realmente afectados son los usuarios (estudiantes y profesores) que en muchas ocasiones pierden su trabajo porque no había guardado cuando sucede el reinicio o se retrasan las clases pues hasta el equipo de los profesores son apagados.

Muchas de las salas de informática a en las universidades se les define el mismo usuario y clave, lo único que cambia es el nombre de la máquina. A esto se le puede sumar una definición de políticas de seguridad deficientes excusado por un sistema de Congelamiento de la máquina .. y tenemos como resultado:


Gracias al MEV y al URI a estos mismos "administradores" no les dio por bloquear las herramientas de edición del grupo de políticas de seguridad (Group Policy Editor). Sino al no podernos defender de nada tendríamos seguramente como resultado:

Imagen: Woodstock (Sexo, Drogas y Rock 'n' Roll)

Con esta publicación estaremos ampliando la información de Desactivar apagado remoto en Windows con comando shutdown que en su momento me sirvió para detener los ataques persistentes, pero ahora también incluiremos como descubrir de donde proviene el intento de apagado.

Efectivamente para poder aprender a defenderse, se debe conocer cómo se realizan los ataques, por lo cual se mostrarán ambas etapas... tenga en cuenta que este material es educativo, haga uso del mismo con total responsabilidad.

Para muchos la solución más sencilla es desconectar el cable de red, pero esta solución te deja desconectado completamente, por lo que si necesitas acceder a un recurso compartido o buscar algo en Internet no los vas a poder hacer.  Hay mejores prácticas que le restan campo de acción al atacante pero no a nosotros.

1. Intento de Apagado con Temporizador

Los casos que me han tocado, este es el más frecuente pues muchas veces quien realiza los ataques lo hacen a través del GUI (con el comando shutdown -i) y no a través de la línea de comandos, por lo que no tienen mucha conciencia de lo que realmente sucede al otro lado.

Ataque

Desde la máquina atacante se ejecuta el comando de apagado:


En la máquina atacada aparece el siguiente mensaje:


Como detenerlo?

En la máquina atacada, en la opcion ejecutar de Windows (que se accede fácilmente utilizando la combinación de teclas Win+R) se debe escribir el comando shutdown -a y haga clic en el botón [Aceptar].


Con esto podemos ver un mensaje en la barra del sistema indicando la cancelación.



Como saber quién lo hizo?

Y ahora... quien fue el desgraciado? Lo podemos encontrar usando la herramienta de Administración de Equipos de Windows. En el menú de inicio se hace clic con el botón secundario del mouse sobre Equipo y luego se hace clic sobre la opción Administrar


En el Administrador de equipos en el árbol a la izquierda vamos a seguir la siguiente ruta:

  • Administración de Equipos
  • Herramientas del Sistema
  • Visor de Eventos
  • Registros de Windows
  • Sistema



Allí lo que vamos a buscar son los eventos originados por USER32. La advertencia es el comando que ejecutamos para detener el apagado y la segunda nos muestra la información sobre el atacante.

De la pestaña general podemos obtener la IP y el usuario que ejecuto la accion, pero como en este caso todos los usuarios son el mismo, con la dirección IP podemos obtener el nombre de la máquina.


Listo!!! con esto obtenemos el nombre de la máquina salaf409-13. La mayoría a de salas están enumeradas por lo cual es fácil identificar quién hizo el ataque.

Recomendaciones

Cuando prenda el equipo abra la opción de ejecutar (Win+R) y escriba shutdown -a y haga clic en el botón [Aceptar]. En caso de que se de cuenta de un ataque temporizado tendrá un tiempo de reacción inmediato para detenerlo con solo presionar (Win+R) + Enter pues el shutdown -a ya se encuentra escrito y en el historial.

2. Intento de Apagado Forzado

Un intento de apagado forzado y con tiempo 0, nos dejaría nockeados inmediatamente y no daría tiempo para ejecutar la vacuna anterior a través de ejecutar.

Ataque

Desde la máquina atacante se ejecuta el comando de apagado:



En la máquina atacada no aparece ningún mensaje de notificación  simplemente se empiezan a cerrar todas las ventanas y ejecutar el apagado. Adicionalmente como las máquinas están congeladas al reiniciarse el listado de eventos fue borrado por lo tanto no podríamos saber quién lo hizo.

Como detenerlo? (El recomendado para todos los casos)

En la máquina atacada, en la opcion ejecutar de Windows (que se accede fácilmente utilizando la combinación de teclas Win+R) ejecutamos el comando gpedit.msc para abrir el Editor de directivas de grupo local.

En el editor de directivas de grupo local en el árbol a la izquierda vamos a seguir la siguiente ruta:

  • Configuración del equipo
  • Configuración de Windows
  • Configuración de Seguridad
  • Directivas locales
  • Asignación de derechos de usuario


En las opciones del panel a la derecha buscamos:

  • Forzar cierre desde un sistema remoto y quitamos a Todos de los permisos
  • Denegar el acceso a este equipo desde la red y agregamos a Todos

Con la primera opción le estamos quitando los permisos para que cualquier persona pueda ejecutar el apagado remoto de la máquina con la segunda opción estamos reforzando al negar cualquier entrada pero tenemos todas las salidas disponibles. Debido a esto es la opción recomendada para configurar la máquina cada vez que la prendemos y así quedar protegidos.

Ataque Protegidos

Desde la máquina atacante se ejecuta el comando de apagado:


Como saber quién lo hizo?

Para este método, no recibimos ninguna alerta visual, por lo tanto hay que estar revisando los eventos. Adicionalmente en este caso no tendríamos certeza completamente si lo que se intentó fue hacer un apagado o realizar un acceso a la máquina.


En el editor de directivas de grupo local en el árbol a la izquierda vamos a seguir la siguiente ruta:

  • Configuración del equipo
  • Configuración de Windows
  • Configuración de Seguridad
  • Configuración de directivas de auditoría avanzada 
  • Directivas de auditoría de sistema
  • Inicio y cierre de sesión



En las opciones del panel a la derecha buscamos:

  • Auditar cierre de sesión
  • Auditar inicio de sesión
Hacemos doble click sobre ambas y las configuramos para los eventos correcto y error.


Deduzco que las de cierre serían cuando nos hagan intento de apagado con shutdown y las de inicio serían para intentos de acceso. Sin embargo no estoy seguro de ello, pero de si estoy seguro de que aparece el intento.

Ahora vamos y en el Administrador de equipos (arriba se encuentran los pasos para abrirlo) en el árbol a la izquierda vamos a seguir la siguiente ruta: 

  • Administración de Equipos
  • Herramientas del Sistema
  • Visor de Eventos
  • Registros de Windows
  • Seguridad


Lo importante a observar aca son Errores de auditoría con categoría Inicio de sesión y luego en la pestaña general podemos obtener la dirección de red de origen, al igual que en el método anterior con el uso del comando tracert podemos ubicar el nombre de la máquina.


Listo!!! con esto obtenemos el nombre de la máquina salaf409-13.




3. Usando archivo por lotes (Batch)

Al ver que con las medidas cambiando las políticas de seguridad habían parado los ataques, empecé a descuidarme y no realizar el proceso cuando iniciaba el equipo. Hasta que un dia... ataque a toda la sala donde estábamos y la mayoría de equipos fueron apagados. Definitivamente no se puede bajar la guardia.

A través s del GUI del shutdown esto se puede hacer fácilmente pues se pueden agregar  todas las máquinas a las que se quiere ejecutar el comando, pero investigando un poco encontré que también se puede programar un ataque fácilmente ejecutando un simple archivo... y apoyando en la deficiencia de que todas las máquinas de la sala usan el mismo usuario y clave las cosas se simplifican muchísimo más.

@echo off
set max=40
set count=0
set sala=\\salaf409-
:LOOP 
echo Apagando equipo: %sala%%count%
@shutdown /s /f /t 0 /m %sala%%count% > nul
set /a count=%count%+1
@ping localhost -n 10 -w 10000 > nul
if not %count%==%max% (
    goto LOOP
) ELSE (
    goto END
:END
echo Apagados
Que tal, si ahora empeoramos el escenario? Nuestros flamantes administradores permiten el acceso entre salas y se puede pasar de equipo en equipo como Pedro por su casa y adicionalmente nos permite hacer un mapeo de todas las máquinas.
set pclist=%temp%\pclist.dat
net view|find /i "\\" > %pclist%
Luego se integran al archivo por lotes la lectura de la lista de computadores y que hermosa cagada!!!
Un solo archivo bat puede poner en Jaque a una institución completa.


4. Ejecución remota de comandos, simulando su ejecución localmente

PsTools es una conjunto de herramientas de Microsoft que permiten hacer ejecuciones remotas de comandos y acciones, el caso específico de PsExec sirve para ejecutar desde un equipo remoto un comando como si se hubiera solicitado ser ejecutando localmente.

A que nos lleva esto? 

Al ejecutarse el comando de apagado "localmente" en los informes de apagado saldríamos nosotros mismos como los solicitantes del apagado.
También alguien puede usar nuestro equipo como puente para ejecutar los comandos de apagado remoto y quedar nosotros como los culpables de dicha acción.

Ataque

En este caso estamos simulando una máquina que eliminó todos los permisos para forzar el apagado remoto, pero que aún no ha denegado el acceso a este equipo desde la red. Lo que demuestra que con solo denegar el permiso para forzar el apagado remoto no es suficiente.

El atacante realiza la ejecución del comando de apagado (con tiempo):


En el equipo atacado recibimos la alerta:

WTF!!! ¿Comó puede ser posible? ¿Comó que yo me estoy apagando la máquina?
Procedemos a la defensa (ya que el ataque fue con tiempo) usando Win+R + shutdown -a + Enter

El atacante se da cuenta de la defensa y le envía un mensaje:


Y podemos respirar un poco, porque contamos con suerte de que el intento de apagado fue temporizado.

Que tal, si ahora empeoramos el escenario? combinamos el poder de PsExec con un archivo por lotes, pagamos todas las máquinas y cada una de ellas apaga la otra ¿Quien fue el que apagó las máquinas?

Si antes poniamos en Jaque a una institución completa, con esta sería Jaque Mate!

Como detenerlo?


La recomendación es seguir los pasos del método recomendado. En las políticas de seguridad Denegar el acceso a este equipo desde la red, siempre se debe agregar para Todos. Así estamos seguros que no nos van a usar como puente y echarnos el agua sucia.

Como saber quién lo hizo?

Aun no he podido descubrir a través de los Eventos del Sistema como se puede detectar el uso remoto de comandos, pero con toda seguridad también se puede hacer.


5. Aspectos Legales (Colombia)

Por desconocimiento muchos "estudiantes" piensan que esto es una simple bromita, pero desde enero de 2009 se firmó la Ley 1273 sobre "la protección de la información y de los datos" se puede observar que fácilmente se estarían violando 3 artículos.

Artículo 269 A. 

Acceso abusivo a un sistema informático. El que, sin autorización o por fuera de lo acordado, acceda en todo o en parte a un sistema informático protegido o no con una medida de seguridad, o se mantenga dentro del mismo en contra de la voluntad de quien tenga el legítimo derecho a excluirlo.

Artículo 269 B. 

Obstaculización ilegítima de sistema informático o red de telecomunicación. El que, sin estar facultado para ello, impida u obstaculice el funcionamiento o el acceso normal a un sistema informático, a los datos informáticos allí contenidos, o a una red.

Artículo 269 D. 

Daño informático. El que, sin estar facultado para ello, destruya, dañe, borre, deteriore, altere o suprima datos informáticos, o un sistema de tratamiento de información o sus partes o componentes lógicos.
El chiste les puede salir caro, porque la sanción es bastante fuerte "incurrirá en pena de prisión de cuarenta y ocho (48) a noventa y seis (96) meses y en multa de 100 a 1000 salarios mínimos legales mensuales vigentes, siempre que la conducta no constituya delito sancionado con una pena mayor".

Acá solo estamos viendo un pequeño aspecto de la legislación, pero con toda seguridad cada universidad tiene su reglamento estudiantil o código de conducta y no creo que una apertura de un caso de este tipo con el comité académico siente muy bien en la Hoja de Vida, pues con lo visto anteriormente se pueden entregar pruebas facilmente en contra del atacante.


Conclusiones

Si estas en una sala compartida con altas deficiencias de seguridad:
  • Si sabes los equipos usan congelamiento, siempre reinicia el equipo, asi evitas que hayan dejado un troyano o un key logger corriendo.
  • Siempre que llegues a una sala realiza los pasos de bloqueo, no esperes a que pierdas información y tiempo valioso.
  • Bloquea el acceso al equipo modificando las políticas de permisos.
  • No dejes conectada tu Memoria USB, conecta copia los archivos que necesites y  luego desconecta.
  • Siempre reinicia el equipo, cuando acabes de trabajar en el equipo.
Estos pasos no quieren decir que vamos a estar 100% protegidos (eso no es prácticamente posible), pero si se la vamos a poner más difícil.

No se intente hacer el gracioso, ejecutando los archivos por lotes que se describen aca... ya conoce las consecuencias y el alcance legal que lo cobija. 

Los códigos se muestran acá pues no es nada nuevo, ni algo que sea difícil de encontrar en Internet, inclusive es un tema altamente difundido en los foros, pues bien manejada es una gran ayuda para los administradores de la red. Haga uso responsable de esta información.



Sueter... que esta vez contamos con cura para la enfermedad y esperemos que este mensaje haga eco en los "administradores" e Ingenieros de Seguridad de las universidades para que le metan un poco mas la mano a la seguridad de las salas de computo.

Por: Camilo Martinez [€quiman]

Comentarios

  1. Existe una solución, y es aplicar subnetting en las salas así cada sala estaría separada y el comando no se podría ejecutar a menos de tener acceso a todas las redes, ademas seria una muy buena practica de redes.

    ResponderEliminar
  2. Si, es que hay muchas buenas practicas... lo que no entiendo es ¿Porque no las aplican en las instituciones?

    Si el administrador le metiera 5 pesos de seguridad la cosa sería diferente.

    ResponderEliminar
  3. muy bueno...gracias por el aporte

    ResponderEliminar
  4. Gracias por el aporte. bk

    ResponderEliminar

Publicar un comentario

Entradas populares