เชชเชพเชตเชฐเชถเซเชฒ เช เชเชเชฆเชฎ เชธเชพเชฎเชพเชจเซเชฏ เชเชเซเชฎเซเชถเชจ เชเซเชฒ เชเซ เชเซเชจเซ เชเชชเชฏเซเช เชฎเชพเชฒเชตเซเชฐ เชกเซเชตเชฒเชชเชฐเซเชธ เช
เชจเซ เชฎเชพเชนเชฟเชคเซ เชธเซเชฐเชเซเชทเชพ เชจเชฟเชทเซเชฃเชพเชคเซ เชฌเชเชจเซ เชฆเซเชตเชพเชฐเชพ เชฅเชพเชฏ เชเซ.
เช เชฒเซเช เชฎเชพเชนเชฟเชคเซ เชธเซเชฐเชเซเชทเชพ เชเชเชจเชพเชเชจเซ เชเชตเชพเชฌ เชเชชเชคเซ เชตเชเชคเซ เช
เชเชคเชฟเชฎ เชเชชเชเชฐเชฃเซเชฎเชพเชเชฅเซ เชกเซเชเชพเชจเชพ เชฆเซเชฐเชธเซเชฅ เชธเชเชเซเชฐเชน เชฎเชพเชเซ เชชเชพเชตเชฐเชถเซเชฒเชจเชพ เชเชชเชฏเซเช เชชเชฐ เชตเชฟเชเชพเชฐ เชเชฐเชถเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชเช เชธเซเชเซเชฐเชฟเชชเซเช เชฒเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เช
เชเชคเชฟเชฎ เชเชชเชเชฐเชฃ เชชเชฐ เชเชพเชฒเชถเซ, เช
เชจเซ เชชเชเซ เช เชธเซเชเซเชฐเชฟเชชเซเชเชจเซเช เชตเชฟเชเชคเชตเชพเชฐ เชตเชฐเซเชฃเชจ เชนเชถเซ.
function CSIRT{
param($path)
if ($psversiontable.psversion.major -ge 5)
{
$date = Get-Date -Format dd.MM.yyyy_hh_mm
$Computer = $env:COMPUTERNAME
New-Item -Path $path$computer$date -ItemType 'Directory' -Force | Out-Null
$path = "$path$computer$date"
$process = get-ciminstance -classname win32_process | Select-Object creationdate, processname,
processid, commandline, parentprocessid
$netTCP = Get-NetTCPConnection | select-object creationtime, localaddress,
localport, remoteaddress, remoteport, owningprocess, state
$netUDP = Get-NetUDPEndpoint | select-object creationtime, localaddress,
localport, remoteaddress, remoteport, owningprocess, state
$task = get-ScheduledTask | Select-Object author, actions, triggers, state, description, taskname|
where author -notlike '*ะะฐะนะบัะพัะพัั*' | where author -ne $null |
where author -notlike '*@%systemroot%*' | where author -notlike '*microsoft*'
$job = Get-ScheduledJob
$ADS = get-item * -stream * | where stream -ne ':$Data'
$user = quser
$runUser = Get-ItemProperty "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
$runMachine = Get-ItemProperty "HKLM:SoftwareMicrosoftWindowsCurrentVersionRun"
$array = $process, $netTCP, $netUDP, $task, $user, $runUser, $runMachine, $job, $ADS
$arrayName = "Processes", "TCPConnect", "UDPConnect", "TaskScheduled", "Users", "RunUser", "RunMachine",
"ScheduledJob", "AlternativeDataStream"
for ($w = 0; $w -lt $array.count; $w++){
$name = $arrayName[$w]
$array[$w] >> $path$name.txt
}
}
}
เชชเซเชฐเชพเชฐเชเชญ เชเชฐเชตเชพ เชฎเชพเชเซ, เชเช เชเชพเชฐเซเชฏ เชฌเชจเชพเชตเซ CSIRT เชเชเซเชธเซเชเซเชเชถเชจ, เชเซ เชฆเชฒเซเชฒ เชฒเซเชถเซ - เชชเซเชฐเชพเชชเซเชค เชกเซเชเชพเชจเซ เชธเชพเชเชตเชตเชพเชจเซ เชฎเชพเชฐเซเช. เชฎเซเชเชพเชญเชพเชเชจเชพ cmdlets Powershell v5 เชฎเชพเช เชเชพเชฎ เชเชฐเซ เชเซ เชคเซ เชนเชเซเชเชคเชจเซ เชเชพเชฐเชฃเซ, PowerShell เชตเชฐเซเชเชจเชจเซ เชคเชชเชพเชธ เชฏเซเชเซเชฏ เชเชพเชฎเชเซเชฐเซ เชฎเชพเชเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
function CSIRT{
param($path)# ะฟัะธ ะทะฐะฟััะบะต ัะบัะธะฟัะฐ ะฝะตะพะฑั
ะพะดะธะผะพ ัะบะฐะทะฐัั ะดะธัะตะบัะพัะธั ะดะปั ัะพั
ัะฐะฝะตะฝะธั
if ($psversiontable.psversion.major -ge 5)
เชฌเชจเชพเชตเซเชฒ เชซเชพเชเชฒเซ เชฆเซเชตเชพเชฐเชพ เชจเซเชตเชฟเชเซเชถเชจเชจเซ เชธเชฐเชณเชคเชพ เชฎเชพเชเซ, เชฌเซ เชตเซเชฐเซเชเชฌเชฒ เชถเชฐเซ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ: $date เช เชจเซ $Computer, เชเซเชจเซ เชเชฎเซเชชเซเชฏเซเชเชฐเชจเซเช เชจเชพเชฎ เช เชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชคเชพเชฐเซเช เชธเซเชเชชเชตเชพเชฎเชพเช เชเชตเชถเซ.
$date = Get-Date -Format dd.MM.yyyy_hh_mm
$Computer = $env:COMPUTERNAME
New-Item -Path $path$computer$date โItemType 'Directory' -Force | Out-Null
$path = "$path$computer$date"
เช เชฎเชจเซ เชตเชฐเซเชคเชฎเชพเชจ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชตเชคเซ เชเชพเชฒเซ เชฐเชนเซเชฒเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชเชจเซ เชธเซเชเชฟ เชจเซเชเซ เชชเซเชฐเชฎเชพเชฃเซ เชฎเชณเซ เชเซ: $process เชตเซเชฐเซเชเชฌเชฒเชจเซ win32_process เชเซเชฒเชพเชธ เชธเชพเชฅเซ get-ciminstance cmdlet เชธเซเชเชชเซเชจเซ เชฌเชจเชพเชตเซ. เชธเชฟเชฒเซเชเซเช-เชเชฌเซเชเซเชเซเช cmdlet เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชคเชฎเซ เชตเชงเชพเชฐเชพเชจเชพ เชเชเชเชชเซเช เชชเชฐเชฟเชฎเชพเชฃเซ เชเชฎเซเชฐเซ เชถเชเซ เชเซ, เช เชฎเชพเชฐเชพ เชเชฟเชธเซเชธเชพเชฎเชพเช, เช เชชเซเชฐเซเชจเซเชเชชเซเชฐเซเชธเซเชธเซเชก (PPID เชชเซเชฐเซเชจเซเช เชชเซเชฐเซเชธเซเชธ เชเชเชกเซ), เชฌเชจเชพเชตเชเชจเซ เชคเชพเชฐเซเช (เชชเซเชฐเซเชธเซเชธ เชฌเชจเชพเชตเชตเชพเชจเซ เชคเชพเชฐเซเช), เชชเซเชฐเซเชธเซเชธเซเชก (PID เชชเซเชฐเซเชธเซเชธ เชเชเชกเซ), เชชเซเชฐเซเชธเซเชธเชจเซเชฎ (เชชเซเชฐเซเชธเซเชธ เชจเชพเชฎ), เชเชฎเชพเชจเซเชกเชฒเชพเชเชจ เชนเชถเซ. (เชชเซเชฐเชพเชฐเชเชญ เชเชฆเซเชถ).
$process = get-ciminstance -classname win32_process | Select-Object creationdate, processname, processid, commandline, parentprocessid
เชฌเชงเชพ TCP เช เชจเซ UDP เชเชจเซเชเซเชถเชจเซเชธเชจเซ เชธเซเชเชฟ เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ, $netTCP เช เชจเซ $netUDP เชตเซเชฐเชฟเชฏเซเชฌเชฒเซเชธเชจเซ เช เชจเซเชเซเชฐเชฎเซ Get-NetTCPConnection เช เชจเซ Get-NetTCPConnection cmdlets เชธเซเชเชชเซเชจเซ เชฌเชจเชพเชตเซ.
$netTCP = Get-NetTCPConnection | select-object creationtime, localaddress, localport, remoteaddress, remoteport, owningprocess, state
$netUDP = Get-NetUDPEndpoint | select-object creationtime, localaddress, localport, remoteaddress, remoteport, owningprocess, state
เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชพเชฐเซเชฏเซ เช เชจเซ เชเชพเชฐเซเชฏเซเชจเซ เชธเซเชเชฟ เชเชพเชฃเชตเซ เชฎเชนเชคเซเชตเชชเซเชฐเซเชฃ เชฐเชนเซเชถเซ. เช เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ get-ScheduledTask เช เชจเซ Get-ScheduledJob cmdlets เชจเซ เชเชชเชฏเซเช เชเชฐเซเช เชเซเช. เชเชพเชฒเซ เชคเซเชฎเชจเซ $task เช เชจเซ $job เชเชฒเซ เชธเซเชเชชเซเช, เชเชพเชฐเชฃ เชเซ เชถเชฐเซเชเชคเชฎเชพเช, เชธเชฟเชธเซเชเชฎเชฎเชพเช เชเชฃเชพ เชฌเชงเชพ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชพเชฐเซเชฏเซ เชเซ, เชชเชเซ เชฆเซเชทเชฟเชค เชชเซเชฐเชตเซเชคเซเชคเชฟเชจเซ เชเชณเชเชตเชพ เชฎเชพเชเซ, เชคเซ เชเชพเชฏเชฆเซเชธเชฐ เชธเซเชจเชฟเชถเซเชเชฟเชค เชเชพเชฐเซเชฏเซเชจเซ เชซเชฟเชฒเซเชเชฐ เชเชฐเชตเชพ เชฏเซเชเซเชฏ เชเซ. เชธเชฟเชฒเซเชเซเช-เชเชฌเซเชเซเชเซเช cmdlet เช เชฎเชจเซ เชเชฎเชพเช เชฎเชฆเชฆ เชเชฐเชถเซ.
$task = get-ScheduledTask | Select-Object author, actions, triggers, state, description, taskname| where author -notlike '*ะะฐะนะบัะพัะพัั*' | where author -ne $null | where author -notlike '*@%systemroot%*' | where author -notlike '*microsoft*' # $task ะธัะบะปััะฐะตั ะฐะฒัะพัะพะฒ, ัะพะดะตัะถะฐัะธั
โะะฐะนะบัะพัะพััโ, โMicrosoftโ, โ*@%systemroot%*โ, ะฐ ัะฐะบะถะต ยซะฟััััั
ยป ะฐะฒัะพัะพะฒ
$job = Get-ScheduledJob
เชเชจเชเซเชเชซเชเชธ เชซเชพเชเชฒ เชธเชฟเชธเซเชเชฎเชฎเชพเช, เชตเซเชเชฒเซเชชเชฟเช เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎเซเชธ (เชตเซเชเชฒเซเชชเชฟเช เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎเซเชธ, เชเชกเซเชเชธ) เชเซเชตเซ เชตเชธเซเชคเซ เชเซ. เชเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ NTFS เชชเชฐเชจเซ เชซเชพเชเชฒเชจเซ เชฎเชจเชธเซเชตเซ เชเชฆเชจเชพ เชฌเชนเซเชตเชฟเชง เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎ เชธเชพเชฅเซ เชตเชงเซ เชธเชพเชเชเชณเซ เชถเชเชพเชฏ เชเซ. ADS เชธเชพเชฅเซ, เชคเชฎเซ เชเชตเชพ เชกเซเชเชพเชจเซ เชเซเชชเชพเชตเซ เชถเชเซ เชเซ เชเซ เชฎเชพเชจเช เชธเชฟเชธเซเชเชฎ เชคเชชเชพเชธ เชฆเซเชตเชพเชฐเชพ เชฆเซเชเชพเชถเซ เชจเชนเซเช. เช เชฆเซเชทเชฟเชค เชเซเชก เชฆเชพเชเชฒ เชเชฐเซ เชถเชเซ เชเซ เช เชจเซ/เช เชฅเชตเชพ เชกเซเชเชพ เชเซเชชเชพเชตเซ เชถเชเซ เชเซ.
เชชเชพเชตเชฐเชถเซเชฒเชฎเชพเช เชตเซเชเชฒเซเชชเชฟเช เชกเซเชเชพ เชธเซเชเซเชฐเซเชฎเซเชธ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เช เชฎเซ เชคเชฎเชพเชฎ เชธเชเชญเชตเชฟเชค เชธเซเชเซเชฐเซเชฎเซเชธ เชเซเชตเชพ เชฎเชพเชเซ * เชธเชฟเชฎเซเชฌเซเชฒ เชธเชพเชฅเซ เชเซเช-เชเชเชเชฎ cmdlet เช เชจเซ เชฌเชฟเชฒเซเช-เชเชจ เชตเชฟเชจเซเชกเซเช เชธเซเชเซเชฐเซเชฎ เชเซเชฒเชจเซ เชเชชเชฏเซเช เชเชฐเซเชถเซเช, เช เชฎเชพเชเซ เช เชฎเซ $ADS เชเชฒ เชฌเชจเชพเชตเซเชถเซเช.
$ADS = get-item * -stream * | where stream โne ':$Data'
เชธเชฟเชธเซเชเชฎเชฎเชพเช เชฒเซเช เชเชจ เชฅเชฏเซเชฒเชพ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชเชจเซ เชธเซเชเชฟ เชเชพเชฃเชตเชพ เชฎเชพเชเซ เชคเซ เชเชชเชฏเซเชเซ เชฅเชถเซ, เช เชฎเชพเชเซ เช เชฎเซ $user เชเชฒ เชฌเชจเชพเชตเซเชถเซเช เช เชจเซ เชคเซเชจเซ quser เชชเซเชฐเซเชเซเชฐเชพเชฎเชจเซ เช เชฎเชฒ เชธเซเชเชชเซเชถเซเช.
$user = quser
เชธเชฟเชธเซเชเชฎเชฎเชพเช เชชเช เชฎเซเชณเชตเชตเชพ เชฎเชพเชเซ, เชนเซเชฎเชฒเชพเชเซเชฐเซ เชเชเซเชฐเชจเชฎเชพเช เชซเซเชฐเชซเชพเชฐ เชเชฐเซ เชถเชเซ เชเซ. เชเชเซเชชเซเชฒเซเชฎเชพเช เชตเชธเซเชคเซเช เชเซเชตเชพ เชฎเชพเชเซ เชคเชฎเซ Get-ItemProperty cmdlet เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ.
เชเชพเชฒเซ เชฌเซ เชเชฒเซ เชฌเชจเชพเชตเซเช: $runUser - เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชตเชคเซ เชเชเซเชฒเซเชก เชเซเชตเชพ เชฎเชพเชเซ เช
เชจเซ $runMachine - เชเชฎเซเชชเซเชฏเซเชเชฐ เชตเชคเซ เชเชเซเชฒเซเชก เชเซเชตเชพ เชฎเชพเชเซ.
$runUser = Get-ItemProperty
"HKCU:SoftwareMicrosoftWindowsCurrentVersionRun"
$runMachine = Get-ItemProperty
"HKLM:SoftwareMicrosoftWindowsCurrentVersionRun"
เชฌเชงเซ เชฎเชพเชนเชฟเชคเซ เชตเชฟเชตเชฟเชง เชซเชพเชเชฒเซ เชชเชฐ เชฒเชเซ เชถเชเชพเชฏ เชคเซ เชฎเชพเชเซ, เช เชฎเซ เชตเซเชฐเซเชเชฌเชฒ เชธเชพเชฅเซ เชเชฐเซ เช เชจเซ เชซเชพเชเชฒ เชจเชพเชฎเซ เชธเชพเชฅเซ เชเชฐเซ เชฌเชจเชพเชตเซเช เชเซเช.
$array = $process, $netTCP, $netUDP, $task, $user, $runUser, $runMachine, $job, $ADS
$arrayName = "Processes", "TCPConnect", "UDPConnect" "TaskScheduled", "Users", "RunUser", "RunMachine",
"ScheduledJob", "Alternative Data Stream"
เช เชจเซ, เชซเซเชฐ เชฒเซเชชเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ, เชชเชฐเชฟเชฃเชพเชฎเซ เชกเซเชเชพ เชซเชพเชเชฒเซเชฎเชพเช เชฒเชเชตเชพเชฎเชพเช เชเชตเชถเซ.
for ($w = 0; $w -lt $array.count; $w++){
$name = $arrayName[$w]
$array[$w] >> $path$name.txt
เชธเซเชเซเชฐเชฟเชชเซเช เชเชเซเชเชฟเชเซเชฏเซเช เชเชฐเซเชฏเชพ เชชเชเซ, เชเชฐเซเชฐเซ เชฎเชพเชนเชฟเชคเซ เชงเชฐเชพเชตเชคเซ 9 เชเซเชเซเชธเซเช เชซเชพเชเชฒเซ เชฌเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเชถเซ.
เชเชเซ, เชธเชพเชฏเชฌเชฐ เชธเชฟเชเซเชฏเซเชฐเชฟเชเซ เชชเซเชฐเซเชซเซเชถเชจเชฒเซเชธ เชคเซเชฎเชจเชพ เชเชพเชฐเซเชฏเชฎเชพเช เชตเชฟเชตเชฟเชง เชเชพเชฐเซเชฏเซเชจเซ เชเชเซเชฒเชตเชพ เชฎเชพเชเซ เชเชฐเซเชฐเซ เชฎเชพเชนเชฟเชคเซเชจเซ เชธเชฎเซเชฆเซเชง เชฌเชจเชพเชตเชตเชพ PowerShell เชจเซ เชเชชเชฏเซเช เชเชฐเซ เชถเชเซ เชเซ. เชเชเซเชฒเซเชกเชฎเชพเช เชธเซเชเซเชฐเชฟเชชเซเช เชเชฎเซเชฐเซเชจเซ, เชคเชฎเซ เชกเชฎเซเชชเชฟเชเช, เชเชฌเซเช เชตเชเซเชฐเซ เชตเชเชฐ เชเซเชเชฒเซเช เชฎเชพเชนเชฟเชคเซ เชฎเซเชณเชตเซ เชถเชเซ เชเซ.
เชธเซเชฐเซเชธ: www.habr.com