Показать полную графическую версию : [решено] Мониторинг USB устройств bat-файлом
EvgenBrain
26-04-2020, 11:42
Со скриптами bat не сталкивался, особо не нужны были, но сейчас поставили задачу(кровь из носу надо сделать еще вчера) написать скрипт, который бы мониторил подключенные USB устройства, список разрешенных будет в отдельном файле, если подключаемое USB - устройство совпадает, то все нормально, а если нет, то либо блокирует хост, либо порты(закрыть передачу данных)...
batники, для меня что-то новое, инет ничего дельного не дает, вторые сутки уже сижу, пытают все систематизировать, уже депрессия маячит и начальство наседает! HELP!
DJ Mogarych
26-04-2020, 13:50
начальство наседает »
Начальству надо сказать, что такая задача батниками не решается. Пусть покупают соответствующий софт.
megaloman
26-04-2020, 14:36
Вроде бы есть встроенный в Windows продукт (https://docs.microsoft.com/ru-ru/windows/security/threat-protection/microsoft-defender-atp/minimum-requirements). Хотя, наверное, можно поплясать с бубном (https://habr.com/ru/post/52553/)
DJ Mogarych
26-04-2020, 14:41
А что, Защитник умеет фильтровать USB?
megaloman
26-04-2020, 14:52
А что, Защитник умеет фильтровать USB? »
Сам не пробовал, Здесь вроде бы утверждается, что можно (https://docs.microsoft.com/en-us/windows/security/threat-protection/device-control/control-usb-devices-using-intune)
EvgenBrain
26-04-2020, 15:44
Ну а что-то похожее вообще написать реально?
То, что предотвращало нелегальное копирование
То, что предотвращало нелегальное копирование
DJ Mogarych
26-04-2020, 15:58
Написать всё реально, но не в нашем случае и не батником.
Какие-то функции управления USB-устройствами имеют многие антивирусы, например, у Каспера было что-то на эту тему.
EvgenBrain, кое-что (https://drive.google.com/open?id=1qBKDAhgfnFJXU7ESBcxkkQXOc_FSsG60) делал на cmd, работает не всегда на 100% и доп. софт требуется устанавливать в систему все равно.
EvgenBrain
26-04-2020, 19:18
Хорошо, а есть функция сравнения содержимого у бат файлов??
который бы мониторил подключенные USB устройства, список разрешенных будет в отдельном файле, »
Есть событие в журнале, дальше можно с PowerShell парсить и сопоставлять со списком одобренных устройств.
https://www.techrepublic.com/article/how-to-track-down-usb-flash-drive-usage-in-windows-10s-event-viewer/
Это не для тех, кто Со скриптами bat не сталкивался, »но хороший повод поизучать PowerShell наверное...
А что, Защитник умеет фильтровать USB? »
Это фича Windows Defender ATP.
EvgenBrain
27-04-2020, 11:43
Vadikan, да, пришел теперь к power shell... Но так как с ним тоже не сталкивался, ищу как это все реализовать
megaloman
27-04-2020, 16:23
EvgenBrain, То, что можно написать скриптами, с точки зрения безопасности - детский лепет и легко обходится. Можно, например, ориентироваться на серийный номер устройства. wmic diskdrive get model,name,serialnumber,mediatype >C:\zzzzzz.txt
У меня в файле C:\zzzzzz.txt получилосьMediaType Model Name SerialNumber
Fixed hard disk media TOSHIBA MK1637GSX ATA Device \\.\PHYSICALDRIVE0 2020202020202020202059204a36464d46425359
Removable Media JetFlash Transcend 32GB USB Device \\.\PHYSICALDRIVE3 AA00000000000489
Removable Media JetFlash Transcend 8GB USB Device \\.\PHYSICALDRIVE1 03U0UDBRCJ6HLEYV
External hard disk media WD My Passport 0743 USB Device \\.\PHYSICALDRIVE2 WX61A93R0348
Будем контролировать 2 вида устройств:
Флэшка- Removable Media
Внешний винт- External hard disk media
Допустим, разрешены 2 устройства с номерами
03U0UDBRCJ6HLEYV
WX61A93R0348
А вот AA00000000000489 будем считать нелегальным и при его подключении выключим комп ConType = Array("Removable Media", "External hard disk media")
ConSerial = Array("03U0UDBRCJ6HLEYV", "WX61A93R0348")
Quant = 5 * 1000 'милиСек опроса
FLog = "Z:\Soft_Out\Spy.txt" 'Лог-файл, куда запишется инфа о незарегистрированной флэшке
Spause = 1 'Пауза Сек начала выключения
Set WMI = GetObject("winmgmts:")
Do
Set DAll = WMI.ExecQuery("Select * from Win32_DiskDrive")
Msg = ""
Flag = True
For Each Drv In DAll
For Each iType In ConType
If LCase(iType) = LCase(Drv.MediaType) Then
Flag = False
For Each iSerial In ConSerial
If LCase(CStr(Drv.SerialNumber)) = LCase(iSerial) Then
Flag = True
Exit For
End If
Next
End If
If Flag Then Exit For
Next
If Not Flag Then
Msg = CStr(Now) + vbTab + Drv.MediaType + vbTab + Drv.Model + vbTab + CStr(Drv.SerialNumber)
' MsgBox Msg
With CreateObject("Scripting.FileSystemObject")
Set F = .OpenTextFile(FLog, 8, True)
F.WriteLine Msg
F.Close
End With
R = CreateObject("WScript.Shell").Run("shutdown.exe /s /f /t " + CStr(Spause), 7, True)
Exit For
End If
Next
WScript.Sleep Quant
Loop
Скрипт будет опрашивать имеющиеся накопители с заданным периодом (здесь в примере 5 сек)
Здесь прописаны 2 типа контролируемых устройств: "Removable Media", "External hard disk media"
Здесь прописаны 2 серийных номера: "03U0UDBRCJ6HLEYV", "WX61A93R0348"
После обнаружения незарегистрированной флэшки комп через 1 секунду начнет выключаться
При этом в файл (напишите свой путь) будут записаны атрибуты нелегальной флэшки
Но это хилый костыль с легкой возможностью его нейтрализации. Зато всё штатное и ничего доустанавливать не нужно.
EvgenBrain
29-04-2020, 10:29
megaloman, решил протестить скрипт, вообще тишина
EvgenBrain
29-04-2020, 13:18
# В первых двух строчках мы считываем наши файлы.
wmic diskdrive get model > received_name.txt
$Trusted_Name = get-content -Path .\trusted_name.txt
$Received_Name = get-content -Path .\received_name.txt
$i = $true
do
{
foreach ($objectTN in $Trusted_Name)
{
$objectTN = $objectTN.tostring().Trim()
$objectTN = $objectTN.Replace(" ","")
$objectTN = $objectTN.ToUpper()
$found = $False
foreach ($objectRN in $Received_Name)
{
$objectRN = $objectRN.Replace(" ", "")
$objectRN = $objectRN.Trim()
$objectRN = $objectRN.ToUpper()
if ($objectTN -eq $objectRN)
{
$found = $True
}
# return $found
}
if ($found -eq $false)
{
Stop-Computer
}
}
} until($i -eq $true)
почему скрипт не работает, ума не приложу, что с vbs, что ps1
EvgenBrain
29-04-2020, 13:23
megaloman, 161196
EvgenBrain
29-04-2020, 13:29
megaloman, 161196
megaloman, да в диспечере ws есть, я подключаю левую флешку и ничего не происходит
megaloman
29-04-2020, 13:34
EvgenBrain,
1. Просил результат wmic
2. Сохраняйте скрипт в 1251 кодировке.
3. Вы понаписывали не то в контролируемых устройствах, надо:
ConType = Array("Removable Media", "External hard disk media"), а вот серийные номера возьмите из результата wmic
EvgenBrain
29-04-2020, 13:36
megaloman, да в диспечере ws есть, я подключаю левую флешку и ничего не происходит
megaloman, есть телеграмм?? Очень нужна помощь!
megaloman, есть телеграмм?? Очень нужна помощь!
EvgenBrain
29-04-2020, 13:43
megaloman, 161197
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.