Cara lain untuk melihat komunikasi aplikasi

Selamat sore, kolega. Seperti yang Anda tahu, ada utilitas yang sangat berguna - sysmon . Singkatnya, ini memungkinkan Anda untuk mengumpulkan dan "mencatat" peristiwa yang terjadi pada Windows. Salah satu peristiwa tersebut adalah upaya untuk membangun koneksi jaringan. Dengan demikian, Anda dapat mencoba mencari tahu ke mana aplikasi Anda pergi. Untuk ini kita perlu:



Pada prinsipnya, kita perlu sedikit fantasi. Sysmon menulis peristiwa ke log Microsoft-Windows-Sysmon/Operational . Jadi kita perlu mengeluarkannya, membongkar dan memajangnya. Sesuatu seperti ini:


 $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 

Sayangnya, nilai dalam Properties Properties adalah daftar, hanya nilai, tanpa kunci. Karena itu, untuk mengikat mereka, saya harus bertindak kasar. Pada akhirnya, kita cukup mengambil nilai-nilai ini dari setiap entri log, mengubahnya menjadi objek, dan kemudian menambahkannya ke grafik sebagai simpul dan menampilkannya.


Penting untuk diingat bahwa proses dengan "jalan" yang sama dapat dijalankan berkali-kali. Di sisi lain, simpul dengan nama yang sama tidak ditambahkan dua kali. Oleh karena itu, untuk secara unik mewakili setiap proses pada grafik, kami sedikit mengubah set nilai asli, menambahkan dua yang baru. Ini memungkinkan kami untuk mengidentifikasi proses secara akurat, karena pengenalnya adalah nilai yang relatif unik.


  SourceString = "$($_.Properties[4].value)`:$($_.Properties[3].value)" DestinationString = "$($_.Properties[14].value)`:$($_.Properties[16].value)" 

Ini adalah bagaimana akhirnya terlihat


sysmonlognetgraph


Saya harap ini bermanfaat bagi seseorang

Source: https://habr.com/ru/post/id425375/


All Articles