publicado por en Monitores

Uno de los tipos de ataque más comunes entre las empresas latinoamericanas es el ataque de fuerza bruta al RDP.

Incluso si no tiene RDP publicado en internet o lo usa mediante VPN, un dispositivo comprometido dentro de la red (propio o invitado) podría lanzar un ataque devastador para sus servidores, terminando en secuestro o pérdida de datos.

En este entrada veremos cómo crear un monitor que nos permita saber si alguien está intentando acceder a un servidor mediante un ataque de fuerza bruta.

Crear Monitor

Primero vamos a las plantillas de configuración de platillas > monitores > crear monitor.

image

Defina un nombre

Definimos un nombre, sistema operativo y carpeta.

image

Agregue la condición

Ahora, en las condiciones agregamos una condición de tipo Custom Script.

image

Defina datos e intervalo

Establezca un nombre, descripción y configue el intervalo de tiempo a 2 minutos y luego reemplace el script sugerido por el siguiente y por último haga clic en el botón crear:

import os
import ctypes
import sys
Eventid = 4625  # Here mention the Event Id to get the details
# Here mention the minutes to check the crashed files (It should be same as monitoring time period)
Mins = 2


def alert(arg):
    sys.stderr.write("%d%d%d" % (arg, arg, arg))

# Please use "alert(1)" to turn on the monitor(trigger an alert) # Please use "alert(0)" to turn off the monitor(disable an alert)
# Please do not change above block and write your script below


def eventid():
    class disable_file_system_redirection:
        _disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
        _revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection

        def __enter__(self):
            self.old_value = ctypes.c_long()
            self.success = self._disable(ctypes.byref(self.old_value))

        def __exit__(self, type, value, traceback):
            if self.success:
                self._revert(self.old_value)

    with disable_file_system_redirection():
        os.popen(
            'powershell "Set-ExecutionPolicy RemoteSigned"').read()
        logs = os.popen('powershell.exe ' + '"'+'Get-EventLog -Log "Security" -After (Get-Date).AddMinutes(-%s)' %
                        Mins+'| where {$_.eventID -eq "%s"} | Format-List -Property *' % Eventid+'"').read()

    if logs:
        alert(1)
        print('Failed login with ID %s has been occured' % Eventid)
        print("Event Details")
        print(logs)

    else:
        alert(0)
        print('No failed logins detected with id %s' % Eventid)


eventid()

image

Guarde

Por último guarde la configuración del monitor.

image

Agregar el monitor al perfil de configuración

Finalmente vamos a los perfiles y agregamos el nuevo monitor el perfil de configuración deseado, en este caso al perfil de configuración de los servidores.

image

...