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.

Defina un nombre
Definimos un nombre, sistema operativo y carpeta.

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

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()

Guarde
Por último guarde la configuración del monitor.

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.
