PowerShell แแ แแก แกแแแแแแ แแแแ แชแแแแแฃแแ แแแขแแแแขแแแแชแแแก แแแกแขแ แฃแแแแขแ, แ แแแแแกแแช แฎแจแแ แแ แแงแแแแแแ แ แแแแ แช แแแแแ แแ แแแ แแแแก แจแแแฅแแแแแแแ, แแกแแแ แแแคแแ แแแชแแฃแแ แฃแกแแคแ แแฎแแแแแก แกแแแชแแแแแกแขแแแ.
แแก แกแขแแขแแ แแแแแฎแแแแแก PowerShell-แแก แแแแแงแแแแแแก แแแ แแแแขแก แแแแ แแแฌแงแแแแแแแแแแแแ แแแแแชแแแแแแก แแแกแขแแแชแแฃแ แแ แจแแกแแแ แแแแแแแ แแแคแแ แแแชแแแก แฃแกแแคแ แแฎแแแแแก แแแชแแแแแขแแแแ แ แแแแแ แแแแกแแก. แแแแกแแแแแก แแฅแแแ แฃแแแ แแแฌแแ แแ แกแแ แแแขแ, แ แแแแแแช แแแฃแจแแแแแก แแแแ แแแฌแงแแแแแแแแแ แแ แจแแแแแ แแฅแแแแ แแ แกแแ แแแขแแก แแแขแแแฃแ แ แแฆแฌแแ แ.
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 แแแคแแ แแแแแ, แ แแแแแแช แแแแฆแแแก แแ แแฃแแแแขแก - แแแฆแแแฃแแ แแแแแชแแแแแแก แจแแแแฎแแแก แแแแก. แแแแก แแแแ, แ แแ cmdlet-แแแแก แฃแแแขแแกแแแ แแฃแจแแแแก 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 แชแแแแแ, แแแแแแแญแแ แแแก get-ciminstance cmdlet win32_process แแแแกแแแ. Select-Object cmdlet-แแก แแแแแงแแแแแแ แจแแแแซแแแแ แแแแแแขแแ แแแแแขแแแแแ แแแแแแแแแแ แแแ แแแแขแ แแแ, แฉแแแแก แจแแแแฎแแแแแจแ แแก แแฅแแแแ แแจแแแแแ แแ แแชแแกแ (แแ แแชแแกแแก แแจแแแแแ ID PPID), แจแแฅแแแแก แแแ แแฆแ (แแ แแชแแกแแก แจแแฅแแแแก แแแ แแฆแ), แแแแฃแจแแแแแฃแแ (แแ แแชแแกแแก ID 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 cmdlet-แแแก. แแแแแ แแแแชแแ แแแ $task แแ $job แชแแแแแแแ, แ แแแแแ แแแแแแแแ แแแแแ, แกแแกแขแแแแจแ แฃแแแ แแแ แแแแแแแแแ แแแแแแแแแ, แจแแแแแ แแแแแ แแแฅแแแแแแแแแก แแแแแขแแคแแชแแ แแแแกแแแแก แฆแแ แก แแแแแขแแแฃแ แ แแแแแแแแแ แแแแชแแแแแแก แแแคแแแขแแ แ. Select-Object 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). แแก แแแจแแแแก, แ แแ แคแแแแ NTFS-แจแ แแ แฉแแแแแแ แจแแแซแแแแ แแกแแชแแ แแแฃแแ แแงแแก แแแแแแแแฃแ แ แแแแแก แแ แแแแแ แแชแฎแแแแ แแแแแชแแแแ แแแแแแแแ. แ แแแแแแแก แแแแแงแแแแแแ แจแแแแซแแแแ แแแแแแแ แแแแแชแแแแแ, แ แแแแแแแช แแ แแฅแแแแ แฎแแแฃแแ แกแขแแแแแ แขแฃแแ แกแแกแขแแแแก แจแแแแฌแแแแแก แแแแ. แแก แจแแกแแซแแแแแแก แฎแแแก แแแแแ แแแแแก แจแแงแแแแแก แแ/แแ แแแแแชแแแแแแก แแแแแแแแก.
PowerShell-แจแ แแแแแชแแแแ แแแขแแ แแแขแแฃแแ แแแแแแแแแก แกแแฉแแแแแแแแ, แฉแแแ แแแแแแแงแแแแแ get-item cmdlet-แก แแ แฉแแจแแแแแฃแ Windows-แแก แแแแแแแก แฎแแแกแแฌแงแแก * แกแแแแแแแก แงแแแแ แจแแกแแซแแ แแแแแแแก แกแแแแฎแแแแ, แแแแกแแแแก แจแแแฅแแแแ $ADS แชแแแแแก.
$ADS = get-item * -stream * | where stream โne ':$Data'
แกแแกแแ แแแแแ แแฅแแแแ แกแแกแขแแแแจแ แจแแกแฃแแ แแแแฎแแแ แแแแแแแก แกแแแก แแแ แแแแแ, แแแแกแแแแก แฉแแแ แจแแแฅแแแแ $user แชแแแแแก แแ แแแแแแแญแแแ แแแก quser แแ แแแ แแแแก แจแแกแ แฃแแแแแก.
$user = quser
แแแแแแแกแฎแแแแแแก แจแแฃแซแแแแ แจแแแขแแแแ แชแแแแแแแแแ autorun-แจแ, แ แแแ แแแแแแแแ แคแแฎแ แกแแกแขแแแแจแ. แแแจแแแแแก แแแแแฅแขแแแแก แกแแแแฎแแแแ แจแแแแซแแแแ แแแแแแงแแแแ 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 loop-แแก แแแแแงแแแแแแ แแแฆแแแฃแแ แแแแแชแแแแแ แฉแแแฌแแ แแแ แคแแแแแแจแ.
for ($w = 0; $w -lt $array.count; $w++){
$name = $arrayName[$w]
$array[$w] >> $path$name.txt
แกแแ แแแขแแก แจแแกแ แฃแแแแแก แจแแแแแ แจแแแฅแแแแแ 9 แขแแฅแกแขแฃแ แ แคแแแแ, แ แแแแแแช แจแแแชแแแก แกแแญแแ แ แแแคแแ แแแชแแแก.
แแฆแแก แแแแแ แฃแกแแคแ แแฎแแแแแก แแ แแคแแกแแแแแแแแก แจแแฃแซแแแแ แแแแแแงแแแแ PowerShell แแ แแแคแแ แแแชแแแก แแแกแแแแแแ แแแแแ, แ แแแแแแช แแแ แกแญแแ แแแแแ แกแแแฃแจแแแก แกแฎแแแแแกแฎแแ แแแแชแแแแแแก แแแแแกแแญแ แแแแ. แแแจแแแแแกแแแแก แกแแ แแแขแแก แแแแแขแแแแ, แจแแแแซแแแแ แแแแฆแแ แแแ แแแแฃแแ แแแคแแ แแแชแแ แแแแแแกแแงแ แแแแแแก, แกแฃแ แแแแแแก แแ แ.แจ. แฌแแจแแแก แแแ แแจแ.
แฌแงแแ แ: www.habr.com