none
Аудит удаленных файлов на файловом сервере. RRS feed

  • Вопрос

  • Здравствуйте.

    Поделитесь скриптом который проверяет события( за сутки , то-есть если скрипт запустился 22-00 13-03-2013 покажет данные за 00-00 по 22-00 13-03-2013) аудита удаления файлов на файловом сервере и отсылает письмо

    формат письма:

    13-00-22-03-2013 DOMAIN\chubaka1 DELETE \\share\FIN\BUH.xlsx
    18-00-22-03-2013 DOMAIN\chubaka3 DELETE \\share\HR\FOT.xlsx
    21-00-22-03-2013 DOMAIN\chubaka2 DELETE \\share\FIN\OTCHETY.xlsx
    итд.

    Заранее благодарен.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    13 марта 2013 г. 19:33

Ответы

  • $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} DELETE {2}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value),$_.properties[6].value
    } | Out-String
    
    if($Body) {
    	Send-MailMessage -From $From -To $To -SmtpServer $server -Body $BodyM -Subject $Subject -Encoding $encoding
    }

    • Помечено в качестве ответа MR.Minion 14 марта 2013 г. 11:08
    14 марта 2013 г. 10:37
    Отвечающий
  • $id = @{
    	0x10000 = "DELETE"
    	0x6 = "WRITE"
    	0x2 = "ADDFILE"
    }
    
    $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} {2} {3}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value), $id[$_.properties[9].value],$_.properties[6].value
    } | Out-String

    • Помечено в качестве ответа MR.Minion 14 марта 2013 г. 12:54
    14 марта 2013 г. 11:46
    Отвечающий
  • $id = @{
    	0x10000 = "Delete"
    	0x6 = "Write"
    	0x2 = "CreateFiles"
        	0x12019f = "Write, Read, Synchronize"
    }

    На месте вывода 0x12019f пустая ячейка.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    @{n="Action";e={$id[$_.properties[9]].value}} заменить на @{n="Action";e={[Security.AccessControl.FileSystemRights]$_.properties[9].value}}
    • Помечено в качестве ответа MR.Minion 15 марта 2013 г. 6:57
    15 марта 2013 г. 5:18
    Отвечающий

