¿Es posible estimar el tiempo de actividad de los servidores de Windows de forma remota?

3

Estoy trabajando en el análisis de seguridad de un sistema y algunas de sus medidas de seguridad se basan en la propiedad Environment.TickCount expuesta por .NET Framework. Según lo declarado por Microsoft:

  

Debido a que el valor de la propiedad TickCount es un entero con signo de 32 bits, si el sistema se ejecuta de manera continua, TickCount aumentará de cero a Int32.MaxValue durante aproximadamente 24.9 días, luego saltará a Int32.MinValue, que es negativo número, luego incremente de nuevo a cero durante los próximos 24.9 días. Puede solucionar este problema llamando a la función GetTickCount de Windows, que se restablece a cero después de aproximadamente 49.7 días , o llamando a la función GetTickCount64.

Entonces, al conocer el tiempo de funcionamiento estimado del servidor, también se puede estimar aproximadamente el valor de Environment.TickCount . Esto debilitaría significativamente la seguridad del sistema. Un ataque de fuerza bruta en el rango completo de los posibles valores de TickCount llevaría aproximadamente 2 días y medio con mi implementación actual (que tampoco es muy larga), un valor general para elegir un punto de partida en el espacio de valor haría Esta búsqueda es mucho más eficiente.

El servidor se está ejecutando completamente Windows Server 2012 R2 y el único servicio expuesto sería IIS que sirve algunas páginas ASP.NET (tal vez IIS pierde algo de esta información).

    
pregunta Jonas Köritz 04.12.2016 - 15:11
fuente

2 respuestas

2

TCP Timestamps se puede usar para estimar el tiempo de actividad de Windows 2012. Nmap aún utiliza esta técnica para calcular los tiempos de actividad.

La desactivación de esta función puede tener un impacto en el rendimiento, por lo que a menudo se deja abierta.

    
respondido por el schroeder 05.12.2016 - 22:41
fuente
-1

Si la pregunta es cómo obtener el tiempo de actividad de una computadora remota de forma remota cuando tiene acceso a la computadora, puede obtener esta información de WMI en PowerShell directamente. Por ejemplo:

[Management.ManagementDateTimeConverter]::ToDateTime(
  (Get-WmiObject Win32_OperatingSystem -ComputerName computername).LastBootUpTime
)

Si la pregunta es, "¿cómo puedo obtener el tiempo de funcionamiento exacto de una máquina Windows remota sin autenticarme en esa máquina remota?", la respuesta es "no se puede". (Eso sería una divulgación de información no intencional).

[Editar: Agregó el calificador "exacto" al párrafo anterior. Es posible que se pueda calcular el tiempo de actividad utilizando las marcas de tiempo TCP si el administrador no lo ha desactivado.]

    
respondido por el user132534 05.12.2016 - 22:14
fuente

Lea otras preguntas en las etiquetas