Какие шаги в первую очередь предпринять для определения источника вредоносной активности в Windows?
Этот вопрос очень многогранный. Если в вашей сети используются различные средства безопасности, источник атаки будет найти не так сложно. В противном случае придется разгребать логи Windows и анализировать результаты выполнения базовых команд в поисках появления чего-то подозрительного:
Пользователи:
1 2 3 4 |
net user Get-LocalUser net localgroup administrators Get-LocalGroupMember Administrators |
Процессы:
1 2 3 4 5 |
taskmgr.exe tasklist Get-Process wmic process get name,parentprocessid,processid wmic process where 'ProcessID=PID' get CommandLine |
Сервисы:
1 2 3 4 5 |
services.msc net start sc query | more tasklist /svc Get-Service | Format-Table -AutoSize |
Task Scheduler:
1 2 3 4 5 |
schtasks wmic startup get caption,command Get-CimInstance Win32_StartupCommand | Select-Object Name, command, Location, User | Format-List Get-ScheduledTask | Format-Table -AutoSize Get-ScheduledTask -TaskName Office* | Format-Table -AutoSize |
Регистр:
1 2 3 |
regedit reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run reg query HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run |
Соединения:
1 |
netstat -ano |
Подозрительные файлы:
1 2 3 |
forfiles /D -10 /S /M *.exe /C "cmd /c echo @path" forfiles /D -10 /S /M *.exe /C "cmd /c echo @ext @fname @fdate" forfiles /p c: /S /D -10 |
Настройки файрвола:
1 2 3 4 |
netsh firewall show config netsh advfirewall show currentprofile Get-NetFirewallRule | select DisplayName,Direction,Action,Enabled | Where-Object Enabled -eq $true | Sort-Object Direction, DisplayName | Format-Table -AutoSize Get-NetFirewallProfile |
Сессии с другими узлами:
1 2 3 4 |
net use net session Get-SmbMapping Get-SmbConnection |
Логи:
1 2 3 4 5 |
eventvwr.msc Get-EventLog -List Get-EventLog Application -After (Get-Date).AddHours(-2) | Format-Table -AutoSize Get-EventLog System -After (Get-Date).AddHours(-2) | Format-Table -AutoSize Get-EventLog System -After (Get-Date).AddHours(-2) | Where-Object {$_.Message -like "*Server*"} |