Главная

Tuesday, 12 April 2016

Сетевой сниффер на Powershell.

Всем привет.

Powershell рулит. Я понимаю что PS универсальный инструмент, но чтобы настолько...

Даже не помню каким образом, но пришел я на блог одного PS-писателя Robbie Foust (rfoust@duke.edu), который  создал, не много не мало, сетевой сниффер. Супер!

И назвал он его просто Get-packet:
receives and displays all incoming IP packets.  NIC driver must support promiscuous mode.
Usage: get-packet.ps1 [-LocalIP [<String>]] [-Protocol [<String>]] [[-Seconds] [<Int32>]] [-ResolveHosts] [-Statistics] [-Silent]

Запускаем на выполнение:
powershell -ExecutionPolicy Unrestricted -File Get-Packet.ps1 192.168.136.129 >1.txt
где 192.168.136.129 - IP-адрес сетевого интерфейса на прослушивание.


Вот ответы пинга:
Using IPv4 Address: 192.168.136.129
Press ESC to stop the packet sniffer ...

Destination : 192.168.136.1
Source      : 192.168.136.129
Version     : 4
Protocol    : ICMP
Sequence    :

Window      :
DestPort    : 0
SourcePort  : 0
Flags       : {}
Data        :
Time        : 04.04.2016 15:10:59


Destination : 192.168.136.129
Source      : 192.168.136.1
Version     : 4
Protocol    : ICMP
Sequence    :
Window      :
DestPort    : 0
SourcePort  : 0
Flags       : {}
Data        :
Time        : 04.04.2016 15:10:59


А это ответ по HTTP:
Using IPv4 Address: 192.168.136.129
Press ESC to stop the packet sniffer ...


Destination : 192.168.136.1
Source      : 192.168.136.129
Version     : 4
Protocol    : TCP
Sequence    : 1394991238
Window      : 256
DestPort    : 54111
SourcePort  : 80
Flags       : {FIN, PSH, ACK}
Data        : HTTP/1.1 400 Bad Request
              Content-Type: text/html; charset=us-ascii
              Server: Microsoft-HTTPAPI/2.0
              Date: Mon, 04 Apr 2016 12:11:18 GMT
              Connection: close
              Content-Length: 326
              DOCTYPE HTML PUBLIC "-//W3C//DTD ...тут код ...  HTML


К этому автору подключился еще один автор Jeffery Hicks и написал сетевой анализатор  Analyze-Packet. Найти его скрипт Analyze-Packet.ps1 можно на том же блоге. This script is used to analyze a saved network trace created with Get-Packet. Make sure you have the latest version.

И работает же!

Пишем такой вот простенький файл:
 
$sniff=c:\123\get-packet.ps1 192.168.136.129
$report=c:\123\Analyze-packet.ps1 $sniff
$report
Write-host "Destinations:"
$report.destinations
Write-host "Sources:"
$report.sources
Write-host "Protocols:"
$report.protocols


И результат:


Using IPv4 Address: 192.168.136.129
Press ESC to stop the packet sniffer ...

TotalPackets     : 16
Elapsedtime      : 00:00:07.6093750
PacketsPerSec    : 2,1027
Protocols        : @{Count=16; Protocol=ICMP; Percentage=100,0000%}
Destinations     : Count=8; IP=192.168.136.129; Host=192.168.136.129; Percentage=50,0000%}, @{Count=8; IP=192.168.136.1; Host=MAXA7; Percentage=50,0000%}}
DestinationPorts : @{Count=16; Port=; Percentage=100,0000%}
Sources          : {@{Count=8; IP=192.168.136.129; Host=192.168.136.129; Percentage=50,0000%}, @{Count=8; IP=192.168.136.1; Host=MAXA7; Percentage=50,0000%}}
SourcePorts      : @{Count=16; Port=0; Percentage=100,0000%}


Destinations:Count      : 8
IP         : 192.168.136.129
Host       : 192.168.136.129
Percentage : 50,0000%
Count      : 8
IP         : 192.168.136.1
Host       : MAXA7
Percentage : 50,0000%


Sources:Count      : 8
IP         : 192.168.136.129
Host       : 192.168.136.129
Percentage : 50,0000%
Count      : 8
IP         : 192.168.136.1
Host       : MAXA7
Percentage : 50,0000%


Protocols:
Count      : 16
Protocol   : ICMP
Percentage : 100,0000%


Результат можно красиво форматировать через командлет Out-GridView, но про него поговорим в следующий раз.)


Успехов.

No comments:

Post a Comment

А что вы думаете по этому поводу?