рд╢реБрдн рджреЛрдкрд╣рд░, рд╕рд╣рдХрд░реНрдореАред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ - рд╕рд┐рд╕реНрдореЛрди ред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ "рд▓реЙрдЧ" рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдРрд╕реА рдПрдХ рдШрдЯрдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рдпрд╛рд╕ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдЖрд╡реЗрджрди рдХрд╣рд╛рдВ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдП:
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдереЛрдбрд╝реА рдХрд▓реНрдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред Sysmon Microsoft-Windows-Sysmon/Operational
рд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд▓рд┐рдЦрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ, рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреБрдЫ рдЗрд╕ рддрд░рд╣:
$ids = Get-WinEvent -LogName Microsoft-Windows-Sysmon/Operational | ? {$_.id -eq 3} $commObjects = $ids | % { New-Object psobject -Property @{ RuleName = $_.Properties[0].value UtcTime = $_.Properties[1].value ProcessGuid = $_.Properties[2].value ProcessId = $_.Properties[3].value Image = $_.Properties[4].value User = $_.Properties[5].value Protocol = $_.Properties[6].value Initiated = $_.Properties[7].value SourceIsIpv6 = $_.Properties[8].value SourceIp = $_.Properties[9].value SourceHostname = $_.Properties[10].value SourcePort = $_.Properties[11].value SourcePortName = $_.Properties[12].value DestinationIsIpv6 = $_.Properties[13].value DestinationIp = $_.Properties[14].value DestinationHostname = $_.Properties[15].value DestinationPort = $_.Properties[16].value DestinationPortName = $_.Properties[17].value SourceString = "$($_.Properties[4].value)`:$($_.Properties[3].value)" DestinationString = "$($_.Properties[14].value)`:$($_.Properties[16].value)" } } $g = New-Graph -Type BidirectionalGraph $commObjects | % { Add-Edge -From $_.SourceString -To $_.DestinationString -Graph $g | Out-Null } Show-GraphLayout -Graph $g
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Properties
рд╕рдВрдкрддреНрддрд┐ рдореЗрдВ рдореВрд▓реНрдп рдПрдХ рд╕реВрдЪреА рд╣реИ, рдмрд╕ рдореВрд▓реНрдп, рдмрд┐рдирд╛ рдЪрд╛рдмреА рдХреЗред рдЗрд╕рд▓рд┐рдП, рдЙрдиреНрд╣реЗрдВ рдмрд╛рдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдЕрд╢рд┐рд╖реНрдЯрддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд▓реЙрдЧ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд╕реЗ рдЗрди рдорд╛рдиреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рд░реЗрдЦрд╛рдВрдХрди рдХреЗ рд░реВрдк рдореЗрдВ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдпрд╛рдж рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдПрдХ рд╣реА "рдкрде" рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрдИ рдмрд╛рд░ рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реА рдУрд░, рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рд╢реАрд░реНрд╖ рджреЛ рдмрд╛рд░ рдЬреЛрдбрд╝рд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреЛ рдирдП рд▓реЛрдЧреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реБрдП рдореВрд▓реНрдпреЛрдВ рдХреЗ рдореВрд▓ рд╕реЗрдЯ рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╣рдореЗрдВ рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рд╕рдЯреАрдХ рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЕрджреНрд╡рд┐рддреАрдп рдореВрд▓реНрдп рд╣реИред
SourceString = "$($_.Properties[4].value)`:$($_.Properties[3].value)" DestinationString = "$($_.Properties[14].value)`:$($_.Properties[16].value)"
рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рджреЗрдЦ рдЦрддреНрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