Те, кто в теме информационной безопасностью знает, как захватить трафик с помощью сниффера WireShark. Но мало кто знает, что можно захватить трафик с помощью PowerShell. В этой небольшой статье, рассмотрим простой скрипт для захвата трафика в PowerShell, который называется QuickPcap.
Еще по теме: Сканер портов на PowerShell
Захват трафика с помощью PowerShell
Для работы нашего скрипта и захвата трафика в PowerShell, будем использовать установленную в Windows утилиту netsh. Вот простой код захвата трафика в течении 90 секунд:
1 2 3 |
netsh trace start capture=yes IPv4.Address=192.168.1.167 tracefile=c:\temp\capture.etl Start-Sleep 90 netsh trace stop |
Как и в Wireshark, нам нужно указать, с какого интерфейса мы хотим перехватить трафик. В приведенном выше примере 192.168.1.167 — это активный интерфейс, трафик с которого я хочу захватить. Но давайте автоматизируем эту задачу.
Предположим, что мы не знаем IP-адрес интерфейса. Мы можем получить локальный адрес IPv4 и сохранить его как переменную:
1 2 3 4 5 6 7 8 |
#Получить локальный IPv4-адрес $env:HostIP = ( Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.Status -ne "Disconnected" } ).IPv4Address.IPAddress |
Теперь собираем все вместе:
1 2 3 4 5 6 7 8 9 10 |
$env:HostIP = ( Get-NetIPConfiguration | Where-Object { $_.IPv4DefaultGateway -ne $null -and $_.NetAdapter.Status -ne "Disconnected" } ).IPv4Address.IPAddress netsh trace start capture=yes IPv4.Address=$env:HostIP tracefile=c:\temp\capture.etl Start-Sleep 90 netsh trace stop |
Отлично. Мы запилили автоматический захват пакетов без установки Wireshark. Единственный элемент, который нужно настроить — таймер захвата (сна).
Мы захватили трафик и сохранили в файл .etl, но нам нужен .pcap. Для этого прибегнем к простой утилите для конвертации etl2pcapng.
1 |
./etl2pcapng.exe c:\temp\capture.etl c:\temp\capture.pcap |
Вот и все. Теперь мы можем собирать пакеты на хостах Windows без добавления каких-либо дополнительных инструментов. Затем мы можем эти файлы открыть во всеми нами любимом анализаторе пакетов.
Я объединил все вышеперечисленное в файл QuickPcap.ps1.
Захват и конвертация выполняются как один непрерывный процесс, но их легко представить как отдельные элементы автоматизации, которые обрабатываются с помощью сценариев разными процессами.
Еще по теме: Способы обфускации PowerShell