Все ответы

  • Готовый скрипт,но т.к. Вы считаете,что не обязательно указывать ОС,то легко исправите скрипт под свои нужды(остается добавить только Send-MailMessage).

    http://shserg.ru/posts/script_to_parse_object_acess_events/

    13 марта 2013 г. 19:53
    Отвечающий
  • Готовый скрипт,но т.к. Вы считаете,что не обязательно указывать ОС,то легко исправите скрипт под свои нужды(остается добавить только Send-MailMessage).

    http://shserg.ru/posts/script_to_parse_object_acess_events/

    Спасибо.

    Делаю вот так :

    Function Get-AccessEvts ($CompName, $Before=$DateBefore, $After=$DateAfter) 
    
    {
    
    #массив, в который будем собирать информацию
        $arrEvts=@()
    
    #Перебираем все события с EventID равными 560 в заданном диапазоне даты/времени
        $filter="logfile='Security' and (eventcode='560') and TimeGenerated >= '$([System.Management.ManagementDateTimeConverter]::ToDMTFDateTime($After))'"
        $filter+= " and TimeGenerated <= '$([System.Management.ManagementDateTimeConverter]::ToDMTFDateTime($Before))'"
        gwmi -ComputerName $CompName -Class Win32_NTlogEvent -Filter $filter -ErrorAction Stop|%{
    
    #создадим новый объект, в который будем записывать информацию об очередном событии входа/выхода
            $objEvt=New-Object PSObject -Property @{
            
                CompName=$CompName;
                TimeGenerated=$null;
                User=$null;
                Domain=$null;
                UserClient=$null;
                EventIdentifier=$null;
                ObjectName=$null;
                Access=$nul;
            }
            #и сохраняем всю полезную информацию о событии в объете $objEvt
            $objEvt.TimeGenerated=[datetime]$_.TimeGenerated
            $objEvt.EventIdentifier=$_.EventIdentifier
            switch -regex ($_.Message) {
                "(?:Пользователь|User):\t+(\w+(?:\s?[\w-]+)*)" {$objEvt.User=$Matches[1]}
                "(?:Пользователь-клиент|Client User Name):\t+(\w+)" {$objEvt.UserClient=$Matches[1]}
                "(?:Домен|Domain):\t+(\w+(?:\s?[\w-]+)*)"       {$objEvt.Domain=$Matches[1]}
                "(?:Имя объекта|Object Name):\t+(.+)"  {$objEvt.ObjectName=$Matches[1]}
                "(?:Доступ|Access):\t+(\w+)"  {$objEvt.Access=$Matches[1]}
    
            }
    
    #добавляем информацию об очередном событии в массив
            $arrEvts+=$objEvt
    
        }
    #возвращаем, как результат работы функции, информацию о всех собранных событиях
        $arrEvts
        }
    
    Get-AccessEvts -CompName "SHARE" -Before "14/03/2013 00:00" -After "13/03/2013 08:00"|?{$_.ObjectName -like "*.xls*"}|Export-Csv -Encoding utf8 -UseCulture -Path c:\Event\def.csv
    

    Выходит ошибка:

    Не удается преобразовать аргумент "0", со значением: "13.03.2013 08:00", для "ToDMTFDateTime" в тип "System.DateTime": "Не удается преобразовать значение "13.03.2013 08:00" в тип "System.DateTime". Ошибка: "Строка не распознана как действительное значение Dat
    eTime.""
    строка:9 знак:64
    + [System.Management.ManagementDateTimeConverter]::ToDMTFDateTime <<<< ($After)
        + CategoryInfo          : NotSpecified: (:) [], MethodException
        + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
     
    Не удается преобразовать аргумент "0", со значением: "14.03.2013 00:00", для "ToDMTFDateTime" в тип "System.DateTime": "Не удается преобразовать значение "14.03.2013 00:00" в тип "System.DateTime". Ошибка: "Строка не распознана как действительное значение Dat
    eTime.""
    строка:10 знак:64
    + [System.Management.ManagementDateTimeConverter]::ToDMTFDateTime <<<< ($Before)
        + CategoryInfo          : NotSpecified: (:) [], MethodException
        + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument
     
    Invalid query 
    строка:11 знак:9
    +     gwmi <<<<  -ComputerName $CompName -Class Win32_NTlogEvent -Filter $filter -ErrorAction Stop|%{
        + CategoryInfo          : InvalidOperation: (:) [Get-WmiObject], ManagementException
        + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

    Что я не правильно делаю?

    Далее как понял надо передалть последние две строки:

    Get-AccessEvts -CompName "myserver" -Before "05/19/2011 00:00" -After "05/18/2011 08:00"|?{$_.ObjectName -like "*.xls*"}|Export-Csv -Encoding utf8 -UseCulture EventShare.csv
    
    Send-MailMessage -From abc@domain.local -To info@domain.local -Subject "Informer SHARE" -Attachments EventShare.csv -SmtpServer smtp.domain.local

    И как в этой строке 

    Get-AccessEvts -CompName "myserver" -Before "05/19/2011 00:00" -After "05/18/2011 08:00"|?{$_.ObjectName -like "*.xls*"}|Export-Csv -Encoding utf8 -UseCulture EventShare.csv

    сделать чтобы автоматически выдавал за стуки ?

    Заранее благодарен.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 5:12
  • Get-AccessEvts -CompName "myserver" -Before (Get-Date) -After ([datetime]::ToDay) |?{$_.ObjectName -like "*.xls*"}|Export-Csv -Encoding utf8 -UseCulture EventShare
    14 марта 2013 г. 5:31
    Отвечающий
  • Get-AccessEvts -CompName "myserver" -Before (Get-Date) -After ([datetime]::ToDay) |?{$_.ObjectName -like "*.xls*"}|Export-Csv -Encoding utf8 -UseCulture EventShare

    Сделал вот так :

    Get-AccessEvts -CompName "SHARE" -Before (Get-Date) -After ([datetime]::ToDay) |?{$_.ObjectName -like "*.xls*"}|Export-Csv -Encoding utf8 -UseCulture EventShare.csv
    
    Send-MailMessage -From share@domain.local -To chubaka@domain.local -Subject "Informer SHARE" -Attachments EventShare.csv -SmtpServer mail.domain.local


    Приходит файл пустой с кодом п»ї

    Аудит настроен вот так :

    мб это из-за того что  у меня Windows 2008R2 ?


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 14 марта 2013 г. 6:03
    14 марта 2013 г. 5:59
  • Для R2 - Аудит удаления и доступа к файлам и запись событий в лог-файл средствами Powershell

    Спасибо за ссылку, скрипт отрабатывает но создает пустой файл ,также как и выше =( что я не так делаю что нужно предоставить чтобы понять где я ошибаюсь ?

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 9:20
  • Для R2 - Аудит удаления и доступа к файлам и запись событий в лог-файл средствами Powershell

    Спасибо за ссылку, скрипт отрабатывает но создает пустой файл ,также как и выше =( что я не так делаю что нужно предоставить чтобы понять где я ошибаюсь ?

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Аудит в групповых политиках включен и записи присутствуют в EventLog?
    14 марта 2013 г. 9:22
    Отвечающий
  • Для R2 - Аудит удаления и доступа к файлам и запись событий в лог-файл средствами Powershell

    Спасибо за ссылку, скрипт отрабатывает но создает пустой файл ,также как и выше =( что я не так делаю что нужно предоставить чтобы понять где я ошибаюсь ?

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    Аудит в групповых политиках включен и записи присутствуют в EventLog?

    Да ,через PS все видно:

    PS C:\Users\chubaka> Get-WinEvent -FilterHashtable @{LogName="Security";ID=4660}
    
    TimeCreated                   ProviderName                                             Id Message
    -----------                   ------------                                             -- -------
    14.03.2013 13:25:05           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:24:07           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:44           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:36           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:35           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:34           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:33           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:33           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:33           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:33           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:32           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:31           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:23:26           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:22:46           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:22:13           Microsoft-Windows-Security...                          4660 Объект удален....
    14.03.2013 13:21:52           Microsoft-Windows-Security...                          4660 Объект удален....


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 9:28
  • $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} DELETE {2}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value),$_.properties[6].value
    } | Out-String
    
    if($Body) {
    	Send-MailMessage -From $From -To $To -SmtpServer $server -Body $BodyM -Subject $Subject -Encoding $encoding
    }

    • Помечено в качестве ответа MR.Minion 14 марта 2013 г. 11:08
    14 марта 2013 г. 10:37
    Отвечающий
  • $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} DELETE {2}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value),$_.properties[6].value
    } | Out-String
    
    if($Body) {
    	Send-MailMessage -From $From -To $To -SmtpServer $server -Body $BodyM -Subject $Subject -Encoding $encoding
    }

    Работает , большое спасибо ! Простите меня за мою наглость , а можете добавить статусы создания и модификации файла ?


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 11:08
  • $id = @{
    	0x10000 = "DELETE"
    	0x6 = "WRITE"
    	0x2 = "ADDFILE"
    }
    
    $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} {2} {3}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value), $id[$_.properties[9].value],$_.properties[6].value
    } | Out-String

    • Помечено в качестве ответа MR.Minion 14 марта 2013 г. 12:54
    14 марта 2013 г. 11:46
    Отвечающий
  • $id = @{
    	0x10000 = "DELETE"
    	0x6 = "WRITE"
    	0x2 = "ADDFILE"
    }
    
    $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} {2} {3}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value), $id[$_.properties[9].value],$_.properties[6].value
    } | Out-String

    Работает только , почему то не отображается надпись после логин WRITE (пустое место ) потом имя файла

    09-56-14-03-2013 DOMAIN/Chubaka ADDFILE F:\SHARE\CHUBAKA\123.xlsx

    09-57-14-03-2013 DOMAIN/Chubaka F:\SHARE\CHUBAKA\123.xlsx

    09-59-14-03-2013 DOMAIN/Chubaka DELETE F:\SHARE\CHUBAKA\123.xlsx

    блин пока Вы в ударе и помогаете мне =) как сделать чтобы экспортировалось в xlsx или cvs и атачилось к письму ? 

    Думаю этот тред мб приатачить к форму, будет полезно всем. 


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    • Изменено MR.Minion 14 марта 2013 г. 12:55
    14 марта 2013 г. 12:53
  • $id = @{
    	0x10000 = "DELETE"
    	0x6 = "WRITE"
    	0x2 = "ADDFILE"
    }
    
    $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} {2} {3}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value), $id[$_.properties[9].value],$_.properties[6].value
    } | Out-String

    Работает только , почему то не отображается надпись после логин WRITE (пустое место ) потом имя файла

    09-56-14-03-2013 DOMAIN/Chubaka ADDFILE F:\SHARE\CHUBAKA\123.xlsx

    09-57-14-03-2013 DOMAIN/Chubaka F:\SHARE\CHUBAKA\123.xlsx

    09-59-14-03-2013 DOMAIN/Chubaka DELETE F:\SHARE\CHUBAKA\123.xlsx

    блин пока Вы в ударе и помогаете мне =) как сделать чтобы экспортировалось в xlsx или cvs и атачилось к письму ? 

    Думаю этот тред мб приатачить к форму, будет полезно всем. 


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.



    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Select `
    	@{n="Time";e={$_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")}},
    	@{n="UserName";e={$_.properties[2].Value + "/" + $_.properties[1].Value}},
    	@{n="Action";e={$id[$_.properties[9].value}},
    	@{n="FileName";e={$_.properties[6].value}} | Export-Csv result.csv -Encoding UTF8 -NoTypeInformation -UseCulture
    09-57-14-03-2013 DOMAIN/Chubaka  F:\SHARE\CHUBAKA\123.xlsx - Для этого события покажите поле Message.
    14 марта 2013 г. 13:03
    Отвечающий
  • $id = @{
    	0x10000 = "DELETE"
    	0x6 = "WRITE"
    	0x2 = "ADDFILE"
    }
    
    $Body = Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Foreach {
    	"{0} {1} {2} {3}" -f ($_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")),($_.properties[2].Value + "/" + $_.properties[1].Value), $id[$_.properties[9].value],$_.properties[6].value
    } | Out-String

    Работает только , почему то не отображается надпись после логин WRITE (пустое место ) потом имя файла

    09-56-14-03-2013 DOMAIN/Chubaka ADDFILE F:\SHARE\CHUBAKA\123.xlsx

    09-57-14-03-2013 DOMAIN/Chubaka F:\SHARE\CHUBAKA\123.xlsx

    09-59-14-03-2013 DOMAIN/Chubaka DELETE F:\SHARE\CHUBAKA\123.xlsx

    блин пока Вы в ударе и помогаете мне =) как сделать чтобы экспортировалось в xlsx или cvs и атачилось к письму ? 

    Думаю этот тред мб приатачить к форму, будет полезно всем. 


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.



    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Select `
    	@{n="Time";e={$_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")}},
    	@{n="UserName";e={$_.properties[2].Value + "/" + $_.properties[1].Value}},
    	@{n="Action";e={$id[$_.properties[9].value}},
    	@{n="FileName";e={$_.properties[6].value}} | Export-Csv result.csv -Encoding UTF8 -NoTypeInformation -UseCulture
    09-57-14-03-2013 DOMAIN/Chubaka  F:\SHARE\CHUBAKA\123.xlsx - Для этого события покажите поле Message.

    сделал вот так :

    $id = @{
    	0x10000 = "DELETE"
    	0x6 = "WRITE"
    	0x2 = "ADDFILE"
    }
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Select `
    	@{n="Time";e={$_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")}},
    	@{n="UserName";e={$_.properties[2].Value + "/" + $_.properties[1].Value}},
    	@{n="Action";e={$id[$_.properties[9]].value}},
    	@{n="FileName";e={$_.properties[6].value}} | Export-Csv ResultAudit.csv -Encoding UTF8 -NoTypeInformation -UseCulture
    
    Send-MailMessage -From event-4663@domain.local -To chubaka@domain.local -Subject "Informer" -Attachments ResultAudit.csv -SmtpServer mail.domain.local
    Столбец Action  пустой =(

    09-57-14-03-2013 DOMAIN/Chubaka  F:\SHARE\CHUBAKA\123.xlsx - Для этого события покажите поле Message.

    Скопировать из Евентлога или как то через PS &?


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 13:33
  • У меня не правильно скопировалось. Должно быть: @{n="Action";e={$id[$_.properties[9].value]}}

    Без разницы, откуда копировать.

    14 марта 2013 г. 13:41
    Отвечающий
  • У меня не правильно скопировалось. Должно быть: @{n="Action";e={$id[$_.properties[9].value]}}

    Без разницы, откуда копировать.

    Скопировал  Message пустого поля Action (WRITE):

    Имя журнала:   Security
    Источник:      Microsoft-Windows-Security-Auditing
    Дата:          14.03.2013 17:52:38
    Код события:   4656
    Категория задачи:Файловая система
    Уровень:       Сведения
    Ключевые слова:Аудит успеха
    Пользователь:  Н/Д
    Компьютер:     share.DOMAIN.local
    Описание:
    Запрошен дескриптор объекта.
    
    Субъект:
    	Код безопасности:		DOMAIN\CHUBAKA
    	Имя учетной записи:		CHUBAKA
    	Домен учетной записи:		DOMAIN
    	Код входа:		0x4b8b0185
    
    Объект:
    	Сервер объекта:		Security
    	Тип объекта:		File
    	Имя объекта:		F:\SHARE\CHUBAKA\123.xlsx 
    	Код дескриптора:		0x4970
    
    Сведения о процессе:
    	Код процесса:		0x4
    	Имя процесса:		
    
    Сведения о запросе на доступ:
    	Код транзакции:		{00000000-0000-0000-0000-000000000000}
    	Доступ:		READ_CONTROL
    				SYNCHRONIZE
    				Чтение данных (или перечисление каталогов)
    				Запись данных (или добавление файла)
    				Добавление данных (или добавление подкаталогов, или создание копии канала)
    				ReadEA
    				WriteEA
    				ReadAttributes
    				WriteAttributes
    				
    	Причины доступа:		READ_CONTROL:	Предоставлено владельцем
    				SYNCHRONIZE:	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				Чтение данных (или перечисление каталогов):	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				Запись данных (или добавление файла):	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				Добавление данных (или добавление подкаталогов, или создание копии канала):	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				ReadEA:	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				WriteEA:	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				ReadAttributes:	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				WriteAttributes:	Кем выдано:	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				
    	Маска доступа:		0x12019f
    	Привилегии, используемые для проверки доступа:	-
    	Число ограниченных ИД безопасности:	0
    Xml события:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
      <System>
        <Provider Name="Microsoft-Windows-Security-Auditing" Guid="{54849625-5478-4994-A5BA-3E3B0328C30D}" />
        <EventID>4656</EventID>
        <Version>1</Version>
        <Level>0</Level>
        <Task>12800</Task>
        <Opcode>0</Opcode>
        <Keywords>0x8020000000000000</Keywords>
        <TimeCreated SystemTime="2013-03-14T13:52:38.169838000Z" />
        <EventRecordID>363617553</EventRecordID>
        <Correlation />
        <Execution ProcessID="624" ThreadID="632" />
        <Channel>Security</Channel>
        <Computer>share.DOMAIN.local</Computer>
        <Security />
      </System>
      <EventData>
        <Data Name="SubjectUserSid">S-1-5-21-4231654968-1618279416-2300147091-1222</Data>
        <Data Name="SubjectUserName">CHUBAKA</Data>
        <Data Name="SubjectDomainName">DOMAIN</Data>
        <Data Name="SubjectLogonId">0x4b8b0185</Data>
        <Data Name="ObjectServer">Security</Data>
        <Data Name="ObjectType">File</Data>
        <Data Name="ObjectName">F:\SHARE\CHUBAKA\123.xlsx</Data>
        <Data Name="HandleId">0x4970</Data>
        <Data Name="TransactionId">{00000000-0000-0000-0000-000000000000}</Data>
        <Data Name="AccessList">%%1538
    				%%1541
    				%%4416
    				%%4417
    				%%4418
    				%%4419
    				%%4420
    				%%4423
    				%%4424
    				</Data>
        <Data Name="AccessReason">%%1538:	%%1804
    				%%1541:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				%%4416:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				%%4417:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				%%4418:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				%%4419:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				%%4420:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				%%4423:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				%%4424:	%%1801	D:(A;ID;FA;;;S-1-5-21-4231654968-1618279416-2300147091-1140)
    				</Data>
        <Data Name="AccessMask">0x12019f</Data>
        <Data Name="PrivilegeList">-</Data>
        <Data Name="RestrictedSidCount">0</Data>
        <Data Name="ProcessId">0x4</Data>
        <Data Name="ProcessName">
        </Data>
      </EventData>
    </Event>

    Спасибо.


    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 14:11
  • $id = @{
    	0x10000 = "Delete"
    	0x6 = "Write"
    	0x2 = "CreateFiles"
        	0x12019f = "Write, Read, Synchronize"
    }

    14 марта 2013 г. 14:39
    Отвечающий
  • $id = @{
    	0x10000 = "Delete"
    	0x6 = "Write"
    	0x2 = "CreateFiles"
        	0x12019f = "Write, Read, Synchronize"
    }

    На месте вывода 0x12019f пустая ячейка.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    14 марта 2013 г. 16:03
  • $id = @{
    	0x10000 = "Delete"
    	0x6 = "Write"
    	0x2 = "CreateFiles"
        	0x12019f = "Write, Read, Synchronize"
    }

    На месте вывода 0x12019f пустая ячейка.

    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.


    @{n="Action";e={$id[$_.properties[9]].value}} заменить на @{n="Action";e={[Security.AccessControl.FileSystemRights]$_.properties[9].value}}
    • Помечено в качестве ответа MR.Minion 15 марта 2013 г. 6:57
    15 марта 2013 г. 5:18
    Отвечающий
  • Kazun , большое спасибо !

    Вот рабочий вариант  аудита файлового сервера с отправкой отчета на почту:

    $id = @{
    	0x10000 = "Delete"
    	0x6 = "Write"
    	0x2 = "CreateFiles"
            0x12019f = "Write, Read, Synchronize"
    }
    
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Select `
    	@{n="Time";e={$_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")}},
    	@{n="UserName";e={$_.properties[2].Value + "/" + $_.properties[1].Value}},
    	@{n="Action";e={[Security.AccessControl.FileSystemRights]$_.properties[9].value}},
    	@{n="FileName";e={$_.properties[6].value}} | Export-Csv ResultAudit.csv -Encoding UTF8 -NoTypeInformation -UseCulture
    
    Send-MailMessage -From share-event-4663@domain.local -To info-adm@domain.local -Subject "Informer SHARE" -Attachments ResultAudit.csv -SmtpServer mail.domain.local

    Для отправки отчета нужно на почтовом сервере открыть анонимный relay ( у меня почтовый сервер Exchange 2010 )

    10.8.254.7 - почтовый сервер

    10.8.254.15 - файловый сервер

    New-ReceiveConnector -Name "Anonymous Relay" -Usage Custom -PermissionGroups AnonymousUsers -Bindings 10.8.254.7:25 –RemoteIpRanges 10.8.254.15
    Get-ReceiveConnector "Anonymous Relay" | Add-ADPermission -User "NT AUTHORITY\АНОНИМНЫЙ ВХОД" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    15 марта 2013 г. 7:06
  • Kazun , большое спасибо !

    Вот рабочий вариант  аудита файлового сервера с отправкой отчета на почту:

    $id = @{
    	0x10000 = "Delete"
    	0x6 = "Write"
    	0x2 = "CreateFiles"
            0x12019f = "Write, Read, Synchronize"
    }
    
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties[6].value -match "xlsx$"} | Select `
    	@{n="Time";e={$_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")}},
    	@{n="UserName";e={$_.properties[2].Value + "/" + $_.properties[1].Value}},
    	@{n="Action";e={[Security.AccessControl.FileSystemRights]$_.properties[9].value}},
    	@{n="FileName";e={$_.properties[6].value}} | Export-Csv ResultAudit.csv -Encoding UTF8 -NoTypeInformation -UseCulture
    
    Send-MailMessage -From share-event-4663@domain.local -To info-adm@domain.local -Subject "Informer SHARE" -Attachments ResultAudit.csv -SmtpServer mail.domain.local

    Для отправки отчета нужно на почтовом сервере открыть анонимный relay ( у меня почтовый сервер Exchange 2010 )

    10.8.254.7 - почтовый сервер

    10.8.254.15 - файловый сервер

    New-ReceiveConnector -Name "Anonymous Relay" -Usage Custom -PermissionGroups AnonymousUsers -Bindings 10.8.254.7:25 –RemoteIpRanges 10.8.254.15
    Get-ReceiveConnector "Anonymous Relay" | Add-ADPermission -User "NT AUTHORITY\АНОНИМНЫЙ ВХОД" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"



    Сначала Вас игнорируют, потом над Вами смеются, потом с Вами борются, а затем Вы победили.

    Использовал данный вариант скрипта, только без отправки на почту... и он не работает корректно. В выходном файле строка выглядит так "п»ї"

    $id = @{
    	0x10000 = "Delete"
    	0x6 = "Write"
    	0x2 = "CreateFiles"
    	0x12019f = "Write, Read, Synchronize"
    }
    
    Get-WinEvent -FilterHashtable @{LogName="Security";ID=4663;StartTime=([datetime]::ToDay)} | Where {$_.properties
    
    [6].value -match "xlsx$"} | Select `
    	@{n="Time";e={$_.TimeCreated.ToString("HH-mm-dd-MM-yyyy")}},
    	@{n="UserName";e={$_.properties[2].Value + "/" + $_.properties[1].Value}},
    	@{n="Action";e={[Security.AccessControl.FileSystemRights]$_.properties[9].value}},
    	@{n="FileName";e={$_.properties[6].value}} | Export-Csv ResultAudit.csv -Encoding UTF8 -NoTypeInformation -
    
    UseCulture



    • Изменено kaig73 10 ноября 2015 г. 8:52
    10 ноября 2015 г. 8:51
  • Аудит на сервере настроен ?



    10 ноября 2015 г. 9:20
  • Аудит на сервере настроен ?



    Конечно.
    10 ноября 2015 г. 9:30