Iniciar sesión cuando alguien conecta o retira un dispositivo USB a / de una máquina Windows

10

Actualmente estoy tratando de encontrar una manera de registrar todas las conexiones y desconexiones de dispositivos USB de todas las máquinas con Windows en nuestra red. Esta información debe registrarse automáticamente en un archivo en la máquina, luego nxlog puede leer este archivo y luego enviarlo a nuestra plataforma de registro centralizada para su procesamiento. Esperaba que esta información se registrara automáticamente en los registros de Windows, pero descubrí que aunque parece que alguna información sobre el almacenamiento extraíble USB se registra en el Visor de eventos, esta es una información bastante limitada y no se detecta cuando los teclados y ratones USB están conectado y desconectado

Después de investigar un poco, descubrí que nirsoft había escrito un pequeño archivo ejecutable que hace mucho trabajo, USBLogView se puede ejecutar sin instalación y registra cada vez que un dispositivo USB se conecta y desconecta a la máquina. El problema con esto es que no puedo ver una manera de ejecutar esto como un servicio, ni veo ninguna forma de que registre automáticamente la información que genera en un archivo de registro, aunque puede seleccionar entradas de registro y seleccionarlas manualmente para guardado en un archivo de registro.

Podría usar la Política de grupo para crear una copia local del archivo exe, y luego forzar de alguna manera este exe para que se ejecute durante el inicio, pero el problema principal de no poder obtener los registros escritos automáticamente en el archivo aún debería superarse. También debería ser capaz de asegurarme de que el usuario no pueda cerrar el programa, lo cual es posible cuando lo ejecuto yo mismo, idealmente ocultarlo y no mostrar un icono de bandeja sería la mejor manera de configurarlo. arriba (pero cuando he intentado usar la configuración oculta, me parece que puede mostrarse en la ventana principal o simplemente mostrar el icono de la bandeja del sistema). Busqué en el sitio web, pero no veo ninguna forma de invocar el programa con opciones para decirle que haga esto. También envié un correo electrónico a nirsoft la semana pasada para ver si tenían algún consejo, pero todavía estoy esperando una respuesta.

¿Alguien tiene alguna forma alternativa de hacer esto? Cualquier sugerencia o ayuda bienvenida! Gracias

Retumba
fuente

Respuestas:

2

Hay soluciones pagas para eso, por ejemplo. EndProtection4 por CoSoSys. No tengo idea de cómo funciona dentro del agente instalado en el dispositivo, pero le brinda toda la información sobre los dispositivos conectados. Necesita un lado del servidor que administre a los clientes, ya que este es el software que administra el acceso a los dispositivos. Funciona en Mac y Linux también.

Bartosz Debski
fuente
3

La conexión y desconexión de dispositivos USB se registra en el "Registro de eventos".

Citando esta descripción detallada (blog "Digital Forensics Stream", 2014-01-02, Registro de eventos de Windows 7 y seguimiento de dispositivos USB ):

ID de eventos de conexión
Cuando un dispositivo de almacenamiento extraíble USB está conectado a un sistema Windows 7, se deben generar varios registros de eventos en el registro de eventos de Microsoft-Windows-DriverFrameworks-UserMode / Operational. Los registros incluyen aquellos con ID de evento 2003, 2004, 2005, 2010, 2100, 2105 y más. ...

ID de eventos de desconexión
Cuando una unidad de memoria USB se desconecta de un sistema Windows 7, se deben generar algunos registros de eventos en el mismo registro de eventos que los eventos de conexión. Se pueden generar registros con Event ID 2100, 2102 y potencialmente más cuando se desconecta un dispositivo USB. ...

Para automatizar las exportaciones desde el Registro de eventos, Microsoft ofrece el registrador de registros de forma gratuita.

meneo de pantano
fuente
2
Gracias por la respuesta, pero como dije en mi pregunta, el Visor de eventos muestra cuando conecta dispositivos de almacenamiento USB, pero no dispositivos USB como teclados, etc. Quiero recopilar la información de todos los dispositivos USB, no solo dispositivos de almacenamiento USB.
Rumbles
@Rumbles ¿Estás seguro de que estás mirando el registro correcto? El registro mencionado anteriormente no es uno de los "habituales". Por otro lado, el registro mencionado anteriormente solo contendrá información sobre dispositivos manejados por controladores UMDF. No controladores KMDF y no controladores no marco.
Jamie Hanrahan
1
No puedo confirmar, es algo que no he visto en mucho tiempo, y desde entonces he cambiado de trabajo y rara vez trabajo con máquinas de escritorio de Windows ahora (¡hurra!)
Rumbles
Pude ver dispositivos de almacenamiento pero no un mouse USB cuando habilité este registro.
Tyler Szabo el
0

Intentaría usar una herramienta como AutoIT.

$vFile = FileOpen("usb.txt", 2)

Local $vObjWMI = ObjGet("winmgmts:\\" & @ComputerName & "\root\cimv2")

$vObjItems = $vObjWMI.ExecQuery('SELECT * FROM Win32_DiskDrive')
If IsObj($vObjItems) Then
    For $vObjItem In $vObjItems
        If StringInStr($vObjItem.Caption, "USB") Then
            FileWriteLine($vFile, $vObjItem.Caption & @CRLF)
            FileWriteLine($vFile, $vObjItem.DeviceID & @CRLF & @CRLF)
        EndIf
    Next
EndIf

FileClose($vFile)

ShellExecute("usb.txt")

Aquí se encuentra una publicación del foro de la que proviene el foro AutoIT: http://www.autoitscript.com/forum/topic/155213-detect-usb-devices-connected/?p=1121434

Riley Childs
fuente
0

Utilizar regedity el aspecto de los registryartículos en: HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\. Para algunos detalles, abra PowerShell y ejecute:

$Path = 'HKLM:\SYSTEM\CurrentControlSet\Enum\USBSTOR\*\*'
Get-ItemProperty -Path $Path | Select-Object -Property FriendlyName, CompatibleIDs, Mfg

O buscar en el archivo de registro en: C:\Windows\inf\setupapi.dev.log.

Para más detalles técnicos, mira el blog de Nicoles .

not2qubit
fuente