Всем привет.
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]
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=c:\123\Analyze-packet.ps1 $sniff
$report
Write-host "Destinations:"
$report.destinations
$report.destinations
Write-host "Sources:"
$report.sources
$report.sources
Write-host "Protocols:"
$report.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
А что вы думаете по этому поводу?