Foro de elhacker.net

Sistemas Operativos => Windows => Mensaje iniciado por: maniattico en 6 Octubre 2010, 12:25 pm



Título: Notificación cuando alguien conecta por terminal server
Publicado por: maniattico en 6 Octubre 2010, 12:25 pm
Buenas,

Tengo un dominio de Windows 2003R2 y clientes Windows XP SP3.

Lo que quiero conseguir es que cuando alguien se conecte por terminal server a un servidor (y a clientes tambien me vendría bien), que me llegue un correo alertandome.

Hace un tiempo intenté agregar un disparador a un suceso para ejecutar un script que me mandaba el correo, pero fallaba mucho, era engorroso, en el correo no había nada de info...

¿Se os ocurre alguna forma de poder hacer esto?

Gracias por adelantado


Título: Re: Notificación cuando alguien conecta por terminal server
Publicado por: -=[ §ÂßÂÑÐØ ]=- en 6 Octubre 2010, 14:13 pm
Con Visual basic y esto k te pongo.....será suficiente

Crear un registro de conexiones a terminal server con VBS.

Citar
Creamos un fichero de texto llamado registro.vbs con el siguiente contenido. 
Por último, creamos una entrada en la ejecución de sesiones de usuario 
llamando a esta aplicación.

Con esto conseguiremos que toda entrada al sistema se quede registrada en dicho fichero.
Para que este sistema sea un poco más seguro puede proteger la carpeta, ocultarla y/o
cambiarla de c:\ts\entradas.log 
a una carpeta un poco más oculta en el estructura de directorios del servidor.


' Script en VBScript parar guardar los  accesosa al terminal server
' Preformateo del fichero de texto con dobles comillas y separados por comas
 Const ForAppending = 8
 Set oShell = CreateObject("WScript.Shell")
 Set objFSO = CreateObject("Scripting.FileSystemObject")
'****************************************************************************
'Comprobamos si existe el fichero de log
 If Not objFSO.FileExists("C:\ts\entradas.log") Then
    'El fichero no existe y lo creamos con la cabecera de datos
    Set objArchivo = objFSO.CreateTextFile("c:\acceso.log", true)
    objArchivo.Write chr(34) & "Fecha" & chr(34) & ","
    objArchivo.Write chr(34) & "Hora" & chr(34) & ","
    objArchivo.Write chr(34) & "Equipo" & chr(34) & ","
    objArchivo.Write chr(34) & "Usuario" & chr(34) & ","
    objArchivo.Write chr(34) & "Tipo_Conexion" & chr(34) & ","
    objArchivo.Writeline
    objArchivo.close
 End If
'****************************************************************************
'Para obtener la fecha del sistema
 strComputer = "."
 Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
 Set colItems = objWMIService.ExecQuery("Select * from Win32_UTCTime")
 For Each objItem in colItems
    Dia  = objItem.Day
    Mes  = objItem.Month
    Anno = objItem.Year
    Hora = objItem.Hour
    Minu = objItem.Minute
 Next
 strFecha = Anno & "/" & Mes & "/" & Dia
 strReloj = Hora & ":" & Minu
'****************************************************************************
'Leemos los datos del cliente TS
 strSesion  = oShell.ExpandEnvironmentStrings("%SESSIONNAME%")
 strUsuario = oShell.ExpandEnvironmentStrings("%USERNAME%")
 strMaquina = oShell.ExpandEnvironmentStrings("%CLIENTNAME%")
'Comprobamos el tipo de conexion
 If strSesion = "" Or LCase(strSesion) = "console" Then
  strSesion = "Acceso por consola"
 End If
 If Left(strSesion,8) = "RDP-Tcp#" Then
  strSesion = "Acceso por TS"
 End If
'Agregamos los datos al fichero
 Set objArchivo = objFSO.OpenTextFile("c:\ts\entradas.log", ForAppending, False)
 objArchivo.Write chr(34) & strFecha     & chr(34) & ","
 objArchivo.Write chr(34) & strReloj      & chr(34) & ","
 objArchivo.Write chr(34) & strMaquina & chr(34) & ","
 objArchivo.Write chr(34) & strUsuario  & chr(34) & ","
 objArchivo.Write chr(34) & strSesion    & chr(34)
 objArchivo.Writeline
 objArchivo.close
' Fin del Script

Nota: Pasos para añadir este Script al inicio de sesión de los usuarios.

Para usarse desde una GPO, deberemos hacerlo en una GPO 
que afecte a las cuentas de usuario de las que queremos registrar 
sus inicios y cierres de sesión. Editando la GPO, 
en el panel del árbol, nos situamos en el nodo Configuración 
de usuarioConfiguración de WindowsSecuencia de comandos(inicio de 
sesión/cierre de sesión); veremos en el panel de detalle las directivas 
Iniciar sesión y Cerrar sesión. 
Hacemos doble click en Iniciar sesión, pulsamos el botón Agregar…, 
en la caja de texto Nombre del archivo de comandos ponemos 
la ruta y nombre del script VBScript