Detectar un ataque de fuerza bruta al RDP usando un monitor
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.
- Publicado el